你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助MDK 如何定义变量到指定的区域IRAM1,

[复制链接]
小马过河008 提问时间:2017-3-22 13:20 /
STM32F407芯片有两片ram地址,现在发行程序写到一定大小,定义的部分变量会跑到IRAM2区域,也就是0x10000000开始的地方,DMA的一些访问只能在IRAM1区域的变量,否则出现串数错误,在调试UART1 DMA传输时候就发现了这个问题,后来发现接受缓冲区位于IRAM2的去,是查看总线部分,发现不能访问,求助如何强制定义接受缓冲区到IRAM1去呢,如果用at一个地址好像不好,因为可能会和别的变量冲突,以后改程序的时候可能就会出现冲突情况,
收藏 2 评论4 发布时间:2017-3-22 13:20

举报

4个回答
creep 回答时间:2017-3-22 13:44:47
修改Scatter分散加载文件应该可以,可以参考下面帖子里面的类似做法。

【STM32F303开发】+ 使用片内的CCMRAM缩短代码执行时间
https://www.stmcu.org.cn/module/ ... &fromuid=394920
(出处: 意法半导体STM32/STM8技术社区)
废鱼 回答时间:2017-3-22 13:56:54
从KEIL 的HELP中查到,用如下代码可以定义,但楼主还是要测试一下:
char ass[1000] __attribute__((at(0x10000000)));
小马过河008 回答时间:2017-3-22 14:42:20
版主你的是不是反了,而且用这种指定地址的定义方式,当变量定义越来越多的时候会冲突的
废鱼 回答时间:2017-3-22 15:49:49
RAM空间足够用,所以没遇到类似的问题,如果用这种方法就要注意使用。在map中会自动分配的。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版