PlatformIO+Zephyr+STM32F756环境搭建及HelloWorld


Zephyr作为高质量的开源嵌入式操作系统之一,风头日盛,有比肩FreeRTOS之势,不过貌似内网上介绍PlatformIO+Zephyr+STM32的不多,出个基于PlatformIO的HelloWorld吧,hope it helps~

安装VSCode及PlatformIO IDE插件

PlatformIO IDE插件的下载可能会慢,可能需要梯子,这个因人而异。

下载示例项目

点击PIO插件,在其名为PIO Home的UI,依次点击Home => Project Example => 下拉框选择zephyr-blink(闪灯例子) => import,注意这个默认会下到user目录下,不愿意放C盘的可以自行挪到自己的workspace目录去。在这里插入图片描述

ST-Link刷J-link

我的板子是Nucleo STM32F756,自带ST-Link,习惯刷成J-link
Ref: https://blog.csdn.net/ybhuangfugui/article/details/105132046

编辑配置文件

打开项目目录下的platformio.ini,注释原有配置并改为如下内容,PIO对ST官方开发板有适配,还是要方便不少,大家依自己情况修改即可。

[env:nucleo_f756zg]
platform = ststm32
board = nucleo_f756zg
framework = zephyr

upload_protocol = jlink
debug_tool = jlink

等待PIO下载依赖及工具链

PIO会根据你配置的芯片、平台、板子、操作系统等下载相应的依赖及工具链,耐心等待,这个也是要等一会的,耐心耐心~

编译下载调试

依赖及工具链下载完成之后,点F5,顺利的话出现如下内容,并调用J-link进行下载调试,出现提示记得确认:

 *  Executing task: C:\Users\z003v9wv\.platformio\penv\Scripts\platformio.exe debug 

Processing nucleo_f756zg (platform: ststm32; board: nucleo_f756zg; framework: zephyr)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/nucleo_f756zg.html
PLATFORM: ST STM32 (17.2.0) > ST Nucleo F756ZG
HARDWARE: STM32F756ZG 216MHz, 320KB RAM, 1MB Flash
DEBUG: Current (jlink) On-board (stlink) External (blackmagic, cmsis-dap, jlink)
PACKAGES:
 - framework-zephyr @ 2.30500.231204 (3.5.0)
 - tool-cmake @ 3.21.3
 - tool-dtc @ 1.4.7
 - tool-ninja @ 1.9.0
 - toolchain-gccarmnoneeabi @ 1.120301.0 (12.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies...
No dependencies
Building in debug mode
Compiling .pio\build\nucleo_f756zg\offsets\zephyr\arch\arm\core\offsets\offsets.c.o
中间略......
Archiving .pio\build\nucleo_f756zg\zephyr\kernel\libkernel.a
Linking .pio\build\nucleo_f756zg\zephyr\firmware-pre0.elf
c:/users/z003v9wv/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.bfd.exe: warning: .pio\build\nucleo_f756zg\zephyr\firmware-pre0.elf has a LOAD segment with RWX permissions
Memory region         Used Size  Region Size  %age Used
           FLASH:       19994 B         1 MB      1.91%
             RAM:        4480 B       256 KB      1.71%
            QSPI:          0 GB       256 MB      0.00%
            DTCM:          0 GB        64 KB      0.00%
        IDT_LIST:         121 B         2 KB      5.91%
Generating ISR list .pio\build\nucleo_f756zg\zephyr\isrList.bin
Generating ISR table .pio\build\nucleo_f756zg\zephyr\isr_tables.c
Compiling .pio\build\nucleo_f756zg\zephyr_final\zephyr\isr_tables.c.o
Linking .pio\build\nucleo_f756zg\firmware.elf
c:/users/z003v9wv/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.bfd.exe: warning: .pio\build\nucleo_f756zg\firmware.elf has a LOAD segment with RWX permissions
Memory region         Used Size  Region Size  %age Used
           FLASH:       19994 B         1 MB      1.91%
             RAM:        4480 B       256 KB      1.71%
            QSPI:          0 GB       256 MB      0.00%
            DTCM:          0 GB        64 KB      0.00%
        IDT_LIST:          0 GB         2 KB      0.00%
Checking size .pio\build\nucleo_f756zg\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   1.4% (used 4550 bytes from 327680 bytes)
Flash: [          ]   1.8% (used 18880 bytes from 1048576 bytes)
Building .pio\build\nucleo_f756zg\firmware.bin
============================================================================================================================================================ [SUCCESS] Took 18.22 seconds ============================================================================================================================================================
 *  Terminal will be reused by tasks, press any key to close it. 

下完会跳到main函数,再次F5,板子上的灯就闪起来了,so easy有木有~
在这里插入图片描述

Zephyr源码位置

另外,PIO把下载下来的Zephyr操作系统源码放在这里C:\Users\你的用户名\.platformio\packages\framework-zephyr

Enjoy it~

Ref:https://www.zephyrproject.org/platformio-zephyr-rtos/

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值