百度百科-CMSIS

CMSIS

编辑

ARM Cortex 微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层(英文原文为:a vendor-independent hardware abstraction layer for the Cortex-M processor series and defines generic tool interfaces--来自ARM官方定义)。 使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。通过在所有Cortex-M 芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。最新版本的CMSIS为5.5.1。

中文名

微控制器软件接口标准

外文名

Cortex Microcontroller Software Interface Standard

目录

  1. 结构
  2. CMSIS软件层次
  3. CMSIS包含的组件
    1. 基于CMSIS应用程序的基本结构
    2. CMSIS软件包详细目录
    3. 使用步骤
 

结构

编辑

CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。

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)。

基于CMSIS应用程序的基本结构

CMSIS-外设访问层的文件

基于CMSIS应用程序的基本结构

独立于编译器的文件:

● Cortex-M3内核及其设备文件(core_cm3.h + core_cm3.c)

─ 访问Cortex-M3内核及其设备:NVIC,SysTick等

─ 访问Cortex-M3的CPU寄存器和内核外设的函数

● 微控制器专用头文件(device.h)

─ 指定中断号码(与启动文件一致)

─ 外设寄存器定义(寄存器的基地址和布局)

─ 控制微控制器其他特有的功能的函数(可选)

● 微控制器专用系统文件(system_device.c)

─ 函数SystemInit,用来初始化微控制器

─ 函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件

startup_stm32f10x_xx.s /.c,在跳转到main前调用

─SystemFrequncy,该值代表系统时钟频率

─ 微控制器的其他功能(可选)

编译器供应商+微控制器专用启动文件

● 编译器启动代码(汇编或者C)(startup_device.s)

─ 微控制器专用的中断处理程序列表(与头文件一致)

─ 弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖)

CMSIS软件包详细目录

CMSIS(3张)

下载的CMSIS软件包含有Cortex M3核的支持文件以及基于Cortex M3核处理器的启动代码和库引导文件。

使用步骤

编辑

以STM32F10XX序列处理为例,介绍CMSIS的使用步骤。

1、从ST官方网站下载3.0以上版本的标准外设库。

2、基于开发软件新建工程,建立相应的文件目录,注意询问是否加入启动文件时,选择“否”。

3、根据所选芯片,把Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中的启动代码加到工程中。

4、根据处理器FLASH容量的大小,选择启动代码。stm32f10x.h 的66-73 行表明了启动代码的类型。例如STM32F10X_HD 行表示大容量的,如果不需要直接注释掉即可。

5、选择是否启用标准外设库。stm32f10x.h的105行的USE_STDPERIPH_DRIVER用于确定是否启用,如果不启用直接注释掉。

6、确定处理器的频率。system_stm32f10x.c的110-115行用于确定处理器的频率,注释掉不需要的即可。例如处理器的频率为是36MHz,注释SYSCLK_FREQ_72MHz,去掉SYSCLK_FREQ_36MHz注释。

https://www.cnblogs.com/zhangshenghui/p/5330319.html

CMSIS的更多相关文章

  1. (一)stm32之CMSIS标准、库目录、GPIO

    一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...

  2. CMSIS标准

    CMSIS 标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是"ARM Cortex™ 微控制器软件接口标准" ...

  3. stm32之CMSIS标准、库目录、GPIO

    一.CMSIS标准 ST公司的stm32采用的是cortex-m3内核,内核是整个微处理器的CPU.该内核是ARM公司设计的一种处理器体系架构.内核与外设的关系就像PC上的CPU与硬盘.主板.内存等的 ...

  4. cmsis dap interface firmware

    cmsis dap interface firmware The source code of the mbed HDK (tools + libraries) is available in thi ...

  5. STM32开发笔记之——CMSIS DAP

    都说开发stm32都是使用kail iar+jatg/swd的方式,然而arm公司已经开发出了CMSIS DAP的开源下载工具,全称是CoreSight Debug Access Port,网络上有大 ...

  6. CMSIS的简介

    Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A ...

  7. 关于 CMSIS 标准 及 STM32F10x的固件库

    CMSIS 标准英文全称是Cortex MicroController Software Interface Standard,翻译为中文意思就是 ARM Cortex 微控制器软件接口标准. 由于基 ...

  8. \lib\cmsis\stm32f10x.h(298): error: #67: expected a "}"

    首先介绍一下csdn屏蔽广告 这个至关重要,请参考 https://blog.csdn.net/qq_40881680/article/details/82226562 更新KEIL5以后,原KEIL ...

  9. iar8.32版本关于cmsis的说明

    平台是cubemx5.3 keil5.26 带freertos,使用iar8.32,在上图中的use cmsis 打勾与否都能编译通过.

  10. STM32入门系列-CMSIS标准

    使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其 ...

