版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STM32F固件库嵌入式系统研发成本主要内容.5.6.7.固件库简介CMSIS简介STM32F10xxx标准外设库IO类型及数据类型异常与中断的命名固件库头文件固件库函数1.固件库简介•固件(Firmware)是介于软件和硬件之间的产品,具有硬件抽象功能给开发者访问底层硬件提供一个中间的API大大提高应用程序开发效率STM32固件库•ST公司固件库:–STM32F10xxxFirmwareLibrary,STM32F10xFWLib–2007年,V1.0,MDK2.22之前使用–2008年,V2.0,最后版本V2.0.3,MDK3.23开始使用–2011年,V3.0,改名,与V1.0和V2.0相比,有较大改变
•STM32F10xxxFirmwareLibrary,STM32F10xFWLib,代表代表STM32F10xxx标准外设库V2.0.3•STM32F10xxxStandardPeripherallibrary,STM32F10xxxStdPeriph_Lib,代表STM32F10xxx标准外设库V3.0.0–最新版V3.5.0,MDK最新版4.2.1,兼容CMSIS(Cortex-M3微控制器软件接口标准)2.CMSIS•CMSIS(Cortex-MTMMicrocontrollerSoftwareInterfaceStandard)Cortex微控制器软件接口标准(CortexMicrocontrollerSoftwareInterfaceStandard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由ARM提出,专门针对CORTEX-M系列的标准。
在该标准的约定下,ARM和芯片厂商会提供一些通用的API接口来访问CORTEX内核以及一些专用外设,以减少更换芯片以及开发工具等移植工作所带来的金钱以及时间上的消耗。只要都是基于M3的芯片,代码均是可以复用的。2.CMSIS•CMSIS(Cortex-MTMSoftwareInterfaceStandard)ARM公司与多家不同芯片和软件供应商紧密合作定义的提供内核与外设、实时操作系统和中间设备之间的通用接口CMSIS的软件层次•CMSIS分为以下3个软件层次:①内核设备访问层CorePeripheralAccessLayer(CPAL)–内核寄存器设备名称定义、地址定义、助手函数;–同时,为RTOS定义了独立于微控制器的接口,包括调试通道②中间设备访问层MiddlewareAccessLayer(MWAL)–为软件提供访问外设的通用方法;–芯片供应商可修改中间设备访问层,以适应具体的微控制器上外设硬件的设计③微控制器外设备访问层DevicePeripheralAccessLayer(DPAL)–提供片上所有外设的定义;–为外设提供额外的助手函数CMSIS的主要功能•CMSIS为Cortex-Mx微控制器系统定义了:访问外设寄存器的通用方法和定义异常向量的通用方法。内核设备的寄存器名称和内核异常向量的名称独立于微控制器的RTOS接口,带调试通道中间设备组件接口(TCP/IP协议栈,闪存文件系统)CMSIS的结构CMSIS-外设访问层的文件分为:①独立于编译器的文件:②编译器供应商+微控制器专用启动文件CMSIS-外设访问层的文件①独立于编译器的文件:•Cortex-M3内核及其设备文件(core_cm3.h+core_cm3.c)访问Cortex-M3内核及其设备:NVIC,SysTick等访问Cortex-M3的CPU寄存器和内核外设的函数•微控制器专用头文件(device.h)指定中断号码(与启动文件一致)外设寄存器定义(寄存器的基地址和布局)控制微控制器其他特有的功能的函数(可选)•微控制器专用系统文件(system_device.c)函数SystemInit,用来初始化微控制器函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm32f10x_xx.s/.c,在跳转到main前调用SystemFrequncy,该值代表系统时钟频率微控制器的其他功能(可选)CMSIS-外设访问层的文件②编译器供应商+微控制器专用启动文件编译器启动代码(汇编或者C)(startup_device.s)微控制器专用的中断处理程序列表(与头文件一致)弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖CMSIS文件名的定义标准–core_cm3.hCortex-M3globaldeclarationsanddefinitions,staticfunctiondefinitions–core_cm3.cCortex-M3globaldefinitions–<device>.hTop-levelheaderfile(devicespecific).Tobeincludedbyapplicationcode.Includescore_cm3.handsystem_<device>.h–system_<device>.hDevicespecificdeclarations–system_<device>.cDevicespecificdefinitions,e.g.SystemInit()CMSIS支持的工具链•CMSIS目前支持三大主流的工具链,即①ARMRealView(armcc),②IAREWARM(iccarm),③GNUCompilerCollection(gcc).CMSIS支持的工具链•在core_cm3.h中有如下定义:/*definecompilerspecificsymbols*/#ifdefined(__CC_ARM)#define__ASM__asm/*!<asmkeywordforarmcc*/#define__INLINE__inline/*!<inlinekeywordforarmcc*/#elifdefined(__ICCARM__)#define__ASM__asm/*!<asmkeywordforiarcc*/#define__INLINEinline/*!<inlinekeywordforiarcc.OnlyavaiableinHighoptimizationmode!*/#define__nop__no_operation/*!<nooperationintrinsiciniarcc*/#elifdefined(__GNUC__)#define__ASMasm/*!<asmkeywordforgcc*/#define__INLINEinline/*!<inlinekeywordforgcc#endif3.STM32F10xxx标准外设库•V3.0开始,STM32F10xxx标准外设库所有源文件按照Doxygen格式书写;•用这种书写格式的代码能够很便利地生成更加规范且内在关联性更强的文档;•由Doxygen生成的CHM文件完整地描述了
ST32F10xxx标准外设库全部组件,增强了程序的可读性和可维护性。STM32F10xxx标准外设库体系结构•ST改进了STM32F10xxx标准外设库的体系结构并支持CMSIS层。•根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):使用外设驱动:这时应用程序开发基于外设驱动的
API(应用编程接口)。用户只需要配置文 件”stm32f10x_conf.h”,并使用相应的文 件”stm32f10x_ppp.h/.c”即可。不使用外设驱动:这时应用程序开发基于外设的寄存器结构和位定义文件。STM32F10xxx标准外设库体系结构•标准外设库(StdPeriph_Lib)支持STM32F10xxx
系列全部成员:大容量,中容量和小容量产品。STM32F10x_LD:STM32小容量产品STM32F10x_MD:STM32中容量产品STM32F10x_HD:STM32大容量产品STM32F10xxx标准外设库体系结构•根据使用的STM32产品具体型号,用户可以通过文 件”stm32f10x.h”中的预处理define来配置标准外设 库(StdPeriph_Lib),一个define对应一个产品系列。 这些define的作用范围是:文件”stm3210f.h”中的中断IRQ定义启动文件中的向量表,小容量,中容量,大容量产品各有一个启动文件外设存储器映像和寄存器物理地址产品设置:外部晶振(HSE)的值等系统配置函数非STM32全系列兼容或不同型号产品间有差异的功能特征STM32F10xxx标准外设库体系结构•文件包含关系STM32F10xxx标准外设库包•为了使STM32F10xxx标准外设库的使用更加灵活, 也为了改进了库的结构,ST更新了STM32F10xxx固 件库包,添加专用子文件夹来包含CMSIS及其外设访问层相关文件。•STM32F10xxx标准外设库包重命名为STM32F10x_StdPeriph_Lib_VX.Y.Z。STM32F10xxx标准外设库包•STM32F10xxx标准外设库包结构STM32F10xxx标准外设库包文件夹描述CMSIS文件夹结构原STM32F10xxx固件库包与新STM32F10xxx标准外设库包对比4.IO类型及数据了哦性4.1IO类型•Cortex-MxHAL使用标准ANSIC头文件<stdint.h>定义的标准类型。•特别用类型限定词IO来访问外设的变量。•类型限定词IO还用于外设寄存器的调式信息的自动生成。4.2数据类型5.异常与中断的命名异常的命名NVICSTM32F10xxx中断IRQ命名•按照CMSIS的规范,修改了STM32F10xxx中断号码 定义命名。所有中断号码的#define在它们的名称 中都添加了后缀_IRQn。CAN1IRQ通道名称更新NVIC驱动•从STM32F10xxx标准外设库中移除了NVIC驱动,因此应用程序应当调用CMSIS的NVIC函数。NVIC驱动•STM32F10xxx标准外设库不覆盖其他的STM32F10xxx固件库
NVIC函数。•为了简化NVIC和STM32中断设置,在文件”misc.h/.c”中保留 了原有NVIC驱动的一些函数。它们是:
voidNVIC_PriorityGroupConfig(uint32_tNVIC_PriorityGroup); voidNVIC_Init(NVIC_InitTypeDef*NVIC_InitStruct); voidNVIC_SetVectorTable(uint32_tNVIC_VectTab,uint32_tOffset);voidNVIC_SystemLPConfig(uint8_tLowPowerMode,FunctionalState
NewState); voidSysTick_CLKSourceConfig(uint32_tSysTick_CLKSource);•在应用程序开发中进行中断设置时,用户可以选用CMSIS的
NVIC函数,或者选用在文件”misc.h/.c”中原有固件库函数。 这些函数的优点是提供了相对简单的中断配置方法,使得用户 无需深入研究NVIC规范。用户程序开发6.固件库头文件固件库头文件7.固件库函数•主要函数分类(详见手册)•••••••••••••RRCResetandclockcontrolNVICNestedvectoredinterruptcontrollerEXTIExternalinterrupt/eventcontrollerSYSTICKCortexsystemtimerTIMAdvanced-controltimer, general-purposeandbasictimerGPIOGeneralpurposeI/ORTCReal-timeclockBKPBackupregistersPWRPowercontrolIWDGIndependentwatchdogWWDGWindowwatchdogDMADMAcontroller
固件库函数主要函数分类(详见手册)ADCDACUSARTAnalog/digitalconverterDigital/analogconverterUniversalsynchronousasynchronousreceivertransmitterI2CSPISDIOCANFSMCFLASHDBGMCUCRCInter-integratedcircuitSerialperipheralinterfaceSDIOinterfaceController
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《7075铝合金电辅助圆角摩擦特性分析及有限元仿真》
- 2024年化办公设备销售协议模板
- 《耐高温热塑型聚酰亚胺气凝胶蜂窝结构制备及其性能研究》
- 《功能性动作筛查在羽毛球运动损伤预防中的应用研究》
- 2024年客运从业资格证模拟考试题库答案解析大全
- 2024年承德客运从业资格证考试答案
- 2024年西安客运资格证考试题库答案
- 2023届新高考化学选考一轮总复习训练-第4讲 氧化还原反应(二)
- 2024年吐鲁番大客车从业资格证考试
- 西洋参多糖分离纯化及其生物活性研究进展
- 八年级科学上册 《生命活动的调节》同步练习1 浙教版
- 硫酸储罐标准
- 2023年6月四级听力第一套真题及听力原文
- GB/T 40016-2021基础零部件通用元数据
- 搪塑成型工艺
- 千年菩提路解说词
- 煤矿隐蔽致灾因素普查课件
- 通用版高中化学二轮复习专题课件原子结构
- 国开电大 Matlab语言及其应用 实验任务Simulink系统 建模与仿真实验报告
- 《金融学(第三版)》第12章 现代货币的创造机制
- 2023届高考作文模拟写作-“引体向上”与“低姿匍匐”课件
评论
0/150
提交评论