如何将变量定义到外部RAM

2019-07-21 00:32发布

本帖最后由 chuangong 于 2015-12-26 10:33 编辑

如何将变量定义到外部RAM
正点原子探索者的STM32F407开发板,配置有1M的外部SRAM
本想基于例程的ucos+LWIP实验“网络实验8 NETCONN_TCP 客户端.rar”,加上老项目任务就OK,但多次编译编译失败;
查找问题:居然是ucos+LWIP例程中用来外部RAM和内存管理,使原本很充裕的192k的ram(老项目用一半不到),一下所

剩无几,稍加变量就编译出错。
做了个实验,定义一个全局变量test[6000]就能编译OK,test[7000]就出错.
由于旧工程都是采用这种定义方式,而且很多不同类型的变量,
该怎么实现将这些变量定义到外部ram里面,简化移植难度呢?谢谢各位!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
ricefat
1楼-- · 2019-07-21 03:57
 精彩回答 2  元偷偷看……
xuande
2楼-- · 2019-07-21 07:08
本帖最后由 xuande 于 2015-12-26 10:41 编辑

这似乎和开发平台有关。我只知道IAR平台的方法。
下面一串X表示地址,指向外部区域;a表示把该数组定位到X表示的地址。#pragma和location是关键字。

#pragma        location = 0xXXXXXXXX
u32                a[ 1000 ];

这些在平台的帮助手册可以查到。





chuangong
3楼-- · 2019-07-21 07:15

你的意思:是手动分配地址,而不是编译器自动完成吗?
xuande
4楼-- · 2019-07-21 07:54
chuangong 发表于 2015-12-26 11:07
你的意思:是手动分配地址,而不是编译器自动完成吗?


当然要手动,
你不是试过自动了吗?!


chuangong
5楼-- · 2019-07-21 10:05
如果要手动指定,那么像这们多的变量我该怎么定义?
正点原子
6楼-- · 2019-07-21 12:18
 精彩回答 2  元偷偷看……

一周热门 更多>