自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Noridc在线文档及功能介绍

文章目录前言开发者论坛SDK选择及获取nRF5 sdk版本选择推荐:nRF5 SDK下载ncs sdk下载安装通过nrf-connect-desktop安装手动安装ncs sdk详细介绍可以参考下面链接开发文档中心Getting started文档各个系列的芯片型号参考资料:规格书:就是我们开发阶段用的最多的芯片参考手册, 用于查看外设及CPU相关参数。勘误表: 记录了每个版本芯片的已知问题及workaround,可以在这里进行查询。兼容性说明: 这个里面有每个版本的芯片使用的sdk及协议栈版本,有很多的关

2021-01-07 20:51:23 1187 2

翻译 5_ARM Cortex-M汇编

文章目录汇编语言语法指令后缀使用统一汇编语言UAL汇编语言语法对于ARM汇编,ARM工具链,指令格式如下:label mnemonic operand1,operand2, ... ;注释标号label表示地址位置,为可选的。有些指令前面可能会有标号,这样可以通过这个标号得到指令的地址。标号也可以用于表示数据地址。例如,可以在程序内的查找表处放一个标号。label后为mnemonic助记符,也就是指令的名字,后面跟着的时多个操作数,;后的内容为注释,可以提高程序的可读性:对于ARM汇编

2021-03-24 17:35:04 2284

原创 4_ARM Cortex-M指令集

文章目录指令集简介ARM Cortex-M处理器间的指令集比较指令集简介指令集的设计为处理器架构的重点之一,ARM称之为指令集架构ISA。所有的ARM Cortex-M处理器都是基于Thumb-2技术,运行在一种操作状态混合使用16位和32位的指令。关于ARM、Thumb和Thumb-2:ARM,最早期的32位指令集,在ARM状态运行。Thumb ,16位指令集,为ARM指令集的一个子集,在thumb状态运行。Thumb-2,Thumb指令的一个新的超集, 一种运行模式下,可以同时使用16位和

2021-03-24 14:56:25 798

翻译 3_Cortex-M3和M4 架构

文章目录Cortex-M3和M4 架构简介编程模型操作模式和状态寄存器特殊寄存器程序状态寄存器PRIMASK、FAULTMASK 和 BASEPRI 寄存器PRIMASKFAULTMASKBASEPRICONTROL寄存器浮点寄存器浮点状态和控制寄存器(FPSCR)经过存储器映射的浮点单元控制寄存器应用程序状态寄存器APSR整数状态标志Q状态标志GE位存储器系统存储器系统特性Cortex-M3和M4 架构简介Cortex-M3和M4都基于ARMv7-M架构,在一般的应用中使用Cortex-M3和M4微

2021-03-23 17:30:00 4719

翻译 2_嵌入式软件开发简介

文章目录嵌入式软件开发简介常用软件流程轮询方式中断驱动方式多任务系统C程序中的数据类型Cortex微控制器软件接口标准(CMSIS)CMSIS简介CMSIS-Core所做的标准化处理器外设的标准化定义访问处理器特性的标准化函数操作特殊指令的标准化函数系统异常处理的标准化命名系统初始化的标准函数时钟频率的标准化的变量CMSIS-Core的组织结构如何使用CMSIS-CoreCMSIS源代码包获取嵌入式软件开发简介常用软件流程轮询方式对于简单的应用,处理器可以等待数据准备好后进行处理,再继续等待,这种方

2021-03-23 16:24:32 1198

翻译 1_ARM Cortex-M处理器简介

文章目录ARM Cortex-M处理器简介什么是Cortex-M处理器Cortex-M3和M4处理器Cortex-M处理器家族处理器和微控制器区别Cortex-M处理器的优势低功耗性能能耗效率代码密度中断易于使用可扩展性调试特性OS支持多种系统特性软件可移植性和可重用性设备、工具、OS等ARM处理器及微控制器资源介绍ARM网站文档ARM Cortex-M处理器简介什么是Cortex-M处理器Cortex-M3和M4处理器Cortex-M3 和 Cortex-M4 处理器使用32位架构,寄存器组中内部

