qt_idf 是一套在 PC 上调试和开发物联网相关功能组件的开发环境,原来是基于 QT 搭建的编译环境,所以叫 qt_idf ,后来编译方式改成 cmake + bat 脚本,通过命令行进行编译。
主要目的是在PC上有一个 C 编译环境,方便调试和验证一些与硬件平台无关的软件功能;也便于开发新的功能组件,移植到嵌入式平台。对于一些与硬件无关,对平台依赖少的软件功能,优先考虑是否在PC上调试或者使用更高级的编程语言实现(比如python)可以更方便和节省时间。
使用 qt_idf 的作用主要有以下几点:
-
缩短调试验证的时间
节省软件调试时在特定硬件平台上编译、下载固件、抓log、导出dump这些步骤的时间
-
双重验证环境
软件功能在硬件平台上运行有问题,代码基本一样,可以在PC上也测试验证一下是否同样有问题。
-
评估软件功能实现
移植第三方库、开发功能组件,可以先尝试在PC上实现,确定没有问题和依赖,可以再移植到硬件平台环境。
打开 cmd 或者 power shell,执行编译指令:
# cmd 设置编译环境
env
#powershell 设置环境变量
$env:path=&".\env.bat"
#切换到例程路径
cd examples
# 编译
make
# 清理
make clean
构建工具使用 cmake + bat 脚本。
- env.bat 设置环境变量
- config.bat 配置编译工具链
- scripts\boards\project_config.cmake 和 scripts\boards\project_default_config.h.in 功能编译开关
- .github\workflows\ci.yml GitHub 流水线配置
整体的目录结构:
- 多媒体
- GUI 组件
- lvgl
- qrcode 二维码编码
- code128 条形码编码
- lv_fs_if 文件系统
- lv_drivers 显示和输入设备驱动
- lv_lib_jpg jpg 图片解码
- lv_lib_png png 图片解码
- gif 图片解码
- bmp 图片解码
- freetype 支持矢量字体
- ZBAR
- SDL2
- audio codec
- Speex
- Opus
- fdk-aac
- amrnb
- amrwb
- mp3dec
- GUI 组件
- 网络组件
- iotkit-embedded
- libwebsocket
- http client
- qcloud-iot-sdk-embedded-c
- paho MQTT
- OSA
- 加密套件
- mbedtls
- wolfssl
- micro-ecc
- TOTP
- 构建工具
- windows_x86_mingw_gcc
- github workflows
- ninja
- kconfig
- 序列化和反序列化
- cJSON
- protobuf-c
- CBOR
- 其他
- Unity
- bsdiff
- KISS FFT
- JerryScript