Other Parts Discussed in Thread: C2000WARE
Thread 中讨论的其他器件:C2000WARE
工具与软件:
您好!
我有一个与 codestart 段相关的问题。 具体而言、我将查看 C:\ti\c2000\C2000Ware_5_00_00_00\driverlib\f28004x\examples\flash 下的示例代码 flashapi_ex2_sci_kernel、但更一般而言、我想了解器件启动后和退出引导 ROM 后的代码执行流程。
文件"flashapi_ex2_codestartbranch.asm"中的注释表明、"code_start 是退出引导 ROM 代码后执行的第一个代码。"
但是、在检查链接器标志集(属性--> C2000链接器-->标志集摘要)时、我看到标志"--entry_point=_bankSelect"。
这与相一致
#pragma CODE_SECTION (bankSelect、"codestart");
文件 flashapi_ex2_ldfu.c 中的代码。
那么、如果 entry_point 不是 code_start、而是 bankSelect、那么何时调用 code_start、以及何时初始化 C 运行时环境(_c_int00)?
如果 codestart 段在多个位置定义(在 flashapi_ex2_ldfu.c 和 flashapi_ex2_codestartbranch.asm 中)、哪个将胜出? bankSelect 似乎胜出、因为这是入口点、但 bankSelect 是 C 代码、并且 C 运行时环境尚未初始化。
您能解释一下代码执行流程吗?
此致!
Laszlo