前言
如果是直接使用官方下载的SDK则没有次顾虑,直接下载
nRF5_SDK_15.0.0_a53641a\components\softdevice下对应的hex和nRF5_SDK_15.0.0_a53641a\examples的代码即可。协议栈de 编号代表啥,可以在官网上查看,罗列得很直观,例如
NRF52832
正文
这里主要讲当使用其他工程时会遇到的问题,主要就是协议栈版本和SDK版本对不上,不同协议栈版本的接口大小都是有差异的。例如我这里有个使用的nRF5_SDK_13.0.0_04a0bfd的老工程,我没有在工程中找到协议栈的hex,于是就去官网下了个最新的S132_v6.0.0, 之后下载用户程序时报错,说你写到协议栈的内存区去啦。我第一反应就是去把keil中的地址给改了,是运行起来了,但是各种报错。
之后我在新下的nRF5_SDK_15.0.0_a53641a的documentation目录下找到release_notes.txt文件,里面有如图所示
每个SDK要对应协议栈版本,于是我去找了找nRF5_SDK_13.0.0_04a0bfd的对于版本,感谢该文让我不用去官网寻觅
nRF5_SDK_13.0.0_04a0bfd Supported SoftDevices:
- S132 v4.0.2
- S140 v5.0.0-2.alpha
- S212 v4.0.0
接下里就是去下载对应版本的协议栈即可
在下载完成协议栈的时候,便可以看到
然后对照一下自己的工程,完美契合
协议栈使用了124K,用户程序只能使用从0X1F000开始的388K大小空间。
ROM和RAM还能在下载的协议栈压缩包中的release-notes.pdf文件查看
RAM这里至少将使用4.94K,所以在配置RAM的时候就不要将64用完,可以多预留一些出来。例如