完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
MCU BOOT管脚配置为SRAM启动,中断向量表已映射到SRAM中,程序完全放进SRAM中运行。
描述:初次下载进去,运行没问题。系统复位后,程序不能执行。调用ST-LINK UtiLITY 查看芯片SRAM区域,发现相关区域地址的数据基本正常无误(数据太多,抽样对比了几处,发现没变),按理说,如果数据无误,复位后,从0x20000000执行,应该能跑? 问题: 1.所有程序载入SRAM运行,复位后,究竟能不能再次运行? 2.复位后,相关SRAM区域数据并未丢失,为何不能再次执行?(能不能详细讲讲执行过程以及程序出问题出在哪儿?) |
|
相关推荐
12个回答
|
|
|
不知道你为何要让代码在RAM中运行?不过一般的做法应该是,通过写分散加载文件,把要在RAM中运行的代码编译到RAM的地址中,从flash或rom启动,再把中断向量表复制到RAM,然后程序在RAM中运行。但是,程序的存储还是在FLASH或ROM中。你从RAM启动,可以进入在线调试debug模式,但是脱机重启后是跑不起来的。
|
|
|
|
|
|
给你个参考:NUCLEO-F412ZG测评:RAM和FLASH速率
http://www.stmcu.org/module/foru ... amp;fromuid=3168748 (出处: 意法半导体STM32/STM8技术社区) |
|
|
|
|
易元空灭 发表于 2018-11-28 11:31 我用的IAR,编辑的ICF文件,以及为程序分好RAM区了,程序完全存储在RAM区。可以查看到相关RAM区域内数据情况。我的问题主要集中在,系统复位后,相关RAM区域的数据并未丢失,为何复位不能执行程序? |
|
|
|
|
易元空灭 发表于 2018-11-28 11:40 你这个好像并没有提到相关的东西。 |
|
|
|
|
|
本帖最后由 xmshao 于 2017-3-5 22:05 编辑
在RAM里的调试可以参考下下面链接: http://www.stmcu.org/module/foru ... &highlight=sram[/url] 你如果复位了,RAM里数据都不可靠了。 |
|
|
|
|
|
|
|
|
|
|
uwyywefwd 发表于 2018-11-28 11:48 什么编译环境都差不多 |
|
|
|
|
|
|
|
|
|
|
|
那为什么,我用工具查看的时候,数据并未改变? |
|
|
|
|
|
|
|
|
|
|
|
我现在也遇到相同的问题,回答你的基本上的SRAM Debug,没有涉及到核心的问题点,我还尝试了导出Bin文件,然后利用J-Flash烧录到Flash中,启动之后再从Flash复制到SRAM区域,还是无法正常启动,检查数据无误,把加载到SRAM上的二进制数据在烧到FLASH上是能够正常运行的,说明SRAM上的数据是没有问题的。我想知道这个问题你现在解决了吗?是不是STM32这一块就是一个Bug
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2797 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2403 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2276 浏览 0 评论
2388 浏览 1 评论
1637 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:46 , Processed in 1.144384 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
444