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

由于基于 Cortex 核的芯片厂商很多,不单只是 ST 公司,为了解决不同厂家的 Cortex 核芯片软件兼容的问题,ARM 和这些厂家就建立了这套 CMSIS 标准。

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

  1. 核内外设访问层:ARM 公司提供的访问,定义处理器内部寄存器地址以及功能函数
  2. 中间件访问层:定义访问中间件的通用 API,由 ARM 提供,芯片厂商根据需要更新。
  3. 外设访问层:定义硬件寄存器的地址以及外设访问函数,比如 ST 公司提供的固件库外设驱动文件(stm32f10x_gpio.c)就是在这个访问层。

总的来说,CMSIS 就是统一各芯片厂商固件库内函数的名称

比如系统初始化的时候使用的是 SystemInit 这个函数名,那么 CMSIS 标准就是强制所有使用 Cortex核设计芯片的厂商 固件库系统初始化函数必须为这个名字,不能修改。

由比如 对 GPIO 口输出操作的函数 GPIO_SetBits,此函数名也不是随便定义的。

core_cm3.h

此文件术语 CMSIS 标准文件,是用来提供 M3 内核的接口文件,术语 CMSIS 的核心文件,由 ARM 提供。对于所有 M3 内核芯片来说,这个文件都是相同的。

system_stm32f10x.h

是片上外设介入层系统头文件。主要是申明设置系统及总线时钟相关函数。

其对应源文件是 system_stm32f10x.c 。这个文件里面有一个非常重要的 SystemInit() 函数声明。这个函数在系统启动时候会被调用,用来设置整个系统和总线时钟。

stm32f10x_ppp.c 文件是 STM32 外设的驱动源文件,比如 stm32f10x_gpio.c 文件

stm32f10x_it.c 文件用于存放中断函数。

最新文章

  1. Sql Server系列:分区表操作
  2. TextView属性android:ellipsize="marquee"不生效的解决办法
  3. (20160601)开源第三方学习之SVProgressHUD
  4. Java 序列化Serializable接口
  5. linux下的shell运算(加、减、乘、除)
  6. 吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。
  7. 让我们一起Go(十二)
  8. Android之Dialog详解
  9. List迭代循环时出现分问题
  10. [置顶] 使用Android OpenGL ES 2.0绘图之六:响应触摸事件
  11. overflow-x后覆盖滚动条
  12. 《Non-Negative Matrix Factorization for Polyphonic Music Transcription》译文
  13. 表单/iframe与video标签
  14. java应用:向用户注册的邮箱发送邮件
  15. IDC:UPS(不间断电源)
  16. 关于jdango框架静态文件配置的问题
  17. 活字格Web应用平台学习笔记1 - 下载安装,ready go
  18. springboot+swagger2案例
  19. [SoapUI] Datasink怎么显示每次循环的结果
  20. [问题]SqlServer创建数据库出错

热门文章

  1. astgo经常死机变慢?试试mysql数据碎片整理吧
  2. golang——strconv包常用函数
  3. java自学-方法
  4. ViewPager(4)用viewpager实现splash view
  5. Android 性能优化(27)*zipalign让apk数据对齐,运行更快。
  6. ActiveMQ命令行工具
  7. 简单谈谈MySQL中的int(m)
  8. [ SDOI 2006 ] 保安站岗
  9. python学习笔记(2)——练习小程序之 " input " 隐藏陷阱
  10. Java入门第37课——猜字母游戏之设计数据结构