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.
专家好:
想请教下,DSP里的BEGIN地址是确定的吗?我看有的地方说是0x3F7FF6,有的地方说是0x08000,有点混乱了
我理解的dsp启动过程是,上电后,进入initboot根据gpio电平状态,选择是否从flash启动
如果是从flash启动的话,按照上面这个表格,那cpu应该会直接跳转到0x3F7FF6这个地址去执行
所以应该在0x3F7FF6这个地址对应的memory被叫做BEGIN
同时在BEGIN中存放着code_start函数,从而跳转到main函数
不知道这个理解对不对?
如果是这样的话,好像这里的地址都是固定的,也没有可以修改的地方了,也没看出哪里是跳转大0x08000这里
请专家指导
好的,感谢您的回复。
想顺便请教下,最近学习到有不少Boot在线升级的时候,是先调到升级程序的main里检查是否有升级,之后再跳回到应用程序的main里执行功能程序
对应到这里,那升级程序应该就是芯片默认的BEGIN地址吧,这个地址不能改变
那对应的应用程序main地址呢,如何能知道该函数地址呢?
没错,升级程序(boot)的code_start应位于芯片默认BEGIN位置,由boot程序跳转到App程序的入口地址执行app代码。
在app程序的cmd文件中指定app入口地址。例如:
下面芯片默认BEGIN位于0x088000:
BEGIN_BOOT : origin = 0x088000, length = 0x000008 //,fill = 0xFFFF/* codestart */ APP_BEGIN : origin = 0x08B000, length = 0x000008 ,fill = 0xFFFF/* codestart */ codestart : > APP_BEGIN, ALIGN(8)