2021-03-23 16:23:44 3078

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节5 链路层控制

文章目录5 链路层控制5.1 链路层ACL控制进程5.1.1 链接更新进程5.1.2 信道图更新进程5.1.3 加密进程5.1.3.1 加密启动进程5.1.3.2 暂停加密进程5.1.4 特性交换进程5 链路层控制链路层控制协议LLCP用来控制和协商两个链路层之间链接中的操作部分。包括控制链接,启动及暂停加密以及其他链接进程的进程。进程具有Section 5.2所定义的超时时间规则,终止进程可以在任意时候进行发起,即使其他链路层控制进程正在活动。对于其他的链路层控制进程,每个链接每个设备同时只能有一个

2021-03-05 17:21:05 1011 1

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节4.6-4.7 空口协议-3

文章目录4.6 特性支持4.6.1 LE加密4.6.2 链接参数更新请求进程4.6.3 拒绝扩展指示4.6.4 slave初始特性交换4.6.5 LE Ping4.6.6 LE数据包长度扩展4.6.7LL Privacy4.6.8 扫描过滤策略扩展4.6.9 多个PHYs4.6.9.1 对称和不对称链接4.6.10 稳定调制指数-发射机4.6.11 稳定调制指数-接收机4.6.12 LE广播扩展4.6.13 LE 定期广播4.6.14 通道选择算法#24.6.15 `Used`信道的最小个数进程4.6.16

2021-03-03 17:25:59 617 1

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节4.4-4.5 空口协议-2

4.4 不可链接状态4.4.1 待机态待机状态为链路层默认状态,链路层在待机状态不会发送或接收数据包,链路层可以通过进入广播态,扫描态,发起态,同步态或同步广播态来离开待机态。4.4.2 广播态链路层可以直接通过Host来进入广播态,当处于广播态时,链路层在广播事件,定期广播事件或者两个事件中发送广播PDUs。每个广播事件由一个或多个广播PDUs使用主要广播广播通道索引进行发送,广播事件在广播PDU在每一个用到的主要广播通道索引处(见Section 4.4.2.1)都发送完成后进行关闭。广播事件中

2021-02-13 15:49:14 1210 1

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节4.1-4.3 空口协议

文章目录4 空口协议4.1 帧间隔4.1.1 帧间间隔4.1.2 最小AUX帧间隔4.1.3 最小子事件间隔4.2 时间要求4 空口协议空口协议由多重访问方案、设备发现及链路层链接方法组成。4.1 帧间隔4.1.1 帧间间隔在同一个通道索引下的连续2个数据包的时间间隔成为帧间间隔,它由上一个数据包的最后一个比特的到下一个数据包的第一个比特之间的时间间隔定义,帧间间隔被成为T_IFS并且位150us。4.1.2 最小AUX帧间隔最小AUX帧间隔为一个包含AuxPr的数据包和它标示的辅助包之间的最

2021-01-29 17:35:05 579

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节3比特流处理

文章目录3 位流处理3 位流处理

2021-01-26 22:31:01 447

原创 Nordic 52系列选型表

特性\型号52805528105281152820528325283352840蓝牙版本5.05.05.15.15.05.15.0蓝牙5.1寻向功能不支持不支持支持支持不支持支持不支持接收灵敏度1M:-97dBm1M:-97dBm1M:-97dBm 125k:-104dBm1M:-95dBm 125k:-103dBm1M:-96dBm1M:-96dBm 125k:-103dBm1M:-95dBm 125k:-103dBm...

2021-01-26 19:09:40 574

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节1 概述

文章目录1 概述1.1 链路层状态1.1.1 允许的状态和角色组合1.1.2 只支持部分状态的设备1.2 比特序列1.3 设备地址1.3.1 公共地址1.3.2 随机地址1.3.2.1 静态设备地址1.3.2.2 设备私有地址产生1.3.2.3 私有地址解析1.4 物理通道1.4.1 物理通道索引1 概述1.1 链路层状态链路层的操作可以用含有以下状态的状态机来描述:待机状态广播状态扫描状态发起状态连接状态同步状态同步广播状态链路层状态机在同一时间只允许有一个状态,链路层需要有一个

