RT6xx 是一个跨界 MCU 系列,是一款突破性产品,结合了 MCU 和 DSP 的最佳功能,适用于超低功耗安全机器学习 (ML)/人工智能 (AI) 边缘处理、性能密集型远场语音和沉浸式 3D 音频播放应用。图 1 是 i.MX RT600。
它由一个运行速度高达 300 MHz、具有 32KB FlexSPI 缓存的 Cortex-M33 内核和一个可选的运行速度高达 600MHz、具有 96KB DSP 缓存和 128KB DSP TCM 的 HiFi4 DSP 组成。它还包含 PowerQuad 协处理器中的加密引擎和 DSP/Math 加速器。该设备具有 4.5MB 片上 SRAM。主要功能包括丰富的音频外设、带 PHY 的高速 USB 和先进的片上安全性。有一个 Flexcomm 外设支持多种 UART、SPI、I2C、I2S 等的配置。
图1
在最新版本的 SDK 中 i.MX RT600,它仍然不包含有关机器学习(ML)/人工智能(AI)的演示,因此需要开发人员自己创建这种演示。
为了实现它,将 eIQ 演示从 i.MX RT1050/1060 至 i.MX RT685 是最快的方法。下面介绍创建 eIQ(TensorFlow Lite 库)演示的步骤。
图2
图3
图4
图5
图6
main() 代码来自该帖子: TensorFlow Lite 的“Hello World”
在 MIMXRT685 EVK板 (图7),我们通过串行端口记录输入数据:x_value和推断的输出数据:y_value(图8)。
图7
图8
此外,我们使用 Excel 将接收到的数据与我们的实际值进行对比显示,如下图所示。
图9
总的来说,它复制了TensorFlow Lite 的“Hello World”的结果
图10
图11
那么,我们应该分配多大的堆区域呢?这是个好问题。不幸的是,没有简单的答案。不同的模型架构具有不同的输入、输出和中间张量的大小和数量,因此很难知道我们需要多少内存。
这个数字不需要精确——我们可以保留比我们需要的更多的内存——但由于微控制器的 RAM 有限,我们应该尽可能地保持它很小,以便为我们的其余程序留出空间。
我们可以通过反复试验来做到这一点。对于此应用程序演示,在将堆大小增加到之前的十倍后,代码仍然运行良好(图 12)。
图12