当前位置: 首页 > article >正文

nRF52832 SDK15.3.0 基于ble_app_uart demo FreeRTOS移植

参考资料:Nrf52832 freeOS系统移植_nrf5283操作系统-CSDN博客

这里把移植经验记录下来,供有需要的同学参考,有不对的地方也请大家批评指正。

把FreeRTOS移植到 nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_uart工程,在keil上移植。本身SDK中有一个工程可以做参考:nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_hrs_freertos。

1,把nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_hrs_freertos下面的config文件夹拷贝到nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_uart\pca10040\s132\arm5_no_packs目录下(其实这里可以拷贝任何目录下,只需要配置好keil的编译应用目录就OK)。如下图:

2,把FreeRTOS相关的C文件添加到工程,如下图

“Third Parties” 可以根据自己喜好随便写名字。然后,

去掉文件..\..\..\..\..\..\..\components\libraries\timer\app_timer.c

..\..\..\..\..\..\..\components\libraries\scheduler\app_scheduler.c,如下图:

添加文件

..\..\..\..\..\..\components\softdevice\common\nrf_sdh_freertos.c,

..\..\..\..\..\..\..\components\libraries\timer\app_timer_freertos.c,入下图:

..\..\..\..\..\..\..\components\libraries\hardfault\nrf52\handler\hardfault_handler_keil.c 这个文件可加可不加,我没有加也没有出现问题,不知道后续开发是否会遇到问题,遇到问题再来更新(欢迎大家批评指正)

然后将宏NRF_SDH_DISPATCH_MODEL 由0改为2(sdk_config.h),configUSE_TIMERS宏由0改为1(freeRTOSConfig.h)

然后再将需要的对应的头文件添加上

..\..\..\..\..\..\..\external\freertos\source\include

..\..\..\..\..\..\..\external\freertos\config

..\..\..\..\..\..\..\external\freertos\portable\ARM\nrf52

..\..\..\..\..\..\..\external\freertos\portable\CMSIS\nrf52
 

3,再然后就是main函数的修改了,这个比较简单,只需要按照demo改就可以啦!

 补充一点:上面的移植成功后,你的系统可以正常运行,打log你会发现,系统运行2分钟后会停止,这是怎么回事呢?这是因为,系统起来的时候 打开蓝牙广播,设置了一个广播的超时时间,超时时间到了之后

会调用系统API把系统设置到sleep模式:

做系统设计的时候需要注意该问题。


http://www.kler.cn/a/103934.html

相关文章:

  • 30天精通Nodejs--目录与说明
  • 指定顺序输出
  • AAOS CarMediaService 问题分析
  • 【LeetCode:2698. 求一个整数的惩罚数 | 递归】
  • 2023-10-17 LeetCode每日一题(倍数求和)
  • 软件测试进阶篇----自动化测试脚本开发
  • 分类预测 | MATLAB实现SSA-CNN-GRU-Attention数据分类预测(SE注意力机制)
  • 使用Golang策略和最佳实践高效处理一百万个请求
  • 【Maven教程】(八):使用 Nexus 创建私服 ~
  • Kotlin基础——函数、变量、字符串模板、类
  • Unity的碰撞检测(一)
  • Hudi 0.14.0 编译
  • CDC实时数据同步
  • [架构之路-242]:目标系统 - 纵向分层 - 应用程序的类型与演进过程(单机应用程序、网络应用程序、分布式应用程序、云端应用程序、云原生应用程序)
  • Android 系统架构
  • 计算机网络 第五层 应用层
  • Elasticsearch聚合----aggregations的简单使用
  • 一起学数据结构(11)——快速排序及其优化
  • 经管博士科研基础【26】海塞矩阵
  • STM32-LCD中英文显示及应用