新闻  |   论坛  |   博客  |   在线研讨会
CMSIS-SVD 系统视图说明
电子禅石 | 2020-03-01 08:44:31    阅读:9272   发布文章

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

看了这张图的含义更清楚些,CMSIS-RTOS在用户的应用代码和第三方的RTOS Kernel直接架起一道桥梁,一个设计在不同的RTOS之间移植,

或者在不同Cortex MCU直接移植的时候,如果两个RTOS都实现了CMSIS-RTOS,那么用户的应用程序代码完全可以不做修改。

 

CMSIS SVD(System View Description) 系统视图说明

88.jpg

 

系统视图描述 (SVD) 文件以基于格式化的 XML 提供了外设信息和其他设备参数。

SVD 文件通常与设备参考手册中芯片供应商提供的信息相匹配。

SVD相当于把传统的芯片手册(DATA SHEET)给“数字化”了, 手册是给人看的,而SVD采用XML文档结构化的方式,是给机器、开发环境、MDK/IAR等软件“看”的,

SVD文件中定义了某个芯片的非常详细的信息,包含了哪些片内外设,每一个外设的硬件寄存器,每一个寄存器中每一个数据位的值,以及详细的说明信息等等。 

SVD足够详细,与手册内容完全匹配,根据SVD文件可以生成芯片的头文件定义,厉害吧!

因此,SVD文件的内容非常详细,基本上人看不懂,虽然是XML,但看起来还是像天书一样,但对于软件、工具,则是清晰明了。 

 

http://www.keil.com/pack/doc/cmsis/svd/html/index.html


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客