Zephyr应用笔记:添加自定义板类型(基于zephyr已经支持的SOC类型)
zephyr(version 1.11.0),Github地址:https://github.com/zephyrproject-rtos/zephyr
例如我们自己的画的板子是基于STM32F411RE,由于zephyr已经支持了nucleo_f411re开发板,所以我们直接拷贝一份并重命名为my_board,进入my_board文件夹查看所有文件如下:
doc:文档和图片说明;
support(如果是st-link才有此文件夹):里边只有一个文件openocd.cfg---用于下载和调试(这里需要注意:nucleo_f411re支持st-linkv2-1,如果你的板子也是st-linkv2-1则不需要修改,如果不是那么请根据自己的板子重新配置,例如我的板子用的是st-linkv2,那么修改配置如下);
board.cmake:如果你用的是st-link则不需要修改,如果用的是jlink请参考支持jlink的板子填写;
board.h:定义按钮,指示灯等引脚;
CMakeLists.txt:不需要修改;
Kconfig.board:将
BOARD_NUCLEO_F411RE改为BOARD_MY_BOARD
bool "NUCLEO-64 F411RE Development Board"改为bool "my board"
depends on SOC_STM32F411XE 我这里不需要修改
Kconfig.defconfig:将
if BOARD_NUCLEO_F411RE 修改为 if BOARD_MY_BOARD
config BOARD
default nucleo_f411re 改为 default my_board
nucleo_f411re_defconfig:将名字改为my_board_defconfig
CONFIG_BOARD_NUCLEO_F411RE=y 改为 CONFIG_MY_BOARD=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=96000000(主频)我这里不需要修改,你根据实际情况修改
CONFIG_CLOCK_STM32_HSE_CLOCK=8000000(时钟)我这里修改为16000000,你根据实际情况修改
时钟相关配置都要根据你自己的板子修改(外部时钟/内部时钟,分频等等)
nucleo_f411re.dts:将名字修改为my_board.dts
#include <st/stm32f411.dtsi> 我这里不需要修改,你根据实际请款修改
这个文件主要是flash、ram、console的选择
nucleo_f411re.yaml:将名字修改为my_board.yaml
identifier:nucleo_f411re 修改为 identifier:my_board
name:NUCLEO-F411RE 修改为 name:MY_BOARD
pinmux.c:
根据你的板子用到的IO和外设配置;
以上所有内容配置完毕后,就已经成功添加自定义板类型。
祝好运!