GD32F130FXP6学习笔记二:CMSIS初识
来源:互联网 发布:查询的sql语句 编辑:程序博客网 时间:2024/06/06 11:46
出处:http://www.eefocus.com/freescale007/blog/13-07/295486_07c15.html
CMSIS 到底是什么?
先来看看ARM公司对CMSIS的定义:
ARM® Cortex™ 微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。CMSIS 可实现与处理器和外设之间的一致且简单的软件接口,从而简化软件的重用,缩短微控制器开发人员新手的学习过程,并缩短新设备的上市时间。
软件的创建是嵌入式产品行业的一个主要成本因素。通过跨所有 Cortex-M 芯片供应商产品将软件接口标准化(尤其是在创建新项目或将现有软件迁移到新设备时),可以大大降低成本。
我们知道,不同厂家,比如FSL,ST,Energy Micro等不同厂家的内核都是使用Cortex M,但是这些MCU的外设却大相径庭,外设的设计、接口、寄存器等都不一样,因此,一个能够非常熟练使用STM32软件编程的工程师很难快速地上手开发一款他不熟悉的,尽管是Cortex M内核的芯片。而CMSIS的目的是让不同厂家的Cortex M的MCU至少在内核层次上能够做到一定的一致性,提高软件移植的效率。
1. CMSIS的结构:
CMSIS 包含以下组件:
- CMSIS-CORE:提供与 Cortex-M0、Cortex-M3、Cortex-M4、SC000 和 SC300 处理器与外围寄存器之间的接口
- CMSIS-DSP:包含以定点(分数 q7、q15、q31)和单精度浮点(32 位)实现的 60 多种函数的 DSP 库
- CMSIS-RTOS API:用于线程控制、资源和时间管理的实时操作系统的标准化编程接口
- CMSIS-SVD:包含完整微控制器系统(包括外设)的程序员视图的系统视图描述 XML 文件
此标准可进行全面扩展,以确保适用于所有 Cortex-M 处理器系列微控制器。其中包括所有设备:从最小的 8 KB 设备,直至带有精密通信外设(例如以太网或 USB)的设备。(内核外设功能的内存要求小于 1 KB 代码,低于 10 字节 RAM)。
2. 框架
看上去CMSIS-Core和CMSIS-DSP很好理解,但是CMSIS-RTOS不好理解,这玩意是干嘛的
再看一张图吧:
看了这张图的含义更清楚些,CMSIS-RTOS在用户的应用代码和第三方的RTOS Kernel直接架起一道桥梁,一个设计在不同的RTOS之间移植,或者在不同Cortex MCU直接移植的时候,如果两个RTOS都实现了CMSIS-RTOS,那么用户的应用程序代码完全可以不做修改。
3. 已经支持的MCU和工具链:
完整的CMSIS文档可以从ARM公司网站下载,大小有100多M字节。
4. 如何使用CMSIS,需要哪些文件,以Freescale Kinetis L系列举例。
一个详细说明文档: https://wenku.baidu.com/view/1c9df73627d3240c8547ef3e.html
官方说明文档: https://www.arm.com/zh/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
- GD32F130FXP6学习笔记二:CMSIS初识
- GD32F130FXP6学习笔记三:ARM的GPIO初识
- GD32F130FXP6学习笔记四:ARM 汇编指令集初识
- GD32F130FXP6学习笔记六:cortex-m3系列的ADC初识
- GD32F130FXP6学习笔记八:Cortex-M3启动代码分析笔记
- GD32F130FXP6学习笔记十:Cortex-M3中断学习
- CMSIS-RTOS2 应用笔记 二 配置接口
- GD32F130FXP6学习笔记一:硬件和软件初学
- GD32F130FXP6学习笔记五:cortex-m3系列的启动过程
- GD32F130FXP6学习笔记七:RealView编译器常用特有功能
- GD32F130FXP6学习笔记十一:KEIL MDK输出map文件分析
- GD32F130FXP6学习笔记十二:mdk定义一些变量上电不初始化
- struts2学习笔记(二) 初识Struts2
- struts2学习笔记(二) 初识Struts2
- Flume学习笔记之初识(二)
- 机器学习笔记:初识sklearn(二)
- stm32学习总结(二) STM32固件库的CMSIS简析
- GD32F130FXP6学习笔记九:Cortex-M3 cm3.h 关于开关总中断函数解释
- 【Java设计模式】状态模式处理返回码
- MySQL安装与配置、查看 MySQL 版本信息、mysql ERROR 1045 (28000): 错误解决办法等
- iOS Error List
- AIDL使用学习(一):基础使用学习
- caffe学习-----3 .m文件流程(训练或者测试)
- GD32F130FXP6学习笔记二:CMSIS初识
- CodeForces
- oracle select limit的方法
- 循环神经网络简单到深入
- myeclipse或者eclipse老是卡在Refreshing workspace
- Add Two Numbers
- hdu 1711 kmp模板题
- 【Github Issues】ffmpeg-android-java Issues
- Could not find action or result: