之前有和@asbsp23 讨论过这个问题,但是他没有遇到过,现在新发一贴来问问大家,希望高手能不吝赐教啊。
用的是TQ2416开发板,在线调试时候,开发板的拨码开关放在SD启动端的,在网上找了2416的裸奔启动代码,试着用MDK+JLINK进行在线调试,自己写了一个LED流水灯的程序,编译都通过了,但是debugg的时候程序都跑飞,显示如下图1所示,感觉是程序并没有进入汇编的RESET段,而是直接跳转到了0xB0去执行其他命令了,而RESET段的源码中并没有让其跳转。如果用软仿真相同的工程现象就是如图2所示,程序能一步步往下走,但是出现*Error 65: access violation at 0x00400000 : no 'write' permission的错误。。。
图1:
图2:
看了2416的ds,写的是在boot过程中,ARM内置的IROM程序将NANDFLASH前8KB的启动代码拷入IRAM中运行,那么有三个问题想问问各位:
1.在线调试的话启动代码应该是先写入IRAM(地址是0x40000000)吗?
2.ini文件初始化程序的入口地址应该在什么地方呢?ini还需要对ARM再初始化一次?
问题挺多的,请高手不吝赐教啊。
|