基于STM32F103-HAL库-IAR的BOOT和APP编写

本文详细介绍了如何使用STM32CubeMX生成初始化代码,配置BOOT和APP项目,包括中断向量表和编译地址偏移,并在IAR环境下进行设置。BOOT项目仅需编写跳转函数,而APP项目则需对中断向量表和编译地址进行调整。最后,通过J-Flash合成并烧录到STM32F103小蓝板上,实现串口通信功能。
摘要由CSDN通过智能技术生成

前言:

在单片机中,将程序分为boot和app,这样可以实现一些功能:使用串口更新app等等;
需求:
编写boot和sys程序段,分别放在flash内存不同位置,先执行boot然后执行sys:boot使用串口发送“JUMP APP!!”,sys使用串口循环打印"GOOD DAY!!";
准备:

  1. IDE:IAR
  2. 硬件:stm32f103小蓝板

项目配置

一. 获得初始化代码

使用代码生成工具stm32cubeMX生成初始化代码,获得初始化项目boot:
在这里插入图片描述同理获得初始化项目:

二. 配置Boot项目

boot项目不需要进行额外配置,知需要编写跳转函数就可以了,跳转地址: 0x8003000:

#define APP_FLASH_ADDRESS (0x8003000)	// 根据需求设置app地址
typedef  void (*pFunction)(void);
pFunction Jump_To_Application;
uint32_t JumpAddress;

void JumpToApp(void)
{
   
    /* Check if valid stack address (RAM address) then jump to user application */
    if (((*(__IO uint32_t*)APP_FLASH_ADDRESS) & 0x2FFE0000 ) == 0x20000000)
    {
   
        __disable_irq();
       /* Jump to user application */
       JumpAddress = *(__IO uint32_t*) (APP_FLASH_ADDRESS + 4);//此处保存的是中断向量表的复位中断地址
       Jump_To_Application = (pFunction) JumpAddress;<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值