串口bootloader进行升级

同样借鉴正点原子做改动程序(看韦东山的课感觉目前没用到那么深入)
改动原因:我需要远程下载的程序是Freertos的程序。
改动点;在bootloader里面iap.c

void iap_load_app(uint32_t appxaddr)
{
    if (((*(volatile  uint32_t *)appxaddr) & 0x2FFE0000) == 0x20000000)     /* 检查栈顶地址是否合法.可以放在内部SRAM共64KB(0x20000000) */
    {
        /* 用户代码区第二个字为程序开始地址(复位地址) */
        jump2app = (iapfun) * (volatile uint32_t *)(appxaddr + 4);
        
				SysTick->CTRL = 0X00;//禁止SysTick
				SysTick->LOAD = 0;
				SysTick->VAL = 0;
				__disable_irq();
        /* 初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址) */
        sys_msr_msp(*(volatile uint32_t *)appxaddr);
        
        /* 跳转到APP */
        jump2app();
    }
}

在应用程序里main()函数第一行加上

	SCB->VTOR = FLASH_BASE | 0x10000;

原因:因为我bootloader用到了串口1,然后应用程序也用到了串口1,并且应用程序还用到了rtos所以需要清除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值