打印
[STM32F4]

STM32 如何将变量定义到外部RAM

[复制链接]
1856|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lizye|  楼主 | 2018-7-24 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 如何将变量定义到外部RAM
沙发
jiahy| | 2018-7-24 19:18 | 只看该作者

10多年,我一直搞这类项目,有开机应答,输入,码的发送,码的读取,等等,

使用特权

评论回复
板凳
lizye|  楼主 | 2018-7-24 19:19 | 只看该作者
正点原子探索者的STM32F407开发板,配置有1M的SRAM
本想基于例程的ucos+LWIP实验“网络实验8 NETCONN_TCP 客户端.rar”,加上老项目任务就OK,但多次编译编译失败;
查找问题:居然是ucos+LWIP例程中用到外部RAM和内存管理,使原本很充裕的192k的ram(老项目用一半不到),一下所
剩无几,稍加变量就编译出错。
做了个实验,定义一个全局变量test[6000]就能编译OK,test[7000]就出错.
由于旧工程都是采用这种定义方式,而且很多不同类型的变量,
该怎么实现将这些变量定义到外部ram里面,简化移植难度呢?

使用特权

评论回复
地板
zhaoxqi| | 2018-7-24 19:21 | 只看该作者

把 #program 语句加在程序中、变量定义之前的位置

使用特权

评论回复
5
shimx| | 2018-7-24 19:24 | 只看该作者
用强制指定地址, __at() 可以把变量放到外部 SRAM 中。

使用特权

评论回复
6
spark周| | 2018-7-24 19:25 | 只看该作者
你也可以修改编译器的配置,增加 SRAM 空间,在 MDK 的工程属性Target标签

使用特权

评论回复
7
huangchui| | 2018-7-24 19:26 | 只看该作者
试试把变量和堆栈分配到外部SRAM, 那就把 0X68000000  设置成 default

使用特权

评论回复
8
lizye|  楼主 | 2018-7-24 19:28 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

评论回复
9
renzheshengui| | 2018-7-25 08:30 | 只看该作者
我也不会 学习中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

粉丝