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和外設配置;
以上所有內容配置完畢後,就已經成功添加自定義板類型。
祝好運!