Nrf52832 freeOS系统移植

2023-05-16

最近因为项目开发需要,需要多任务的操作系统在nrf52832上运行,于是根据例程移植了下FreeOS系统

根据例程F:\nRF5_SDK_15.2.0_9412b96\examples\ble_peripheral\ble_app_hrs_freertos\pca10040\s132\arm5_no_packs移植

移植到例程F:\nRF5_SDK_15.2.0_9412b96\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10040\s132\arm5_no_packs,主从一体,一主多从这个例程

首先,对照两个例程ble_app_hrs_freertos,ble_app_hrs之间的不同之处,找出哪些是freeOS相关的文件,

这个目录下的都是与FreeOS相关的文件,在目录F:\nRF5_SDK_15.2.0_9412b96\external\freertos下

再次添加件..\..\..\..\..\..\components\softdevice\common\nrf_sdh_freertos.c,

..\..\..\..\..\..\..\components\libraries\timer\app_timer_freertos.c

..\..\..\..\..\..\..\components\libraries\hardfault\nrf52\handler\hardfault_handler_keil.c

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

..\..\..\..\..\..\..\components\libraries\scheduler\app_scheduler.c

免得出现重复定义的情况

然后将宏NRF_SDH_DISPATCH_MODEL 由0改为2,configUSE_TIMERS宏由0改为1

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

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

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

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

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

然后编写main函数

    // Initialize modules.
    log_init();
    clock_init();

    // Do not start any interrupt that uses system functions before system initialisation.
    // The best solution is to start the OS before any other initalisation.

//#if NRF_LOG_ENABLED
//    // Start execution.
//    if (pdPASS != xTaskCreate(logger_thread, "LOGGER", 256, NULL, 1, &m_logger_thread))
//    {
//        APP_ERROR_HANDLER(NRF_ERROR_NO_MEM);
//    }
//#endif

    // Activate deep sleep mode.
    SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;

    // Configure and initialize the BLE stack.
    ble_stack_init();

    // Initialize modules.
    timer_init();
        
    buttons_leds_init(&erase_bonds);
    power_management_init();
//    ble_stack_init();
    scan_init();
    gap_params_init();
    gatt_init();
    conn_params_init();
    db_discovery_init();
    peer_manager_init();
    hrs_c_init();
    rscs_c_init();
    services_init();
    advertising_init();

    // Create a FreeRTOS task for the BLE stack.
    // The task will run advertising_start() before entering its loop.
    nrf_sdh_freertos_init(freeos_adv_scan_start, &erase_bonds);

    NRF_LOG_INFO("HRS FreeRTOS example started.");
    // Start FreeRTOS scheduler.
    vTaskStartScheduler();

    for (;;)
    {
        APP_ERROR_HANDLER(NRF_ERROR_FORBIDDEN);
    }    

再编译后通过

出现一个警告,是定义了但没有使用,不用去管它,不想用就直接删掉,没影响

 

