你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
酱哒哒 提问时间:2017-3-5 18:36 /
悬赏20ST金币未解决
MCU BOOT管脚配置为SRAM启动,中断向量表已映射到SRAM中,程序完全放进SRAM中运行。

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

问题:
       1.所有程序载入SRAM运行,复位后,究竟能不能再次运行?
       2.复位后,相关SRAM区域数据并未丢失,为何不能再次执行?(能不能详细讲讲执行过程以及程序出问题出在哪儿?)


收藏 1 评论11 发布时间:2017-3-5 18:36

举报

11个回答
衔胆栖冰 回答时间:2017-3-5 19:03:12
不知道你为何要让代码在RAM中运行?不过一般的做法应该是,通过写分散加载文件,把要在RAM中运行的代码编译到RAM的地址中,从flash或rom启动,再把中断向量表复制到RAM,然后程序在RAM中运行。但是,程序的存储还是在FLASH或ROM中。你从RAM启动,可以进入在线调试debug模式,但是脱机重启后是跑不起来的。
衔胆栖冰 回答时间:2017-3-5 19:09:50
给你个参考:NUCLEO-F412ZG测评:RAM和FLASH速率
https://www.stmcu.org.cn/module/ ... amp;fromuid=3168748
(出处: 意法半导体STM32/STM8技术社区)
酱哒哒 回答时间:2017-3-5 20:34:29
衔胆栖冰 发表于 2017-3-5 19:03
不知道你为何要让代码在RAM中运行?不过一般的做法应该是,通过写分散加载文件,把要在RAM中运行的代码编译 ...

我用的IAR,编辑的ICF文件,以及为程序分好RAM区了,程序完全存储在RAM区。可以查看到相关RAM区域内数据情况。我的问题主要集中在,系统复位后,相关RAM区域的数据并未丢失,为何复位不能执行程序?
酱哒哒 回答时间:2017-3-5 20:34:46
衔胆栖冰 发表于 2017-3-5 19:09
给你个参考:NUCLEO-F412ZG测评:RAM和FLASH速率
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewth ...

你这个好像并没有提到相关的东西。
xmshao 回答时间:2017-3-5 21:34:17
本帖最后由 xmshao 于 2017-3-5 22:05 编辑

在RAM里的调试可以参考下下面链接:
https://www.stmcu.org.cn/module/ ... &highlight=sram[/url]

你如果复位了,RAM里数据都不可靠了。

衔胆栖冰 回答时间:2017-3-5 22:53:28
酱哒哒 发表于 2017-3-5 20:34
你这个好像并没有提到相关的东西。

看不懂就算
衔胆栖冰 回答时间:2017-3-5 22:53:51
酱哒哒 发表于 2017-3-5 20:34
我用的IAR,编辑的ICF文件,以及为程序分好RAM区了,程序完全存储在RAM区。可以查看到相关RAM区域内数据 ...

什么编译环境都差不多
酱哒哒 回答时间:2017-3-5 23:42:41

不是看不懂,是你讲的很基础,并没有我问的问题的内容
酱哒哒 回答时间:2017-3-5 23:43:26
xmshao 发表于 2017-3-5 21:34
在RAM里的调试可以参考下下面链接:
在IAR中实现通过将程序在SRAM中调试的方法https://www.stmcu.org.cn/module ...

那为什么,我用工具查看的时候,数据并未改变?
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版