打印
[其他ST产品]

关于ClassB的移植后的RAM自检导致控制流计数器损坏问题。

[复制链接]
645|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2023-9-25 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32F411芯片,移植官方例程en.x-cube_classb/STM324xG_EVAL,使用IAR。
CtrlFlowCntInv是控制流所用变量,使用一切正常。
CtrlFlowCntInv是定义在RAM中0x20000058-0x2000007B地址的no_init型,与它一起定义的还有其他几个变量。
但是在执行了RAMMarch自检之后,控制流所用到的CtrlFlowCntInv变量被清除了,只要使用就会导致堆栈溢出卡死。
注:只有CtrlFlowCntInv在使用时会导致卡死,其它同样被存储在@ "CLASS_B_RAM_REV"空间的变量不会导致卡死。
在官方例程中有注释:
只有CtrlFlowCntInv需要使用到RAM_TEST_CALLEE(0xFFFFFFFF),因为在RAM检测中控制流计数器被破坏。
我想问一下这里为什么只有CtrlFlowCntInv被清除了,而在"CLASS_B_RAM_REV"空间的其他变量不会报错?
而例程中说明的RAM_TEST_CALLEE又该怎么使用呢?重新划出一片空间给CtrlFlowCntInv吗?

使用特权

评论回复
沙发
未说出口的像你| | 2023-10-18 22:23 | 只看该作者
是不是存储的位置不对啊?

使用特权

评论回复
板凳
我吃小朋友| | 2023-10-18 22:24 | 只看该作者
没遇到过这个问题,现象还有点像存在的位置有问题的意思

使用特权

评论回复
地板
失物招領| | 2023-10-19 01:00 | 只看该作者
你换个地址试试呢?换个地址存储看看

使用特权

评论回复
5
将爱藏于深海| | 2023-10-19 03:00 | 只看该作者
这是你移植的啊?官方没有OK的demo么?

使用特权

评论回复
6
白马过平川| | 2023-10-19 07:00 | 只看该作者
我觉得可能是因为程序的存储空间的不一致,导致的

使用特权

评论回复
7
风凉| | 2023-10-19 09:30 | 只看该作者
应该不会损坏吧,ST的芯片质量还是OK的

使用特权

评论回复
8
故意相遇| | 2023-10-19 13:00 | 只看该作者
可以看看存储地址还有就是是不是哪里逻辑不对啊

使用特权

评论回复
9
西洲| | 2023-10-19 18:00 | 只看该作者
自检之后,变量被清除?那你弄个修饰词上去?

使用特权

评论回复
10
捧一束彼岸花| | 2023-10-19 21:00 | 只看该作者
一般就是变量被改变了啊,至于怎么改变的,得看看你写的地址了

使用特权

评论回复
11
春日负喧| | 2023-10-19 23:30 | 只看该作者
你把CtrlFlowCntInv换个地址试试吧,我觉得就可以了

使用特权

评论回复
12
BullTalented| | 2023-10-23 12:16 | 只看该作者
可能是存储的位置不对

使用特权

评论回复
13
万图| | 2024-1-9 08:28 | 只看该作者

可对电路进行一个防护效果

使用特权

评论回复
14
周半梅| | 2024-1-9 14:26 | 只看该作者

但是,由于变压器存在漏感,

使用特权

评论回复
15
Clyde011| | 2024-1-9 19:31 | 只看该作者

通过将各类分立元器件进行整合和封装,模块电源能够实现以最小的体积来实现功率密度更高的效果。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1522

主题

4615

帖子

6

粉丝