CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
user5074486:
cmd文件如下:
BEGIN : origin = 0x3F0000, length = 0x000002
28027入口地址为0x3f7ff6,仿真程序可以运行吗?测试好像可以的,有点纳闷
之后测试了在dsp28027 flash中烧入两个程序,一个在A区,一个在D区,A区程序的入口地址为0x3f7ff6,D区程序入口地址为0x3f0000,A程序中有跳转指令
asm(" LB 0x3F0000"),进行了如下的测试:
1、先烧入A区程序,只擦除A、B、C区,在烧入D区程序,只擦除D区,调试D区程序,发现A区程序没有运行;
2、先烧入D区程序,只擦除D区,在烧入A区程序,只擦除A、B、C区,调试A区程序,发现D区程序运行;
有哪位好心人能帮忙看看为什么吗
CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
Eric Ma:"CMD文件中BEGIN定义如下:
BEGIN: origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下"
ERic:
这个能正常运行,那肯定是在仿真模式,你脱机跑一定跑不起来。
仿真运行的时候, CCS restart mcu的时候会自动跳转到main, 屏蔽bootloader的过程,所以可以跑。
CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
Eric Ma:
回复 user5074486:
“1、先烧入A区程序,只擦除A、B、C区,在烧入D区程序,只擦除D区,调试D区程序,发现A区程序没有运行;
2、先烧入D区程序,只擦除D区,在烧入A区程序,只擦除A、B、C区,调试A区程序,发现D区程序运行;”
Eric:
你这些测试都是脱离仿真器运行的吗?
你调试D程序,如果是用仿真器CCS的话,自动跑到D区程序的main, A 程序是不会跑的,除非你设置reset 不要restart CPU, 且在script 菜单中设置boot模式为boot to flash.
CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
user5074486:
回复 Eric Ma:
没有,都是在仿真器上进行的,谢谢
CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
Eric Ma:
回复 user5074486:
你reset CPU, 不restart CPU试试是什么样子,一定是截然不同。
CMD文件中BEGIN定义如下:
BEGIN : origin = 0x3F3FFE, length = 0x000002;
默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下
user5074486:
回复 Eric Ma:
好的,谢谢