STM32N6的开发日记(1):上手难度拉满的N6有哪些不同?

博主主要在WX写作,C站消息不能及时看见,如有需要联系请关注:《实在太懒于是不想取名》获取联系方式。

STM32N6作为意法半导体推出的首款集成自研神经处理单元的STM32产品以"MCU+NPU"的异构架构重新定义了边缘AI的算力边界,是意法半导体的MCU最前沿技术栈,不过由于其高难度技术应用以及需要的极其深厚的STM32使用经验以及神经网络基础概念,因此上手难度非常的高。

自从STM32N6发布以来,博主有幸获得一块STM32N657-DK开发板,闲暇之余陆陆续续折腾如何开发。因此将会陆陆续续发表一些使用STM32N6的使用笔记,以供将来的使用者参考。

回顾学习历程,主要是使用人群不多,导致踩了很多很多的坑,在后续使用STM32N6的文章中也会像大家陆续介绍这些点。

本文为简单的介绍一下STM32N6为后续的STM32N6文章提供基础。

STM32N6的存储分布

首先相较于常规STM32系列,STM32N657没有内置Flash,而是配备了高达4.2MB的SRAM,这代表着STM32N657想要长久的存储代码,必须借助于外部Flash存放代码应用程序代码。

为此必须要了解STM32N6的多种启动模式,需要了解Flash启动模式下的FSBL(First Stage Boot Loader)对应的三种模式:直接FSBL则是由STM32N6的BootRom程序将外部Flash存放的FSBL代码拷贝到内部后直接运行;FSBL_Load&Run则是在BootRom将FSBL拷贝到内部SRAM后,FSBL中的程序进一步的将外部Flash中的拷贝到芯片SRAM中进而运行;

FSBL_XIP则是省去了外部Flash拷贝到SRAM中的过程,直接在外部Flash就地进行;相较于传统的STM32MCU,STM32N6的内存管理更加的高级和复杂,但是也为N6带来了更多可能。

RIF内存安全管理

STM32N6是STM32MCU中首款引入RIF资源隔离框架的微控制器,旨在通过硬件级隔离与细粒度权限控制,实现系统资源(内存、外设、总线主设备等)的安全分区,降低软件漏洞被利用的风险。

RIF由RIMC(主设备管理)、RISAF(从设备地址过滤)、RIFSC(安全控制器)三大核心组件构成,协同实现资源隔离,因此在使用STM32N6中,一定要格外注意RIF权限设置(博主在这里踩了不少坑)。

Neural-ART Accelerator(NPU)

作为意法半导体推出的首款集成自研神经处理单元的STM32产品,其命名为Neural-ART Accelerator的NPU是专为边缘AI应用设计的核心组件,针对神经网络计算(如卷积、矩阵乘法、激活函数)进行了硬件优化,最高可达600 GOPS,能效比:平均能效达3 TOPS/W,在低功耗场景下(如电池供电设备)表现突出,无需额外散热装置。

采用近300个可配置乘法累加单元(MAC),支持灵活的算子映射(如卷积、全连接层),适配多种神经网络模型。

ST的流处理技术以流交换机为核心,通过运行时编程构建任意虚拟处理链,实现比硬件数据路径更灵活、比片上内存总线更高效的边缘AI数据处理。其支持多链并行、单向数据流与背压控制,可动态分叉或合并数据流,减少内存访问次数以降低功耗,同时通过流引擎与外部系统通信。

4个卷积加速器(CONV_ACC)执行核心计算,2个池化加速器(POOL_ACC)和2个激活加速器(ACTIV_ACC)分别处理池化与激活函数,4个算术加速器(ARITH_ACC)负责逐元素运算,流引擎(STREAM_ENG)高效调度数据流。此外,它还包含用于权重解压(DEC_UNIT)和指令解码(EPOCH_CTRL)的辅助单元,支持8/16/24位整数格式(无硬件浮点单元)。

其实可以看出STM32N6的NPU专注于卷积、池化等图象处理神经网络结构,并不是通用型神经网络加速单元,在循环神经网络 (RNN)、长短期记忆网络 (LSTM)等加速有限。

因此在STM32中部署神经网络模型时,可以通过ST Edge AI Core或者STM32Cube.AI来查看神经网络模型中哪些结构获得了硬件加速、哪些结构则是由CPU来执行运算。

总结

STM32N6以"无内置Flash+大容量SRAM"的创新架构,重新定义了MCU的存储范式。后续也会分享一些关于自己在探索这块芯片上的遇到的技术问题和解决办法。

相关推荐
LingLong_roar1 小时前
keil未指定 PY32F0 具体芯片型号导致编译报错及无法烧录问题
单片机·嵌入式硬件
见行AGV机器人3 小时前
AGV中工控机有什么用?
单片机·嵌入式硬件·非标定制agv·agv控制器
KWTXX3 小时前
TouchGFX 4.21.2 Designer与keil的联合使用【图形化】
单片机·嵌入式硬件
sweetone3 小时前
迷你电吹风速修
经验分享·嵌入式硬件
d111111111d4 小时前
STM32-UART抽象层封装
笔记·stm32·单片机·嵌入式硬件·学习
沃虎Chinty-034 小时前
工程师笔记:三大磁性元器件(共模电感/一体成型电感/CHIP LAN)选型要点与实战避坑
单片机·嵌入式硬件
华清远见IT开放实验室4 小时前
嵌入式系统化课程 学习内容与服务说明
linux·stm32·学习·嵌入式·全栈·虚拟仿真·测评中心
LCMICRO-133108477464 小时前
长芯微LCMDC7616完全P2P替代AD7616,16通道16位模数转换器(ADC)
stm32·嵌入式硬件·fpga开发·硬件工程·模数转换器adc·电力线监测
Joseph Cooper6 小时前
STM32MP157 Linux驱动学习笔记(五):子系统与工程边界(V4L2/IIO/devmem/UIO)
linux·stm32·学习