RT-AK 之 STM32 插件 Linux 支持(无界面版)

Author: lebhoryi@gamil.com
Date: 2021/06/02

前言:

  • RT-AK 地址:github

  • RT-AK 之 STM32 插件快速上手地址:github

(RT-Thread 开发)之前是仅适用于 Windows 10 场景下,发现对于 Linux 开发者有点不太友好。

有一个解决方法是:在 Windows 环境下先用 RT-AK 生成 AI BSP,然后切换到 Liunx 编写应用代码,这样就比较麻瓜。

所有就有了现在这个教程。距离保姆级的教程差的有点远,我尽量努力说明每一个步骤。有问题请留言

1. 运行前的准备

我用的还是 ART-PI BSP,可以换成其他 stm32 的板子

准备以下四份重要重要重要的材料:

IndexPrepareExample
1硬件以及 BSPART-PI BSP
2神经网络模型./rt_ai_tools/Model/keras_mnist.h5
3STM32 AI 插件X-CUBE-AI
4RT-AKRT-AK 代码克隆到本地
  • 准备 ART-PI BSP 下载地址: ART-PI
  • 准备 X-CUBE-AI 下载地址
    • 选择 linux 版本
    • 选择 v5.2.0 版本

2. RT-AK 运行

已经将 RT-AK linux 版本的代码补充,直接运行即可

具体的和 Windows 版本一样。

内部的流程请看源码或者 plugin_stm32 仓库下的 readme 文档

请在 rt-ak/RTAK/tools 路径下运行该程序。

# 基础运行命令
$ python aitools.py --project=<your_project_path> --model=<your_model_path> --platform=stm32 --ext_tools=<your_x-cube-ai_path> --clear

# 示例
$ python aitools.py --model="./Models/keras_mnist.h5" --project /home/lebhoryi/RT-Thread/test --platform stm32 --ext_tools /home/lebhoryi/Software/x-cube-ai --clear

# 指定转换模型的名称,--model_name 默认为 network
$ python aitools.py --project=<your_project_path> --model=<your_model_path>  --model_name=<model_name>  --platform=stm32 --ext_tools=<your_x-cube-ai_path>

3. 编译

需要安装编译器 gcc-arm-none-eabi-6_2-2016q4,参考:在 Ubuntu 平台开发 RT-Thread

3.1 安装 Scons 和 ncurses

$ sudo apt-get install scons libncurses5-dev

3.2 安装编译器

使用 apt-get 命令安装的编译器版本太旧会导致编译报错,

可依次使用如下命令下载安装新版本,

下载链接和解压文件夹名因下载版本而异:

tom@laptop:~$ cd /tmp/
tom@laptop:/tmp$ wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/6-2016q4/gcc-arm-none-eabi-6_2-2016q4-20161216-linux.tar.bz2
tom@laptop:/tmp$ tar xf ./gcc-arm-none-eabi-6_2-2016q4-20161216-linux.tar.bz2
tom@laptop:/tmp$ mv gcc-arm-none-eabi-6_2-2016q4/ /opt/
tom@laptop:/tmp$ /opt/gcc-arm-none-eabi-6_2-2016q4/bin/arm-none-eabi-gcc --version

以上命令下载编译器,并安装到 /opt/gcc-arm-none-eabi-6_2-2016q4/

如果最后输出结果如下,则安装完成:

arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

3.3 设置指定编译器

~/.bashrc 最后面添加下面这一行:

export RTT_EXEC_PATH=/opt/gcc-arm-none-eabi-6_2-2016q4/bin

3.4 编译

进入到 BSP 路径下,运行 scons -j 6

4. 下载固件

这里我选择的是 STM32Programmer CLI

linux 版本安装步骤:

  1. 教程

  2. 下载 SetupSTM32CubeProgrammer

  3. 运行 ./SetupSTM32CubeProgrammer-2.7.0.linux

  4. 设置环境变量 export PATH=<my STM32CubeProgrammer install directory>/bin:$PATH

编译的命令:

# 进入到你的 BSP 路径
$ cd <BSP>

# extload 是 art-pi 专属下载算法
$ STM32_Programmer_CLI -c port=SWD --extload ./board/stldr/ART-Pi_W25Q64.stldr -d rtthread.bin 0x90000000 -Rst -s

5. 运行程序

我们提供了一份运行模型推理的示例应用代码,mnist_app.c

下载解压,放置到 <BSP>/applications 路径下,然后重新编译和烧录

串口通信工具我用的是 minicom,具体安装和使用请百度

# 查看串口
$ ls /dev

# 我的串口是 /dev/ttyACM0
$ minicom -wD /dev/ttyACM0

 \ | /
- RT -     Thread Operating System
 / | \     4.0.3 build Jun  2 2021
 2006 - 2020 Copyright by rt-thread team
msh />mnis
mnist_app
msh />mnist_app
[AI.LOG]run_time_cost:1
[AI.LOG]The Mnist prediction is : 7
msh /> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值