Linux芯片总结

  • 格式:docx
  • 大小:18.66 KB
  • 文档页数:2

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Cortex-M3内核的STM32嵌入式处理器的学习报告

一、Cortex-M3内核概述:

Cortex‐M3是一个32位处理器内核,它内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。Cortex-M3采用ARMv7-M构架,不仅支持Thumb-2指令集,而且拥有很多新特性。较之ARM7-TDMI,Cortex-M3 拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。

CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的cache;另外在CM3中,Both小端模式和大端模式都是支持的。CM3内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。另外,它为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。

二、Cortex-M3内核配置

ARMCortex-M3采用哈佛结构,并选择了适合于微控制器应用的三级流水线,但增加了分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。针对业界对ARM处理器中断响应的问题,Cortex-M3首次在内核上集成了嵌套向量中断控制器(NVIC)。Cortex-M3的中断延迟只有12个时钟周期(ARM7需要24-42个周期);Cortex-M3还使用尾链技术,使得背靠背中断的响应只需要6个时钟周期(ARM7需要大于30个周期)。Cortex-M3采用了基于栈的异常模式,使得芯片初始化的封装更为简单。

Cortex-M3加入了类似于8位处理器的内核低功耗模式,支持3种功耗管理模式:通过一条指令立即睡眠、异常/中断退出时睡眠和深度睡眠,使整个芯片的功耗控制更为有效。

CM3 拥有通用寄存器R0‐R15以及一些特殊功能寄存器。R0‐R12是最通用的,但是绝大多数的16位指令只能使用R0‐R7(低组寄存器),而32位的 Thumb ‐2指令则可以访问所有通用寄存器,特殊功能寄存器有预定义的功能,而且必须通过专用的指令来访问。Cortex‐M3中的特殊功能寄存器包括:程序状态寄存器组(PSRs或xPSR)、中断屏蔽寄存器组、控制寄存器(CONTROL)。

三、Cortex-M3的性能与特点

①Cortex-M3的许多指令都是单周期的——包括乘法相关指令。并且从整

体性能上看,Cortex-M3基于ARMv7-M架构优于绝大多数的内核;

②支持Thumb-2指令集,为编程带来了更多的灵活性,Cortex-M3的代码

密度更高,对存储器的需求更少;

③Cortex-M3有先进的中断处理功能,其内建的嵌套向量中断控制器支持

多达240条外部中断输入,向量化的中断功能剧烈地缩短了中断延迟,

因为不需要软件去判断中断源,而且中断的嵌套也是在硬件水平上实现

的,不需要软件代码来实现;

④Cortex-M3需要的逻辑门数少,所以先天就适合低功耗要求的应用,CM3

的设计是全静态的、同步的、可综合的,所以任何低功耗的或是标准的

半导体工艺均可放心使用;

⑤Cortex-M3支持传统的JTAG基础上,还支持更新更好的串行线调试接口;

四、基于Cortex-M3的STM32F103ZET6嵌入式开发板

国内Cortex-M3市场,ST(意法半导体)公司的STM32无疑是最大赢家,作为 Cortex-M3内核最先进的两个公司之一,ST 无论是在市场占有率,还是在技术支持方面,都是远超其他对手。在Cortex-M3芯片的选择上,STM32无疑是我们学习使用Cortex-M3的首选开发板。

作为初学者来学习使用Cortex-M3内核其实会很困难,而通过运用功能强大的集成开发板stm32,则能够加深我们对内核运用的了解;每一套开发板都会配套一个固件库,这个固件库函数可以是我们不完全了解Cortex-M3内核寄存器的工作方式前提下,通过调用库函数实现对寄存器的控制,而且寄存器版本的STM32开发指南能够帮助我们更进一步认识寄存器的工作。

STM32F103ZET6属于中低端的32位ARM微控制器,有512K的片内Flash存储、64K字节的SRAM等高性价比的配置。作为一款常用的增强型系列微控制器,STM32F103ZET6适用于电力电子系统方面、电机驱动、应用控制、医疗、手持设备、PC游戏外设等。

我之前参加的一位工程学院研究生导师的课题项目----“风送式智能喷雾技术”就利用到STM32F103ZET6作为嵌入式控制器。我首先将STM32F103ZET6

的模块化功能与项目要求匹配之后,再集成运用到这个项目实际当中;比如驱动蠕动泵,我就使用到pwm输出模块,之后我就学习STM32F的有关库函数以及相应定时器、GPIO的配置;又比如比例阀的控制开度运用到A/D转换模块,我除了知道对应的库函数参数设置,同时也要学习了解ADC控制寄存器,每个要转换的通道以及转换速率的计算;这样保证了在接触嵌入式处理器的学习之中不至于生活实际脱节,又能很好去了解内核的寄存器工作情况。