从零到一:手把手教你用Zephyr RTOS在STM32上点亮第一个LED(附完整源码)
在嵌入式开发领域,实时操作系统(RTOS)正变得越来越重要。Zephyr作为一款专为物联网设备设计的开源RTOS,凭借其轻量级、模块化和跨平台特性,正在获得越来越多开发者的青睐。本文将带你从零开始,在STM32开发板上完成第一个Zephyr项目——点亮LED灯。
1. 开发环境准备
开始之前,我们需要搭建完整的Zephyr开发环境。Zephyr支持Windows、Linux和macOS三大平台,这里以Ubuntu 20.04为例。
首先安装基础依赖工具:
bash复制sudo apt update
sudo apt install --no-install-recommends git cmake ninja-build gperf \
ccache dfu-util device-tree-compiler wget \
python3-dev python3-pip python3-setuptools python3-tk python3-wheel \
xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev
接下来安装West工具链,这是Zephyr项目的多仓库管理工具:
bash复制pip3 install --user -U west
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
验证West安装成功:
bash复制west --version
获取Zephyr源码并初始化工作区:
bash复制west init ~/zephyrproject
cd ~/zephyrproject
west update
安装Python依赖和Zephyr SDK:
bash复制pip3 install --user -r ~/zephyrproject/zephyr/scripts/requirements.txt
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.0/zephyr-sdk-0.15.0_linux-x86_64.tar.xz
tar xvf zephyr-sdk-0.15.0_linux-x86_64.tar.xz
cd zephyr-sdk-0.15.0
./setup.sh
最后设置环境变量:
bash复制echo 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr' >> ~/.bashrc
echo 'export ZEPHYR_BASE=~/zephyrproject/zephyr' >> ~/.bashrc
source ~/.bashrc
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 创建第一个Zephyr项目
现在我们可以开始创建LED闪烁项目了。Zephyr项目通常包含以下关键文件:
CMakeLists.txt:构建系统配置文件prj.conf:项目配置选项src/main.c:应用程序主代码boards/:板级支持文件(可选)
首先创建项目目录结构:
bash复制mkdir -p ~/zephyr_led_blink/src
cd ~/zephyr_led_blink
创建CMakeLists.txt文件:
cmake复制cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(led_blink)
target_sources(a
