stm32程序跑飞的原因_stm32移植ecos #15,SRAM的FSMC时序配置—解决程序时不时跑飞或死掉的问题...

本文介绍了在STM32开发中遇到的程序运行时跑飞或死机问题,通过排查确定是SRAM时序配置不正确导致。通过对开发板例程和ECOS配置的对比,发现BTR3寄存器的数据保持时间设置差异,并将ECOS配置调整为与开发板一致,从而解决了程序不稳定的问题。
摘要由CSDN通过智能技术生成



从开始移植ecos到stm32开发板以来,“程序运行过程中时不时跑飞或死掉,或者一加载就死掉”的问题一直令我头痛和百思不得其“姐”。如下图:程序一加载就死掉了。

程序运行过程中跑飞的现象类似,也是出现这种类似信息:$T050f:00800068;0d:e80f0d68;#98$T050f……

今天在编写按键程序时,频繁出现,是时把它解决了。功夫不负有心人,终于定位问题为外扩的SRAM时序不正确导致的,重新配置下SRAM的FSMC时序就解决了。

问题定位

首先,排除是否自己编写的程序有问题。经过反复试验,保证了自己编写的程序无问题,确定了不是自己编写的程序有问题。

在http://velep.com/archives/600.html一文中,曾经说到,直接下载bin格式程序到内存时,下载到内存中的数据居然有问题。redboot中使用xmodem协议的load命令应当是没有问题的,因为这是官方的代码,经过无数人的验证,如果有问题,早就暴露出来并修正了。所以,我开始怀疑是不是sram有问题了。

sram时序配置

既然怀疑SRAM有问题,所以找了个开发板光盘中有使用外扩SRAM的例程,把例程中SRAM的配置与ecos中SRAM配置进行了对比。先看下开发板例程中SRAM的配置代码(Ex021—I2S录音和回放例程(WM8978),bsp_sram.c文件):

void SRAM_Init(void)

{

FSMC_NORSRAMInitTypeDef FSMC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值