代码SRAM运行系统复位后无法运行

2019-07-14 15:40发布

MCU BOOT管脚配置为SRAM启动,中断向量表已映射到SRAM中,程序完全放进SRAM中运行。

描述:初次下载进去,运行没问题。系统复位后,程序不能执行。调用ST-LINK UtiLITY 查看芯片SRAM区域,发现相关区域地址的数据基本正常无误(数据太多,抽样对比了几处,发现没变),按理说,如果数据无误,复位后,从0x20000000执行,应该能跑?

问题:
       1.所有程序载入SRAM运行,复位后,究竟能不能再次运行?
       2.复位后,相关SRAM区域数据并未丢失,为何不能再次执行?(能不能详细讲讲执行过程以及程序出问题出在哪儿?)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
易元空灭
1楼-- · 2019-07-15 00:55
给你个参考:NUCLEO-F412ZG测评:RAM和FLASH速率
http://www.stmcu.org/module/foru ... amp;fromuid=3168748
(出处: 意法半导体STM32/STM8技术社区)
uwyywefwd
2楼-- · 2019-07-15 04:09
易元空灭 发表于 2018-11-28 11:31
不知道你为何要让代码在RAM中运行?不过一般的做法应该是,通过写分散加载文件,把要在RAM中运行的代码编译到RAM的地址中,从flash或rom启动,再把中断向量表复制到RAM,然后程序在RAM中运行。但是,程序的存储还是在FLASH或ROM中。你从RAM启动,可以进入在线调试debug模式,但是脱机重启后是跑不起来的。 ...

我用的IAR,编辑的ICF文件,以及为程序分好RAM区了,程序完全存储在RAM区。可以查看到相关RAM区域内数据情况。我的问题主要集中在,系统复位后,相关RAM区域的数据并未丢失,为何复位不能执行程序?
uwyywefwd
3楼-- · 2019-07-15 08:04
易元空灭 发表于 2018-11-28 11:40
给你个参考:NUCLEO-F412ZG测评:RAM和FLASH速率
http://www.stmcu.org/module/foru ... amp;fromuid=3168748
(出处: 意法半导体STM32/STM8技术社区)

你这个好像并没有提到相关的东西。
huazhe
4楼-- · 2019-07-15 09:07
 精彩回答 2  元偷偷看……
易元空灭
5楼-- · 2019-07-15 10:54
uwyywefwd 发表于 2018-11-28 11:55
你这个好像并没有提到相关的东西。

看不懂就算
易元空灭
6楼-- · 2019-07-15 13:52
uwyywefwd 发表于 2018-11-28 11:48
我用的IAR,编辑的ICF文件,以及为程序分好RAM区了,程序完全存储在RAM区。可以查看到相关RAM区域内数据情况。我的问题主要集中在,系统复位后,相关RAM区域的数据并未丢失,为何复位不能执行程序?

什么编译环境都差不多

一周热门 更多>