Zephyr实时操作系统入门

 · 1 分钟

开发环境

  • 硬件
    • 笔记本电脑
    • 用盗版STLink V2.1改的Black Magic Probe
    • WeAct BluePill Plus
  • 软件
    • Manjaro Linux
    • VSCodium
    • PlatformIO IDE 插件
    • Zephyr

配置

按照官方文档配置, 或是用PlatformIO IDE都可以

为了适配新的开发板, 有两种选择:

  1. 修改内核源码, 在boards内参考其它源码添加板子的定义
  2. 添加设备树overlay, 根据其它基础的板子进行调整

我自己实验时先用了前者, 后来才读到后者, ~没来得及实验~坑人

PlatformIO IDE下面的开发

刚刚开始

自定义板子

法1. 手动添加新设备

直接改的难度应该不大, 可以直接参考bluepill, 不再详叙

可以参考https://piolabs.com/blog/engineering/platformio-zephyr-custom-hardware.html

法2. Device Tree Overlay

这个东西…可能是我对于cmake不熟练/不了解, 踩了好多坑

对于PlatformIO IDE, 出于某种原因, Zephyr的构建系统在PlatformIO IDE下有点问题, 在命令行添加DTC_OVERLAY_FILE这个变量没效果. 解决方法有二:

  1. 项目目录/zephyr/boards文件夹下面放板子对应名称.overlay来使用overlay.
  2. 项目目录/zephyr/CMakeLists.txt的最前面(第一行)设置DTC_OVERLAY_FILE变量, 指向需要使用的overlay

源代码看下来…这个环境变量必须尽早设定的样子…直接传参进去的参数顺序不太对, 正常设定这个变量后至少会报错(未找到)

Zephyr使用的overlay就是设备树源码的一部分, 会直接拿来追加到原设备树的后面. 我暂时不想折腾这破玩意儿了, 凑合用吧.

折腾的反思

  • 没有尽早采用控制变量法与多种方法同时尝试
  • 静不下心来, 看不下源代码