stm32入门系列-cmsis标准

stm32-c stm32-c     2022-12-11     399

关键词:

 使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其他端口或者外设的话,修改起来非常麻烦,而且容易出错,移植性也差。基于这些原因,ST公司推出了一套固件库,内部已经将STM32的全部外设寄存器的控制封装好,给用户提供一些API函数,用户只需要学习如何使用这些API函数即可。

CMSIS标准

    CMSIS标准英文全称是Cortex MicroController Software Interface Standard,翻译为中文意思就是ARM Cortex微控制器软件接口标准。由于基于Cortex核的芯片厂商很多,不只是ST公司,为了解决不同厂家的Cortex核芯片软件兼容的问题,ARM和这些厂家就建立了这套CMSIS标准。可以通过一个基于CMSIS标准的应用程序框图来看其重要性,如下图所示。

技术图片

    可以看出,CMSIS处于中间层,向上提供给用户程序和实时操作系统所需的函数接口,向下负责与内核和其他外设通信。假如没有CMSIS标准,基于Cortex的芯片厂商就会设计出自己喜欢的风格库函数。因此CMSIS标准就是要强制他们必须按照这个标准来设计。

    在CMSIS框架内又分为3个基本功能层:

  • 核内外设访问层:ARM公司提供的访问,定义处理器内部寄存器地址以及功能函数。

  • 中间件访问层:定义访问中间件的通用API,由ARM提供,芯片厂商根据需要更新。

  • 外设访问层:定义硬件寄存器的地址以及外设的访问函数,比如ST公司提供的固件库外设驱动文件(stm32f10x_gpio.c 等文件)就是在这个访问层。

    总之,CMSIS就是统一各芯片厂商固件库内函数的名称, 比如在系统初始化的时候使用的是SystemInit这个函数名,那么CMSIS标准就是强制所有使用Cortex核设计芯片的厂商内固件库系统初始化函数必须为这个名字,不能修改。又比如对GPIO口输出操作的函数:GPIO_SetBits,此函数名也是不能随便定义的。更多关于CMSIS 标准介绍,大家可以在网上搜索下。

技术图片

嵌入式入门篇-第5章stm32新建工程及配置

5.1新建文件5.1.1新建文件夹在STM32-Template文件夹下,我们新建四个文件夹,分别为DIF、Doc、Listing、Output、User。其中DIF中包含两个文件夹CMSIS和Fwilb,CMSIS用来存放库为我们自带的启动文件和一些M3系列的通用文件。CMSIS文件里存放的... 查看详情

关于cmsis标准及stm32f10x的固件库

 CMSIS标准英文全称是CortexMicroControllerSoftwareInterfaceStandard,翻译为中文意思就是ARMCortex微控制器软件接口标准。 由于基于Cortex核的芯片厂商很多,不单只是ST公司,为了解决不同厂家的Cortex核芯片软件兼容的问题,ARM和这... 查看详情

stm32学习6cmsis库函数标准及库函数工程模板(代码片段)

STM32学习6CMSIS库函数标准及库函数工程模板一、简介二、固件库文件夹介绍三、库函数工程模板1.最终创建的工程模板文件夹如下:2.文件说明main.cstm32f10x_it.cstartup_stm32f10x_hd.sstm32f10x_gpio.cstm32f10x_rcc.csystem_stm32f10x.ccore_cm3.c3.设置... 查看详情

stm32学习6cmsis库函数标准及库函数工程模板(代码片段)

STM32学习6CMSIS库函数标准及库函数工程模板一、简介二、固件库文件夹介绍三、库函数工程模板1.最终创建的工程模板文件夹如下:2.文件说明main.cstm32f10x_it.cstartup_stm32f10x_hd.sstm32f10x_gpio.cstm32f10x_rcc.csystem_stm32f10x.ccore_cm3.c3.设置... 查看详情

初识stm32标准库

