This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP28027 cmd对程序影响

CMD文件中BEGIN定义如下:

BEGIN       : origin = 0x3F3FFE, length = 0x000002;

默认的BEGIN为0x3f7ff6,但是使用上面的地址,程序还能正常运行,有点纳闷,应该找不到main入口地址,还请大神指点下

  • 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:
    这个能正常运行,那肯定是在仿真模式,你脱机跑一定跑不起来。
    仿真运行的时候, CCS restart mcu的时候会自动跳转到main, 屏蔽bootloader的过程,所以可以跑。
  • “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.
  • 没有,都是在仿真器上进行的,谢谢
  • 你reset CPU, 不restart CPU试试是什么样子,一定是截然不同。
  • 好的,谢谢