1. bootloader 的基本功能:
- 啟動應用
- 幾個應用之間切換
- 初始化外設
nordic nrf52xxx的bootloader主要功能用來做DFU, 可以通過HCI, UART 或BLE通信的更新程序,然而從SDK 比較高的版本僅支持使用BLE來更新固件,如果采用UART/ HCI接口更新固件,請參考SDK11.0或以前版本的例子。
2. Bootloader 模塊架構
3. 自舉程序(nrf_bootloader)
- 特定內存地址的應用程序
- 如果設備應用還沒有完成之前,可以在bootloader 程序里面做些設備硬件的測試
- 如果你的內層足夠大,通過觸發外部事件,允許bootloader引導多個不同的應用程序
Programming the bootloader
nordic nrf系列自舉程序啟動過程
如果系統安裝了bootloader, MBR負責引導bootloader, MBR 通過UICR.BOOTLOADERADDR來定位引導程序的位置,所以寫bootloader程序時,首先要寫入 UICR.BOOTLOADERADDR-程序地址
編程bootloader的過程:
- 刪除設備
- 編程SoftDevice.
- Compile the bootloader.
- Program the bootloader and write to UICR.BOOTLOADERADDR
Using Keil
You cannot write to UICR.BOOTLOADERADDR when using the default J-Link target driver in Keil. Therefore, you must configure Keil to use an external tool, nrfjprog. To do so, select Project > Options for Target 'xxx' and configure nrfjprog.exe
as the tool for flash programming. nrfjprog.exe
is installed with the nRF5 MDK and must be in the Windows system path. The following screenshot shows the required settings for nrfjprog.exe:

After configuring the flash command, program the bootloader as you would do with a normal application. If several J-Link emulators are connected, select the one that contains the nRF5 IC that you want to flash.