硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4980|回复: 12
收起左侧

[FreeRTOS] 外扩PSRAM做HEAP硬件错误

[复制链接]

5

主题

8

回帖

23

积分

新手上路

积分
23
发表于 2019-8-12 21:18:44 | 显示全部楼层 |阅读模式
我用STM32L4R9外扩了PSRAM,对psram的读写是OK的。然后我在PSRAM定义了一个section,把heap_4的堆数组定位到这个section,运行就hardfault了。

1565615788(1).jpg
我网上查了一下,不少人遇到这个问题,这是什么原因呢。
回复

使用道具 举报

2

主题

569

回帖

575

积分

金牌会员

积分
575
发表于 2019-8-13 12:00:51 | 显示全部楼层
ST32单片机外扩PSRAM是不支持存储器映射的吧....
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2019-8-13 15:11:39 | 显示全部楼层
leiyitan 发表于 2019-8-13 12:00
ST32单片机外扩PSRAM是不支持存储器映射的吧....

可以总线方式访问就行。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2019-8-13 15:11:53 | 显示全部楼层
我用外部SRAM和SDRM测试正常。
而PSRAM就是速速慢点,按说也是没问题的,多试试吧
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2019-8-13 17:43:18 | 显示全部楼层
可能跟FSMC 和 OS 初始化的顺序有关吧,堆栈访问之前一定要把 FSMC 初始化好,不然就出错了。
回复

使用道具 举报

5

主题

8

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2019-8-14 15:12:57 | 显示全部楼层
eric2013 发表于 2019-8-13 15:11
我用外部SRAM和SDRM测试正常。
而PSRAM就是速速慢点,按说也是没问题的,多试试吧

硬汉,有例程吗
回复

使用道具 举报

5

主题

8

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2019-8-14 15:17:10 | 显示全部楼层
ihavedone 发表于 2019-8-13 17:43
可能跟FSMC 和 OS 初始化的顺序有关吧,堆栈访问之前一定要把 FSMC 初始化好,不然就出错了。

初始化成功了的,能直接对psram的地址读写
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2019-8-15 01:13:28 | 显示全部楼层
mmyer 发表于 2019-8-14 15:17
初始化成功了的,能直接对psram的地址读写

从我们V5或者V6网盘的FreeRTOS文件夹下载一个定义heap空间到CCM的例子,仅需将其修改为外部SRAM即可,实测可用
回复

使用道具 举报

5

主题

85

回帖

100

积分

初级会员

积分
100
发表于 2019-8-15 15:29:02 | 显示全部楼层
eric2013 发表于 2019-8-15 01:13
从我们V5或者V6网盘的FreeRTOS文件夹下载一个定义heap空间到CCM的例子,仅需将其修改为外部SRAM即可,实 ...

硬汉老师,在项目中不使用自带的堆管理,使用FreeRtos的heap_4的堆管理可以吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106709
QQ
发表于 2019-8-15 15:52:01 | 显示全部楼层
lidp000 发表于 2019-8-15 15:29
硬汉老师,在项目中不使用自带的堆管理,使用FreeRtos的heap_4的堆管理可以吗

管理的对象有所不同,启动.S文件里面那个是C库用的,malloc之类的API使用。
用heap_4的malloc类函数也是可以的,可行。


回复

使用道具 举报

5

主题

85

回帖

100

积分

初级会员

积分
100
发表于 2019-8-16 09:17:59 | 显示全部楼层
eric2013 发表于 2019-8-15 15:52
管理的对象有所不同,启动.S文件里面那个是C库用的,malloc之类的API使用。
用heap_4的malloc类函数也是 ...

                 
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-6-14 20:59:42 | 显示全部楼层
你好是否可以分享下初始化部分
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 12:03 , Processed in 0.195493 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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