当前位置: 首页 > news >正文

ARM资源记录《AI嵌入式系统:算法优化与实现》第八章(暂时用不到)

1.CMSIS的代码

书里给的5,https://github.com/ARM-software/CMSIS_5
现在有6了,https://github.com/ARM-software/CMSIS_6
在这里插入图片描述
这是官网的书,介绍cmsis函数的https://arm-software.github.io/CMSIS_5/Core/html/index.html
在这里插入图片描述

2.CMSIS介绍

Cortex-M系列ARM处理器在嵌入式系统中得到广泛应用,不同的Cortex-M ARM处理器配备不同的外部控制器,但执行二进制指令的核心是相同的。为了提高这一系列ARM处理器软件的开发效率,ARM公司从2008年开始,推动并开发了CMSIS软件接口标准。CMSIS是Cortex Microcontroller Software Interface Standard的首字母缩写,它的英文全称表明CMSIS主要面向Cortex-M系列ARM处理器,但现有的CMSIS软件包也提供了少量针对Cortex-A5/A7/A9系列ARM处理器的内容。
在这里插入图片描述

3.CMSIS子模块

·CMSIS-Core
CMSIS-Core提供ARM处理器启动时最初运行的代码、处理器内部单元的访问代码以及外设控制器部分代码。这些代码包括处理器、寄存器的基本配置,默认的中断服务程序的代码,时钟中断设置等。这部分代码为后续的软件执行提供一个最基本的运行环境。
·CMSIS-DAP
CMSIS-DAP中的DAP来自英文Debug Access Port的首字母。它规定了ARM处理器和调试器的统一接口,包括调试控制命令、数据格式等信息。CMSIS-DAP同时包括了ARM处理器调试控制固件(firmware)的具体实现,它使得PC端的调试软件通过USB口和ARM处理器通信,并执行调试任务。利用CMSIS-DAP提供的固件可以快速实现一个Cortex处理器的仿真器硬件,如图8-2所示。
关于CMSIS-DAP的细节,请参照https://arm-software.github.io/CMSIS_5,我们在这里不详细展开。
在这里插入图片描述
·CMSIS-Zone
对于复杂的ARM处理器架构以及多核ARM处理器,不同软件模块运行在相互分离的不同“空间”。这里的“空间”就是英文单词Zone,它包括了软件模块运行的地址访问范围以及能够访问的外围控制器集合两部分。CMSIS-Zone定义了用于描述不同空间的文件格式,并提供图形化的界面生成这些描述文件。而这些描述文件能够进一步被自动代码生成工具使用,生成各种程序源代码,包括编译链接脚本文件、地址空间定义的头文件、CPU启动时刻的初始化代码、C/C++代码框架等。
·CMSIS-RTOS
CMSIS-RTOS是实时操作系统(Real Time Operating System,RTOS)的接口API,它本身不是RTOS,需要和第三方提供的RTOS一起使用,但它为上层应用提供名称统一的API接口,通过这些API调用底层不同类型操作系统的服务。使用CMSIS-RTOS定义的API接口,使得运行在操作系统上的用户应用程序可以和底层操作系统的类型“无关”,方便应用程序移植到兼容CMSIS-RTOS的不同实时操作系统上。图8-3所示是基于CMSIS-RTOS架构的示意图。
在这里插入图片描述
·CMSIS-NN
CMSIS-NN包括和神经网络相关的数学运算代码,其中一部分运算基于CMSIS-DSP实现。它具体包括了神经网络卷积层的卷积运算、激活函数运算、神经网络全连接层的计算、softmax运算等。
·CMSIS-DSP
CMSIS-DSP包括一系列数学运算的实现代码,用于各类信号处理应用,内容包括快速算法、复数运算、矩阵运算、时域/频域变换运算、数据统计、插值等数学运算。它同时也包括和应用相关的滤波运算和电机控制代码。这些代码针对特定的处理器进行了手工优化,因此对于不同的ARM处理器类型有不同的版本,用户程序需要用“宏开关”来选择和所使用的处理器匹配的代码。
·CMSIS-Driver
CMSIS-Driver定义了处理器内置的外部设备控制器的驱动程序API接口,包括描述不同设备操作函数API的头文件以及建议的设备操作流程。使用CMSIS-Driver定义的驱动程序API接口使得用户应用程序能够和设备的具体型号保持相对“独立”,便于软件在不同处理器上移植。需要注意的是,驱动程序API接口仅仅是头文件里的函数申明,而具体的代码实现细节还是需要第三方开发完成。由于CPU外围控制器的多样性,CMSIS-Driver定义的内容随着硬件产品更新而不断扩充。
·CMSIS-SVD
CMSIS-SVD中的SVD是指System View Description,即“系统视图描述”,CMSIS-SVD定义了基于XML文本的处理器外设信息和参数格式,这一格式的文本能够清晰地描述每种Cortex-M处理器的特性,包括处理器型号、总线位宽、外围控制器特性、片内寄存器等。ARM的硬件调试器通过这些描述文件,在调试时为程序员提供处理器状态数据显示。图8-4给出了CMSIS-SVD定义的XML文件的层次化结构,它从高到低定义了ARM处理器的所有参数信息,包括了从器件级、处理器级、外围控制器级、存储器级、寄存器域级和每个位域取值的信息。
在这里插入图片描述