随机推荐

  1. STM32与PS2的无线通信和相关函数介绍

    PS2采用SPI通信协议 源码和参考文件获取:https://github.com/Sound-Sleep/PS2_Based_On_STM32 接收器接口 DI:手柄->主机,时钟的下降沿传送 ...

  2. 大角度非迭代的空间坐标旋转C#实现

    1. 绪论 在前面文章中提到空间直角坐标系相互转换,测绘坐标转换时,一般涉及到的情况是:两个直角坐标系的小角度转换.这个就是我们经常在测绘数据处理中,WGS-84坐标系.54北京坐标系.80西安坐标系 ...

  3. 第二章 --------------------XAML基础

    1.XAML是什么? XAML是扩展标记语言,是为了方便设计人员设计UI界面.具体关于XAML语法的讲解参考其他相关书籍.  XAML每一个标签以<>开头,以</>结尾,作为标 ...

  4. 【转载】EXCEL VBA 自动筛选—AutoFilter方法

    AutoFilter方法的语法及说明   下面是Range对象的AutoFilter方法的语法:      Range对象.AutoFilter(Field,Criterial1,Operator,C ...

  5. 【转载】MSSQL汉字首字母查询处理自定义函数

    -- 汉字首字母查询处理用户定义函数 CREATE FUNCTION f_GetPY(@str nvarchar(4000)) RETURNS nvarchar(4000) AS BEGIN DECL ...

  6. 关于asp.net mvc的控制器的依赖注入思考及对StructureMap依赖注入框架的简单实践笔记

    写在前面: 依赖注入这个玩意很多人其实都接触过,但可能没有细究其中的原理. 比如Controller的构造函数中,只要你传入一些接口,应用自动就给你处理了创建的过程,无需你手动去new 一个实例并穿进 ...

  7. 多项式 I:拉格朗日插值与快速傅里叶变换

    1. 复数和单位根 前置知识:弧度制,三角函数. 1.1 复数的引入 跳出实数域 \(\mathbb R\),我们定义 \(i ^ 2 = -1\),即 \(i = \sqrt {-1}\),并在此基 ...

  8. linux系统一键开启root登陆

    服务器只能key登陆,用这个后直接可以root方式登陆 sudo -i echo root:要设置的密码 |sudo chpasswd root sudo sed -i 's/^#\?PermitRo ...

  9. CentOS7.6系统安装和网络配置

    CentOS7.6系统安装配置 前言:文章内容可能会因环境不同而有所差异,所谓集思广益说不定灵感就来了呢; 文章初衷旨在交流学习.记录个人成长,如果能帮助到您,那就点个赞噢. 环境说明: 1.本实验使 ...

  10. 数据库实践丨使用MTK迁移Mysql源库后主键自增列导致数据无法插入问题

    摘要:用户使用Mogdb 2.0.1版本进行业务上线测试,发现在插入数据时,应用日志中提示primary key冲突,用户自查业务SQL没有问题,接到通知后,招手处理故障. 本文分享自华为云社区< ...