以上就是Nrf52832的FreeOS的移植,可能还有些其它的问题,后续会进一步完善....

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nrf52832 freeOS系统移植 的相关文章

  • 程序员工作5年以上,找工作还看学历吗?

    很多程序员都有这样的觉悟 xff1b 找工作学历是敲门砖 xff0c 没有211 985起步的学历 xff0c 想进一家大公司不太可能 举个例子好了 xff1b 如果你是大厂面试官 xff0c 参与面试的有10个刚刚毕业没有工作经验的普通学
  • jquery ajax无刷新请求Struts2验证用户名密码数据库是否存在

    通过ajax请求验证后台数据是否存在 首先导入struts2的核心包 后台Action代码 import com opensymphony xwork2 ActionSupport public class CodeCheckAction
  • 手把手教你们通过jquery ajax调用查询java struts2后端数据+js拼接字符串

    1 首先新建一个web项目 xff0c 创建一个User实体 package com qm entity public class User private String id private String name private Str
  • python检查URL是否能正常访问

    今天 xff0c 项目经理问我一个问题 xff0c 问我这里有2000个URL要检查是否能正常打开 xff0c 其实我是拒绝的 xff0c 我知道因为要写代码了 xff0c 正好学了点python xff0c 一想 xff0c python
  • js自己写脚本自动操作注册插件,基于chrome浏览器

    大家好 xff01 又到了一周的福利时间 xff0c 今天给大家一个福利 xff0c 以后抢票不需要手动刷新页面了 xff0c 直接用你自己写的插件来控制 xff0c 事先声明 xff0c 本人是js菜鸟 xff0c 所以今天带来的例子都是
  • VMware Workstation Proa安装mac镜像

    首先你得有一个VMware 然后下载好mac镜像文件还有for OS X插件补丁 我这里都已经下载好了 xff0c 又需要的可以在评论里留下邮箱地址 xff0c 我分享给你 现在该有的文件都有了 xff0c 那么我们开始 首先VMware镜
  • Spring事务管理的四种方式(以银行转账为例)

    文章转自 https blog csdn net daijin888888 article details 51822257 本文配套示例代码下载地址 xff08 完整可运行 xff0c 含sql文件 xff0c 下载后请修改数据库配置 x
  • redis秒杀系统数据同步(保证不多卖)

    原文链接 http www cnblogs com shihaiming p 6062663 html 东西不多卖 秒杀系统需要保证东西不多卖 xff0c 关键是在多个客户端对库存进行减操作时 xff0c 必须加锁 Redis中的Watch
  • csdn过滤广告谷歌浏览器插件

    首先要知道浏览器插件的原理 通过访问网站 xff0c 加载我们写的js脚本 这样我们就可以对你所要操作的网站进行操作啦 xff01 首先看看谷歌的广告的代码块 如果换成你在开发这个网站 xff0c 肯定直接隐藏这个class 为 csdn
  • PX4源码分析1_PX4源码的下载和编译

    一 基本信息 xff1a 1 软件系统 xff1a Ubuntu 14 04 64bit 2 源码位置 xff1a https github com PX4 Firmware 3 参考博客 xff1a xff08 1 xff09 libin
  • PX4源码分析5_PX4启动流程

    PX4启动流程 xff0c 分为4步 xff1a 1 start xff1a 上电之后程序入口为Firmware NuttX nuttx arch arm src stm32 stm32 start c中的 start函数 xff0c 负责
  • 华为、TCL、大疆面试经历!32K高薪996和18K朝九晚五,我该怎么选?

    背景 楼主双非吊车尾一本毕业 xff0c 14年正式进入编程行业 xff0c 从事Android移动开发 一些个人的原因 xff0c 年前从一家公司裸辞 xff0c 带着老婆孩子离开了杭州 本想着回家过完年也就差不多赶上 金三银四 黄金季
  • PX4源码分析6_uorb通信机制

    一 创建流程 xff1a 在Firmware msg下创建msg文件 xff0c eg xff1a xxx msg xff0c 内容格式仿照原有msg文件在Firmware msg CMakeLists txt中将对应的msg文件添加 xf
  • PX4源码分析7_添加mavlink自定义消息

    一 自定义mavlink消息 xff1a 根据uorb消息 xff08 msg xff09 自定义mavlink消息 方法为利用mavlink generator工具在xml文件生成mavlink所需相应的头文件 二 发送自定义mavlin
  • Unix网络编程中第一个例子出现connect error: Connection refused

    这个问题我来回答 xff0c linux 现在因为安全问题 xff0c 各个发行版本默认是不开daytime服务的 由于要打开端口 xff0c 所以服务端程序需要用root权限执行 xff0c 所以你可以先 sudo daytimetcps
  • linux内存分配方法

    基于linux 驱动开发以及应用开发 当想要分配内存的时候 要面对很多的内存分配函数 malloc kmalloc vmalloc alloc page dma alloc 简单归纳如下 malloc 分配用户空间内存 不保证物理连续 xf
  • 算术移动和逻辑移动

    算术左移 逻辑左移 算术右移 逻辑右移有什么不同 算术左移 xff1a 末尾添0 xff1b 逻辑左移 xff1a 末尾添0 xff1b 算术右移 xff1a 左端最低位填充 xff1b 逻辑右移 xff1a 左端添0 算术左移和算术右移主
  • 素数的验证范围到数的开方

    假设范围大于数的开方 xff0c 则另个数必定小于数的开方 若两个数都大于数的开方 xff0c 则相乘必定大于这个数 所以只需要验证2到这个数的开方范围内就可以
  • CPU时间

    CPU时间 xff08 进程时间 xff09 xff1a 用户CPU时间 43 系统CPU时间 用户CPU时间 xff1a 用户态进程执行时间 系统CPU时间 xff1a 内核态进程执行时间 时钟时间 xff08 墙上时钟时间 xff09
  • 硬中断、软中断和信号

    硬中断是外部设备对CPU的中断 xff0c 软中断是中断底半部的一种处理机制 xff0c 信号则是由内核 xff08 或其他进程 xff09 对某个进程的中断 硬中断是由外部事件引起的因此具有随机性和突发性 xff1b 软中断是执行中断指令