1、CMSIS标准及库层次关系CMSIS标准中最主要的为CMSIS核心层,它包括了:STM32标准库可以从官网获得;在使用库开发时,我们需要把libraries目录下的库函数文件添加到工程中,并查阅库帮助文档来了解ST提供的库函数,这个文档说... 查看详情

stm32固件库与cmsis标准如何理解?

...那么对这些函数有什么要求呢??这里就涉及到一个CMSIS标准的基础知识,这部分知识可以从《Cortex-M3权威指南》中了解到,我们这里只是对权威指南的讲解做个概括性的介绍。经常有人问到STM32和ARM以及ARM7是什么关系这样的问... 查看详情

CMSIS & STM32,如何开始? [关闭]

】CMSIS&STM32,如何开始?[关闭]【英文标题】:CMSIS&STM32,Howtobegin?[closed]【发布时间】:2021-09-1212:28:07【问题描述】:我想在STM32上使用CMSIS启动项目。网上冲浪,没找到具体教程。一些使用SPL(ST已停止)启动项目。我想要... 查看详情

STM32IDE 中的 CMSIS 问题

】STM32IDE中的CMSIS问题【英文标题】:IssuesWithCMSISInSTM32IDE【发布时间】:2021-10-1802:15:09【问题描述】:我对微控制器编程完全陌生,我面临着我的第一个问题。我正在关注教程和网络文档,以便从STM32库开始,我尝试将CMSIS和HAL驱... 查看详情

STM32CubeIDE 中的 CMSIS DSP

】STM32CubeIDE中的CMSISDSP【英文标题】:CMSISDSPinSTM32CubeIDE【发布时间】:2020-04-1104:37:11【问题描述】:我想使用CMSIS中的DSP功能。我正在使用STM32CubeIDE,我的目标板是ST32F411REDiscovery。使用CMSISDSP和KeiluVision非常简单,你只需选择你... 查看详情

stm32f103五分钟入门系列(十六)输入捕获(精雕细琢-.-)

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情

stm32f103五分钟入门系列外部中断大汇总(代码片段)

学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分... 查看详情

stm32入门-系列

本次使用的是STM32F103型号安装KEIL5KEIL5和芯片包的安装参考:STM32F407学习_如何安装KEIL5注意:芯片包安装Keil.STM32F1xx_DFP.1.1.0.pack这个包,2.0版本的可能会出现闪退的情况。使用DAP仿真器下载程序参考:STM32-DAP仿真器... 查看详情

精通《iic通信》

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情

stm32f103五分钟入门系列(十五)输入捕获(精雕细琢-.-)(代码片段)

学习板:STM32F103ZET6参考:STM32F103五分钟入门系列(十二)定时器中断STM32F103五分钟入门系列(十五)输出比较(PWM输出)+各类测试STM32F103五分钟入门系列(五)按键实验(库函数+... 查看详情

stm32f103五分钟入门系列nvic中断优先级管理(代码片段)

学习板:STM32F103ZET6强推系列:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分... 查看详情

STM32 ISR 例程挂在 cmsis-OS osThreadFlagSet() 内部

】STM32ISR例程挂在cmsis-OSosThreadFlagSet()内部【英文标题】:STM32ISRroutinehanginginsideofcmsis-OSosThreadFlagSet()【发布时间】:2021-09-2319:35:45【问题描述】:我在STM32G070上的cmsis操作系统线程标志和中断服务例程之间的交互存在一个奇怪的问... 查看详情

stm32入门-系列

本次使用的是STM32F103型号安装KEIL5KEIL5和芯片包的安装参考:STM32F407学习_如何安装KEIL5注意:芯片包安装Keil.STM32F1xx_DFP.1.1.0.pack这个包,2.0版本的可能会出现闪退的情况。使用DAP仿真器下载程序参考:STM32-DAP仿真器... 查看详情

stm32f103(十八)adc总结(贼详细)

学习板:STM32F103ZET6往期博客:STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法... 查看详情