一些嵌入式调试的工作经验
关于嵌入式调试的一些经验 :
(1)熟悉芯片:接触的嵌入式硬件平台有两个,一个dsp2812,一个是arm7架构的2292,这种嵌入式芯片datasheet都是鸟语写的,要看能把人累死。我是把那些文档当工具书来查了。开始根本不看datsheet,把它给的例程跑通!要是想做开发板熟悉芯片几个功能就好,一个是电源管理,一个是时钟管理,内存管理,还有是中断管理。先跑最小系统,然后拓展功能。
(2)开发 如果有了一块开发板,就要对其进行开发了。开发时要调研,在这上吃了大亏, 原因是调研不够祥尽。lwip协议站移植,主处理芯片为arm2292,网卡芯片为8019as,着重调研以下几项: 1为何要用这个协议栈,好处哪些,坏处哪些(因此选用了lwip而不是uip)。2在我们的平台上是否有搭建的可行性(决定了裸跑协议站而没有上mcos操作系统),3现行主流协议栈移植代码(可参照进行开发,要查到和自己开发最相近的文档哈),相关资料的查找(主要是8019芯片资料,这款芯的datasheet相当垃圾,介绍的一点不全,当时没有想到对这款芯片家族资料进行查找,其实结构功能都一样,害得耽误功夫),咨询外协团队的查找(arm2292是周立功代理的芯片,他们有强大的技术支持,老衲五木写过移植的教程留下了qq,老古论坛为8019as的专业论坛,有幸得到了联系方式)。
在下面 读硬件原理图,弄清原理,是个苦功夫,对于单片机不用了解很多,知道和应用相关模块就ok。
再下面是对开发软件平台的了解,每种开发平台都有自己的特点,对他们的操作试着了解。
读取寄存器,写几行代码,不断读取每个要用的寄存器,看下能否成功!
再往下就是加程序调试了,两种方法,一是自己写,按照datasheet的说明文档,另一种是借它山之石。调试是和datasheet跟进的,是个经验过程,总结以下技巧:
(1)程序单步跟踪,看变量
(2)程序模块化,一个模块一个模块封掉排查
(3)弄清数据流图,数据流动的每个过程都了解清楚,主要了解单片机的架构功能,比如双口ram的优点,设计的思想,isa总线结构设计的思想,数据怎样从起使端流到目的端等等!
(4)在程序中加标签变量,有时每个函数都加个,看看在哪个函数中出错
(5)接口程序的排查,每个功能模块的出错率不大,可能出错的是接口程序
遇到难题就百度下,有的问题很多人都会
遇到,还有不断的给技术支持打电话都是免费的,外协团队很重要啊,完后表示感谢下呀!这个项目给我最大启示是看成熟的技术是怎么做的。怀疑硬件问题那就拿成熟的评估板跑好了。从硬件,驱动,到软件一点点排查!嵌入式是个好东西,真想有时间从板子到驱动,再到上层应用一点点跟下来,嵌入式移植最关键的是数据结构,内存管理,与接口的函数,做完移植就又换毫不相干的任务了,无奈无奈。待续。
嵌入式调试工作经 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)