/lfs/fd_features.bin 加载已注册特征。实操之前,请确保已根据文档《1-获取编译工具链》 和《2-获取&编译SDK》搭建开发环境。
本文基于 3.1.7 的SDK 进行演示,可通过查看duomotai_ap\version来获取当前 SDK 的版本号
949f1973e9d3fc84324b2daad4384ab7.mp4
如果您不想重新编译代码而希望直接体验本固件,可点击下载进行烧录:
zephyr_fd_gpio_3.1.7.bin
下载后直接覆盖 SDK 的 apps\fd 文件夹
PA00 只作为控制信号,不建议直接给台灯供电,因此本文用LED代替演示。
设备启动时 GPIO 被配置为 inactive,默认保持关灯。
默认使用 PA00,高电平开灯、低电平关灯。配置位于:
apps/fd/boards/csk6_duomotai_devkit.overlay
aliases {
lamp-control = &lamp_control;
};
lamp_outputs {
compatible = "gpio-leds";
lamp_control: lamp_control {
gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>;
};
};
业务代码通过 lamp-control alias 获取 GPIO,因此用户换引脚时不需要修改 C
代码。例如换成 PB2:
gpios = <&gpiob 2 GPIO_ACTIVE_HIGH>;
如果外部驱动模块是低电平有效,则改成:
gpios = <&gpioa 0 GPIO_ACTIVE_LOW>;
修改引脚前必须确认目标引脚没有被摄像头、LCD、UART、I2C、按键或其他
devicetree 节点占用。
apps/fd/boards/csk6_duomotai_devkit.overlay 已提供 2 MiB LittleFS 分区,
挂载点为 /lfs。特征文件包含:
保存时先写入 /lfs/fd_features.tmp,同步成功后再重命名为
/lfs/fd_features.bin,减少写入过程中断电造成文件损坏的风险。文件损坏或
版本不匹配时,程序会忽略该文件并保持关灯。
该持久化保证普通断电和复位后保留。重新整包烧录固件可能会覆盖 LittleFS
分区,不保证烧录升级后继续保留。
本功能采用“新增独立模块 + 原示例少量接入”的方式实现。主要业务都在新增的
face_lamp.c/.h 中,原有的人脸检测示例仍然容易与官方代码对照。
src/face_lamp.c(新增)该文件包含完整的台灯业务:
文件开头集中放置了初学者可能调整的参数:
#define FACE_MATCH_THRESHOLD 0.8f
#define FACE_COMPARE_INTERVAL_MS 500
#define FACE_MATCH_REQUIRED_COUNT 2
#define LAMP_OFF_DELAY_MS 5000
#define KEY1_CLEAR_HOLD_MS 3000
src/face_lamp.h(新增)只声明 face_lamp.c 对原示例提供的少量接口。一般不需要修改。
CMakeLists.txt只增加一行,把新增模块加入编译:
src/face_lamp.c
boards/csk6_duomotai_devkit.overlaylamp-control alias。prj.confsrc/main.cface_lamp.h 头文件和一次 face_lamp_handle_key() 调用。src/comp_fd.cface_lamp.h 头文件。face_lamp_process(info),用于自动识别。face_lamp_init(feature_store),用于初始化 GPIO、fd_service_gcs_feature_compare() 换成face_lamp_compare();函数其余显示和打印逻辑保持不变。执行以下指令进行代码编译(以 Windows CMD 终端为例):
lisa zep build -b csk6_duomotai_devkit apps/fd -p
使用 Type-C 数据线连接开发套件的 DAP_USB接口,选中以下其中一种方式对固件进行烧录:
cskburn desktop是一款聆思推出的桌面烧录工具,在下载并安装 cskburn desktop 烧录工具后,双击
图标运行软件:
1.点击串口下拉框,选择连接开发套件后识别到的串口编号;
2.将编译输出的.bin文件拖拽进烧录区域;
3.点击开始烧录,等待烧录完成。

若您已按照 《环境搭建》 教程完成开发环境的安装,可在编译完成后执行 lisa zep exec cskburn 指令完成烧录。
lisa zep exec cskburn -s \\.\COMxx -C 6 -b 1500000 0x000000 --verify-all .\build\zephyr\zephyr.bin
请将命令行中的的 COMx 替换为开发套件在 PC 上对应的串口号(可通过设备管理器查看)。例如:
COM3。
lisa zep exec cskburn -s PORT -C 6 0x000000 --verify-all ./build/zephyr/zephyr.bin -b 1500000
请将命令行中的 PORT 替换为开发套件连接在 PC 上对应的串口号。例如:
/dev/ttyUSB0。