2021-01-25 21:54:34 387

原创 Nordic芯片如何达到最快的蓝牙传输速率

简介目前BLE已经发布到BLE5.2的标准,而蓝牙的传输速率,在BLE4.2和BLE5.0版本上分别进行了提升,这里介绍下使用Noridc芯片时,如何进行配置,以达到最快的传输速度(只讨论1主对1从的情况)。基础概念介绍这里对一些后面用到的名词做一下简单介绍,如果要详细了解,可以自行进行查找。在BLE中,作为Client端,可以通过write command和write request方式进行发送数据,参考蓝牙规范Vol3.Part F.3.4.5章节。write command : client

2021-01-11 21:01:15 5082 1

翻译 NCS-OS系列13 :互斥锁

NCS-OS系列13 :互斥锁文章目录NCS-OS系列13 :互斥锁前言概念可重入锁优先级继承实现定义一个互斥锁锁定互斥锁解锁互斥锁推荐用法配置选型前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://docs.zephyrproject.org/latest/reference/kernel/synchronization/mutexes.html概念互斥锁是一个内核对象,它实现了一个通用的可重入互斥锁。互斥锁通过确保对资源的互斥访问,允许多

2021-01-06 10:31:43 279

翻译 # NCS-OS系列12 :信号量

NCS-OS系列12 :信号量文章目录NCS-OS系列12 :信号量前言概念实现定义一个信号量给出信号量获取信号量推荐用法前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://docs.zephyrproject.org/latest/reference/kernel/synchronization/semaphores.html概念信号量是一个内核对象,它实现了一个传统的计数信号量,可以定义任意数量的信号量(仅受可用RAM的限制)。每个信号量

2021-01-06 09:59:54 248

翻译 NCS-OS系列11 :轮询API

NCS-OS系列11 :轮询API文章目录NCS-OS系列11 :轮询API前言概念实现使用`k_poll`使用`k_poll_signal_raise()`推荐用法配置选项前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://docs.zephyrproject.org/latest/reference/kernel/other/polling.html概念轮询API用于同时等待多个条件中的任何一个得到满足,轮询API的主要函数是k_poll

2021-01-05 22:06:57 384

翻译 NCS-OS系列10 :中断

NCS-OS系列10 :中断文章目录NCS-OS系列10 :中断前言前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/reference/kernel/other/interrupts.html...

2021-01-05 14:58:29 387

翻译 NCS-OS系列9 :工作队列线程

NCS-OS系列9 :工作队列线程文章目录NCS-OS系列9 :工作队列线程前言概念工作项生命周期延迟工作触发工作系统工作队列 `System Workqueue`实现定义一个工作队列提交工作项提交一个延迟工作项推荐用法配置选项前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/reference/kernel/threads/w

2021-01-05 14:56:49 402

翻译 # NCS-OS系列8 :系统线程

NCS-OS系列8 :系统线程文章目录NCS-OS系列8 :系统线程前言概念实现写一个`main()`函数推荐用法前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/reference/kernel/threads/system_threads.html概念系统线程是内核在系统初始化期间自动生成的线程。系统生成如下的系统线程

2021-01-05 13:58:21 196

翻译 NCS-OS系列7 :调度器

NCS-OS系列7 :调度器文章目录NCS-OS系列7 :调度器前言概念调度算法协作式时间片抢占式时间片调度锁线程休眠忙等待推荐用法前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/reference/kernel/scheduling/index.html概念Zephyr内核的基于优先级的调度器允许应用程序的线程共享CPU

2021-01-05 11:40:39 277

翻译 NCS-OS系列7 :线程