随机推荐

  • CMakeLists.txt----一点儿自己的经验教训

    被CMakeLists txt坑过数次 xff08 大多是被自己蠢哭 xff09 xff0c 把用过的命令稍微记一下 注意 xff1a 中文空格等什么诡异字符 xff0c 链接库的名字不要忘记 xff0c 不要写错 好记性不如烂键盘 xff
  • docker命令之push

    1 背景 NAME docker push Push an image or a repository to the registry SYNOPSIS docker push NAME TAG DESCRIPTION Push an im
  • C标准库源码解剖(4):字符串处理函数string.h和wchar.h

    string h中包含了所有的字符串处理函数 xff0c 也包含了内存处理函数 xff0c 因为这些内存处理函数 xff08 如比如 复制 搜索 xff09 的功能与字符串处理函数功能类似 我们是用通用指针来指向内存块的 xff0c 通用指
  • VS 2019 + Clang-Format

    VS 2019配置Clang Format Clang Format选项 span class token comment 语言 None Cpp Java JavaScript ObjC Proto TableGen TextProto
  • C语言bmp图片读取写入

    一 介绍 bmp是我们常用的一种图片格式 xff0c 这里用c语言写一个程序打开 xff0c 读取像素点然后增亮 增亮公式 y 61 kx 43 b 这里用的24位的真彩bmp图片 二 实现 img bmp c span class tok
  • 树莓派设置wifi自动连接

    1 sd卡烧录好镜像 2 在boot目录创建 wpa supplicant conf 内容 span class token assign left variable ctrl interface span span class token
  • 电路城 电路方案 51单片机开发板(原理图+PCB+学习程序源文件)

    1 89C52单片机 xff0c 支持USB口或者是串口两种下载程序方式 xff1b 2 6位数码管 xff08 做动态扫描及静态显示实验 xff09 3 8位LED发光二极管 xff08 做流水灯实验 xff09 4 MAX232芯片RS
  • 信息系统开发与管理

    信息化是这个时代的主旋律 xff0c 如何执她之手 xff0c 跟上她的节拍 xff0c 不掉队 xff0c 我相信 xff0c 聪明的读者 xff0c 你的答案一定跃然于心底 一本 信息系统开发与管理 xff0c 结合学生信息管理系统 x
  • 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误

    向往前一样 xff0c 学习牛腩新闻发布系统的视频 xff0c 敲代码 xff0c 打开数据库 xff0c 出现一个框框 xff0c 详细内容如下 xff1a 数据库连接不上 xff0c 所有的工作都要歇班 xff0c 捣鼓了会儿 xff0
  • Sql Server服务远程过程调用失败

    由于开发系统 xff0c 需要vs版本统一 xff0c 于是经过了昨天一整天艰苦卓绝的斗争 xff0c 小编终于成功的写在了13版本的vs xff0c 重新装上了12版本的vs xff0c 本来想着 xff0c 12版本的vs搭建成功了 x
  • Android仿淘宝购物车demo

    夏的热情渐渐退去 xff0c 秋如期而至 xff0c 丰收的季节 xff0c 小编继续着实习之路 xff0c 走着走着 xff0c 就走到了购物车 xff0c 逛过淘宝或者是京东的小伙伴都知道购物车里面的宝贝可不止一件 xff0c 对于爱购
  • Android Demo---实现从底部弹出窗口

    在前面的博文中 xff0c 小编简单的介绍了如何制作圆角的按钮以及圆角的图片 xff0c 伴着键盘和手指之间的舞步 xff0c 迎来新的问题 xff0c 不知道小伙伴有没有这样的经历 xff0c 以App为例 xff0c 点击头像的时候 x
  • 浅谈如何带领好一个团队

    实习回来之后 xff0c 小编接手了一个新的项目 xff0c 市委组织部考核项目 xff0c 听着有没有很高大上 xff0c 因为这个项目是给国家机关做的 xff0c 跟他们打交道 xff0c 小编的心情只能用两个字来形容 xff0c 呵呵
  • 为什么说slam技术不等于智能导航?

    在机器人智能移动中 xff0c SLAM发挥了无可比拟的作用 xff0c SLAM simultaneous localization and mapping 也称为CML Concurrent Mapping and Localizati
  • 情不知所起,一“网”而深

    你只看到我的程序 xff0c 却没有看到背后的代码 xff1b 你有你的选择 xff0c 我有我的坚持 xff1b 你嘲笑我假期过节不回家陪父母 xff0c 我可怜你只在家向父母衣食伸手 xff1b 你可以轻视我的道路 xff0c 我会证明
  • 【项目实战】---首页一级分类的显示

    在前面的博文中 xff0c 小编主要简单的介绍了用户模块中的验证码程序是如何实现的 xff0c 今天继续来介绍我们的项目 xff0c 今天小编主要简单的介绍一下如何实现首页的一级分类的显示 xff0c 比如小伙伴现在看的CSDN xff0c
  • Kettle---初识

    最近因公司项目的原因 xff0c 小编接触到了Kettle这样一款工具 xff0c 感觉挺好玩儿的 xff0c 通过几天的探索和学习 xff0c 对 Kettlde 的使用有了一点点小心得 xff0c 小编打算把这段期间学习和探索到的关于
  • 读书笔记---《人月神话》

    台上一分钟 xff0c 台下十年功 宝剑锋从磨砺出 xff0c 梅花香自苦寒来 xff1b 不经一番寒彻骨 xff0c 哪得梅花扑鼻香 xff1b 业精于勤而荒于嬉 xff0c 行成于思而毁于随 不积跬步 xff0c 无以至千里 xff1b
  • Intel CPU型号官网详解

    https www intel cn content www cn zh processors processor numbers html
  • Nrf52832 freeOS系统移植

    最近因为项目开发需要 xff0c 需要多任务的操作系统在nrf52832上运行 xff0c 于是根据例程移植了下FreeOS系统 根据例程F nRF5 SDK 15 2 0 9412b96 examples ble peripheral b