zephyr的所支持的针对不同板子的层级
创建app
创建目录
- 在zephyrproject中创建一个目录,test_stm32f103zet6
- 在test_stm32f103zet6目录中创建boards文件夹和src文件夹
创建和拷贝文件
- 在test_stm32f103zet6目录中创建CMakeLists.txt
- 在boards文件夹下创建arm文件夹
- 在arm文件夹下创建yehuo_103ze文件夹
- 从zephyr/boards/arm/stm32f103mini文件夹下拷贝
- board.cmake
- Kconfig.board
- Kconfig.defconfig
- stm32f103_mini.dts
- stm32f103_mini.yaml
- stm32f103_mini_defconfig
- 创建CMakeLists.txt文件
- 将4步骤中的文件改名为自己板子的名字
- stm32f103_mini.dts --> yehuo_103ze.dts
- stm32f103_mini.yaml --> yehuo_103ze.yaml
- stm32f103_mini_defconfig --> yehuo_103ze_defconfig
创建好的目录如下:
test_stm32f103zet6
boards
| arm
| | yehuo_103ze
| | | board.cmake
| | | Kconfig.board
| | | Kconfig.defconfig
| | | yehuo_103ze_defconfig
| | | yehuo_103ze.dts
| | | yehuo_103ze.yaml
src
| main.c
CMakeLists.txt
修改文件
-
board.cmake
# 修改device为STM32F103ZE board_runner_args(jlink "--device=STM32F103ZE" "--speed=4000")
-
Kconfig.board
config BOARD_YEHUO_103ZE bool "Yehuo_103ze board" depends on SOC_STM32F103XE
-
Kconfig.defconfig
if BOARD_YEHUO_103ZE config BOARD default "yehuo_103ze" endif # BOARD_YEHUO_103ZE
-
yehuo_103ze_defconfig
不用动
-
yehuo_103ze.dts
/dts-v1/; #include <st/f1/stm32f103Xe.dtsi> #include <st/f1/stm32f103z(c-d-e)tx-pinctrl.dtsi> / { model = "yehuo stm32f103zet6 board"; compatible = "st,yehuo_103ze"; '''''' /* 其余不用动 */
-
yehuo_103ze.yaml
主要修改flash和RAM的大小以及名称,其余不用动identifier: yehuo_103ze name: Yehuo stm32f103ze Board Board type: mcu arch: arm toolchain: - zephyr - gnuarmemb - xtools ram: 64 flash: 512 supported: - gpio - i2c - spi - pwm - watchdog - adc
修改CMakeLists.txt
# Find Zephyr. This also loads Zephyr's build system.
cmake_minimum_required(VERSION 3.13.1)
list(APPEND BOARD_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
find_package(Zephyr)
project(my_zephyr_app)
# Add your source file to the "app" target. This must come after
# find_package(Zephyr) which defines the target.
target_sources(app PRIVATE src/main.c)
修改main.c
#include <zephyr.h>
#include <sys/printk.h>
void main(void)
{
printk("Hello World! %s\n", CONFIG_BOARD);
}
使用自己定义的板子进行编译
- 进入到test_stm32f103zet6目录中
- 输入编译指令
D:\zeyphr\zephyrproject\test_stm32f103zet6>west build -b yehuo_103ze
- 编译完成后,会生成elf和hex文件,在此目录中
D:\zeyphr\zephyrproject\test_stm32f103zet6\build\zephyr