NCS-OS系列7 :线程文章目录NCS-OS系列7 :线程前言简介生命周期 `Lifecycle`线程创建 `Thread Creation`线程结束 `Thread Termination`线程终止 `Thread Aborting`线程挂起 `Thread Suspension`线程状态 `Thread States`线程栈对象 `Thread Stack objects`Kernel-only StacksThread stacks线程优先级 `Thread Priorities`线程选项 `Th

2021-01-04 22:38:52 326

翻译 NCS-OS系列6 :内核服务

NCS-OS系列6 :内核服务文章目录NCS-OS系列6 :内核服务前言内核服务简介线程、中断和同步数据传递内存管理时间其他前言ncs 相关文章,部分为原始文档翻译,水平有限,如果有错误,欢迎指出。本文参考链接:https://docs.zephyrproject.org/latest/reference/drivers/index.html内核服务简介Zephyr内核是每个Zephyr应用程序的核心,它提供了一个低内存占用、高性能、多线程的执行环境和一组丰富的可用特性,Zephyr生态系统的

2021-01-04 17:22:51 356

翻译 NCS-OS系列5 :设备驱动模型

NCS-OS系列5 :设备驱动模型文章目录NCS-OS系列5 :设备驱动模型一、简介二、标准驱动英文原版链接如下:https://docs.zephyrproject.org/latest/reference/drivers/index.html一、简介Zephyr内核支持多种设备驱动程序。驱动程序是否可用取决于板子和驱动程序。Zephyr设备驱动模型为配置作为系统一部分的驱动程序提供了一致性的设备模型。设备模型负责初始化配置到系统中的所有驱动程序。每种类型的驱动程序(例如UART、SPI、

2021-01-04 16:20:13 638

翻译 NCS-OS系列3 :devicetree介绍

NCS-OS系列3 :devicetree介绍文章目录NCS-OS系列3 :devicetree介绍前言一、devicetree概念二、语法和结构三、Unit address示例3.1 内存映射外设3.2 I2C外设3.3 SPI外设3.4 存储器3.5 内存映射flash3.6 内存分区四、重要属性介绍4.1 compatible4.2 label4.3 reg4.4 status4.5 interrupts五、Aliases and chosen nodes六、输入输出文件6.1 输入文件6.2 脚本

2021-01-03 21:40:45 1064

原创 NCS-OS系列4 :如何创建编译一个ncs工程

NCS-OS系列3 :如何创建编译一个ncs工程文章目录NCS-OS系列3 :如何创建编译一个ncs工程前言一、创建工程1,创建文件目录2,创建工程源文件3,创建CmakeList.txt文件4,创建prj.conf文件5,配置devicetree的overlay文件二、编译工程1.使用west编译2.使用CMake和ninja烧录1.使用west烧录2.使用板子支持的烧录工具总结前言目前Nordic部分芯片开发基于nRF Connect SDK也就是NCS SDK进行,ncs SDK基于zephy

2021-01-03 18:22:27 775

原创 NCS-OS 系列2:NCS-SDK kconfig语法简介

NCS-OS 系列2:NCS-SDK kconfig语法简介概述目前Nordic部分芯片开发基于nRF Connect SDK也就是NCS SDK进行,ncs SDK基于zephyr系统进行开发,这里对NCS SDK的结构做一个简单的介绍。本文基于Noridc官方发布的文档,以nRF9160为实例进行分析,示例代码均以9160平台为基础。备注:本系列中,代码截图时,一般会把路径一起截进去,找不到文件的时候,可以看下截图里面的文件路径进行查找。概念Kconfig的作用是用来配置内核,它就是各种配置界

2021-01-03 17:39:04 658

翻译 NCS-OS系列1 : NCS-SDK编译过程解析

概述目前Nordic部分芯片开发基于nRF Connect SDK也就是NCS SDK进行,ncs SDK基于zephyr系统进行开发,这里对NCS SDK的结构做一个简单的介绍。本文基于Noridc官方发布的文档,以nRF9160为实例进行分析,示例代码均以nRF9160平台为基础。备注:本系列中,代码截图时,一般会把路径一起截进去,找不到文件的时候,可以看下截图里面的文件路径进行查找。构建过程总览nRF Connect SDK的构建过程和zephyr的构建过程是一致的,主要分为两个阶段:配置

2021-01-03 13:31:55 1599

原创 ncs devicetree gpio.h 相关宏定义使用说明

关于gpio的PIN及Flag说明: * gpio1: gpio@... { * compatible = "vnd,gpio"; * #gpio-cells = <2>; * }; * * gpio2: gpio@... { * compatible = "vnd,gpio"; * #gpio-cells = <2>; * }; * *

2020-12-31 17:30:03 1265

原创 devicetree.h常用宏定义使用说明

DT_NODELABEL(label)根据devicetree 的 node label获取node id,注意,node label和label属性不是一种概念。 * serial1: serial@40001000 { * label = "UART_0"; * status = "okay"; * current-speed = <115200>; * ... *

2020-12-29 17:27:15 2034

原创 cmd命令行重定向到txt中

命令行输出重定向到txt中方式在使用命令行操作时,有时候需要将命令执行结果保存到txt中,这个时候需要用到重定向功能,cmd中,1为标准输出stdout、2为标准错误stderr。系统默认值是1,也就是“1>”,而1>可以简写为>,也就是默认为>。stdout的默认目标是终端,stderr,也就是"2>"的默认目标为也是终端。如果需要重定向到txt中,可以按照如下进行操作:以nrfjprog -h命令为例:nrfjprog -h 1>success.txt 2&gt

2020-12-29 14:06:21 2250

原创 使用vscode调试ncs时头文件包含问题

说明使用vscode来查看ncs的代码时,头文件处会出现如下图所示的红色波浪线,也就是未包含相应头文件的问题,这里记录下相应的解决方案。解决方案1,ctrl+shift+p,打开配置选项,选择c/c++ edit configurations,此时根目录下会出现 .vscode文件夹,如下图所示:此时会自动包含根目录下的子目录,但是依然会有波浪线,这是因为c/c++的标准头文件未被包含进来,还需要添加标准头文件的路径。在我电脑上为:{ "configurations": [

2020-12-27 16:11:01 1390 1

原创 NCS-OS 系列0:NCS-SDK简介

NCS-OS 系列0:NCS-SDK简介概述目前Nordic部分芯片开发基于nRF Connect SDK也就是NCS SDK进行,ncs SDK基于zephyr系统进行开发,这里对NCS SDK的结构做一个简单的介绍。本文基于Noridc官方发布的文档,以nRF9160为实例进行分析,示例代码均以nRF9160平台为基础。备注:本系列中,代码截图时,一般会把路径一起截进去,找不到文件的时候,可以看下截图里面的文件路径进行查找。关于nRF Connect SDKnRF Connect SDK由No

2020-12-25 15:35:20 2295

翻译 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节2 空口数据包

文章目录1 概述1.1 链路层状态1.1.1 允许的状态和角色组合1.1.2 只支持部分状态的设备1.2 比特序列二、使用步骤1.引入库2.读入数据总结1 概述1.1 链路层状态链路层的操作可以用含有以下状态的状态机来描述:待机状态广播状态扫描状态发起状态连接状态同步状态同步广播状态链路层状态机在同一时间只允许有一个状态,链路层需要有一个至少支持广播状态和扫描状态的状态机,链路层可以有多个链路层状态机的实例。链路层在待机状态不进行任何数据包的收发,可以从任意状态进入待机状态。链

2020-08-31 22:26:24 2092 1

翻译 蓝牙规范-Vol 6:低功耗控制器 Part A 物理层规范

这里写自定义目录标题Part A新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Part A你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇

2020-08-25 20:14:55 1529 1

原创 Free rtos笔记

Free rtos笔记任务函数:void ATaskFunction( void *pvParameters );删除任务函数:vTaskDelete( NULL );创建任务API:portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName,

2017-11-30 18:43:38 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除