标题:
STM32 BOOTLAOD源代码工程学习
[打印本页]
作者:
yingxg516
时间:
2018-3-8 00:09
标题:
STM32 BOOTLAOD源代码工程学习
窗口看门狗
中断中喂狗。如果没有喂狗。就会产生复位
完整程序源代码工程文件下载地址
#include"public.h"
const unsigned char *sysfile[1]=
{
"STM32.BIN"
};
u8 UpData(void);
int main(void)
{
u8 sd_check,fat_check,i;
Init_All();
while(1)
{
//如果SD卡FAT初始化OK了进入升级
if(SD_Initialize()==0)
{
LCD_ShowString(20,20,"Sd Check OK",WHITE);
sd_check=1;
}
else
{
LCD_ShowString(20,20,"Sd Check fail",WHITE);
sd_check=0;
}
if(FAT_Init()==0)
{
LCD_ShowString(20,40,"Fat Initial OK",WHITE);
fat_check=1;
}
else
{
LCD_ShowString(20,40,"Fat Initial fail",WHITE);
fat_check=0;
}
if(sd_check&&fat_check)
{
LCD_ShowString(20,60,"Enter updata after 3s",WHITE);
LCD_ShowString(210,60,"s",WHITE);
for(i=3;i>0;i--)
{
LCD_Show_Num(190,60,i,2, 16, RED);
delay_ms(1000);
}
LCD_Show_Num(190,60,i,2, 16, RED);
if(UpData()==0)
{
LCD_ShowString(20,100,"UpData Success",WHITE);
}
else
{
LCD_ShowString(20,100,"UpData fail",WHITE);
}
LCD_ShowString(20,120,"Enter APP after 3s",WHITE);
LCD_ShowString(210,120,"s",WHITE);
for(i=3;i>0;i--)
{
LCD_Show_Num(190,120,i,2, 16, RED);
delay_ms(1000);
}
LCD_Show_Num(190,120,i,2, 16, RED);
}
iap_load_app(FLASH_APP1_ADDR);
}
}
u8 temp[512]; //零时空间
u8 UpData(void)
{
u32 fcluster=0;
u32 i;
FileInfoStruct FileTemp;//零时文件夹
//得到根目录的簇号
if(FAT32_Enable)fcluster=FirstDirClust;
else fcluster=0;
FileTemp=F_Search(fcluster,(unsigned char *)sysfile[0],T_BIN);//根目录下查找BIN文件
if(FileTemp.F_StartCluster==0) {LCD_ShowString(20,80,"bin was lost",WHITE);return 1 ;}
LCD_ShowString(20,80,"find bin success",WHITE);
F_Open(&FileTemp);//打开该文件
i=0;
while(F_Read(&FileTemp,temp))//成功读出512个字节
{
if(i<FileTemp.F_Size)//不超过文件大小
{
iap_write_appbin(FLASH_APP1_ADDR+i,temp,512);//更新FLASH代码
//LCD_Show_Bar(50, 155, 15, 150,i, FileTemp.F_Size, RED,WHITE);
i+=512;//增加512个字节
if(i>FileTemp.F_Size) i=FileTemp.F_Size;
LED0=~LED0;
LCD_Show_Bar(50, 155, 15, 150,i, FileTemp.F_Size, RED,WHITE);
LCD_ShowString(125,170,"%",WHITE);
LCD_Show_Num(100,170, 100*i/FileTemp.F_Size,3, 16, RED);
}
}
return 0;
}
复制代码
所有资料51hei提供下载:
bootloader.rar
(417.33 KB, 下载次数: 22)
2018-3-8 00:08 上传
点击文件名下载附件
STM32 bootlaod
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1