硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3146|回复: 8
收起左侧

[技术讨论] STM32F103CB的SRAM启动运行的问题

[复制链接]

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
发表于 2019-6-6 10:02:29 | 显示全部楼层 |阅读模式
最近想研究下程序从SRAM启动的问题。
我是这样操作的:

1.在KEIL下,用ST-LINK将程序通过.ini文件加载到SRAM内仿真运行,程序可以运行,且正常。
2.断开ST-LINK,释放仿真后,此时程序仍是在SRAM内运行,一直用串口打印监测。
3.在不断电的情况下,将BOOT1=1,BOOT0=1后,手动复位RESET信号(对GND答非所问后,释放),监测中的打印没有输出了。
也不知道是产生了硬件故障还是程序出了什么错误了。
4.在BOOT1=1,BOOT0=1的启动设置时,通过KEIL下的仿真环境,使用KEIL里面的复位操作,程序进入NMI_Handler中断了

通过我上述的操作流程,能否让程序在SRAM内启动呢?


一直没太搞明白,程序从SRAM启动的应用环境是啥,什么情况下需要用到SRAM启动
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-6-6 10:08:23 | 显示全部楼层
没法在SRAM里面启动,因为掉电后SRAM的数据就丢失了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-6-6 10:09:15 | 显示全部楼层
适合用于类似这种方式

STM32F429的程序加载到SDRAM的运行方法
http://www.armbbs.cn/forum.php?m ... 9299&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2019-6-6 11:02:26 | 显示全部楼层
eric2013 发表于 2019-6-6 10:09
适合用于类似这种方式

STM32F429的程序加载到SDRAM的运行方法

这个429的是说将程序通过APP跳转的方式旋转在SDRAM中运行吧?
但我想要的是,程序直接从MCU内部的SRAM启动运行。
就是通过配置BOOT0:1的管脚模式下实现的
好像与这个例程不太一样
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2019-6-6 11:04:22 | 显示全部楼层
eric2013 发表于 2019-6-6 10:08
没法在SRAM里面启动,因为掉电后SRAM的数据就丢失了。

这个有考虑的。
每次用KEIL仿真可以在SRAM内运行。
但我想的是,我并不是断电让MCU进行复位,而是通过拉低MCU的RESET管脚来进行复位的。
SRAM的内容并不会丢失哦,还是仿真是用ST-LINK下载进行的程序
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-6-6 11:04:24 | 显示全部楼层
jplzl10000 发表于 2019-6-6 11:02
这个429的是说将程序通过APP跳转的方式旋转在SDRAM中运行吧?
但我想要的是,程序直接从MCU内部的SRAM启 ...

上电直接从SRAM启动做不到,因为SRAM掉电后数据就丢失了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-6-6 11:24:09 | 显示全部楼层
jplzl10000 发表于 2019-6-6 11:04
这个有考虑的。
每次用KEIL仿真可以在SRAM内运行。
但我想的是,我并不是断电让MCU进行复位,而是通过 ...

明白了额,这种的,你多试试,我之前测试没成功。
回复

使用道具 举报

262

主题

578

回帖

1364

积分

至尊会员

积分
1364
 楼主| 发表于 2019-6-6 12:05:41 | 显示全部楼层
eric2013 发表于 2019-6-6 11:24
明白了额,这种的,你多试试,我之前测试没成功。

不行哦,一复位就进入到NMI中断里面了
我用NVIC_SysReset() 也试过,也是进入到NMI
那这个SRAM启动就是用来仿真用的?都没有啥实际用处?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107077
QQ
发表于 2019-6-6 12:52:22 | 显示全部楼层
jplzl10000 发表于 2019-6-6 12:05
不行哦,一复位就进入到NMI中断里面了
我用NVIC_SysReset() 也试过,也是进入到NMI
那这个SRAM启动就是 ...

迄今没发现这种方式有啥用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-17 01:16 , Processed in 0.168931 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表