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.

c2000 linker -e选项指定程序入口点的问题

默认情况下,没有-e选项时,查看map文件可以发现程序入口点为_c_int00,如果用-e选项指定到code_start,编译以后生成的map文件中程序入口点为code_start,不过我用hex2000转化coff文件到intelhex文件以后对比发现,无论是否修改程序入口点,输出的hex文件是一样的,也就是说烧写DSP以后,FLASH中的内容都是一样的。那-e选项的意义在哪里呢?

  • 楼主你好!

    看看下面这个解释,code_start默认就是_c_int00,所以hex是一样的。

    http://www.cnblogs.com/oneseven/archive/2010/02/28/lwpo2008.html

  • XiaoDong,

    首先,您可以查看一下code_start入口的程序,如下:如果你选择WD_DISABLE = 0,即不关断看门狗,那么code_start即为LB _c_int00,否则LB wd_disable

    C2000的flash运行的入口地址是0x3F7FF6,在这里会放这个code_start的这个跳转指令。

    我认为你修改的ENTRY POINT SYMBOL 并不会改变程序从code_start开始执行,你可以直接复位芯片,然后在scripts菜单选择boot to flash, 设置断点在code_start处,运行。

     

    WD_DISABLE .set 1  ;set to 1 to disable WD, else set to 0

        .ref _c_int00     .global code_start

      

x 出现错误。请重试或与管理员联系。