关键问题就出现在LINKER下的CODE ENTRY POINT 这个选项上,他设置了一个启动地址,并且这个启动地址不是_c_int00,其实默认不添就是从这个地方启动的,这段是TI帮助里的:The memory address at which a program begins executing is called the entry point. When a loader loads a program into target memory, the program counter (PC) must be initialized to the entry point; the PC then points to the beginning of the program.
The linker can assign one of four values to the entry point. These values are listed below in the order in which the linker tries to use them. If you use one of the first three values, it must be an external symbol in the symbol table.
?The value specified by the -e option. The syntax is:
-e global_symbol
where global_symbol defines the entry point and must appear as an external symbol in one of the input files.
?The value of symbol _c_int00 (if present). The _c_int00 symbol must be the entry point if you are linking code produced by the C compiler.
?The value of symbol _main (if present)
?0 (default value)
This example links file1.obj and file2.obj. The symbol begin is the entry point; begin must be defined as external in file1 or file2.
cl2000 -v28 -z -e begin file1.obj file2.obj
其实这个地址如果用debug里的restart 或 reset cpu就可以看出来了,restart后就会将PC设置到这个地址,但是DSP里的寄存器不会变化,但是RESET CPU则DSP完全重新启动了。