此帖出自ARM技术论坛
最新回复
本帖最后由 le062 于 2018-6-12 17:02 编辑
以cortex-m系列单片机为例:
先进行代码复制,假定sram中代码的向量表位置为pkt->store_addr,用以下代码进行跳转
// jump to FIRMWARE_AREA_CODE_ADDR
uint32_t (*app_main)(void)=
(uint32_t(*)(void))(*(uint32_t *)(pkt->store_addr + 4));
uint32_t *sp = (uint32_t *)(pkt->store_addr);
__set_MSP(*sp);
app_main();复制代码
注意:代码本身就应以sram中的放置地址作为代码地址进行编译。如果放置地址与代码编译时指定的地址不同,一些指令会出错,如长跳转
详情
回复
发表于 2018-6-12 16:58
| ||
|
||
此帖出自ARM技术论坛
| ||
个人签名
要666 |
||
此帖出自ARM技术论坛
| ||
|
||
EEWorld Datasheet 技术支持