stm32-fly-boot下载bin文件说明

 

fly-boot下载bin文件说明  (wang@20111124)
1、fly-boot引导程序下载在flash 0x8000000 地址上

2、需要生成bin文件 bin下载放在0x8003000地址上
iar生成bin: 打开Options--Output Converter--选中Generate additional output  Output format选binary
MDK生成bin: 打开Options for Target,选择User标签页;构选Run User Programs After Build/Rebuild框中的Run #1多选框,
在后边的文本框中输入D:\Program Files\keil\ARM\BIN40\fromelf.exe --bin -o ./Project.bin ./Project.axf命令行;


3、app-bin文件配置

stm32f10x_flash.icf文件修改
define symbol __ICFEDIT_intvec_start__ = 0x08003000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__   = 0x08003000 ;

配置新的中断向量入口地址
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);   //更改

main()中加FLASH_Unlock 解锁FLASH,确保FLASH可写
FLASH_Unlock();
 

4、cb-com-boot\目录下的pTest.exe  Fly-BootV1.0应用程序,用来下载bin文件

5、操作说明
fly-boot复位时先请求下载bin文件,5次请求失败后,进入0x8003000地址启动app-bin程序
如果请求成功,下载bin文件,下载完后,进入0x8003000地址启动app-bin程序


6、Juma_IAP代码
#define ApplicationAddress    0x08030000

typedef  void (*pFunction)(void);

pFunction Jump_To_Application;

u32 JumpAddress;

extern void __set_MSP(u32 topOfMainStack);

void Jump_IAP(void)
{

    /* Test if user code is programmed starting from address "ApplicationAddress" */
    if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
    { /* Jump to user application */
      JumpAddress = *(volatile u32*) (ApplicationAddress + 4);
      Jump_To_Application = (pFunction) JumpAddress;
      /* Initialize user application's Stack Pointer */

 __set_PSP(*(volatile unsigned int*) ApplicationAddress);
      __set_CONTROL(0);
      __set_MSP(*(volatile u32*) ApplicationAddress);
      Jump_To_Application();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值