windows下zephyr-2.5.0操作系统学习--02-板级移植

zephyr的所支持的针对不同板子的层级

内核架构
CPU1
CPU2
SoC Family 1
SoC Family 2
SoC Family 3
SoC Series
SoC Series
SoC Series
SoC Series
SoC Series
SoC1
SoC2
SoC3
SoC4
SoC5
SoC6
Board
Board
Board
Board
Board
Board
Board
Board
Board
Board
Board
Board
Board
Board

创建app

创建目录

  1. 在zephyrproject中创建一个目录,test_stm32f103zet6
  2. 在test_stm32f103zet6目录中创建boards文件夹和src文件夹

创建和拷贝文件

  1. 在test_stm32f103zet6目录中创建CMakeLists.txt
  2. 在boards文件夹下创建arm文件夹
  3. 在arm文件夹下创建yehuo_103ze文件夹
  4. 从zephyr/boards/arm/stm32f103mini文件夹下拷贝
    • board.cmake
    • Kconfig.board
    • Kconfig.defconfig
    • stm32f103_mini.dts
    • stm32f103_mini.yaml
    • stm32f103_mini_defconfig
  5. 创建CMakeLists.txt文件
  6. 将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

修改文件

  1. board.cmake

    # 修改device为STM32F103ZE
    board_runner_args(jlink "--device=STM32F103ZE" "--speed=4000")
    
  2. Kconfig.board

    config BOARD_YEHUO_103ZE
    bool "Yehuo_103ze board"
    depends on SOC_STM32F103XE
    
  3. Kconfig.defconfig

    if BOARD_YEHUO_103ZE
    
    config BOARD
    default "yehuo_103ze"
    
    endif # BOARD_YEHUO_103ZE
    
  4. yehuo_103ze_defconfig

    不用动
    
  5. 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";
    	''''''
    	/* 其余不用动 */
    
  6. 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);
}

使用自己定义的板子进行编译

  1. 进入到test_stm32f103zet6目录中
  2. 输入编译指令
    D:\zeyphr\zephyrproject\test_stm32f103zet6>west build -b yehuo_103ze
    
  3. 编译完成后,会生成elf和hex文件,在此目录中

    D:\zeyphr\zephyrproject\test_stm32f103zet6\build\zephyr

drawing
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Berte_Yu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值