iap.h 1.5 KB

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