首先在sdk中找到原始的例子
这里之前参考的pca10040的例子进行修改的,不过改到最后总是下载失败,是协议栈写入的地方冲突了,具体怎么分还未去验证
以下在pca10056的基础上进行修改
删除掉pca10040文件,
在s140协议栈下,此次调试环境是ses环境,只留这个环境,删除多其他文件
然后修改ses下的文件 ble_app_hrs_freertos_pca10056_s140
以文本形式打开ble_app_hrs_freertos_pca10056_s140 文件
然后打开52833 ble_app_uart的例子比对着修改
在前边的ble_app_hrs_freertos_pca10056_s140文件中修改第一步,将所有的10056都替换为10100,由于最后想要的是10010 52833,是修改名称和BOARD_PCA10056, 底层文件配置成对应的,这样最后生成的工程名和产物名都是10010的看着一致
同理将所有的52840替换为52833
然后对比ble_app_uart修改 arm_linker_heap_size="1024" 改为 arm_linker_heap_size="2048" ,52833为什么这样没找原因
然后看宏定义是否要修改,前边改52833 10010 时已经附带修改过了
最终要的就是修改下边的内存分段的配置了
由
ble_app_hrs_freertos_pca10056_s140文件的
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x20000;FLASH_START=0x27000;FLASH_SIZE=0x59000;RAM_START=0x20002ae8;RAM_SIZE=0x1d518" linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM1 RWX 0x20000000 0x20000"
改为
社区找到验证可行的
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x20000;FLASH_START=0x27000;FLASH_SIZE=0x59000;RAM_START=0x20003278;RAM_SIZE=0x1cd88" linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM1 RWX 0x20000000 0x20000"
用作对比的52833 的 ble_app_uart
linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x20000;FLASH_START=0x27000;FLASH_SIZE=0x59000;RAM_START=0x20002ae8;RAM_SIZE=0x1d518" linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM1 RWX 0x20000000 0x20000"
对比社区中找到的修改的可行的是和52833 的 ble_app_uart 的基本一致,仅修改了 ;RAM_START 、RAM_SIZE 这两个修改应该是和蓝牙协议栈的服务数量有关,具体怎么得出来的待验证补充;
社区关于这个的链接是:nrf52833 运行 FreeRTOS - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)
社区中有最终的结果产物,直接将 8132.ble_app_hrs_freertos 压缩包下下来用就可以用,同时也上传了资源(免费):我修改了编译后名字由10056改为10100的文件;
遗留的问题,后边补充后进行更新