STM32
直播中

话多显蠢

9年用户 812经验值
擅长:479461
私信 关注
[问答]

微控制器软件接口标准 (CMSIS) 有何作用呢

微控制器软件接口标准 (CMSIS) 是什么?
微控制器软件接口标准 (CMSIS) 有何作用呢?

回帖(1)

戚來麒

2021-11-30 11:08:14
提示:本文以STM32Cube_FW_H7_V1.5.0为例
部分解释



  • CMSIS:微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。CMSIS 可实现与处理器和外设之间的一致且简单的软件接口,从而简化软件的重用,缩短微控制器开发人员新手的学习过程,并缩短新设备的上市时间。
  • CMSIS-CORE:提供与 Cortex-M0、Cortex-M3、Cortex-M4、SC000 和 SC300 处理器与外围寄存器之间的接口
  • CMSIS-DSP:是一个经过深入优化(手工)的通用数字信号处理函数库
  • CMSIS-DAP:是USB调试器设备单元的一种固件实现
  • CMSIS-NN:是一系列高效神经网络内核的集合

一、HAL 库根目录






[tr]文件夹名称作用备注[/tr]
DocumentationHAL库帮助文档讲述如何使用固件库编写程序
Drivers官方的 CMSISI 库,HAL 库,板载外设驱动主要使用
Middlewares中间件,包含 ST 官方的 STemWin、 STM32_Audio、STM32_USB_Device_Library、STM32_USB_Host_Library;也有第三方的 fatfs 文件系统等等-
Projects用驱动库写的针对官方发行 demo 板的例子和工程模板可以以这里的模板为框架
Utilities实用的公用组件如 LCD_LOG 实用液晶打印调试信息
其他版本说明,固件库介绍等
二、主要文件介绍

1、Drivers






a、CMSIS(编程必用)









  • CMSIS/Core*


    • CMSIS-Core 的相关文件


  • CMSIS/DAP


    • CMSIS-DAP 相关的文件和例子


  • CMSIS/DSP


    • CMSIS-DSP 相关文件


  • CMSIS/Lib


    • DSP函数库


  • CMSIS/NN


    • CMSIS-NN 相关文件


  • CMSIS/RTOS


    • 实时操作系统头文件(Cortex-M)


  • CMSIS/RTOS2


    • 实时操作系统相关文件(Cortex-M和Armv8-M)


  • CMSIS/docs



    • CMSIS下文件的文档,网页版的










  • CMSIS/Driver(使用最多)


    • 文件路径:DriversCMSISDeviceSTSTM32H7xxInclude
    • 是STM32芯片底层相关的文件,包含了STM32中所有的外设寄存器地址和结构体类型定义,在使用HAL库的地方都需要包含这个头文件

    • 文件路径:DriversCMSISDeviceSTSTM32H7xxSourceTemplates
    • 该文件夹下还包含arm,gcc,iar文件夹,这些文件夹下包含了对应编译平台下的汇编启动文件,比如startup_stm32h743xx.s文件

    • 文件路径:DriversCMSISDeviceSTSTM32H7xxSourceTemplates
    • 该文件包含STM32芯片上电后初始化系统时钟,扩展外部存储器用的函数

    • 芯片直接相关的文件,包含启动文件,芯片外设寄存器定义,系统时钟初始化功能的一些文件
    • system_stm32h7xx.c 文件

    • 启动文件

    • stm32h7xx.h文件



  • CMSIS/Include(使用最多)



    • 文件路径:keil5.3ARMARMCCinclude
    • 建议以后编程中使用int8_t这种类型定义

    • 是位于CMSIS标准的核内设备函数层的Cortex-M核通用的头文件
    • 作用是为那些采用Cortex-M核设计的芯片外设提供一个进入内核的接口,定义了一些内核相关的寄存器。
    • 这些文件在其他公司的Cortex-M系列芯片也是相同的
    • 在core_cm7.h文件中包含了“stdint.h”头文件,该文件是一个ANSI C文件,是独立于处理器之外的,位于RVMDK软件的安装目录下,主要是提供一些类型定义








b、STM32H7xx_HAL_Driver(编程常用)









  • 作用



    • src中文件对应的头文件

    • 每个外设设备的驱动源程序

    • 每个外设对应一个.c和.h文件,比如GPIO的操作

    • 这部分的文件属于CMSIS之外的,芯片片上外设部分,是ST的HAL库的主要内容,操作外设就需要这里的文件

    • src

    • inc



2、Projects(参考模板)




  • ProjectsSTM32H743I-EVALTemplates 下有一些模板,在编程的时候可以用到,比如下面的比较常用



    • stm32h7xx_hal_conf.h文件是个配置文件,可以根据芯片用于增减ST库的外设文件
    • stm32h7xx_hal_conf.h中还有一些关于函数入参检查的函数定义,内容是空的,可以自己来写功能,待测试完成后在这里将调试关闭即可

    • 该文件是专门用来编写中断服务函数的,期中该文件已经定义了一些系统异常的接口,其他的普通中断服务函数由自己添加,接口的名字在汇编启动文件中可以找到

    • ProjectsSTM32H743I-EVALTemplatesSrc下的stm32h7xx_it.c

    • ProjectsSTM32H743I-EVALTemplatesInc下的stm32h7xx_hal_conf.h和stm32h7xx_it.h



3、其他




  • 目前未使用,用到再写

三、附接口调用关系图



举报

更多回帖

发帖
×
20
完善资料,
赚取积分