最近在使用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空间用到多少了
感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
en,这样啊,我来试试
但这样还是要自己一个个确定每个数组大小
请问需要怎么搞, 把大数组放在SDRAM中? 谢谢
一周热门 更多>