MDK如何直接链接数组在SDRAM空间(0xD0000000)

2019-07-20 06:12发布

最近在使用STM32F429IGT6芯片做项目,跑ucos操作系统,想把任务栈放在SDRAM空间,那我定义一个任务栈数组,怎么让编译器直接使用SDRAM空间呢?
#define SDRAM_BANK2_ADD (0xD0000000)

//任务堆栈
#if 1  // 用这个编译不行
static  OS_STK TaskStartStk[OS_MINI_STACK_SIZE];
static  OS_STK TaskLEDStk[OS_MINI_STACK_SIZE];
static  OS_STK TaskSdramTestStk[1024*1024];
#else
OS_STK *TaskStartStk = (OS_STK *)SDRAM_BANK2_ADD; // 要这样直接使用SDRAM的地址
OS_STK *TaskLEDStk = (OS_STK *)SDRAM_BANK2_ADD + OS_MINI_STACK_SIZE;
OS_STK *TaskSdramTestStk = (OS_STK *)SDRAM_BANK2_ADD + OS_MINI_STACK_SIZE + OS_MINI_STACK_SIZE;
#endif

如果我定义的数组能直接编译链接就在0xD0000000不就没那么麻烦要记住SDRAM空间用到多少了

感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 11:20
 精彩回答 2  元偷偷看……
z994051
2楼-- · 2019-07-20 16:00
回复【2楼】正点原子:
---------------------------------
en,这样啊,我来试试
但这样还是要自己一个个确定每个数组大小
styleno1
3楼-- · 2019-07-20 19:39
用分散加载表,只是通常使用自动配置。
MindedThings
4楼-- · 2019-07-20 19:56
 精彩回答 2  元偷偷看……
rockzhou
5楼-- · 2019-07-20 21:45
使用GNU/GCC , arm-none-eabi-gcc 不识别__attribute__((at(0X68000000)));       

请问需要怎么搞, 把大数组放在SDRAM中?  谢谢

一周热门 更多>