nandflash烧写器的主要思路是由PC端VC++制作一个程序和jlink进行通信,这个PC端的程序可以通过jlink访问sep4020所有寄存器和内存,并且具有设置断点、控制程序执行等功能。
基于以上功能,由于pc总和jlink通信会很慢,会浪费很多时间和jlink通信上,所以经过史师兄的指导下用ESRAM就可以解决了,思路是在sep4020开发板的ESRAM中放置一段程序负责nandflash烧写,这个程序先在ADS下编译生成可执行文件,然后用jlink负责把这个文件读出来,接着把它烧写到ESRAM的空闲区域,这样只要我们用这个程序负责烧写就行了,大大减小了和jlink通信的时间。
中间遇到的问题有:
1、 用jlink烧写nandflash很慢,因为需要和jlink通信的时间
2、 当我们想在一个程序执行最后加个断点的时候,不是用pc+文件大小,因为如果程序中有ldr指令的时候,而且ldr后面接的数据不符合立即数格式的时候,程序最后就会有数据区域。
3、ADS在调试烧写nandflash的时候,当我们设置断点之后,程序执行到这个地方的时候也停止了,但我们当把ADS关掉的时候,pc又继续接着刚刚的断点处继续执行了,所以在关掉AXD之前要把pc改掉
经过差不多一个星期的调试,终于现在nandflash的第一页,第二页,u-boot,kernel,fs都可以烧写进去了,总算努力没有白费
下面是设计的界面:
下面是加入跳过坏块功能显示的启动信息:
文章评论(0条评论)
登录后参与讨论