创建在 PC 上验证 X-Cube-AI 算法的工程 LAT1551
对于 x-cube-ai 所生成的算法代码,一种高效的方式是,是在 PC 上使用 C 语言,读取所有数据,进行全部验证。
关键字:x-cube-ai, 上位机,自动测试
1. 前言
很多人拿到 x-cube-ai 生成的算法代码,会对数据进行手工验证,这样做非常的低效,且容易遗漏。对于 x-cube-ai 所生成的算法代码,一种高效的方式是,是在 PC 上使用 C 语言,读取所有数据,进行全部验证。
2. 基础
2.1. STM32CubeIDE 开发上位机工具
假定你已经熟悉使用 STM32CubeIDE 开发上位机工具,安装好 STM32CubeIDE 的上位机开发工具链。也就是你已经知道如何生成一个 hello 工程,如下图 1 所示:

图1. STM32CubeIDE 下 hello 工程
2.2. 使用 X-Cube-AI 从模型生成算法代码
假定你已经会使用 X-Cube-AI 从模型生成算法 C 文件,如下图 2 所示。

图2. X-Cube-AI 生成的 C 模型文件
3. 步骤
3.1. 复制 x-cube-ai 生成的算法源文件
首先在工程目录下建立一个 model 目录,存放 x-cube-ai 生成的模型算法。目录结构如下图 3 所示:

图3. hello 工程目录
然后将 x-cube-ai,不管是图形界面,还是命令行,生成的文件复制到 model 目录里,如下图 4 所示。

图4. 工程目录(model)
3.2. 复制 x-cube-ai 上位机支持文件
首先在工程目录下建立一个 cubeai_lib 目录。然后可
从%X_CUBE_AI_DIR%/Utilities/%OS%/targets/common/EmbedNets/tools/inspector/
workspace/获取 x-cube-ai 上位机支持文件,如下图 5 所示:

图5. x-cube-ai 上位机支持文件
可以全部复制。但我们只需要 lib 和 include 目录。复制后的 cubeai_lib 目录效果如下图6:

图6. cubeai_lib 目录
3.3. 配置 STM32CubeIDE
首先在工程文件加入 model 和 cubeai_lib 目录,效果如下图 7 所示:

图7. STM32CubeIDE hello 工程目录
然后,加入 cubeai_lib 中的 include 和 model 路径,也就是"../cubeai_lib/include"和 "../model",如下图 8 所示。这是为了包含编译时需要的头文件。

图8. hello 工程 includes 路径设置
我们还需要链接 X-Cube-AI 的静态库如下,包括库的路径"../cubeai_lib/lib/static",以及库的名字:runtime,st_cmsis_nn,cmsis-nn,x86_cmsis,如下图 9 所示。

图9. hello 工程 Libraries 设置
4. 修改代码
app_x-cube-ai.c 中包含了 main.h,这在上位机环境中不存在,我们可以选择删除它或者创建个空的 main.h,见下图。

图10. 文件 main.h 的处理
加入对 X-CUBE-AI 模板的调用,主要是包含头文件“#include <app_x-cube-ai.h>”以及两个函数调用“MX_X_CUBE_AI_Init();”和“MX_X_CUBE_AI_Process();”,效果如下图 11 所示:

图11. main 函数代码示例
至此,在 PC 上验证 X-Cube-AI 算法的框架就已经完成。现在,你可以加入更多代码,例如,从文件中读入 X-Cube-AI 算法的输入,以及比较和或打印 X-Cube-AI 算法的结果。
5. 小结
你可以看到基于 STM32 的生态工具 STM32CubeIDE,和 STM32 的生态软件 X-CUBE-AI,能够实现上位机与 STM32 的联动,从而提供给你一项能力,在桌面上以一种简单的方式实现人工智能算法的大数据自动验证。

更多推荐


所有评论(0)