ARM Cortex-M4学习与实践——纪成.ppt_第1页
ARM Cortex-M4学习与实践——纪成.ppt_第2页
ARM Cortex-M4学习与实践——纪成.ppt_第3页
ARM Cortex-M4学习与实践——纪成.ppt_第4页
ARM Cortex-M4学习与实践——纪成.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARMCortex M4学习与实践 山东大学智能车工作室纪成2013年3月 山东大学Kinetis培训 基于飞思卡尔Kinetis系列 山东大学Kinetis培训 飞思卡尔Kinetis功能特性 K60开发生态系统介绍 IAR Jlink开发K60方法 K60代码框架分析 K60外设资源在智能车中的应用 K60学习资源整理 1 ARM发展史 一 飞思卡尔Kinetis功能特性 山东大学Kinetis培训 2 ARMv7处理器分类 3 ARMCortex M4特性 4 飞思卡尔Kinetis家族介绍 5 K60内部资源介绍 ARM发展史 山东大学Kinetis培训 ARM架构发展历程 ARMv7处理器分类 山东大学Kinetis培训 ARMv7根据应用分类 应用处理器 Cortex A系列 AplicationProcessor 实时控制器 Cortex R系列 Real timeProcessor 微控制器 Cortex M系列 MicroController ARMCortex M4特性 ARMCortex M4处理器是在M3的基础上强化了运算能力 采用一个扩展的单时钟周期乘法累加 MAC 单元 优化的单指令多数据 SIMD 指令 饱和运算指令和一个可选的单精度浮点单元 FPU 源于Cortex M4系列一些创新性的技术 包括 RISC处理器内核 高性能32位CPU 具有确定性的运算 低延迟3阶段管道 可达1 25DMIPS MHz Thumb 2指令集 16 32位指令的最佳混合 提供最佳代码密度 低功耗模式 支持多种状态低功耗模式 嵌套矢量中断控制器 NVIC 低延迟 低抖动中断响应 支持以纯C编写中断服务例程 能出色的完成中断处理 广泛的工具和RTOS支持 广泛的第三方工具支持 Cortex微控制器软件接口标准 CMSIS 最大限度缩短开发周期和难度 CoreSight调试和跟踪 JTAG和2针串行线调试 SWD 连接 支持多处理器 支持实时跟踪 山东大学Kinetis培训 飞思卡尔Kinetis家族 山东大学Kinetis培训 飞思卡尔Kinetis家族 山东大学Kinetis培训 飞思卡尔KinetisK系列 山东大学Kinetis培训 增加段式液晶的驱动 增加USB功能 增加模拟测量引擎 以太网和硬件加密 增加USB功能 增加图形液晶驱动 增加以太网 硬件加密 温度检测和DRAM控制器 Kinetis命名规则 山东大学Kinetis培训 K60内部资源介绍 山东大学Kinetis培训 K60内部资源介绍 山东大学Kinetis培训 K60内部资源介绍 山东大学Kinetis培训 K60内部资源介绍 山东大学Kinetis培训 山东大学Kinetis培训 二 K60开发生态系统 软件应用 调试工具 开发环境 其他支持 Kinetis开发环境 支持Kinetis开发的IDE 集成开发环境 目前主要包括CodeWarrior10 1及以上版本 IAR6 1及以上版本和KeilMDK 即KeilforARM 等 山东大学Kinetis培训 Kinetis开发环境 山东大学Kinetis培训 CodeWarrior10 2 Kinetis开发环境 山东大学Kinetis培训 IAR6 3 Kinetis开发环境 山东大学Kinetis培训 开发环境对比 山东大学Kinetis培训 Kinetis调试工具 目前Kinetis的调试工具主要有飞思卡尔自己的OSBDM及USBDM P EMultilink J Link和ulink等等 其中JLink 目前发展到V8版本 以其支持范围广 价格便宜 速度快等优势得到广泛应用 山东大学Kinetis培训 J Link P EMultilink OSBDM 山东大学智能车工作室根据开源资料 自行设计了OSBDM调试器和USBDM调试器 其中OSBDM由飞思卡尔官方开源 目前由P E公司维护 USBDM由网友pgo开源和维护 经过二次设计和完善 目前山大设计的OSBDM分别支持CW IAR和KeilMDK三种开发环境 而且支持飞思卡尔几乎全系列MCU 包括 FreescaleHCS12 HCS12 X HCS08 已测试MC9S12DG128 MC9S08JM60 FreescaleColdfireV1 V2 V3 V4 已测试MCF52259 FreescaleDSC全系列 已测试MC56F8366 FreescalePowerPC架构的Qorivva系列 已测试MPC5604B FreescaleCortex M4核的Kinetis系列 已测试K10 K60 Kinetis调试工具 山东大学Kinetis培训 Kinetis开发板 山东大学Kinetis培训 山东大学Kinetis培训 三 IAR Jlink开发K60方法 IAR Jlink开发K60方法 山东大学Kinetis培训 山东大学Kinetis培训 四 K60代码框架分析 K60上电启动顺序 山东大学Kinetis培训 1 上电起初 单片机的电压调节器会把整个系统置于POR 上电复位 状态的上电阶段 一直到工作电压达到了可以让单片机正常工作的电压阈值之后才释放这个上电阶段 进入复位阶段 2 在复位保持期间 由单片机内部的模式控制复位逻辑统筹支配整个复位阶段的执行顺序 3 首先MCG模块使能 并默认为FEI时钟模式 4 相应模块的时钟使能 包括Coreclock Systemclock Flashclock busclock等这些不需要门控 clockgate M4的特色 控制的时钟 5 Flash控制器从复位状态释放 注意这时外部RESET脚仍然保持低电平 并且执行一系列的初始化操作 因为要为接下来的代码执行做准备了 K60上电启动顺序 山东大学Kinetis培训 6 单片机 RESET引脚释放 但是系统复位状态继续保持 一直到上面的Flash控制器初始化完毕 如果Flash控制器提前初始化好 则 RESET引脚释放后立即从POR状态苏醒 7 Kinetis从复位状态唤醒之后 开始设置堆栈 stack 程序计数器 PC 和连接寄存器 LR 即从中断向量表地址0读取内容给堆栈指针 地址4读取内容给PC指针 LR寄存器设置为0 xFFFF FFFF 8 上面三个寄存器设置好了之后 单片机就开始从PC指针指向的地址开始执行代码了 即进入启动代码阶段 最后才转到main开始执行 K60启动代码分析 山东大学Kinetis培训 RestHandler 清零通用寄存器组 跳转到Kinetis Start C 关闭看门狗 如果从ROM启动 则复制中断向量表到RAM中 修改中断向量表地址为RAM中的地址 复制初始化数据段 data到RAM 把以ram function声明的函数拷贝到RAM中 清零RAM中初始化为0的 BSS段 初始化锁相环PLL 跳转到main函数 内存映射 map文件分析 山东大学Kinetis培训 山东大学Kinetis培训 五 K60外设资源在智能车中的应用 K60外设资源在智能车中的应用 K60高精度高速的AD 可以有效的采集传感器模拟参数 K60的每个IO都可以设置为中断触发源 为智能车硬件设计提供更大的灵活性 K60的FTM模块可以提供PWM通道 控制智能车的舵机和电机 K60的PIT模块实现周期性中断 提供时间基准 或者与LPTMR模块的脉冲累加功能实现速度测量 K60使用ARMCortex M4的核 具有1 25DMIPS MHz的运算能力 另外还有单时钟周期乘法累加 MAC 单元 优化的单指令多数据 SIMD 指令 饱和运算指令等 使更加复杂的处理算法的实现成为可能 山东大学Kinetis培训 K60外设资源 山东大学Kinetis培训 GPIO模块 山东大学Kinetis培训 GPIO模块需要考虑如下几个寄存器 PORTx PCRn 端口控制寄存器 管理管脚复用GPIOx PDDR 端口数据方向寄存器GPIOx PDOR 端口数据输出寄存器GPIOx PDIR 端口数据输入寄存器GPIOx PTOR 端口输出翻转寄存器 GPIO模块 山东大学Kinetis培训 PORTx PCR MUX 管脚复用控制 PE 拉电阻使能0 禁能上拉或者下拉电阻1 禁能上拉或者下拉电阻 PS 拉电阻属性设置0 使能下拉电阻1 使能上拉电阻 GPIO模块 山东大学Kinetis培训 GPIOx PDDR GPIO模块 山东大学Kinetis培训 GPIOx PDOR GPIO模块 山东大学Kinetis培训 GPIOx PDIR GPIO模块 山东大学Kinetis培训 GPIOx PTOR GPIO模块 山东大学Kinetis培训 例程 PORTE PCR 10 PORT PCR MUX 1 使能PTE10为GPIOGPIOE PDDR 1 10 设置PTE10为输出GPIOE PDOR 设置PTE10输出为0 A D模块 山东大学Kinetis培训 K60的AD模块特点 1 最高16位AD转换精度 逐次逼近型的 所以速度没问题 而且能做到如此精度已实属不易了 再往高估计就该换 的了 2 最多4对差分模拟输入通道和24个单端模拟输入通道 对一般工业应用足够了 3 输出精度可选 差分模式可编程16位 13位 11位和9位模式 单端模式可编程为16位 12位 10位和8位 4 输入时钟可选四种时钟 即bus clock bus clock 2 ALTCK ADACK 5 内设内部温度传感器 用于监控芯片温度 6 硬件平均功能 对AD转换结果在队列里平均之后输出 7 带自校准模式 8 最高64倍PGA programablegainAmplifier A D模块 山东大学Kinetis培训 A D模块需要考虑如下几个寄存器 ADCx SC1n ADC状态及控制寄存器1ADCx CFG1 ADC配置寄存器1ADCx CFG2 ADC配置寄存器2ADCx Rn ADC结果寄存器ADCx SC2 ADC状态及控制寄存器2 A D模块 山东大学Kinetis培训 voidADC Init1 void SIM SCGC3 SIM SCGC3 ADC1 MASK 打开ADC1门控时钟ADC1 CFG1 ADC CFG1 ADIV 3 输入时钟8分配 ADC CFG1 MODE 0 8位精度 ADC CFG1 ADICLK 0 时钟源为BusclkADC1 SC2 0 ADC1 SC1A ADC SC1 ADCH 20 选择AD1 20通道ADC1 SC1A 禁止转换完成中断 ADC初始化函数 A D模块 山东大学Kinetis培训 voidRead ATD1 uint8 pbuf uint16len do ADC1 SC1A ADC SC1 ADCH 20 写入ADCx SC1A触发转化while ADC1 SC1A ADC读函数 PWM模块 山东大学Kinetis培训 FTM模块的特点 1 时钟源可选择 FTM的时钟源可以来自系统时钟或外部时钟 可对时钟分频 分频比为1 2 4 8 16 32 64 128 这属于定时器的特性 2 最多3个FTM定时器FTM0 FTM1 FTM2 即可以有3个自由计数器 也即可以存在独立的3路PWM模块 3 所有的通道都可以设置为中心对齐的PWM输出模式 且某个FTM定时器中的每对通道都可以级联以产生PWM信号 4 PWM通道可成对工作在相同输出或互补输出 也可各通道独立输出 当通道成对互补输出时可使用死区插入功能 这对一些全桥控制电路有很大意义 省去了外围死区电路 5 可软件控制PWM的输出 即屏蔽或者开启单独某个通道 PWM模块 山东大学Kinetis培训 PWM模块需要考虑如下几个寄存器 PORTx PCR 端口控制寄存器FTMx MODE 特征模式选择寄存器FTMx SC 状态及控制寄存器FTMx OUTINT 通道输出初始状态寄存器FTMx CNT 计数寄存器FTMx OUTMASK 输出屏蔽寄存器FTMx MOD 模数寄存器 周期寄存器 FTMx CnSC 通道状态及控制寄存器FTMx CnV 通道值寄存器 占空比寄存器 FTMx CNTIN 计数器初始值寄存器 PIT模块 山东大学Kinetis培训 PIT模块 山东大学Kinetis培训 PIT模块需要考虑如下几个寄存器 PIT MCR PIT模块控制寄存器PIT LDVALn 定时器加载寄存器PIT TCTRn 定时器控制寄存器PIT TFLGn 定时器标志寄存器 PIT模块 山东大学Kinetis培训 PIT MCR PIT模块 山东大学Kinetis培训 PIT LDVALn PIT模块 山东大学Kinetis培训 PIT TCTRL PIT模块 山东大学Kinetis培训 voidPIT Init void SIM SCGC6 SIM S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论