NRF51822 SDK12.3中文件合并升级出现问题-confilct

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

 

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第1张图片

 

出现这个问题是因为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的协议栈为

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第2张图片

查看文档或者从nrf studio中查看app的rom起始地址 如下:

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第3张图片

确定出APP程序的IROM起始地址和IRAM起始地址:

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第4张图片

 

查看APP的NRF51822 SDK12.3中文件合并升级出现问题-confilct_第5张图片

看出bootloader_settting.txt是在flash的后0x400字节的位置(3FC00+400=40000)

修改bootloader的起始地址,从APP起始地址+APP大小之后的值作为bootloader的起始rom地址,

所以bootloader的起始地址和大小加起来不能超过0x3FC00

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第6张图片

 

在生成bllotloader_settting.txt之后合并没有出现问题,正确运行;

几点说明:

APP的IROM地址一定紧接着softdevice程序,即nrfstudio显示的地址才可以,不然app不能够正常启动;

APP的IRAM设置原则 起始地址+大小=总RAM  本测试为32K 即0x8000

BOOTLOADER的IRAM设置原则 起始地址+大小=总RAM  本测试为32K 即0x8000

NRF51822 SDK12.3中文件合并升级出现问题-confilct_第7张图片

参考博客https://blog.csdn.net/w464960660/article/details/83276623

 

你可能感兴趣的:(蓝牙开发)