XiNGRZ's BLOG

一些唠叨

Zephyr 的 native_sim

最近在基于 Zephyr 搞些小东西。以往都是刷到真机上调试(反正也就一个 west flash 的事情),但涉及到 GUI 的东西每次还得伸手去操作,就很不爽。于是花了一点时间看了下官方的 native_sim

简单来说,它把 Zephyr 编译成了一个 Linux 可执行文件直接跑起来。然而我的开发环境是 Mac,暂时是不支持的。好在官方也提供了 Docker image:

1
2
3
docker run --rm -it -v $PWD:/work -w /work -p 5900:5900 \
ghcr.io/zephyrproject-rtos/zephyr-build:main \
west build -p -s path/to/my/app -b native_sim_64

找个 VNC 客户端打开本地 5900 端口,密码 zephyr 即可看到界面。

要让自己的项目支持 native_sim 也是很简单的一件事:

1
2
3
4
5
6
# 针对 VNC 的调整
CONFIG_SDL_DISPLAY_USE_HARDWARE_ACCELERATOR=n
CONFIG_SDL_DISPLAY_ZOOM_PCT=400

# 酌情修改
CONFIG_LV_Z_MEM_POOL_SIZE=65536
1
2
3
4
&sdl_dc {
width = <128>;
height = <64>;
};

官方只提供了一个 zephyr,input-sdl-touch 的驱动把触摸操作传递了过去。于是我顺手照着它也写了个传递按键的。但写得还不太通用,下次啥时候想水 PR 了再整理出来吧。

Proudly powered by Hexo and Theme by Hacker
© 2024 XiNGRZ