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空间用到多少了

感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。