这几天一直看 OPEN JTAG 的使用,说明书看了一遍又一遍 = =
南方大虾还是不错的,说明书写的有点详细 :) 基本操作都教了。
1,我先是跟着说明书先装了驱动,调试起来很正常,然后按照说明配置eclipse,搞了好长的时间 = =最好还好算是搞定了。
2,按照说明书能正常编译和调试了,不过觉得还是一层雾。这东西到底是扮演什么样的角色?至少现在还不清楚。于是从切入点开始,先看 openocd 的说明书,看了一些指令,然后又单独装载,用telnet连接openocd,收工一步一步的测试openocd的命令,这里倒是还顺利。又玩了一天,发现对openocd的命令清晰了一点。
3,看openocd的配置文件,虽然南方大虾直接给了,但是为啥要这样做呢?这个想搞清楚,想搞清楚这配置文件究竟做了些什么,openocd的安装目录有很详细的资料介绍配置文件每个项目的含义,虽然有些还看不懂,不过其他的算是搞清楚。于是自己添加了一些注释,调整一下位置。运行也通过了 :)
4,经过几天的折腾,终于明白了这openocd其实就是扮演一个 GDBServer的角色,接收来自GDB的连接还有解释GDB命令,然后再转化为自己openocd的命令然后再控制JTAG接口送出信号,理解到这里又清晰了一点。
5,接着是看GDB,之前有听过,不过没有用过,很简单,因为是打命令行的 .... 囧啊,这有点郁闷。不过有了eclipse后就是爽啊,全部命令提供了一个熟悉的IDE界面,这eclipse有点伟大,拜一下。
6,对GDB配置的初始化命令还不是很懂,于是又是找 GDB的资料,这有点多,400多页的英文文档,看的有点郁闷,稍微看了一点而已,百度更加快一点,主要是理解几个命令的含义用法等,虽然南方大虾的说明书也有说,不过那不详细,我需要知道为啥这样做。于是又看了2天资料,貌似现在理解了。主要通过monitor调用openocd的命令,另外就是GDB自身的load continue等命令而已。
7,对eclipse的行为还不是很理解,又玩了两天,主要是搞清楚项目怎么创建的,做了什么动作,怎么加入文件删除文件。然后就是搞清楚make的行为,原来eclipse是默认调用make来,那么跟平时一模一样了,提供makefile就OK,然后又在网上找到专为ARM ELF设计的生成 makefile 插件,以后慢慢用,不过现在倒是自己习惯了手动手该make和ld scripte了,能掌握编译器的每个东西,方便错误定位。
8,最后就是建立环境,总算是OK了。按照说明书里面调试 uboot的思想,先装载init,那么写调试程序就不需要再搞那个head.S的初始化汇编代码,事实上那个之前在ADS上面搞了N++次了,对整个初始化代码的行为还是心中有数的。那么为了加快开发,只关心从main函数开始的功能实现代码就OK了,而且这个时候已经有了调试环境,可以设置断点和单步追踪问题。
9,接着下来的工作是继续熟悉eclipse,从 UltraEdit上面转型过来,毕竟 eclipse是开源软件。还有就是将之前调通的UART函数,还有printf函数等移植过来。对ld的几个参数还得研究一下,关键问题是main之前的c running 函数的初始化问题,还是很模糊,得继续弄清楚。
工作还是在计划当中。11月的任务是调通 LCD,能下载和显示图像,基本原理已经OK了,就是建立好环境再实践一下而已。10月的任务当中,NAND还没有搞定,因为这个需要好点的调试环境,刚好这段时间在搞J-link 还有OPEN JTAG,NAND的调试就搁浅了,不过这个是必须搞清楚的,毕竟这个涉及flash操作,无论是bootloader还是MTD系统当中都是重点。这个月的任务就是 nand ,lcd 还有触摸屏。搞定之后就正式开始搞bootloader了,主要是 uboot,放弃 vivi。
最近得先应付了公司的项目。休息了这么久了,得开开工 :)
先扯到这里。
阅读(1013) | 评论(0) | 转发(0) |