硬汉嵌入式论坛

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

[SRAM] sct分散加载 和 ITCM运行关键代码

[复制链接]

57

主题

88

回帖

259

积分

高级会员

积分
259
发表于 2021-9-6 11:28:02 | 显示全部楼层 |阅读模式
硬汉,请教:
参考《V7-007_时间关键代码在 ITCM 执行的超简单方法》完美实现代码的高速运行,但是程序中定义了一些数据缓冲区,用于UART数据收发缓冲(通过DMA),这些数据缓冲区必须定义在SRAM1/2/3/4中,参考stm32-v7.sct能完美实现,但是这2种方式只能二选一,有没有方法既可以实现ITCM内运行关键代码,又能定义上面提到的DMA数据缓冲区?

谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106828
QQ
发表于 2021-9-6 11:56:46 | 显示全部楼层
串口这种低速设备就用普通RAM,用了高速RAM就有点浪费,高速留给高速应用。
回复

使用道具 举报

57

主题

88

回帖

259

积分

高级会员

积分
259
 楼主| 发表于 2021-9-6 13:53:20 | 显示全部楼层
eric2013 发表于 2021-9-6 11:56
串口这种低速设备就用普通RAM,用了高速RAM就有点浪费,高速留给高速应用。

硬汉,
1、如果要对关键代码使用ITCM,就不能用分散加载方式吧(只能Use memory layout from target dialog)?
2、如何在(Use memory layout from target dialog)模式下,将变量分配到指定RAM区呢?

谢谢!
回复

使用道具 举报

57

主题

88

回帖

259

积分

高级会员

积分
259
 楼主| 发表于 2021-9-6 15:20:54 | 显示全部楼层
变量后面跟__attribute__((at(0X24000000)))就可以了,比如:
int myBuff[100] __attribute__((at(0X24000000)));
就可以将myBuff 分配到0X24000000

谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 10:13 , Processed in 0.162120 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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