相关文章:

ARM资源记录《AI嵌入式系统:算法优化与实现》第八章(暂时用不到)

1.CMSIS的代码 书里给的5,https://github.com/ARM-software/CMSIS_5 现在有6了,https://github.com/ARM-software/CMSIS_6 这是官网的书,介绍cmsis函数的https://arm-software.github.io/CMSIS_5/Core/html/index.html 2.CMSIS介绍 Cort…...

微信小程序2

一,视图层 1.什么视图层 框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。 将逻辑层的数据反映成视图,同时将视图层的事件发送给逻辑层。 WXML(WeiXin Markup language) 用于描述页面的结构。 WXS(WeiXin Script) 是小程序的一套脚本语…...

G.711语音编解码器详解

语音编解码利用人听觉上的冗余对语音信息进行压缩从而达到节省带宽的目的。值得注意的是,本文说的是语音编解码器,也就Speech codec,而常用的还有另一种编解码器称作音频编解码器,英文是Audio codec,它们的区别如下。 以前在学校的时候研究了很多VoIP的编解码器从G.723到A…...

蓝桥杯每日一题2023.10.17

迷宫 - 蓝桥云课 (lanqiao.cn) 题目描述 样例: 01010101001011001001010110010110100100001000101010 00001000100000101010010000100000001001100110100101 01111011010010001000001101001011100011000000010000 0100000000101010001101000010100000101010101100…...

16.SpringBoot前后端分离项目之简要配置一

SpringBoot前后端分离项目之简要配置一 前面对后端所需操作及前端页面进行了了解及操作,这一节开始前后端分离之简要配置 为什么要前后端分离 为了更低成本、更高效率的开发模式。 前端有一个独立的服务器。 后端有一个独立的服务器。两个服务器之间实时数据交换…...

Probability Calibration概率校准大比拼:性能、应用场景和可视化对比总结

在机器学习中,概率校准(Probability Calibration)是一个重要的概念。简单来说,概率校准就是将分类器输出的原始预测概率转换为更准确、更可靠的概率值。这样做的目的是为了让模型的预测结果更接近实际情况,从而提高模型在特定应用场景中的可用性。 在Python的Scikit-Lear…...

PHP 球鞋在线商城系统mysql数据库web结构apache计算机软件工程网页wamp计算机毕业设计

一、源码特点 PHP球鞋在线商城系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php球鞋在线商城系统 代码 https://download.csdn.net/download/qq_41221322/8843725…...

