草庐IT

深度学习入门:使用CMSIS-NN在微控制器上部署模型的完整指南与Python Jupyter实践

1.引言随着深度学习技术的日益成熟,其应用领域也在不断扩展。从大型数据中心到边缘设备,深度学习模型已经渗透到我们日常生活的各个方面。特别是在嵌入式领域,如微控制器,深度学习的应用为各种设备带来了前所未有的智能化能力。但是,微控制器的计算能力和存储空间都相对有限,如何在这样的设备上运行深度学习模型成为了一个挑战。CMSIS-NN就是为此而生的一个库,它为ARMCortex-M系列微控制器提供了一套高效的神经网络API。在本文中,我们将详细介绍如何使用CMSIS-NN在微控制器上运行深度学习模型,并通过Python和Jupyter为您展示整个流程。2.CMSIS-NN简介CMSIS-NN是ARM为

STM32 CubeIDE 使用 CMSIS-DAP烧录 (方法1--修改配置文件)

前言        STM32CubeIDE目前只支持ST-Link、J-Link.        到目前2023年12月,还没更新到直接支持CMSISDAP. 我们需要稍作修改才能让它支持CMSIS-DAP。    本篇方法:修改配置文件。修改后,可以在CubeIDE中使用CMSISDAP烧录,无需借助其它工具。    倘若尝试修改不成功,建议尝试方法2:借助一个小工具软件,烧录能更稳定。        STM32CubeIDE使用CMSIS-DAP烧录(方法2--借助外部小工具)准备确认Debug模式:双击IOC 文件>SYS>Debug>SerialWire接线方式:步骤-1:检查是否已

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

STM32-DSP库的使用一.CMSIS-DSP1.1DSP库简介1.2支持的函数类别1.3宏定义二、操作2.1STM32CubeMX配置基本工程2.2Lib库的方式实现(推荐)2.3手动添加DSP文件(可以下载官方最新库,功能齐全)三、MFCC测试DSP加速效果为验证语音识别MFCC用到快速傅里叶变换FFT,在工程中应用DSP库时对着网上各种教程暴雷难受,希望给大家提供帮助;并且以lib库、手动src移植两种方式分别实现;测试环境Crotex-M4实测有效(相比于Cortex-M3增加了浮点运算单元和数字信号处理(DSP)指令集,适用于需要处理复杂算法的应用);一.CMSIS-DSP1.1D

搭建 Makefile+OpenOCD+CMSIS-DAP+Vscode arm-none-eabi-gcc 工程模板

Embedded-GCC-Template第三方资源集合STM32F407-GCC-TemplateArm-none-eabi-gcc+Makefile+OpenOCD+CMSIS-DAP+Vscode工程模板一、本次环境搭建所用的软硬件1)WindowsorLinux(本文以Windows为主)2)JLink、Daplink、Wch-Link烧录器3)GNUArmEmbeddedToolchain交叉编译器4)Mingw-w64GCCforWindows645)Debug调试工具openocd6)VisualStudioCode二、软件安装配置GNUArmEmbeddedToolchain交

【STM32】驱动库的选择:CMSIS Driver、SPL、HAL、LL | 在ARM MDK、STM32Cube中如何选择?

阅读本专栏其他文章,有助于理解本文。👆文章目录一、开发库选择1.1概述1.2CMSISpack1.3SPL库1.4HAL库1.5LL库1.6寄存器开发二、代码对比2.1使用寄存器2.2使用CMSIS库2.3使用SPL库2.4使用HAL库2.5使用LL库2.6使用RTOS三、如何在软件中选择不同的库3.1ARMMDK3.2STM32CubeIDE一、开发库选择1.1概述STM32开发相关的库有很多,它们都是为了方便开发者使用STM32微控制器而提供的软件工具。根据不同的功能和层次,可以将它们分为以下几类:CMSIS库(准确来说是CMSISpack)(CortexMicrocontrollerSo

CMSIS-DAP无法使用的一个解决方案

我是一个比较注重使用工具的人,能用一个调试工具解决的问题,绝不想用两个。最近在使用一款STM32的下载调试器,这款调试器就是DAP-link。不同的厂商可能名字不一样,我购买的是WCH-link。一个透明外壳的小设备,上面自带一个串口。这就比ST-LINK强不少,不过在使用过程发现这个涉笔在keil里面能识别,就是没有出现所谓的单片机编号。如下图所示:很是郁闷,经过反复检测,发现没有问题。按照网上的说也加了复位按键,总是失灵。最后发现是在stm32cubemx配置时按照如下图配置即可正常使用: 将SYS下的DebugSerialWirl打钩才可以使用dap-link。记录一下自己踩的坑,方便后

FreeRTOS:CMSIS_V1与CMSIS_V2区别

        使用STM32CubeMx生成代码时,会让我们选用CMSIS_V1还是CMSIS_V2,这两者有什么区别?        V2比V1具有更多的功能,下面是STM32F103VET的STM32CubeMx生成代码不经任何修改编译后内存、Flash情况:V1: V2:         在代码上V1、V2区别如下:         V2提供了更多的功能,如果我们不使用带os前缀的功能,只使用FreeRTOS原生的接口,那么CMSIS-V1、V2对我们来说都是多余的,举例,使用CMSIS-V1创建任务方法为: osThreadStaticDef(defaultTask,StartDef

STM32:CMSIS-DSP使用指南(在单片机上运用常用的数学运算)

1.keil环境搭建在STM32中使用DSP库_linuxweiyh的博客-CSDN博客2.官方文档[STM32官方DSP文档](file:///E:/Professional_APP/stm32_cubeMX/install_pack/STM32Cube_FW_F4_V1.27.1/Drivers/CMSIS/docs/DSP/html/modules.html)总目录->1.基本数学运算函数->2.快速数学运算函数->3.复数运算函数->4.滤波器->5.矩阵函数->6.数学变换->7.电机控制函数->8.统计函数->9.支持函数->10.插值函数->11.示例

STM32 FreeRTOS CMSIS—OS

STM32FreeRTOSCMSIS—OS前言1.关于osThreadNew()1.1FreeRTOS线程与任务的关系1.2osThreadNew()1.2.1osThreadNew()如何实现动态创建与静态创建的选择1.2.2xTaskCreate()任务栈空间理解1.2.3CMSIS-OS与FreeRTOS任务栈空间单位不同!1.2.4选择动态分配时osThreadNew()分配的任务栈空间前言使用STM32CubeMX代码生成,在STM32Cube固件中,通过ARM提供的通用CMSIS-OS封装层,将FreeRTOS用作实时操作系统。也就是说在一套代码里有着两套标准,在阅读源码时需要注意

鸿蒙开发板HI3861 利用蜂鸣器播放音乐 open Harmony1.0.0(附cmsis_os2.h源码)

    本文利用鸿蒙开发板HI3861在鸿蒙1.0.0源码下利用蜂鸣器播放音乐。pwm_buz.c#include#include"ohos_init.h"#include"cmsis_os2.h"#include"wifiiot_gpio.h"#include"wifiiot_gpio_ex.h"#include"wifiiot_pwm.h"#include"hi_pwm.h"#include"hi_time.h"staticconstuint16_tg_tuneFreqs[]={ 0, //Defaultclock,40MHz //高音 38223,//1 34052,//2 30338,
12