STM32F103xx(CMSIS)_现在最新版本的stm32 cmsis_clkbit的博客-程序员秘密

                                                          STM32F103 开发(CMSIS General)--2018-12-13

ARM公司通过CMSIS定义了统一的软件标准接口,让软件驱动和中间层接口标准化,软件结构实现统一。芯片供应商在此基础上进一步实现外设访问接口函数,并且提供了大量的实例工程。这样让Cotex-M系统的微控制器的开发上手难度大大减低。维护和移植起来也更加容易。

CMSISCortex Microcontroller Software Interface Standard)表示ARM Cortex 微控制器软件接口标准。

CMSIS是ARM公司与多家不同的芯片和软件供应商一起紧密合作定义的,提供了内核与外设、实时操作系统和中间设备之间的通用接口。

使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。软件的创建被嵌入式行业公认为主要成本系数。

通过在所有Cortex-M 芯片供应商产品中标准化软件接口,这一成本会明显降低,尤其是在创建新项目或将现有软件迁移到新设备时。

最新版本的CMSIS为5.3。

1

                                                         CMSIS结构

 

其中ARM提供了下列部分,可用于多种编译器:

● 内核设备访问层:包含了用来访问内核的寄存器设备的名称定义,地址定义和助手函数。同时也为RTOS(实时操作系统)定义了独立于微控制器的接口,该接口包括调试通道定义。

● 中间设备访问层:为软件提供了访问外设的通用方法。芯片供应商应当修改中间设备访问层,以适应中间设备组件用到的微控制器上的外设。

芯片供应商扩展下列软件层:

● 微控制器外设访问层:提供片上所有外设的定义。

● 外设的访问函数(可选):为外设提供额外的助手函数。

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wwwguojiang/article/details/84964455

智能推荐

neo4j学习总结--第五课 Cypher(CQL)命令三_unwind cql_大龄码农生活的博客-程序员秘密

这里主要学习:with、forearch、聚合函数、unwind、union一、WITH WITH语句将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点。 使用WITH可以在将结果传递到后续查询之前对结果进行操作。操作可以是改变结果的形式或者数量。WITH的一个常见用法就是限制传递给其他MATCH语句的结果数。通过结合ORDER BY和LIMIT,可获取排在前面的X个结果。另一个用法就是在聚合值上过滤。1.1、过滤聚合函数结果聚合的结果...

linux使用ntfs-3g操作ntfs格式硬盘_云计算运维工程师的博客-程序员秘密

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装#Fedoradnf install ntfs-3g#centosyum install ntfs-3g使用使用mount命令自动识别挂在# moun...

Mysql密码忘记后如何重设密码_dgew0587的博客-程序员秘密

1、 首先检查mysql服务是否启动,若已启动则先将其停止服务 2、 打开第一个cmd窗口,切换到mysql的bin目录,运行命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tables 注释: 该命令通过跳过权限安全检查,开启mysq...

使用rm -rf排除指定文件_sh rm -rf 排除_lmq1993的博客-程序员秘密

ls |grep -v access_20200909|xargs rm -rf效果如下

linux设备驱动模型(kobject与kset)_weixin_30894389的博客-程序员秘密

Linux设备模型的目的:为内核建立一个统一的设备模型,从而又一个对系统结构的一般性抽象描述。换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要新添加设备或驱动提供一般性的统一接口,这使得驱动程序的开发变得更简单了,而程序员只需要去学习接口就行了。 kobject ...

leetcode 两数之和【腾讯试题】【数组】【哈希表】_桔兮的博客-程序员秘密

题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:       这道题最容易想到的就是两层for循环遍历,但是这样一来事...

随便推点

Python学习笔记(五)变量的命名_weixin_30950237的博客-程序员秘密

一、标识符标识符就是程序员定义的变量名、函数名名字 需要有见名知义的效果标识符可以由字母、下划线和数字组成不能以数字开头不能与关键字重名二、关键字关键字就是python内部已经使用的标识符关键字具有特殊的功能和含义开发者 不允许定义和关键字相同的名字的标识符三、变量的命名规则标识符 是 区分大小写的每...

Spring事务源码分析专题(二)Mybatis的使用及跟Spring整合原理分析_吃什么菜系的博客-程序员秘密

转载原文处链接:https://blog.csdn.net/qq_41907991/article/details/107551672目录前言Mybatis的简单使用搭建项目原理分析Mybaits中的事务管理Spring整合Mybatis的原理SqlSessionFactoryBean的初始化流程@MapperScan工作原理MapperScannerConfigurer分析MapperFactoryBean分析整合原理总结总结前言专题要点如下:本文要解决的是第二点,Myb

Android ConstraintLayout ConstraintSet动态布局_constraintset()_赵彦军的博客-程序员秘密

在传统布局方式中,如果要改变某个控件的位置,需要获取 LayoutParams , 后台修改属性值就行了。但是在约束布局 ConstraintLayout 中,要改变控件的约束条件,需要用到 ConstraintSet 类。主要有 5 个步骤第一步:创建 ConstraintSet() 实例 val set = ConstraintSet()第二步:需要复制一份父布局的约束,方法有三个如下set.clone(constraintLayout: ConstraintLayout);set

Win10中Alt+Tab键Microsoft Edge出现多个页面_alt加tab出现多个窗口界面_BIN'的博客-程序员秘密

解决方法:Windows设置 -> 系统 -> 多任务处理 -> Alt+Tab将其修改为 “仅打开的窗口” 即可。

python os 遍历目录中所有文件-os.walk() 方法、python遍历文件夹,指定遍历深度与忽略目录的方法_os遍历文件夹_西京刀客的博客-程序员秘密

python os 遍历目录中所有文件-os.walk() 方法os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。def walk(top, topdown=True, onerror=None, followlinks=False):参数解释:top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。topdown的默认值是“True”,表示首先返回根目录树下的文件,然后遍历目录树下的子目录。值设为Fal