在线升级跳转疑问

kernel程序编写的时候,主函数main()的名字改成CKFAmain()。

由于该函数在RAM中运行,所以CMD中指定:

BEGINckfa        : origin = 0x008000, length = 0x000002

codestart        : >    BEGINckfa,     PAGE = 0

编译后报错:

undefined first referenced                                                                               
  symbol       in file                                                                                    
 --------- ----------------                                                                               
 _main     C:/ti/ccs1011/ccs/tools/compiler/ti-cgt-c2000_20.2.1.LTS/lib/rts2800_fpu32.lib<args_main.c.obj>

原因:

 *_c_int00函数在in RTS library中,这个库其实有汇编源文件boot28._asm,这个源文件就是 _c_int00所在的位置.
 *即使是在RAM中运行,JTAG为运行准备好了运行环境,CMD 的BEGIN 指定的code_start段运行CKFA_Start.asm中的code_start函数,这个函数调用_c_int00,跳转到main,
 *但是在库中,main无法修改,所以要找到库中的源文件,自己修改,也就是boot28._asm这个文件,把main修改成CKFAmain,然后在工程中加入boot28._asm,
 *于是工程就不再调用库中的那个boot28._asm了。这样就不会报错没有定义main了

猜你喜欢

转载自blog.csdn.net/blueoce/article/details/120569089