IAP升級 Bootloader的制作
1、上節(jié)提到Flash的分區(qū),0x8000000-0x8004000為Boot分區(qū),我們的bootloader就燒錄到此分區(qū)。
Bootloader很簡單,新建一個普通的工程,
也不用初始化外部設(shè)備,開機后,直接跳轉(zhuǎn)到
App分區(qū)所在的地址即可,
當(dāng)然App的分區(qū)程序也要提前燒錄進去,
否則也是跳不過去的。
代碼
#include <string.h>
#include "main.h"
#include "bsp_delay.h"
#include "flash.h"
typedef void (*pFunction)(void);
pFunction Jump_To_Application;
uint32_t JumpAddress;
void Jump_To_App(uint32_t address)
{
if (((*(__IO uint32_t*)address) & 0x2FFE0000) == 0x20000000)
{
JumpAddress = *(__IO uint32_t*) (address + 4);
Jump_To_Application = (pFunction) JumpAddress;
__set_MSP(*(__IO uint32_t*) address);
Jump_To_Application();
}
}
int main(void)
{
SysTick_Delay_Ms(1000);
Jump_To_App(APP_START_ADDRESS);
}
開機延時一秒,直接跳轉(zhuǎn)到0x08006000地址處。執(zhí)行Application的程序。
修改bootloader的ld文件n32g430_flash.ld,將bin文件限制在16K大小
之前的教程都是基于Application程序開發(fā),所以跳轉(zhuǎn)到Application后,會看到定時器6每100ms去開關(guān)LED1,文章來源:http://www.zghlxwxcb.cn/news/detail-431740.html
代碼路徑:https://gitee.com/xiaoguo-tec_0/n32iap文章來源地址http://www.zghlxwxcb.cn/news/detail-431740.html
到了這里,關(guān)于國民技術(shù)N32G430開發(fā)筆記(9)- IAP升級 Bootloader的制作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!