各种尝试 - yangchengwork/zephyr_superroc_freqchip GitHub Wiki

尝试STM32

使用stm32flash

因为有STM32 bluepill板,所以想对比编译尝试。但下载时发现不太好通过UDF操作,可能还是自己不太会。所以首先是使用串口,这样就是使用stm32flash

west build -d stm32_build -o=-j16 -p auto -b stm32_min_dev .\zephyr\samples\basic\blinky\

烧录脚本,本来想这样自动启动,但这样还是看不到最开始的几个字节

@echo off

:: 定义变量
set PORT=COM3
set BAUDRATE=115200
set FIRMWARE=.\stm32_build\zephyr\zephyr.hex

:: 烧录固件
echo Flashing firmware...
stm32flash -b %BAUDRATE% -w %FIRMWARE% -v -g 0x0 %PORT%
if %ERRORLEVEL% neq 0 (
    echo Flashing failed!
    exit /b 1
)

:: 启动串口监控工具(以 PuTTY 为例)
echo Starting serial monitor...
start putty.exe -serial %PORT% -sercfg %BAUDRATE%,8,n,1,N

:: 等待串口监控工具启动
timeout /t 1 >nul

:: 复位设备
echo Resetting device...
stm32flash -R %PORT%

:: 提示完成
echo Done. Check the serial log.

st-link

使用stm32link要不停的切换boot0才能看到LOG,从存货中找了一片stlink,这样就可以通过stlink下载,同时通过串口查看信息

下载命令

west flash -d stm32_build

还可以直接使用调试方式

west debug -d stm32_build

这时可以使用gdb命令调试

  • 复位目标设备并暂停 CPU:
monitor reset halt
  • 下载固件:
load
  • 启动程序运行:
continue

测试框架

之前只是使用samples下的工程做尝试,但测试不全面。后面查看文档等才知道可以使用twister来进行测试

python zephyr/scripts/twister --platform fr3068e_c_dev -T tests/drivers/gpio/gpio_api_1pin --device-testing --device-serial=/dev/ttyACM0

但因为我现在无法做到自动烧录,所以还是有最后的步骤没有打通