AI+嵌入式之:从0到1将TinyML部署到国产单片机GD32F103(附详细步骤,建议收藏)
目标板:淘宝上购买的GD32F103VET6的核心板。下载调试:J-link-OB串口:USB转TTL工具。
大家好,我是子衡,嵌入式 AI 工程师,《AI+嵌入式:让单片机学会思考》课程主理人,专注AI在 MCU 上的落地实践。
上一篇文章中,国产单片机跑AI,使用GD32验证可以在国产单片机上运行TinyML,今天将详细的GD32移植TInyML的步骤总结出来,供大家学习。
一、硬件与最小验证环境
1.硬件
-
目标板:淘宝上购买的GD32F103VET6的核心板。

-
下载调试:J-link-OB
-
串口:USB转TTL工具
2.软件
-
J-flash工具
-
Keil:MDK5.43a
-
串口波形显示工具

二:实操步骤:
1.建立GD32的keil的工程模版
这一步是使用单片机的基础步骤,这里不再赘述。不清楚的同学们可以联系我获取视频教程,也可以从网络自行搜索视频教程。
本篇文章重点讲解如何移植TInyML,所以直接借用小编已经建好的工程模板。
2.将已经建好的工程模板复制到新目录

3.复制TensorFlow源代码和模型文件到工程
将已经下载后的TensorFlow的源代码(这里有介绍怎么获取TensorFlow的源码)复制到工程目录下。(可以自行根据需要修改工程定义)。
将模型文件转换后的文件(包含有network.h等)复制到工程目录下。

4.打开keil工程
打开目录中的****.uvprojx文件,使用keil打开工程。
5.添加源代码

可以通过上图中所示的File Extensions,来添加Groups以及所对应的文件。

由于Keil实在太不智能,不能自动包含工程中的文件,需要手动一个一个的添加,所以很麻烦。
小编编写了一个上位机工具,可以通过拖拽文件的形式,一键添加目录下的所有文件。

可以联系小编,免费共享上图中的文件。
添加成功后的效果如下所示。

6.点击【options for Tatget】

如上图所示,点击【options for Tatget】
7.更改编译器

由于编译TensorFlaw的源代码,需要使用C++,所以要选择ARM编译器为:version 6。当ARM编译器选择Version 6的时候,可以发现上面的选项框中,出现了【C/C++ AC 6】。
如上面途中所示,还需要关闭【Use MicroLib】。
8.【C/C++ AC6】选项设置

在这个界面中,需要设置两个位置:(这里是重中之重,也是最容易导致程序编译失败的地方)
(1)在Define中添加全局宏定义:TF_LITE_STATIC_MEMORY、TF_LITE_STATIC_MEMORY,USE_HAL_DRIVER,STM32F103xE,KERNELS_OPTIMIZED_FOR_SIZE,CMSIS_NN
(2)添加路径包含

不清楚怎么操作的,可以将上面图片直接拿去抄作业。
9.点击全编译

上面步骤完成之后,即可对代码进行全编码。
10.下载程序,观察效果

11.演示效果
波形分析
说明:上面的步骤省略了非常多的关于工程如何配置、仿真器如何配置等等基础内容。
感兴趣的同学可以自行搜索如何配置,或者加入我的技术交流群在群中交流独联系我获取免费的视频教程。
更多推荐



所有评论(0)