SDK12.3下对nrf51822进行dfu升级验证:
三个程序文件如下:
E:\blue_dfu\nRF5_SDK_12.3.0_d7731ad\components\softdevice\s130\hex\s130_nrf51_2.0.1_softdevice.hex
E:\blue_dfu\nRF5_SDK_12.3.0_d7731ad\examples\dfu\bootloader_secure\pca10028\arm5_no_packs\booloader.pro
E:\blue_dfu\nRF5_SDK_12.3.0_d7731ad\examples\ble_peripheral\experimental_ble_app_buttonless_dfu\pca10028\s130\buttonless.pro
出现这个问题是因为rom地址重叠了,修改Irom地址才可以。
通过以下链接查看SDK所占的ROM和RAM
2) Softdevice还有一份专门的spec,来阐述softdevice工作原理,资源占用情况,性能参数,使用注意事项等,建议大家一定要阅读该份spec。
S110 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.softdevices51%2Fdita%2Fsoftdevices%2Fs110%2Fs110.html&cp=3_7_0
S130 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s130.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=3_7_2_0
S132 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s132.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_1_0
S112 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s112.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_0_0
S140 spec链接:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.s140.sds%2Fdita%2Fsoftdevices%2Fs130%2Fs130sds.html&cp=2_3_2_0
3) SDK还有在线帮助文档和离线帮助文档,两者一模一样,离线帮助文档就是通过在线帮助文档生成的,以方便网络不好的用户使用。你可以根据自己的情况选择其中一份帮助文档即可。离线版帮助文档可以到这里下载:http://developer.nordicsemi.com/nRF5_SDK/。
得出s130_nrf51_2.0.1_softdevice的协议栈为
查看文档或者从nrf studio中查看app的rom起始地址 如下:
确定出APP程序的IROM起始地址和IRAM起始地址:
查看APP的
看出bootloader_settting.txt是在flash的后0x400字节的位置(3FC00+400=40000)
修改bootloader的起始地址,从APP起始地址+APP大小之后的值作为bootloader的起始rom地址,
所以bootloader的起始地址和大小加起来不能超过0x3FC00
在生成bllotloader_settting.txt之后合并没有出现问题,正确运行;
几点说明:
APP的IROM地址一定紧接着softdevice程序,即nrfstudio显示的地址才可以,不然app不能够正常启动;
APP的IRAM设置原则 起始地址+大小=总RAM 本测试为32K 即0x8000
BOOTLOADER的IRAM设置原则 起始地址+大小=总RAM 本测试为32K 即0x8000
参考博客https://blog.csdn.net/w464960660/article/details/83276623