OpenEdv-开源电子网

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

关于读取超界地址造成cannot access memory问题

[复制链接]

13

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2014-7-30
在线时间
32 小时
发表于 2020-6-22 18:08:26 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 sakaun 于 2020-6-22 18:10 编辑

本人最近在407探索者板上做了一个关于FREERTOS+LWIP的开发,本来一切都很正常,但是在加入外部SRAM后发生问题,锁定问题发现是因为我执行*pBuffer++=*(vu16*)(AD_SRAM_ADDR+ReadAddr);时,AD_SRAM_ADDR我定义在了0x6c000000,超出了外部sram的最大值,但是在没有初始化FSMC的情况下,及时读取了超出的地址,程序也会正常运行,而我在未使用FREERTOS的项目中,即使初始化了FSMC也同样不会被报错,看了下两个工程项目的差别,带FREERTOS的必须勾选c99 mode,而不带系统的则不需要,不指导差别是不是出在了这里,本人项目确实需要强行读这个地址,不清楚是FREERTOS的原因还是c99 mode的原因。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-6-23 01:44:33 | 显示全部楼层
正常都要先初始化SRAM,再访问。
回复

使用道具 举报

13

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2014-7-30
在线时间
32 小时
 楼主| 发表于 2020-6-23 09:36:56 | 显示全部楼层
正点原子 发表于 2020-6-23 01:44
正常都要先初始化SRAM,再访问。

是的,只是我借用SRAM的读取函数读取了一个超出外部SRAM的地址,实际并不是访问外部SRAM,是去读取其他信息,但是初始化了FSMC了会出发硬件错误,不初始化就没事,不知道为什么。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-1 07:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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