Cortex微控制器软件接口标准
目前,软件开发已经是嵌入式系统行业公认的主要开发成本,通过将所有Cortex-M芯片供应商产品的软件接口标准化,能有效降低这一成本,尤其是进行新产品开发或者将现有项目或软件移植到基于不同厂商MCU的产品时。为此,2008年Arm公司发布了Arm Cortex微控制器软件接口标准。 ST有限公司为开发者提供了标准外设库,通过使用该标准库无须深入掌握细节便可开发每一个外设,缩短了用户编程时间,从而降低开发成本。同时,标准库也是学习者深入学习STM32原理的重要参考工具。 CMSIS软件架构由4层构成:用户应用层、操作系统及中间件接口层、CMSIS层和硬件层,如图所示。
其中,CMSIS层起着承上启下的作用:一方面对硬件寄存器层进行统一实现,屏蔽不同厂商对Cortex-M系列微处理器内核外设寄存器的不同定义;另一方面又向上层的操作系统及中间件接口层和用户应用层提供接口,简化应用程序开发,使开发人员能够在完全透明的情况下进行应用程序开发。 CMSIS层主要由以下3部分组成。
(1)核内外设访问层(Core Peripheral Access Layer,CPAL):
由Arm公司实现,包括了命名定义、地址定义、存取内核寄存器和外围设备的协助函数,同时定义了一个与设备无关的RTOS内核接口函数。
(2)中间件访问层(Middleware Access Layer,MWAL):
由Arm公司实现,芯片厂商提供更新,主要负责定义中间件访问的应用程序编程接口(Application Programming Interface ,API)函数,如TCP/IP协议栈、SD/MMC、USB等协议。
(3)设备外设访问层(Device Peripheral Access Layer,DPAL):
由芯片厂商实现,负责对硬件寄存器地址及外设接口进行定义。另外,芯片厂商会对异常向量进行扩展,以处理相应异常。
STM32仿真器的选择
开发板可以采用ST-Link、J-Link或野火fireDAP下载器(符合CMSIS-DAP Debμgger规范)下载程序。ST-Link、J-Link仿真器需要安装驱动程序,CMSIS-DAP仿真器不需要安装驱动程序。
1. CMSIS-DAP仿真器
CMSIS-DAP是支持访问CoreSight 调试访问端口(Debug Access Port,DAP)的固件规范和实现,以及各种Cortex处理器提供CoreSight调试和跟踪。 CoreSight两个主要功能就是调试和跟踪功能。 (1)调试功能。具体如下: ① 运行处理器的控制,允许启动和停止程序; ② 单步调试源码和汇编代码;③ 在处理器运行时设置断点; ④ 即时读取/写入存储器内容和外设寄存器; ⑤ 编程内部和外部Flash存储器。 (2)跟踪功能 ① 串行线查看器(SWV)提供程序计数器(PC)采样、数据跟踪、事件跟踪和仪器跟踪信息; ② 指令(ETM)跟踪直接流式传输到PC,从而实现历史序列调试、软件性能分析和代码覆盖率分析。 野火fireDAP高速仿真器如图4-21所示。
2. J-Link
J-Link 是 SEGGER 公司为支持仿真Arm内核芯片推出的JTAG仿真器。 J-Link仿真器如图4-22所示。 J-Link仿真器具有如下特点: (1)JTAG最高时钟频率可达15MHz。 (2)目标板电压范围为1.2~3.3V,5V兼容。 (3)具有自动速度识别功能。 (4)支持编辑状态的断点设置,并在仿真状态下有效。可快速查看寄存器和方便配置外设。 (5)带J-Link TCP/IP 服务器,允许通过TCP/IP网络使用J-Link。
3.ST-Link
ST-Link是ST公司为STM8系列和STM32系列微控制器设计的仿真器。ST-LINK V2仿真器如图4-23所示。 ST-Link仿真器具有如下特点: (1)编程功能:可烧写Flash ROM、EEPROM等,需要安装驱动程序才能使用。 (2)仿真功能:支持全速运行、单步调试、断点调试等调试方法, (3)可查看I/O状态、变量数据等。 (4)仿真性能:采用USB2.0接口进行仿真调试、单步调试、断点调试,反应速度快。 (5)编程性能:采用USB2.0接口,进行 SWIM/JTAG/SWD下载,下载速度快。
4.微控制器调试接口
STM32F4系列微控制器调试接口引脚图如图4-24所示。为了减少PCB(印制电路板)的占用空间,JTAG调试接口可用双排10引脚接口,SWD调试接口只需要SWDIO、SWCLK、RESET和GND四条线。
嵌入式开发环境除Keil MDK外,还有IAR等开发环境,但均为国外公司的产品,我国目前还没有自主知识产权的Arm开发环境,再加上国内的一些高校被禁用MATLAB软件,该事件也警示我国的大学生:必须关心国家建设,立足自力更生,提升自身科技水平,发扬“航天精神”,为我国的科研建设出一份力,开发出如Keil MDK的开发环境,不受国外公司的制约。 大部分人认为工科专业属于自然科学,蕴含较少的意识形态属性,认同科学技术是无国界的。然而在实际生活中,任何一门科学技术的产生、发展和应用都与国家的倡导与需求息息相关,因此从这个角度来看,科学技术也是有国界的,其国界属性主要体现在科技的来源性、科技的权属性以及科技的服务性三个方面。