中期审核报告
1、设备硬件的简单理解
外形与引脚的简单配置
MAX78000FTHR是基于MAX78000的小型板微控制器单元(MCU)。
该 MCU 面向在边缘运行的人工智能 (AI) 应用程序。在这种情况下,“边缘”并不意味着技术的前沿(尽管这就是芯片);这意味着靠近需要它的地方,甚至靠近传感器,而不是在数据中心附近的某个地方。例如,边缘是在您的家中或汽车中,甚至是您穿的东西。在边缘运行的 AI 应用程序完全可以自行完成工作,而无需将复杂的计算分包给云服务。为此,它需要大量的处理能力,这就是为什么 MAX78000 将 ARM Cortex-M4 处理器与浮点单元 (FPU)、卷积神经网络 (CNN) 加速器和 RISC-V 内核组合成一个单个设备。
2、环境的搭建
window10下配置Maxim SDK
这一步比较无脑,直接下载安装包,安装就好:
https://www.maximintegrated.com/en/design/software-description.html/swpart=SFW0010820A
安装完成之后,你会在自己的电脑上发现这样两个软件:
恭喜你开发环境都搭建好了!!!
3、新建项目与已有项目导入
新建一个项目Hello World
打开Eclipse MaximSDK,并新建一个Pro:
输入你的项目名称:
“选择示例类型”可以是您感兴趣的任何固件示例。请注意,此处未列出特定于 CNN 的示例。CNN 示例必须通过下面介绍的不同机制导入。
如果您使用的是 PICO 调试器,请将适配器类型设置为MAX32625_PICO。如果您使用的是 Olimax 调试器,请将适配器类型设置为 CMSIS-DAP。咱们好像提供的是CMSIS-DAP,可以打开自己的设备管理器看一下。
选择好之后,点击完成,你就可以打开你的helloworld例程了。
导入配置CNN例程
File->Import
Existing Projects into Workspace
然后NEXT,需要在 SDK 树中提供 CNN 示例的路径,如下图所示。路径将取决于 SDK 的安装位置:
选择项目所在文件夹,IDE会自动找到项目工程:
Maxim SDK附带了许多卷积神经网络演示,可以导入到Eclipse中。这些固件示例可在SDK中的示例\MAX78000\CNN中找到。选择“文件”->“导入”,然后选择“常规>将现有项目放入工作区”。使用后续对话框,导航至示例\MAX78000\CNN并导入您感兴趣的所有固件项目。您可以在“实施例\MAX78000”目录中找到MAX78000的外设应用示例。
所有CNN示例都可以在MAX78000EVKIT上运行,但MAX78000FTHR目前并不支持所有CNN示例。以下是MAX78000 FTHR支持的示例列表:
- cifar-10
- cifar-100
- mnist
- mnist-riscv
- mnist-streaming
- kws20_v3
- kws20_demo
- faceid
- faceid_demo
- faceid_evkit
- cats-dogs_demo
- rps
- snake_game_demo
我这里选择了kws20_demo,别问为什么,问就是我准备训练语音模型,看大神们都是这个名字的框架。
看到没,这就是你打开的一个CNN项目,等你训练好模型之后,应用层面的逻辑开发就在这里进行。
而且生怕咱们不会玩,人家直接给了一个readme,教你怎么配置。
除此之外,还是有很多细节需要注意的,很多的坑,这里就不细说了,需要的可以参考我这个云笔记:
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/dmrgc5?singleDoc# 《window10下配置Maxim SDK》
其实以上这些都是关于IDE的一些配置,而我们实际应用中其实有两条路:
- 第一条:就是在我们上面配置好的IDE中,编辑自己的代码,编译,烧录,测试……
- 第二条:还可以在MINGW命令行里进行代码的编译与烧录操作,具体的命令仍然可以参考我上面那个云笔记
对于一个未来的嵌入式工程师来说,拿到一个新的开发板,最迫不及待想做的就是测试它各种外设的功能。
这里只展示一些最后的效果图,具体过程可参考我这个云笔记:
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/xpeuut?singleDoc# 《基础外设代码测试》
ADC采样 CRC校验位 DMA GPIO除了这些基本外设之外,每一个CNN的网络模型我也都进行了测试,这里就不多说了,具体可以去下面这个云笔记参考:
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/gaepuq?singleDoc# 《烧录kws20_demo等官方例程》
5、训练自己的模型这个项目的核心还是在于能训练出自己的CNN网络模型。
这个过程就更复杂了……
从准备工作:
安装WSL2、安装显卡驱动、确保CUDA可用于wondow、安装系统包、拉取工程代码、虚拟环境搭建……
到开始训练:
硬件加速检查、训练脚本……
更细节的东西还是参考我的云笔记吧,
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/ie2v7v?singleDoc# 《训练自己的模型》
还有一个关于CUDA的大家也可以看看:
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/bk48eg?singleDoc# 《CUDA是什么?》
6、一些上层的应用测试与开发比如在语音识别这个领域中,实现一些小功能:
具体效果就像我视频里展示的那样,很有意思,可能这就是做嵌入式的乐趣(手动狗头)
当然还有TFT彩屏的测试,细节的东西同样放到云笔记里,需要的可以参考:
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/hwblllxs05shyv1d?singleDoc# 《一些代码修改小测试》
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/ugfrck7ia1edhvk3?singleDoc# 《2.4寸TFT显示屏购买与测试》
https://www.yuque.com/aiyanjiudexiaohutongxue/igotvh/aycwd1wa0aycci4a?singleDoc# 《TFT相关修改与配置》
7、下一步计划下一步正在准备租一个带GPU的云服务器,因为训练模型可太麻烦了!!!
训练两个月,上层开发半小时,这谁受不了。