#ifndef __IAP_H__ #define __IAP_H__ #include "sys.h" ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //ALIENTEK MiniSTM32开发板 //IAP 代码 //正点原子@ALIENTEK //技术论坛:www.openedv.com //修改日期:2014/1/8 //版本:V1.0 //版权所有,盗版必究。 //Copyright(C) 广州市星翼电子科技有限公司 2009-2019 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// typedef void (*iapfun)(void); //定义一个函数类型的参数. #define FLASH_APP1_ADDR 0x08020000 //app1程序起始地址(存放在FLASH) //保留0X08000000~0X0800FFFF的空间为Bootloader使用(64KB) #define FLASH_APP2_ADDR 0x08040000 //app2程序起始地址(存放在FLASH) //保留0X08010000~0X0801FFFF的空间为Bootloader使用(64KB) #define FLASH_APP3_ADDR 0x08060000 //app3程序起始地址(存放在FLASH) //保留0X08020000~0X0803FFFF的空间为Bootloader使用(64KB) #define FLASH_PT_ADDR 0x08008000 //产测固件 #define FLASH_BOOT_ADDR 0x08000000 //boot地址 void iap_load_app(u32 appxaddr); //跳转到APP程序执行 void iap_write_appbin(u32 appxaddr,u8 *appbuf,u32 applen); //在指定地址开始,写入bin //运行app1 uint32_t run_app1(void); //获取信息 uint32_t get_info(void); //复位 uint32_t reboot(void); #endif