1. 项目概述
在嵌入式开发领域,STM8系列单片机因其高性价比和丰富的外设资源而广受欢迎。本文将详细介绍如何在Ubuntu 20.04环境下,使用开源工具链开发STM8S001J3单片机项目。这个仅有8个引脚的小封装芯片虽然体积小,但功能强大,特别适合空间受限的嵌入式应用场景。
2. 环境准备与工具链搭建
2.1 硬件准备清单
开发STM8S001J3需要以下硬件设备:
- STM8S001J3开发板或最小系统板
- ST-LINK/V2编程调试器(支持SWIM接口)
- 杜邦线若干
- USB转串口模块(如需串口通信)
特别注意:ST-LINK/V2的SWIM接口需要正确连接到目标板的SWIM引脚(通常是复位引脚)。对于STM8S001J3,这是Pin8(SWIM/NRST)。
2.2 软件工具链安装
在Ubuntu 20.04上安装必要的开发工具:
bash复制# 安装SDCC编译器
sudo apt update
sudo apt install sdcc
# 安装ST-LINK工具
sudo apt install stlink-tools
# 安装STM8Flash烧录工具
sudo apt install git make
git clone https://github.com/vdudouyt/stm8flash.git
cd stm8flash
make
sudo make install
# 安装VS Code(可选)
sudo snap install --classic code
验证SDCC安装是否成功:
bash复制sdcc --version
输出应显示支持的架构,包括stm8。
3. 工程创建与配置
3.1 项目目录结构
典型的STM8项目目录结构如下:
code复制stm8_project/
├── CMakeLists.txt
├── toolchain-stm8.cmake
├── drivers/
│ └── STM8S_StdPeriph_Driver/
│ ├── inc/
│ └── src/
├── hal/
│ ├── include/
│ └── src/
├── user/
├── main.c
├── stm8s_it.c
└── stm8s_it.h
3.2 关键配置文件详解
3.2.1 toolchain-stm8.cmake
这个文件定义了交叉编译的工具链配置:
cmake复制# 设置目标系统为裸机
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR stm8)
# 指定编译器
set(CMAKE_C_COMPILER sdcc)
set(CMAKE_ASM_COM
