摘要:
好久没写博客了,今天难得清静下来,觉得还是在这里记录下过去几个月的工作经历。从一月份那次去深圳开始,就注定今年的不平凡。当领导任命我为该项目的项目主管时,我就知道责任与压力将会伴随我以后的日子。这个项目时间紧,功能多,任务重,绝对不是一个好挑的担子。在这几个月里,我基本上没有休息,没有娱乐,全部扑在这个项目上。因为单位的原因,我可分配的资源及其少,很多东西都要我自己上阵。通过几个月的努力,项目初步成形,但需要解决的问题还不少。“路漫漫其修远兮,吾将上下而求索”。昨天抽空看了一下三国,曹操老谋深算,野心勃勃,刘备泰然自若,宠辱不惊而又极力掩饰自己的雄心壮志,甘于先做配角,这两个人都有泰山崩于前而 阅读全文
随笔分类 - ARM相关
想成为嵌入式程序员应知道的0x10个基本问题
2010-02-27 22:34 by htc开发, 195 阅读, 收藏,
摘要:
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去 阅读全文
DM网络芯片ping不通原因调查。
2010-02-27 20:31 by htc开发, 334 阅读, 收藏,
摘要:
我们用的是DM9161EP,这次做板后发现,也是ping不通,有的板或者干脆就自举不了。暴汗,反复查原理图,没发现什么问题。后来换成以前买的一批DM9161E,就好了。害死人了。分析了一下原因,可能有以下几个:1. 这批是假货?2. 因为带P的是无铅产品,抗静电差,可能包装不好,在物流过程中被静电打掉了?3. 焊接过程中,焊温过高,导致芯片损伤?不得而知。还请Davicom的工程师解释一下。今天上论坛,发现也有同仁遇到这种问题。见http://bbs.21ic.com/frame.php?frameon=yes&referer=http%3A//bbs.21ic.com/icnewes 阅读全文
转一篇介绍开发嵌入式经验的文章,写得不错,比较中肯,适合一看。
2009-07-04 20:31 by htc开发, 176 阅读, 收藏,
摘要:
如何从零开始开发一款嵌入式产品(20年的嵌入式经验) 来源:www.armjishu.com作者:jesse转载请注明出处 首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。 我写这篇文章的目的,是用本人20年的嵌入式经验呈现给大家一副完整的产品,项目开发蓝图,用本人多年经的历总结了一些教训无私的分享给各位,希望各位今后能站在本人的肩膀之上,少.. 阅读全文
移植MiniGUI到S3C2410目标板
2008-09-04 16:24 by htc开发, 288 阅读, 收藏,
摘要:
网上看到的大多数是1.3版本的,1.6.10的基于FC系统的几乎没有。写下这篇文章,帮助那些刚接触minigui的同仁们。环境宿主机:FC6目标板:arm 9,s3c2410, linux 2.6.24.4MiniGUI版本:1.6.10 (http://www.minigui.org/res.shtml)简介 MiniGUI是北京飞漫公司的产品,号称遵循GPL条款。有关MiniGui的官方消息看http://www.minigui.org (英文网站) 和 http://www.minigui.cm(中文网站)。目前开源的最新版本是MiniGUI 1.6.10。但是它的未开源的增值版已经到. 阅读全文
HomeR2初步实施。
2008-08-30 10:36 by htc开发, 201 阅读, 收藏,
摘要:
目前处于搭建平台阶段。现已完成homer2410的u-boot移植(nand flash启动),yaffs2文件系统,2.6.24.4内核移植,LCD驱动移植,RTC移植,USB移植,CS8900移植,进度还算顺利。 下个星期进行SD/MMC卡移植,MiniGUI移植。不过,公司项目高温实验也差不多了。估计还要进入软件完善阶段了。也许要分出时间来忙了。 阅读全文
yaffs2源代码情景分析
2008-08-21 12:05 by htc开发, 344 阅读, 收藏,
摘要:
作者: 斑点 Email: byeyear@hotmail.com 1.前言 略。 2.yaffs文件系统简介 按理说这里应该出现一些诸如“yaffs是一种适合于NAND Flash的文件系统XXXXX”之类的字眼,不过考虑到网络上关于yaffs/yaffs2的介绍已经多如牛毛,所以同上,略。 3.本文内容组织 本文将模仿《linux内核源代码情景分析》一书,以情景分析的方式对yaffs2文件系统的源代码进行分析。首先将分析几组底层函数,如存储空间的分配和释放等;其次分析文件逻辑地址映射;然后是垃圾收集机制;接下来……Sorry,本人还没想好。:-) 4.说明 因为yaffs2貌似还在持续更新 阅读全文
通用芯片和专用芯片之争
2008-07-26 09:07 by htc开发, 1532 阅读, 收藏,
摘要:
在方案讨论会上,两家方案截然不同。一家采用通用芯片,譬如DSP,ARM9,FPGA等;一家采用专用芯片,譬如复印扫描传真一体化的专用芯片。这两种方案各有优缺点: 采用通用芯片,优点是: 1. 芯片容易购买。不仅仅依赖一种型号。任何一家的MCU都可以。NXP的ARM芯片可以,Atmel的也可以,freescale的也行,不限型号。 2. 软件移植性高。只要采用ARM通用体系,则无论是ARM9,ARM10,还是ARM12,均能很方便快捷的移植。 3. 有利于升级。通用MCU的发展一直很快,随着MCU技术和数字信号处理技术的发展,运行处理速度会越来越快。 4. 采用linux系统,有着良好的扩展性。 阅读全文
正式开始homeR的计划
2008-07-16 22:53 by htc开发, 130 阅读, 收藏,
摘要:
脑里一直有个想法,却一直无法付诸行动。当然,项目也很紧张,资源也不够。所以,一直只是个想法。 最近,项目可以说完成了80%了,所以会有很多时间来充实自己。已经拟定了计划。在未来的时间里,只要有时间,必将将这个计划执行下去。 这个计划是个人提升的一个途径。通过这个计划,必须让自己的实力更上一个台阶。从bootloader开始,完整的体现一个项目的过程。几个大的方向,有驱动开发,网络应用,miniGUI,UML等。 忧患,生。 安乐,死。 阅读全文
RM9200中flash文件系统的移植
2008-05-30 10:28 by htc开发, 262 阅读, 收藏,
摘要:
flash文件系统在嵌入式linux系统中是必须的,无论是作为只读的根文件系统还是作为可写的用户文件系统。目前在linux-2.6.14内核上 移植flash文件系统。下载相应内核,打好at91rm9200的补丁后,却发现先前移植nand文件系统的方法在flash文件系统中完全不行。只好从头开始了。 星光AT91RM9200开发板的flash芯片是SST39VF3201,16 位 ,4M 。按目前计划,准备分区为三个区,分别为uboot(0x40000), kernel(0x1c0000), rootfs(0x200000), 应该可以将linux的最小系统跑起来的。 首先,添加MTD分区.. 阅读全文
关于Keil 的一些看法
2007-09-12 21:37 by htc开发, 211 阅读, 收藏,
摘要:
以前一直使用ADS来作为arm的开发工具,编译调试虽然分为不同的程序,但是总体来说还是挺稳定的,出现错误时提示信息比较有用。 最近因为要用到LPC24系列的ARM7芯片,针对ADS的驱动尚未出现,所以只能使用keil来进行开发。总的来讲,keil给我的感觉简直是糟透了。 首先,keil for arm的版本太多,3.01,3.04 ,3.05一个接一个的版本,让人无所适从。也不知道哪个版本bug较少,也不敢用最新的版本,生怕最新的版本的bug更多。 其次,界面虽然很全。包含的工程和调试信息也很多,但是一个最大的软肋是,如果不小心将窗口移动了,竟然很难将它再移回到原来的位置,导致界面乱七八糟.. 阅读全文
USB枚举详细过程剖析
2007-07-17 14:16 by htc开发, 240 阅读, 收藏,
摘要:
(1)集线器检测新设备主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)(2)主机知道了新设备连接后每个集线器用中断传输来报告在集线器上的事件。当主机知道了这个事件,它给集线器发送一个Get_Status请求来了解更多的消息。返回的消息告诉主机一个设备是什么时候连接的。(3)集线器重新设置这个新设备当主机知道有一个新的设备时,主机给集线器发送一个Set_Feature请求,请求集线器来重新 阅读全文
使用ELDK4.1构建交叉编译环境及AT91RM9200EK的引导攻略
2007-07-10 15:22 by htc开发, 232 阅读, 收藏,
摘要:
前言今年1月份到2月份在自己博客上发表了几篇关于AT91RM9200引导程序的文章,分别是 建立交叉编译工具链 TFTP和NFS服务的设置 U-Boot1.1.4在AT91RM9200上的移植时间过的很快,工作也很忙,一晃就过了半年多。再回头看,已经发现很多都落伍了。新版本出了一波又一波。linux已经到了2.6.20。federo也已经到了FC7。如果不对本人以前的文章更新的话,势必会误导初学者。所以针对目前比较新的环境,重新写下整个过程。不过,由于实在挺忙的,所以比第一次写的要简洁许多,大家如果有不明白的地方,可以参考以前的文章。大多数内容都大同小异,只不过一些细节需要注意。由于比较匆忙, 阅读全文
Windows下Linux开发环境设置(二)--安装Cygwin及交叉编译工具链
2007-03-14 14:31 by htc开发, 642 阅读, 收藏,
摘要:
在Windows下进行Linux开发,当然要用到Cygwin了。它就是提供了在Windows下开发Linux程序的环境。1. 从http://cygwin.com/安装Cygwin。运行安装程序,进入Select Packages,Base,Devel, Libs下安装包全选,其他安装包酌情选择。选择安装目录如C:/Cygwin2. 下载脚本文件http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz23. 将buildroot-snapshot.tar.bz2复制到C:/cygwin/usr/src下4 阅读全文
Windows下Linux开发环境设置(一)--TFTP服务器设置和NFS服务器设置
2007-03-08 08:45 by htc开发, 247 阅读, 收藏,
摘要:
序言本系列文章介绍在windows下如何进行Linux开发应用。如何在windows下通过tftp启动目标板,如何在windows通过NFS与目标板相“沟通”。 以及如何在cygwin下生成交叉编译工具链。本文中所有操作均在windows XP下进行。TFTP服务器设置软件需求:tftpsrv.exe文件要求:zImage,ramdisk 这两个文件为用户自己的启动文件。1. 在C盘新建目录c:/tftpserver/2. 将程序TFTPSRV.exe拷入该目录3. 在c:/tftpserver/目录下创建tftpboot目录4. 将zImage和ramdisk拷入tftpboot下5. 确保 阅读全文
AT91RM9200引导程序的建立(三)--------U-Boot1.1.4在AT91RM9200上的移植
2007-02-12 16:23 by htc开发, 182 阅读, 收藏,
摘要:
BootLoader概述 Boot Loader就是在操作系统内核运行之前运行的一段小程序。通过这段BootLoader,我们来初始化硬件设备,为硬件设备准备地址空间,中断号等,建立内存空间的映射,从而将系统的软硬件环境带到一个合适的状态。AT91RM9200处理器启动有两种情况,一种是从外部启动,如Flash,EEPROM,DATAFLASH等;一种是从内部的BOOTROM固化代码引导。我们的ARM板是直接通过JTAG接口从主机下载到目标板的flash中直接启动。 系统上电后,我们的CPU从0x00000000取它的第一条指令,而我们的flash就是被映射到这个地址上。CPU就首先执行我们. 阅读全文
AT91RM9200引导程序的建立(二)--------TFTP和NFS服务的设置
2007-02-08 16:54 by htc开发, 177 阅读, 收藏,
摘要:
TFTP服务器设置TFTP协议是简单的文件传输协议,适合目标板Bootloader的使用。TFTP文件传输基于UDP。我们通过TFTP来传输目标板启动需要的内核映象文件zImage和ramdisk首先必须安装tftp软件包,在RedHat Linux安装CD3中找到tftp文件包:tftp-0.32-4.i386.rpm,[root@localhost] rpm –ihv tftp-server-0.32-4.i386.rpm系统自动安装好tftp服务器;进入目录/etc/xinetd.d [root@localhost]cd /etc/xinetd.d [root@localhost]vi. 阅读全文
AT91RM9200引导程序的建立(一)--------建立交叉编译工具链
2007-01-09 21:25 by htc开发, 226 阅读, 收藏,
摘要:
写在前面: 本系列文章将详细的讲述AT91RM9200引导程序的建立过程,其中包括建立交叉编译工具链,gdb+gdbserver的编译安装使用,tftp,NFS的安装使用,超级终端或者minicom的使用,内核的编译升级,U-Boot的移植,Ramdisk、根文件系统的建立制作,busybox的编译、应用等。从而重现完整的开发过程。在写这个文档的过程中,本人参考了许多资料,在这里要感谢互联网,感谢所有社区,论坛里无私提供帮助的同行们。特别感谢一下鲁郁先生,是他让我在AT91RM9200上成功的移植了U-Boot1.1.4。本人是从不懂一路走来,走的过程中将开发过程详细记述下来,从一个初学者的角 阅读全文
调试过程
2006-12-06 22:16 by htc开发, 139 阅读, 收藏,
摘要:
今天工作有进展,板子的串口问题解决了。主要是RS232转换芯片的一个管脚不该接的接了。由于at91rm200的调试串口是DTE设备,而pc机也是DTE设备,所以,串口线要2,3要跳线。串口通信解决了,接下来都好办了。努力了半个多月,将编译生成的U-Boot.bin烧到flash里,重启后从超级终端中输出一些基本信息了。不过flash没识别出来,那是因为flash.c没改动,我们的板子是用的SST的板子。重新修改flash.c后,再烧到flash里,重启后,看到一系列启动信息,心里一阵欢呼。不过,接下来要编译内核,引导ramdisk了。任重而道远。 阅读全文
磁引导机器人的地址识别技术难题终于有了突破。。。。
2006-09-13 22:14 by htc开发, 222 阅读, 收藏,
摘要:
我们自己研制的磁引导机器人(自己的磁感应探头),在一些项目中已经得到应用。我们的磁引导机器人转弯或选择路径时采用非盲走形式,这不同于现在某些单位使用的盲走形式,优点则更精确,更可靠,不易受到外部因素的干扰,且速度快。对于磁引导机器人来说,地址问题最大了。由于地址只有一位检测,容易受到干扰。通常表现为: 容易多计数。如在非地址的时候遇到一个脉冲电平极有可能当成地址。 在遇到一个地址时,由于磁条的贴法和磁条与磁探测器的位置角度不同而导致的磁场分布强弱明显,导致地址可能会多记。 少记地址。 现在从软件上已经很好的解决了这些问题。原理即:取一定时器,在探测到高电平时计下时间t1,... 阅读全文