void my_mem_init(u8 memx)
{
mymemset(mallco_dev.memmap[memx], 0,memtblsize[memx]*2);//内存状态表数据清零
mymemset(mallco_dev.membase[memx], 0,memsize[memx]); //内存池所有数据清零 ,调试程序卡死在这里
mallco_dev.memrdy[memx]=1; //内存管理初始化OK
}
主函数
nt main(void)
{
FIL fil;
UINT bww;
u32 total,free;
u16 t=0;
u8 res=0;
char zimu='a',shu[5200]; //是因为数组太大了,超内存了吗,不过这只占几个K吧
u8 writebuf [100]={"i love you"},readbuf[100];
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115320
usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
//LED_Init(); //初始化与LED连接的硬件接口
//KEY_Init(); //初始化按键
LCD_Init(); //初始化LCD
W25QXX_Init(); //初始化W25Q128
// my_mem_init(SRAMIN); //初始化内部内存池
POINT_COLOR=RED; //设置字体为红色
while(SD_Init())//检测不到SD卡
{
LCD_ShowString(30,30,320,24,24,"SD Card Error!");
delay_ms(500);
LCD_ShowString(30,30,320,24,24,"Please Check! ");
delay_ms(500);
//LED0=!LED0;//DS0闪烁
}
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡 disk_initialize中指定SD卡位0
res=f_mount(fs[1],"1:",1); //挂载FLASH.
//res=f_mkfs("0:",1,4096*2048);
if(res==0X0D)//FLASH磁盘,FAT文件系统错误,重新格式化FLASH
{
//LCD_ShowString(30,30,320,24,24,"Flash Disk Formatting..."); //格式化FLASH
res=f_mkfs("1:",1,4096);//格式化FLASH,1,盘符;1,不需要引导区,8个扇区为1个簇
if(res==0)
{
f_setlabel((const TCHAR *)"1:ALIENTEK"); //设置Flash磁盘的名字为:ALIENTEK
LCD_ShowString(30,30,320,24,24,"Flash Disk Format Finish"); //格式化完成
}else LCD_ShowString(30,30,320,24,24,"Flash Disk Format Error "); //格式化失败
delay_ms(1000);
}
LCD_Fill(30,30,320,30+24,WHITE); //清除显示
while(exf_getfree("0",&total,&free)) //得到SD卡的总容量和剩余容量
{
LCD_ShowString(30,30,320,24,24,"SD Card Fatfs Error!");
delay_ms(1000);
LCD_Fill(30,30,320,30+24,WHITE); //清除显示
//delay_ms(320);
//LED0=!LED0;//DS0闪烁
}
|