OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4685|回复: 6

STM32H743系列RAM自检问题

[复制链接]

0

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2022-5-5
在线时间
4 小时
发表于 2022-6-8 11:11:01 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 halmdrid 于 2022-6-8 11:12 编辑

在main函数一进来,就开始调用RAM的上电自检函数,自检的大概逻辑是先将除过堆栈外的RAM清空,然后写入1,再读取上来判断,正确的话再清零。
目前遇到的问题是:一上电后,0x24000000(RAM的起始地址,附件1)后面的bss或者data段会有些许的值,待到RAM自检函数执行完毕,后续的函数调用就会跑飞,单步调试后以后发现是某些值被清空,导致进入了死循环。这个怎么破啊
微信图片_20220608110808.png
微信图片_20220608111231.png

最佳答案

查看完整内容[请看2#楼]

可以将RAM分为2块来操作 1. 操作第一块时, 将所有用到的局部变量或全局变量, 保存在第二块里, 先检测完第一块的RAM 2. 检测完第一块时, 重复上述的操作, 只是将第二块的临时信息存在第一块里
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
885
金钱
885
注册时间
2016-6-15
在线时间
362 小时
发表于 2022-6-8 11:11:02 | 显示全部楼层
可以将RAM分为2块来操作
1. 操作第一块时, 将所有用到的局部变量或全局变量, 保存在第二块里, 先检测完第一块的RAM
2. 检测完第一块时, 重复上述的操作, 只是将第二块的临时信息存在第一块里

回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2022-6-8 14:49:33 | 显示全部楼层
帮顶  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2022-6-8 23:06:46 | 显示全部楼层
十有八九是清了不该清的数据
回复

使用道具 举报

6

主题

71

帖子

0

精华

高级会员

Rank: 4

积分
885
金钱
885
注册时间
2016-6-15
在线时间
362 小时
发表于 2022-6-9 08:41:47 | 显示全部楼层
EJBDXEX}Y)8QMV@6%B41XVI.png
如图

回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2022-5-5
在线时间
4 小时
 楼主| 发表于 2022-6-9 09:02:22 | 显示全部楼层
正点原子 发表于 2022-6-8 23:06
十有八九是清了不该清的数据

肯定是清了,但是这个要怎么避免呀,能不能设置把代码段这些固定到一个ram地址,我自检的时候就不检那一块就行
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2022-5-5
在线时间
4 小时
 楼主| 发表于 2022-6-9 17:40:13 | 显示全部楼层
172805695 发表于 2022-6-9 08:37
可以将RAM分为2块来操作
1. 操作第一块时, 将所有用到的局部变量或全局变量, 保存在第二块里, 先检测完第 ...

嗯嗯,多谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 23:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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