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

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.lryc.cn/news/205724.html

相关文章:

  • 电厂数据可视化三维大屏展示平台加强企业安全防范
  • 2246: 【区赛】【宁波32届小学生】最佳交换
  • Java面试记录
  • 【数据库】聚集函数
  • 【单元测试】--编写单元测试
  • ES(elasticsearch) - 三种姿势进行分页查询
  • AQS是什么?AbstractQueuedSynchronizer之AQS原理及源码深度分析
  • 【数据库】函数处理(文本处理函数、日期和时间处理函数、数值处理函数)
  • GEE案例——一个完整的火灾监测案例dNBR差异化归一化烧毁指数
  • 计算机算法分析与设计(20)---回溯法(0-1背包问题)
  • 什么是IO多路复用?Redis中对于IO多路复用的应用?
  • NanoPC-T4 RK3399:DTS之io-domain,FAN
  • vue3+vite+ts项目使用jQuery
  • 一起学数据结构(10)——排序
  • php 数组基础/练习
  • Redbook Chapter 7: Query Optimization翻译批注
  • 【分布式】大模型分布式训练入门与实践 - 04
  • 欧拉图相关的生成与计数问题探究
  • CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)
  • 小程序:如何合理规划分包使主包不超过2M
  • 迭代器的封装与反向迭代器
  • PHP项目学习笔记-萤火商城https://www.yiovo.com/doc
  • 我国有多少个港口?
  • uniapp实现登录组件之外区域置灰并引导登录
  • 抄表系统是如何抄到电表水表的数据的?
  • Qt之自定义事件QEvent
  • 项目管理week5——交个作业
  • 5.5G移动通信技术
  • chrony时间服务
  • 音乐制作软件 Studio One 6 mac中文版软件特点