OpenEdv-开源电子网

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

请教sram测试死机的问题

[复制链接]

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-5
在线时间
0 小时
发表于 2014-8-29 14:06:33 | 显示全部楼层 |阅读模式
5金钱
我有一块STM32F207的开发板,运行开发板配套的外部SRAM测试程序是没问题的。但我把代码移植到自己的代码中就很不稳定。有的时候编译下载运行一切正常;有的时候改动测试程序的printf多打印几个字符,再编译运行测试就会死机。
我仿照原子哥的SRAM测试代码又重新写了测试程序,运行在战舰板上一切正常。可是移到我这块STM32F207的开发板有时编译运行会死机,有时编译运行又全部错误。
在什么情况下会死机呢?即便SRAM访问错误也不会死机吧?
下面是我的测试代码参考:
u32 testsram[SRAM_CAP] __attribute__((at(0X68000000)));
void SRAM_Test(void)
{
    u32 ts,err;
    for(ts=0; ts<SRAM_CAP; ts++)
        testsram[ts]=ts;
    for(ts=0; ts<SRAM_CAP; ts++)
    {
        if(testsram[ts] != ts)
        {
             printf("\r\n testsram[%d] wrong: %d\r\n", ts, testsram[ts]);
             err++;
        }
    }
    if(err==0)
         printf("\r\nSRAM Test Pass!!!\r\n");
    else
         printf("\r\nSRAM Test Failed. times: %d\r\n", err);
}

最佳答案

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

回复【5楼】digiwolf: --------------------------------- 问题应该解决了!!! 把Options->Target下的Use MicroLib勾上就好了。也不知道为啥。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-5
在线时间
0 小时
 楼主| 发表于 2014-8-29 14:06:34 | 显示全部楼层
回复【5楼】digiwolf:
---------------------------------
问题应该解决了!!!
把Options->Target下的Use MicroLib勾上就好了。也不知道为啥。
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-5
在线时间
0 小时
 楼主| 发表于 2014-8-29 14:08:22 | 显示全部楼层
补充:
SRAM_CAP是定义的内存容量的宏。1M内存是262143,但我换成几百也测试不了,一般是访问第一个地址就死机。
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-5
在线时间
0 小时
 楼主| 发表于 2014-8-29 20:18:40 | 显示全部楼层
例如现在单独运行一小块内存测试程序没问题,但是把这段程序放倒循环里循环一次for(i=0; i<1; i++),编译运行马上出问题。
单独运行没问题,说明FSMC_SRAM的配置参数没问题吧。
编译运行不成功时,我用jtag单步调试程序,发现看外部内存0x68000000里全部是乱的,一访问这里立刻就出问题,示波器也没发出相应片选。
编译运行正常时,看一切都正常。
是不是编译器的原因呀?接外扩SRAM(1MB)要不要在编译器里特别设置呀?Options -> Target中要不要对RAM空间进行特别设置呢?
焦头烂额了,希望大家能帮助,多谢!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-29 23:13:40 | 显示全部楼层
自己做的板子?
检查硬件是否连接正确吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-5
在线时间
0 小时
 楼主| 发表于 2014-8-30 08:44:30 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我是买来的开发板。而且有时候是能正常运行测试程序的,只是改写无关部分的代码再重新编译一次可能就运行不正常了。
用单步调试发现0x68000000外部sram中的内容完全是乱的,所以一旦访问就经常进入hardfault异常里。
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2018-7-14
在线时间
2 小时
发表于 2018-7-15 07:35:36 | 显示全部楼层
本帖最后由 大雁JeffreyYan 于 2018-7-15 07:38 编辑

个人觉得是sram的fsmc的布线不规范,需要改下时序,数据保持时间改大一点,例如(我的F407由9改为十进制16)才不死机了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 06:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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