初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2015-9-22
- 在线时间
- 76 小时
|
100金钱
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "key.h"
- #include "sram.h"
- //ALIENTEK ì½Ë÷ÕßSTM32F407¿a·¢°å êμÑé36
- //ía2¿SRAM êμÑé
- //¼¼êõÖ§3Ö£owww.openedv.com
- //ìÔ±|μêÆì£ohttp://eboard.taobao.com
- //1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾
- //×÷ÕߣoÕyμãÔ-×ó @ALIENTEK
-
- u32 testsram[250000] __attribute__((at(0X68000000)));//2aêÔóÃêy×é
- //ía2¿Äú′æ2aêÔ(×î′óÖ§3Ö1M×Ö½úÄú′æ2aêÔ)
- void fsmc_sram_test(u16 x,u16 y)
- {
- u32 i=0;
- u8 temp=0;
- u8 sval=0; //ÔúμØÖ·0¶áμ½μÄêy¾Y
- LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test: 0KB");
- //ÿ¸ô4K×Ö½ú,D′èëò»¸öêy¾Y,×ü12D′èë256¸öêy¾Y,¸ÕoÃêÇ1M×Ö½ú
- for(i=0;i<1024*1024;i+=4096)
- {
- FSMC_SRAM_WriteBuffer(&temp,i,1);
- temp++;
- }
- //òà′ζá3ö֮ǰD′èëμÄêy¾Y,½øDDD£Ñé
- for(i=0;i<1024*1024;i+=4096)
- {
- FSMC_SRAM_ReadBuffer(&temp,i,1);
- if(i==0)sval=temp;
- else if(temp<=sval)break;//oóÃæ¶á3öμÄêy¾Yò»¶¨òa±èμúò»′ζáμ½μÄêy¾Y′ó.
- LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//ÏÔê¾Äú′æèYá¿
- }
- }
- int main(void)
- {
- u8 key;
- u8 i=0;
- u32 ts=0;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
- delay_init(168); //3õê¼»ˉÑóê±oˉêy
- uart_init(115200); //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
-
- LED_Init(); //3õê¼»ˉLED
- LCD_Init(); //LCD3õê¼»ˉ
- KEY_Init(); //°′¼ü3õê¼»ˉ
- FSMC_SRAM_Init(); //3õê¼»ˉía2¿SRAM
- POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
- LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
- LCD_ShowString(30,70,200,16,16,"SRAM TEST");
- LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(30,110,200,16,16,"2014/5/14");
- LCD_ShowString(30,130,200,16,16,"KEY0:Test Sram");
- LCD_ShowString(30,150,200,16,16,"KEY1:TEST Data");
- POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«
- for(ts=0;ts<250000;ts++)testsram[ts]=ts;//Ô¤′æ2aêÔêy¾Y
- while(1)
- {
- key=KEY_Scan(0);//2»Ö§3Öᬰ′
- if(key==KEY0_PRES)fsmc_sram_test(60,170);//2aêÔSRAMèYá¿
- else if(key==KEY1_PRES)//′òó¡Ô¤′æ2aêÔêy¾Y
- {
- for(ts=0;ts<250000;ts++)LCD_ShowxNum(60,190,testsram[ts],6,16,0);//ÏÔê¾2aêÔêy¾Y
- }else delay_ms(10);
- i++;
- if(i==20)//DS0éá˸.
- {
- i=0;
- LED0=!LED0;
- }
- }
- }
复制代码 程序申请了个全局变量 然后u32 testsram[250000] __attribute__((at(0X68000000)))指定在外部虽然内存地址,但是上电应该先进main函数再初始化fsmc接口 FSMC_SRAM_Init 我很好奇初始化接口之前这个变量怎么从flash搬运到内存
|
|