毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

keil MDK5.0 SDRAM如何设置

更新时间:2014-5-11:  来源:毕业论文

硬件平台:STM32F429I-DISCORVERY
软件平台:KEIL MDK5.0
要使用STM32F429I-DISCORVERY中的SDRAM作为内存使用(主要是让其作为堆内存使用)
看过STM32F429I-DISCORVERY套件中配置SDRAM的例子,而且有stm32f429i_discovery_sdram.c文件,但是不知道如何设置MDK。

 int i,j;   class Test { public:     int X,Y;     Test(int x,int y)     {         X = x;         Y = y;     } };   int main(void) {     SDRAM_Init();           for(i = 0;i<100000;i++)     {         Test *ptest = new Test(1,1);//测试是否能在SDRAM中分配内存并且使用     }           while(1)     {       }


这个是MDK中的配置,请教如何进行设置?
起始MDK就我上面的图设置就可以了,还要分配一下堆内存(在.s文件下点击右边窗口的Configuration Wizard,设置一下HeapSize,只要0x100就可以了,不然进不了Main函数)。
测试程序如下:

46 #include "stm32f4xx_conf.h" #include "stm32f429i_discovery_sdram.h" #include <rt_heap.h>  //_init_alloc     #define IS42S16400J_SIZE             0x400000 #define HEAP_BASE  SDRAM_BANK_ADDR   #define HEAP_TOP   (SDRAM_BANK_ADDR+IS42S16400J_SIZE)    int i,j;   class Test { public:     int X,Y;     char cs[10000];     Test(int x,int y)     {         X = x;         Y = y;     } };   Test *ptest = 0;   int main(void) { //    RCC_ClocksTypeDef clock; //    RCC_GetClocksFreq(&clock);     SDRAM_Init();     _init_alloc(HEAP_BASE, HEAP_TOP);    // 设置堆空间       int *p = new int[16000];           for(i = 0;i<10000;i++)     {         ptest = new Test(1,1);//测试是否能在SDRAM中分配内存并且使用         j = ptest->Y;         //delete ptest;     }            while(1)     {         j++;     } } 


当然程序会飞掉,主要是看ptest 的地址有没有达到或接近0xD0400000,如果接近了那么SDRAM作为堆内存就实验成功!
给学习的同学一点参考。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。