使用Apache和内网穿透实现私有服务公网远程访问——“cpolar内网穿透”

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…...

PreparedStatement

使用参数化查询:使用预编译的语句和参数化查询来执行SQL语句,而不是将用户输入直接嵌入到SQL语句中。这将帮助防止恶意输入注入SQL语句。...

CSS3 新增属性-边框圆角-文字阴影-盒子阴影

边框圆角 CSS 边框圆角可以通过 border-radius 属性来实现。该属性用于设置元素的圆角大小,支持四个值分别表示上左、上右、下右和下左四个角的圆角半径大小,也可以使用两个值分别表示上下和左右两个方向的圆角大小,甚至可以只使用一个值来…...

制作.a静态库 (封盒)

//云库房间 1.GitHub上创建开源框架项目须包含文件: LICENSE:开源许可证;README.md:仓库说明文件;开源项目;(登录GitHub官网) 2. 云仓储库构建成功(此时云库中没有内容三方框架)!!! 3. 4.5. //…...

一台服务器,一个新世界

我如何看待服务器 当我拥有一台服务器,我看到的不仅仅是一块硬件,而是一扇打开未来的大门,一个我可以将自己的愿景和创意投射到其中的平台。这台服务器是我的工具,我的画布,我将在其中铸造我的数字梦想。 第一步我要…...

keep-alive 是 Vue 的一个内置组件,用于缓存其他组件的实例,以避免重复渲染和销毁,它可以在需要频繁切换的组件之间提供性能优化

目录 keep-alive 使用 keep-alive 的示例代码: 手动清除组件缓存的示例代码: keep-alive 组件有以下几个优点: keep-alive 的原理: 使用 keep-alive 组件,你可以包裹需要缓存的组件,然后这些组件在切…...

(八)Python类和对象

Python 语言在设计之初,就定位为一门面向对象的编程语言,“Python 中一切皆对象”就是对 Python 这门编程语言的完美诠释。 类和对象是 Python 的重要特征,相比其它面向对象语言,Python 很容易就可以创建出一个类和对象。同时&am…...

黑客利用人工智能窃取医疗数据的 7 种方式

人工智能被描述为医疗保健行业的一把双刃剑。基于人工智能的系统可以分析大量数据并在早期和可治疗的阶段检测疾病,它们可以比任何人类更快地诊断症状,并且人工智能正在帮助药物开发,使新的救命药物得以识别并将其推向市场速度更快且成本显着…...

OJ第四篇

文章目录 链表分割环形链表有效的括号 链表分割 链接: 链表分割 虽然这个题牛客网中只有C,但是无所谓,我们只要知道C是兼容C的就可以了 至于说这个题的思路,我们就弄两个链表,把小于x的结点放到一个链表中,剩下的放到另一个链表…...

L2-022 重排链表

给定一个单链表 L1​→L2​→⋯→Ln−1​→Ln​,请编写程序将链表重新排列为 Ln​→L1​→Ln−1​→L2​→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。 输入格式: 每个输入包含1个测试用例。每个测试用例…...

css 特别样式记录

一、 这段代码神奇的地方在于, 本来容器的宽度只有1200px,如果不给img赋予宽度100%,那么图片 会超出盒子,如果给了img赋予了宽度100%,多个图片会根据自己图片大小的比例,去分完那1200px,如图二。…...

多数元素[简单]

优质博文:IT-BLOG-CN 一、题目 给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于n/2的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3…...

34 个高质量免费教育资源

🧑‍🎓 综合型在线学习网站:21个 🛜 专业类在线教育网站:13个 ⬇️⬇️⬇️ 0 examtopics www.examtopics.cn 专业的AWS等IT认证考试题库 一、综合型在线学习网站 1、Coursera coursera.org 美国斯坦福大学两名计算机…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

计算机系统结构复习-名词解释2

1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...

Springboot 高校报修与互助平台小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,高校报修与互助平台小程序被用户普遍使用,为…...