打印
[STM32F1]

STM32F103 数组引起RAM读写错的死机,请版主/前辈帮忙!

[复制链接]
2179|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HelpMe|  楼主 | 2014-5-29 20:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在调试程序的时候碰到几个死机问题:(编译环境是uVision V4.21.0.0)
1、一个PROJECT,建了个二维数组,5X512,掉电再上电,程序死机,但是RESET MCU,又可以正常运行,后来找到是读写数组出错。这是什么问题引起的?求解!
2、另外一个PROJECT,建了几个一维大数组,一写数组就死机,有的PROJECT里又不会死机,这又是什么问题?
沙发
mmuuss586| | 2014-5-29 21:11 | 只看该作者
你程序哪里问题吧,死机后程序挺在哪里啊?可能哪个变量超出范围了

使用特权

评论回复
板凳
airwill| | 2014-5-29 22:23 | 只看该作者
什么类型的数组, 用的芯片型号是什么?
数组需要的内存容量超过了 SRAM 的空间大小?
提问, 最好把情况说清楚些

使用特权

评论回复
地板
HelpMe|  楼主 | 2014-5-30 08:57 | 只看该作者
用的103VC,定义BYTE型的[5][512]数组,程序就死机了,相同的程序,改成5个一维的数组,或者直接把数组去掉了,程序运行是正常的。SRAM肯定够用的,我现在程序编译完:Program Size: Code=32260 RO-data=524 RW-data=580 ZI-data=12860 。

使用特权

评论回复
5
mmuuss586| | 2014-5-30 09:08 | 只看该作者
那就好好查下程序,可能哪里越界了

使用特权

评论回复
6
香水城| | 2014-5-30 14:18 | 只看该作者
什么叫做死机。

调试一下,在Hard Fault那里打个断点,看是不是数组越界或其他原因使得触发内核的Hard Fault异常。

如果是的话,你搜搜坛子里,有个将如何追踪定位造成Hard fault的原因的文档

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