• 大小: 7.75MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-11-09
  • 语言: 其他
  • 标签: STM32  IAP  

资源简介

stm32f407IAP升级源码,先按下按键(在PA0)再上电就进入升级固件模式,再按一次按键则将SD卡中的IAP.bin拷贝到flash中并运行。上电时不按按钮会直接运行flash中现有的程序。

资源截图

代码片段和文件信息

#include 
#include “Bootloader.h“
#include “delay.h“
#include “LED.h“
#include “beep.h“  
#include “exfuns.h“  
#include “diskio.h“
#include “ff.h“
#include “lcd.h“
#include “stmflash.h“
#include “iap.h“  
    

typedef  void (*fun)(void); //定义一个函数类型的参数.   
fun AppStart; 

u8 Receive_dat_buffer[STM_PAGE_SIZE];    //数据接收缓存数组
/****************************
函数名  :Jump2App
功    能:从Bootloader跳转到用户APP程序地址空间
入口参数:Addr,用户APP的起始执行地址
出口参数:无
返回值  :无
*****************************/
void Jump2App(u32 Addr)
{
if(((*(vu32*)Addr)&0x2FFE0000) == 0x20000000) //检查栈顶地址是否合法.

AppStart = (fun)(*(vu32*)(Addr+4)); //用户代码区第二个字为程序开始地址(复位地址)
AppStart(); //跳转到APP.
}
}

/******************************
函数名  :FirmwareUpdate
功    能:固件升级函数
入口参数:无
出口参数:无
返回值  :无
*******************************/
void FirmwareUpdate(void)
{
    FIL file_bin; 
    u8 i=0;
    u8 res;
    u16 br;
    u16 readlen;
    u32 addrx;
    u32 Receive_data=0; //计算接收的总数据数
    u32 file_size=0;    //文件size
    
    u8 percent=0;       //固件升级的百分比
/*查找是否存在要升级的BIN文件*/
    res = f_open(&file_bin “IAP.bin“ FA_OPEN_EXISTING | FA_READ);
    //res = f_open(&file_bin “TEST.bin“ FA_OPEN_EXISTING | FA_READ);
    file_size=f_size(&file_bin);    //读取的文件大小Byte
    printf(“读取的文件大小为:%dByte\r\n“file_size);

if(res!=FR_OK) return;
    addrx=FLASH_APP1_ADDR;
    
/*执行主要的IAP功能*/
    printf(“开始更新固件...\r\n“);
    LCD_ShowString(301303102424“Firmware Updating...“);
while(1)
{
/*每次读取2K的数据到内存缓冲区buffer*/
    res = f_read(&file_bin Receive_dat_buffer STM_PAGE_SIZE (UINT*)&br);
        i++;
        readlen=br;
        Receive_data+=br;   //读取的总字节数
        if (res || br == 0) 
        {
            break; 
        }
        
        iap_write_appbin(addrxReceive_dat_bufferreadlen);//将读取的数据写入Flash中
        addrx+=STM_PAGE_SIZE;//偏移2048  512*4=2048
        
    }
    delay_ms(1500);
//    BEEP_ON();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2198  2019-04-05 17:17  Bootloader - 副本\BOOTLOADER\Bootloader.c

     文件        267  2015-09-29 21:57  Bootloader - 副本\BOOTLOADER\Bootloader.h

     文件     109142  2014-07-17 21:52  Bootloader - 副本\CORE\core_cm4.h

     文件      22735  2014-07-17 21:52  Bootloader - 副本\CORE\core_cm4_simd.h

     文件      17146  2014-07-17 21:52  Bootloader - 副本\CORE\core_cmFunc.h

     文件      20513  2014-07-17 21:52  Bootloader - 副本\CORE\core_cmInstr.h

     文件      29605  2014-08-02 00:12  Bootloader - 副本\CORE\startup_stm32f40_41xxx.s

     文件       3248  2014-01-15 00:31  Bootloader - 副本\FATFS\doc\css_e.css

     文件       3661  2014-01-15 00:31  Bootloader - 副本\FATFS\doc\css_j.css

     文件       1063  2013-09-18 21:47  Bootloader - 副本\FATFS\doc\img\app1.c

     文件       1597  2013-10-18 21:41  Bootloader - 副本\FATFS\doc\img\app2.c

     文件       3811  2014-01-13 20:56  Bootloader - 副本\FATFS\doc\img\app3.c

     文件      10365  2014-01-07 15:10  Bootloader - 副本\FATFS\doc\img\app4.c

     文件       1414  2011-09-02 22:10  Bootloader - 副本\FATFS\doc\img\f1.png

     文件       1458  2007-02-10 03:12  Bootloader - 副本\FATFS\doc\img\f2.png

     文件       1039  2007-02-10 03:12  Bootloader - 副本\FATFS\doc\img\f3.png

     文件       2335  2008-01-05 20:27  Bootloader - 副本\FATFS\doc\img\f4.png

     文件       2479  2008-01-05 20:27  Bootloader - 副本\FATFS\doc\img\f5.png

     文件       1436  2010-08-21 10:13  Bootloader - 副本\FATFS\doc\img\f6.png

     文件      11388  2013-05-12 12:31  Bootloader - 副本\FATFS\doc\img\f7.png

     文件      11421  2014-02-19 22:38  Bootloader - 副本\FATFS\doc\img\funcs.png

     文件       2401  2009-03-20 21:57  Bootloader - 副本\FATFS\doc\img\layers.png

     文件       2379  2009-06-13 21:48  Bootloader - 副本\FATFS\doc\img\layers3.png

     文件       7932  2013-12-27 12:20  Bootloader - 副本\FATFS\doc\img\modules.png

     文件      19068  2008-10-18 19:31  Bootloader - 副本\FATFS\doc\img\rwtest.png

     文件       8153  2010-09-13 10:55  Bootloader - 副本\FATFS\doc\img\rwtest2.png

     文件       3011  2009-06-15 00:03  Bootloader - 副本\FATFS\doc\img\rwtest3.png

     文件       5352  2014-01-15 00:31  Bootloader - 副本\FATFS\doc\updates.txt

     文件       3685  2014-05-15 17:20  Bootloader - 副本\FATFS\exfuns\exfuns.c

     文件       1417  2014-05-15 17:20  Bootloader - 副本\FATFS\exfuns\exfuns.h

............此处省略426个文件信息

评论

共有 条评论