理解Zephyr项目的配置与构建系统
1. 前言Zephyr Project是Linux基金会推出的一个Apache2.0开源项目,版权非常友好,适合用于商业项目开发。包含RTOS、编译系统、各类第三方库。NCS中的例程基本都跑在[Zephyr RTOS](Kernel — Zephyr Project Documentation)上。
对于之前只接触过IDE+外设驱动库这种开发方式的开发者来说,Zephyr的配置和编译系统可能比较令人费解,但是一旦你能掌握,就会发现它的方便之处。
本文会以最容易理解的方式讲解 Zephyr 的构建系统(Build System)。并列出一些例子。
2. 通过CMake管理源码本节讲解源码如何管理,不讲CMake的细节。
CMake基本写法通过zephyr/samples/hello_world例程的CMakeLists.txt,我们可以看到:
# SPDX-License-Identifier: Apache-2.0# 指定CMake版本cmake_minimum_required(VERSION 3.20.0)# 从环境变量${ZEPHYR_BASE}找到NCS中的 ...
安装nRF-Connect-SDK
nRF Connect SDK,简称NCS,是Nordic最新的SDK平台,该平台支持Nordic所有产品线的所有技术,包括BLE,AoA,NFC,蜂窝网与GPS,Wi-Fi,2.4G,蓝牙Mesh,Zigbee,Thread,Matter, Homekit, FindMy等。
NCS是跨平台的(Windows/Linux/OSX),其基础是Zephyr系统。Zephyr系统是Linux基金会维护的一个项目,除了一个基本的Zephyr RTOS之外,还有很多方便的第三方软件库,像是MCUBoot、TCP/UDP/MQTT/TLS等网络库等等。
更多信息可参考:
https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/installation.html
开发你的第一个nRF Connect SDK(NCS)/Zephyr应用程序 - iini - 博客园 (cnblogs.com)
1. 简介 本节将会详细介绍如何在一台Windows ...
搭建自己的静态博客并自动部署
1. 概述本文讲解本博客的搭建方式
部件
作用
Hexo
把.md文章转换为页面,并且快速部署到平台
GitHub Pages
提供从GitHub仓库创建网站的服务
GitHub Actions
GitHub提供的免费持续集成服务
Hexo + Github Pages先从简单的讲起,看图:
简而言之:
Hexo是一个博客框架,存放在你的电脑上,能把你的markdown文章转换成网站源码,并存入一个git仓库
Github Pages是GitHub提供的免费静态网站服务,能让你展示文档。你只需要把网站源码存入一个repository,并且启用这个服务,GitHub就会帮你建一个静态网站,分配一个网址。别人从这个网址就能看到你的博客了。
Hexo能一键把本地的网站源码推送到GitHub,让GitHub自动将其部署为Pages
GitHub Actions 前面的方法,网站所有的资源都存在本地,除了markdown文章和图片这种资源文件以外,网站的美化主题、配置等也存在本地。
这会产生几个问题:
数据容易丢失,一旦硬盘损坏,你的博客就灰飞 ...
nRF9160与nRF Cloud应用示例
1. 产品简介1.1. nRF Cloud
nRF Cloud是Nordic Semiconducotr公司在AWS上搭建的IoT平台,提供设备注册(Cloud Provisioning)、OTA升级、数据存储、位置服务等业务,所有这些功能都可通过Web界面进行管理。此外还有账号权限控制功能,客户可以为不同的团队配置不同级别的账户管理权限。本文会介绍上述功能的具体使用方法。
除了设备注册、OTA、消息存储等物联网云平台常见的功能外,nRF Cloud的重要卖点是位置服务(Location Service):
AGPS/PGPS:设备根据附近的基站信息,从Location Service获取当前地区GPS卫星的信息,从而缩小搜星范围,把搜星的几十秒缩短到几秒,极大的节省功耗
基站定位:根据上传附近的基站id,从云端获取获取当前定位,支持单基站和多基定位
WiFi定位:根据附近的WiFi SSID获取定位
nRF Cloud为Nordic nRF91系列产品提供了方便快速的上云方式,通过NCS的例程可以很方便的连入nRF Cloud。当然,非Nordic产品 ...