MCU 异于 资源丰富的linux 平台。 MCU Code 通常运行在内嵌Flash 中。 在某些特定应用场合,怎么将部分函数运行于RAM 中。
修改ME的下载地址可以让代码在RAM区进行“测试运行”,掉电不保存
如果要在平时这样做,只能把代码从FLASH刷进RAM里进行
3. 通过fromelf -c 将生成 *.axf 反汇编,找到对应program_word2addr 实现部分,
并将routine 对应的binary code Copy 到所要应用的 Code 中,以只读数组的形式出现:
run_prgcode_onram 便可以将program_word2addr 运行于RAM中。
callFlashPrg2Address = (void (*)(uint32_t addr uint32_t data))((uin32_t)g_code + 1); +1 的目的,时由于运行平台为 Cortex V6M 采用的thumb指令集,根据ARM Spec 要 求完成。