一、Zephyr介绍
本次活动推荐使用Zephyr作为开发的软件平台。我也是第一次接触,所以特地的搜索了一下Zephyr的介绍。
Zephyr是Linux基金会托管、Apache 2.0许可的开源实时操作系统(RTOS),主打轻量、安全、模块化、跨架构,面向物联网与资源受限嵌入式设备。具有如下特点
(1)、Zephyr内存占用极小,最小配置可在8KB Flash/4KB RAM运行,支持微内核/超微内核双模式,可按场景裁剪。
(2)、高度可配置与模块化,基于Kconfig+Device Tree,类似Linux内核配置,图形化裁剪。内核、驱动、协议栈、文件系统、安全库可按需开关。
(3)、跨架构与广泛硬件支持,支持8+架构:ARM(Cortex-M/A/R)、RISC-V、×86、ARC、MIPS、RX、Xtensa等。适配900+开发板,主流MCU(STM32、nRF52、ESP32、RA、RX等)全覆盖。
(4)、丰富连接与协议栈,无线(BLE 5.x、WiFi、802.15.4(Thread)、6LoWPAN、NFC),有线(以太网、CAN/CAN-FD、EtherCAT、USB),IoT协议(MQTT、CoAP、LwM2M、HTTP/HTTPS)。
(5)、实时与多线程,优先级抢占式调度,支持时间片轮转;线程、信号量、互斥量、消息队列、事件、定时器等完整同步机制。
二、环境搭建
Zephyr环境的搭建相对来说是比较麻烦的,我也是安装了好几次才算勉强能用。
首先是跟着教程ZephyrRTOSWindows11完整安装教程-电子产品世界论坛进行安装的。首先是安装Zephyr需要的软件,Python、CMake和Git。其中Python安装要求勾选Add Python to PATH。安装好之后就是安装Zephyr核心工具west。安装方式是在命令窗口运行
pip3 install --user -U west
安装好之后可以运行west --version进行验证,如果没有输出west的版本号时需要在环境变量中添加PATH的%APPDATA%\Python\Python3X\Scripts变量,其中3X表示安装的Python版本。
之后是下载Zephyr的工作区,下载这些需要可以告诉访问Github网站的网络环境。下载指令是
west init -m https://github.com/zephyrproject-rtos/zephyr
第一次下载完成之后不能像教程中的编译,所以又下了特定的版本,指令如下
west init -m https://github.com/zephyrproject-rtos/zephyr --mr v3.6.0
下载好之后需要更新一下,对应指令是
west update
然后是导出Zephyr的CMake包,对应指令是
west zephyr-export
然后是安装Python依赖包
pip3 install --user -r scripts/requirements.txt
最后是下载Zephyr的SDK,对应指令是
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5/zephyr-sdk-0.16.5_windows-x86_64.7z
下载好之后需要将其解压到指定路径
解压好之后是设置环境变量
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr" ZEPHYR_SDK_INSTALL_DIR = "zephyr-sdk-0.16.5的路径"
至此环境算是搭建完成,最后是进行验证
验证方式是进入到zephyr目录下执行如下编译指令
west build -p auto -b qemu_x86 samples/hello_world
出现如下打印内容才算是环境搭建成功

可以运行如下指令进行模拟,前提是安装好QEMU模拟器
west build -t run
模拟运行的结果是

按Ctrl+A,然后按X可以退出模拟器。
感觉下来环境搭建的步骤特别多,有些步骤非常费时间,还容易失败。教程也是详细的说明搭建步骤,以及过程中容易出错的解决办法。
三、VScode搭建
总感觉在Windows上用指令进行开发比较麻烦,而且Zephyr的编译指令需要添加板卡的型号。所以按照网友的方案在VScode上搭建环境。
首先是安装MCUXpresso for VS Code插件,在插件搜索中搜索MCUXpresso for VS Code

然后是安装工具、SDK和烧录工具,点击下图的红框

安装下图红框中的插件

安装成功后,对应的后面有绿色的,并且显示对应的版本号。然后点击

在这里可以需要安装Zephyr的SDK包,通过图片可以看到除了可以安装Zephyr支持全部MCU的SDK包,也可以安装支持NXP MCU的SDK包。但是用在线安装往往最后一步会失败,所以建议结合上一步的指令下载SDK通过使用本地SDK包

选择LOCAL,点击Browse,找到下载上一步下载的文件夹,选择好之后等待import为可选时点击一下就可以导入成功。

导入成功后在左侧的菜单栏中有对应的SDK包

四、新建工程和程序编译下载
以上步骤完成后,就是使用VScode安装好的插件新建工程,在PROJECTS菜单栏中点击如下图的红框

找到对应的板卡类型,选择对应的样例工程,设置好工程名称和本地保存路径就可以点击import创建并导入

导入成功后,点击下图工程右侧的下载按钮可以进行编译,三角符号可以进行程序下载和仿真。

点击后会默认进入仿真界面,仿真界面如下

仿真操作按钮非常简单,上手也非常快。
我要赚赏金
