关于Apache Mynewt
Mynewt是由Apache基金会发起的一个开源IoT项目,目前最新版本为1.5.0。
Mynewt是一个专注于物联网应用的实时操作系统,包括低功耗蓝牙无线传输协议NimBLE。Mynewt提供基础的实时操作系统以及嵌入式中间件、闪存文件系统、网络堆栈以及嵌入式应用程序支持。
本专栏将从Mynewt的底层开始一步一步和大家一起学习这个新的系统,这期间将会涉及到Mynewt的newt工具、newtmgr管理工具、操作系统内核、BLE知识、BLE Mesh网络以及基于Mynewt操作系统的超宽带(Ultra Wide Band, UWB)定位系统设计。
由于后期会涉及BLE以及UWB等内容的开发,这里我们直接使用Decawave官方的DWM1001开发模块,该模块使用nRF52832+DW1000的结构,既能够支持蓝牙相关功能,又支持超宽带的应用与开发。
Mynewt安装
关于Mynewt的安装,Apache基金会主要提供了两种安装方式:原生安装以及Docker安装。
选项1(推荐):安装Newt工具,MyNewt OS实例(用于模拟目标),开发嵌入式软件的工具链(如GNU toolchain)。
选项2:一个配置以及运行Mynewt的简单、独立的方式,当然有一定的局限性。Newt工具和工具链在一个独立的Docker容器中已经包含,只需要将其安装到你的电脑上。
但是,这不是一个长期的选项,对于嵌入式系统开发而言,可能不能支持所有有用的、关键的特性。例如,Docker工具包中可用的USB设备映射,在新版本的Docker版本中将不再可用,此外采用Docker的方式通常将比原生安装会慢。
Linux原生安装
最新的Debian包存放在一个私有的APT仓库: https://github.com/JuulLabs-OSS/debian-mynewt,要使用apt-get安装,首先需要添加仓库以及公钥。
$ wget -qO - https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/mynewt.gpg.key | sudo apt-key add -
将二进制和源文件仓库添加到mynewt.list的apt源列表文件:
$ sudo tee /etc/apt/sources.list.d/mynewt.list <<EOF
>deb https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master latest main
>EOF
更新可用包:
$sudo apt-get update
若出现错误,原因为需要使用Ubuntu的1704版本,因此只有更换方法,离线安装:

$sudo apt-get install newt
注意:若出现编译错误(如丢失sys/mman.h),需要保证有32位的glibc:
$sudo apt-get install gcc-multilib
方法2:手动下载安装
$ wget https://raw.githubusercontent.com/JuulLabs-OSS/binary-releases/master/mynewt-newt-tools_1.5.0/newt_1.5.0-1_amd64.deb
$ sudo dpkg -i newt_1.5.0-1_amd64.deb
# 也可以直接在提供的tools目录下找到newt_1.5.0-1_amd64.deb安装文件
检查newt安装
$which newt
/usr/bin/newt
$newt version
Apache Newt version: 1.5.0
#newt命令可以查看newt的详细信息
$newt
参考资料:
1、http://mynewt.apache.org/latest/get_started/docker.html
2、Mynewt设置与开始
网友评论