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

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

[复制链接]
低调的张扬 提问时间:2023-9-13 11:04 / 已解决

使用STM32F411芯片,移植官方例程en.x-cube_classb/STM324xG_EVAL,使用IAR。

CtrlFlowCntInv是控制流所用变量,使用一切正常。

CtrlFlowCntInv是定义在RAM中0x20000058-0x2000007B地址的no_init型,与它一起定义的还有其他几个变量。

image.png

image.png

image.png

但是在执行了RAMMarch自检之后,控制流所用到的CtrlFlowCntInv变量被清除了,只要使用就会导致堆栈溢出卡死。

image.png

注:只有CtrlFlowCntInv在使用时会导致卡死,其它同样被存储在@ "CLASS_B_RAM_REV"空间的变量不会导致卡死。

在官方例程中有注释:

image.png

只有CtrlFlowCntInv需要使用到RAM_TEST_CALLEE(0xFFFFFFFF),因为在RAM检测中控制流计数器被破坏。

我想问一下这里为什么只有CtrlFlowCntInv被清除了,而在"CLASS_B_RAM_REV"空间的其他变量不会报错?

而例程中说明的RAM_TEST_CALLEE又该怎么使用呢?重新划出一片空间给CtrlFlowCntInv吗?

image.png
image.png
image.png
image.png
image.png
收藏 评论4 发布时间:2023-9-13 11:04

举报

4个回答
低调的张扬 最优答案 回答时间:2023-10-23 17:28:58

2023年10月23日 查看ST官方提供的文档《AN4435 Application note》后,找到了解决方法。 RAM自检的范围是我们定义的RAM起始地址到结束地址,需要单独留下16位空间用以保存寄存器状态。

首先更改.icf链接文件,改变RAM结束地址。image.png

image.png

image.png

在RAM中留出16位空间,定义 ICFEDIT_region_RAM_Backup_start 指向地址。

image.png

程序中添加RAM_BCKUP变量。

更改启动时RAM自检函数。 之前:SRAMErrorStatus STL_FullRamMarchC(uint32_t beg, uint32_t end, uint32_t pat); 改变后:SRAMErrorStatus STL_FullRamMarchC(uint32_t beg, uint32_t end, uint32_t pat, uint32_t *bckup); 增加一个参量用于保存寄存器状态。

现在程序中RAM自检函数:

image.png

根据手册,将STL_FullRamMarchC汇编函数中所有R3都改为R7。

image.png

之后在函数起始和结束位置分别添加:

image.png

程序即可正常运行。

butterflyspring 回答时间:2023-9-15 10:25:05
一个有经验的小伙伴建议第二项改成 0x20000057, 可以试试看
低调的张扬 回答时间:2023-9-19 08:47:52

butterflyspring 发表于 2023-9-15 10:25
一个有经验的小伙伴建议第二项改成 0x20000057, 可以试试看

试过更改为0x20000057,问题还是存在。

请问能解释的详细一点吗?

butterflyspring 回答时间:2023-9-19 11:29:09
更改为 0x20000057 是之前小伙伴编译时遇到的一个问题。
刚刚有和小伙伴讨论了一下这个官方的例程,所谓的RAM 测试,是对它的区域(RAM_START  to RAM_END)进行0xFF 和 0x00写测试。从例程注释上也可以看出来,是破坏性的。所以这区间的内容一定被改掉。
例程中有恢复初始化的函数。 你对照看看,是这样的化就需要修改一下。


ClassB controlflow.png




所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版