CMSIS体系[编辑中...]

2023-10-15 06:32
文章标签 编辑 体系 ... cmsis

本文主要是介绍CMSIS体系[编辑中...],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     CMSIS是什么,虽然名字跟CMMI很像,但其实没什么关系。

     借用百度百科的释义:ARM Cortex™ 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。

     

       简言之,CMSIS是由ARM公司和众多生产Cortex-M处理器的公司共同定义的一种软件接口标准,以实现不同Cortex-M处理器的软件重用,降低迁移成本。Cortex-M处理器是用来替代ARM7系列的,但CMSIS标准是随着Cortex-M的普及而提出的,ARM公司意识到了ARM7时代各个厂商的产品兼容性、可迁移性差的问题。同时从单片机开发继承而来传统的“基于寄存器”的开发方式的效率和开发人员培养难度越来越无法适应日趋复杂的应用开发。

       嵌入式软件从业人员要么是从单片机开发转来的,要么是从PC端应用开发转来的。前者有一定的电路和处理器芯片知识,但缺乏现代软件开发的方法和工程理论。后者普遍有高级开发语言的经历(C#,Java等)、了解诸如面向对象开发等较先进的方法,但他们缺乏电路和芯片的知识,甚至对寄存器都很难理解。

       CMSIS的出现无疑对基于CM芯片的开发带来了福音,其分层结构使软件有了良好的架构,降低了系统迁移的难度。对寄存器操作的封装(各厂商提供)降低了软件开发人员的难度。

       借用百度百科对CMSIS软件层次和组件的说明

(http://baike.baidu.com/link?url=pCmFJDdCNjcwZCSP9hSwbQSRbsx1ah0FGPDHUXJ9DUR8tuIkJfUwefFYL2HkZbh3wylsWx5oIMDXTB1-Z5-j2K#refIndex_1_5152578)

CMSIS软件层次

CMSIS可以分为多个软件层次,分别由ARM公司、芯片供应商提供。
其中ARM提供了下列部分,可用于多种编译器:
● 内核设备访问层:包含了用来访问内核的寄存器设备的名称定义,地址定义和助手函数。同时也为RTOS(实时操作系统)定义了独立于微控制器的接口,该接口包括调试通道定义。
● 中间设备访问层:为软件提供了访问外设的通用方法。芯片供应商应当修改中间设备访问层,以适应中间设备组件用到的微控制器上的外设。目前中间设备访问层仍处于开发过程中,本文不做详述。 芯片供应商扩展下列软件层:
● 微控制器外设访问层:提供片上所有外设的定义。
● 外设的访问函数(可选):为外设提供额外的助手函数。CMSIS为Cortex-Mx微控制器系统定义了:
● 访问外设寄存器的通用方法和定义异常向量的通用方法。
● 内核设备的寄存器名称和内核异常向量的名称。
● 独立于微控制器的RTOS接口,带调试通道。
● 中间设备组件接口(TCP/IP协议栈,闪存文件系统)。

CMSIS包含的组件

1、外围寄存器和中断定义: 适用于设备寄存器和中断的一致接口
2、内核外设函数:特定处理器功能和内核外设的访问函数
3、DSP 库:优化的信号处理算法,并为 SIMD 指令提供Cortex-M4 支持
4、系统视图说明(SVD):描述设备外设和中断的XML 文件。
该标准完全可扩展,可确保其适合于所有 Cortex-M处理器系列微控制器,从最小的8 KB 设备到具有复杂通信外设(如以太网或USB)的设备。(内核外设函数的内存要求少于1 KB 代码,少于10 字节RAM)。

       


      另外,Keil从v5.0版本开始内置了CMSIS的支持,相信随着新版本的发布,基于CMSIS体系的开发将受到厂商和开发人员的青睐。

     

这篇关于CMSIS体系[编辑中...]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215975

相关文章

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

jqgrid设置单元格可编辑

1 在单元格的属性列设置为editable。 2 点击编辑按钮的时候,触发某一行设置为edit的状态。 jQuery("#rowed4").jqGrid({url:'server.php?q=2',datatype: "json",colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],colModel

在幼儿园管理系统中,会议管理申请会议修改模块:多个与会人员的回显和修改(编辑)!

在幼儿园管理系统中,会议管理>申请会议>修改模块:多个与会人员的回显(复选框)和修改(编辑)!在处理与会人员的回显(复选框)和修改(编辑)出点问题。无法正确的回显(复选框)出来与会人员和修改(编辑)。 最后终于解决:修改(编辑)的思路是:先把原来的该会议记录下的所有与会人员删除,在添加,即可实现修改(编辑)功能。回显(复选框)的思路是:设置一个flag,判断一下是否要选中(复选框),即可实现

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常, 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例: public class Test {public static void main(String[] args) {run();}public static void run(){run();}} 堆栈溢出,这是由于JV

Vue3商品SKU多规格编辑组件

商品SKU多规格组件主要用于电商平台的商品详情页,帮助买家在选择商品时能够根据不同的规格(如颜色、尺码、容量等)进行筛选和购买。这种组件的设计旨在提升用户体验,简化购买流程,并确保买家能够准确地选择到自己需要的商品规格。以下是对商品SKU多规格组件的详细解析: 1. 定义与功能 SKU(Stock Keeping Unit)定义:SKU即库存量单位,是指宝贝的销售属性集合,供买家在下单

div标签变成可编辑

在html页面有很多得方用到<div>标签,开始的时候要想在一个<div>标签中显示一段文本我会先到用<textArea>标签,可是<textArea>标签会随着你的拉动,框的大小也回随着改变,有时会把原来的布局拉动的变得非常难看。 有次在看书,看到div是可以编辑的标签,只要在div标签中加上属性contentEditable=true即可,要想看到div就给div高度和宽度再给个颜色,这样就

软件架构风格: C2体系风格

通俗示例 想象一下你正在使用一套乐高积木来搭建一个复杂的模型。每块乐高积木都是一个独立的部件,而乐高积木之间的接口设计得非常标准化,使得你可以轻松地将不同的积木组合在一起。如果你想要更换掉模型中的某一块积木,你只需要把它拔下来,然后插入新的积木即可,不需要重新设计整个模型。 通俗解释 C2体系风格 C2是一种软件体系结构风格,它强调组件之间的松耦合和高内聚。在C2风格中,软件系统被设计为一

大数据开发体系,进来了解一下?

“5G失败、物联网已死、鼓吹大数据无用论”打开手机又是承接今日份的“丧”, 这种丧味十足的帖子我们已经被投喂得太多了 ,还是原来的配方,还是熟悉的味道,说这些话的人,多少显得无聊而耸人听闻。 有这样一句话叫数据重构商业,流量改变未来。不管怎么唱衰,大数据时代已经向我们滚滚而来,早已成为现代社会不可缺少的一部分。 “不参与大数据建设,10年后一定后悔”。 早在几年前,马云就在某次

Spark 全套知识体系,终于搞到了!

福利手慢无 ☆☞ 廖雪峰的大数据开发必备教程-Spark视频资料终于免费啦!限额领取~ 2019年已过去3/4,年初许下的愿实现了吗?可爱的程序员们都有哪些愿望呢? 找个女朋友。升级电脑、键盘、鼠标等。来一次说走就走的旅行。升职&加薪。…… 说起“升职&加薪”,一向“多金”的程序员们,今年的职场晋升似乎并非那么顺畅。说是大环境所致,这也没错。 但有一部