初级会员 
  
	- 积分
 - 156
 
        - 金钱
 - 156 
 
       - 注册时间
 - 2023-2-14
 
      - 在线时间
 - 51 小时
 
 
 
 | 
 
10金钱 
 本帖最后由 wyp010123 于 2023-7-17 13:08 编辑  
 
我的BootLoader程序中,为什么总是在检查FLASH APP的地址时,总是不对呢 
 
 
int main(void) 
{  
//        u8 t; 
        FIL files; 
//        FILINFO file; 
        FRESULT res; 
        HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);//设置系统中断优先级分组2 
        delay_init(72);        //初始化延时函数 
        LED_Init(); 
        //uart_init(9600);                //初始化串口波特率为115200 
        while(SD_Init())//检测不到SD卡 
        { 
                //LCD_ShowString(30,150,200,16,16,"SD Card Error!"); 
                //delay_ms(500);                                         
                //LCD_ShowString(30,150,200,16,16,"Please Check! "); 
                delay_ms(100); 
                LED0=!LED0;//DS0闪烁 
                //iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码 
        } 
        mem_init();                //初始化内部内存池  
    exfuns_init();                        //为fatfs相关变量申请内存 
         
    f_mount(fs[0],"0:",1);          //挂载SD卡 
        //res=f_stat("2.bin",&file); 
        //LED0=0; 
        res= f_open(&files,"0:/2/2.bin",FA_READ); 
         
        if(res==0) 
        {            
                FirmwareUpdate();       //进行固件升级 // printf("固件升级失败!\r\n"); 
                if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX. 
                {          
                        f_close(&files); 
                        f_unlink("0:/2/2.bin"); 
                        iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码 
                } 
                 
                //iap_load_app(FLASH_APP1_ADDR); 
                           
        } 
        else 
        {            
        iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码 
        }//执行FLASH APP代码 
                //LED0=0; 
} 
 
 
 
 
 
 
 
#define FLASH_APP1_ADDR                0x08020000          //第一个应用程序起始地址(存放在FLASH) 
                                                                                        //保留0X08000000~0X0800FFFF的空间为IAP使用 
 
 
 |   
 
 
 
- 
 
 
 
- 
 
 
 
 
 
 
 
 |