《嵌入式系统设计实战—基于飞思卡尔SX微控制器》ChapPPT课件_第1页
《嵌入式系统设计实战—基于飞思卡尔SX微控制器》ChapPPT课件_第2页
《嵌入式系统设计实战—基于飞思卡尔SX微控制器》ChapPPT课件_第3页
《嵌入式系统设计实战—基于飞思卡尔SX微控制器》ChapPPT课件_第4页
《嵌入式系统设计实战—基于飞思卡尔SX微控制器》ChapPPT课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1 第3章第一个样例程序及ColdFire工程组织 2 本章目录 3 1通用I O接口基本概念及连接方法3 2XS128的GPIO寄存器与GPIO构件封装3 3CodeWarrior开发环境与S08 S12 ColdFire三合一写入器3 4CW环境C语言工程文件的组织3 5第一个C语言工程 控制小灯闪烁3 6第一个汇编语言工程 控制小灯闪烁 3 3 1通用I O接口基本概念及连接方法 I O接口的概念即输入输出接口 是微控制器同外界进行交互的重要通道 通用I O 记为GPIO 即基本的输入 输出 作为通用输入引脚 即开关量输入 作为通用输出引脚 即开关量输出 大多数通用I O引脚可以通过编程来设定工作方式为输入或输出 称之为双向通用I O 4 3 1通用I O接口基本概念及连接方法 上拉下拉电阻与输入引脚的基本接法MCU的某个引脚通过一个电阻接到电源 Vcc 上 这个电阻被称为 上拉电阻 MCU的某个引脚通过一个电阻接到地 GND 上 则相应的电阻被称为 下拉电阻 接法1 引脚I1通过上拉电阻R1接到Vcc 选择R1 R2 K1断开时 引脚I1为高电平 K1闭合时 引脚I1为低电平 接法2 引脚I2通过下拉电阻R4接到Vcc 选择R3 R4 K2断开时 引脚I2为低电平 K2闭合时 引脚I2为高电平 接法3 引脚I3处于悬空状态 K3断开时 引脚I3的电平不确定 这样不好 5 3 1通用I O接口基本概念及连接方法 输出引脚的基本接法 接法1 引脚O1直接驱动发光二极管LED 当引脚O1输出高电平时 LED不亮 当引脚O1输出低电平时 LED点亮 接法2 引脚O2通过一个NPN三极管驱动蜂鸣器 当引脚O2输出高电平时 蜂鸣器响 引脚O2输出低电平时 蜂鸣器不响 6 3 2XS128的GPIO寄存器与GPIO构件封装 3 2 1XS128的GPIO寄存器 9个GPIO口 A口 B口 E口 J口 M口 P口 S口 T 口AD口 A B E T AD都有8个引脚 而J口有2个引脚 M口有6个引脚 S口有4个引脚 P口有7个引脚引脚其他寄存器 7 3 2XS128的GPIO寄存器与GPIO构件封装 数据方向寄存器决定了相对应引脚是输入还是输出 数据寄存器与输入寄存器设置对应引脚为高电平 1 或低电平 0 8 3 2XS128的GPIO寄存器与GPIO构件封装 低功耗驱动寄存器低功耗输出 记忆要点 输出时 低功耗驱动寄存器的一位 0 输出功耗正常 1 输出功耗为正常的1 5 上拉下拉电阻使能寄存器与上拉下拉选择寄存器禁用或允许上拉或下拉电阻 记忆要点 输出时 数据寄存器的一位 0 输出低电平 1 输出高电平 记忆要点 上拉下拉使能寄存器的一位 0 无上拉或下拉 1 有上拉或下拉 记忆要点 上拉下拉使能寄存器的一位 0 无上拉或下拉 1 有上拉或下拉 9 3 2XS128的GPIO寄存器与GPIO构件封装 A B E口共用的上拉电阻控制寄存器 PUCR 共用一个控制寄存器 PUCR 决定了相对应引脚是输入还是输出 记忆要点 在引脚PORTA被定义成输入时 可通过上拉电阻允许寄存器PUCR中的PUPAE位来定义有无内部上拉电阻 0 没有内部上拉电阻1 有内部上拉电阻 A B E口共用的低功耗驱动寄存器 RDRIV 共用一个控制寄存器 RDRIV 设置对应引脚为高电平 1 或低电平 0 记忆要点 输出时 数据寄存器的一位 0 输出低电平 1 输出高电平 记忆要点 在引脚被定义为低功耗驱动时 可通过低功耗允许寄存器RDRIV中的相应位来定义是否低功耗驱动使能 0 不允许低功耗驱动使能1 允许低功耗驱动使能 记忆要点 在引脚被定义为低功耗驱动时 可通过低功耗允许寄存器RDRIV中的相应位来定义是否低功耗驱动使能 0 不允许低功耗驱动使能1 允许低功耗驱动使能 10 3 2XS128的GPIO寄存器与GPIO构件封装 AD口也可以设置低功耗驱动功能个引脚可以分别设置低功耗驱动功能 记忆要点 在引脚被定义成低功耗驱动时 可通过低功耗驱动寄存器RDR0AD0和RDR1AD0中相应的位来定义相应引脚是否低功耗驱动 0 不允许低功耗驱动使能1 允许低功耗驱动使能 中断使能寄存器与中断标志寄存器设置对应引脚为高电平 1 或低电平 0 记忆要点 输出时 数据寄存器的一位 0 输出低电平 1 输出高电平 中断使能寄存器的对应位若为1 则设置中断相应使能 若为0 则设置为禁止相应中断 中断标志寄存器表征中断是否已经产生 若中断标志寄存器的某一位为1 则表明相应中断已经产生 若为0 则相应中断未产生 11 3 2XS128的GPIO寄存器与GPIO构件封装 线或寄存器 寄存器的对应位若为1 则该位对应引脚为输出线或模式 即开漏 若为0 则该位对应引脚为输出推拉模式注意 引脚设置为输入 该寄存器设置无效 记忆要点 输出时 数据寄存器的一位 0 输出低电平 1 输出高电平 记忆要点 在引脚被定义为低功耗驱动时 可通过低功耗允许寄存器RDRIV中的相应位来定义是否低功耗驱动使能 0 不允许低功耗驱动使能1 允许低功耗驱动使能 12 3 2XS128的GPIO寄存器与GPIO构件封装 GPIO的简单编程方法置位与清位的编程方法置位 清0等3个宏定义 defineBSET bit Register Register 1 bit 1 得到寄存器中某一位状态 13 3 2XS128的GPIO寄存器与GPIO构件封装 开关量输出的编程方法首先初始化端口引脚的数据方向为输出 然后运用该引脚的数据寄存器进行数据输出 BSET 4 DDRB B口的第4引脚初始化为输出BSET 4 PORTB B口的第4引脚输出高电平 0 开关量输入的编程方法首先初始化端口的引脚数据方向为输入 然后运用该引脚将外界数据输入给对应数据寄存器中 BCLR 3 DDRB B口的第3引脚初始化为输入Data BGET 3 PORTB 获得B口第3引脚的输入数据赋给变量Data 14 3 3CodeWarrior开发环境与S08 S12 ColdFire三合一写入器 3 3 1CW环境功能和特点 3个版本 特别版 SpecialEdition 标准版专业版功能模块 编辑器 源码浏览器搜索引擎 构造系统调试器 工程管理器 15 3 3CodeWarrior开发环境简介 3 3 2CW环境安装与设置安装后上网注册 16 3 3CodeWarrior开发环境与S08 S12 ColdFire三合一写入器 3 3 2S08 S12 ColdFire三合一写入器 17 3 3CodeWarrior开发环境与S08 S12 ColdFire三合一写入器 3 3 3MC9S12XS128硬件评估板 18 3 4CW环境C语言工程文件的组织 工程文件的逻辑组织结构 19 3 4CW环境C语言工程文件的组织 工程文件的物理组织结构 20 3 4CW工程文件组织 3 4 4链接文件及机器码文件链接文件linker lcf 该文件提供了工程在链接时所需要的参数信息 一般情况下 该文件不需要修改 目标文件 s19文件CodeWarrior生成三个文件分别是elf sl9 elf xMAP S19格式的文件写入到Flash中 21 3 4CW环境C语言工程文件的组织 prm文件有五个组成部分构成NAMES END部分SEGMENTS END部分PLACEMENT END部分STACKSIZE部分VECTOR部分 22 3 4CW环境C语言工程文件的组织 关于 pragma指令的简要说明 pragmaDATA SEG pragmaCONST SEG pragmaCODE SEG pragmaTRAP PROC 23 3 4CW环境C语言工程文件的组织 start12 c文件及启动过程设置堆栈指针 将其映射到RAM空间初始化RAM 复制初始数据 将初始化数据从ROM复制到RAM跳转到主函数main 执行 XS128映像寄存器头文件MC9S12XS128 h 24 3 4CW环境C语言工程文件的组织 3 4 4芯片初始化 主程序 中断程序及其他文件1 系统初始化构件 MCUInit h与MCUInit c 2 总头文件Includes h和主程序文件main c3 中断文件isr c4 芯片无关文件类型定义文件Type h通用函数文件GeneralFun h和GeneralFun c5 工程说明文件 25 S19文件格式分析 S01E00002E2F4F424A2F4330315F4447313238B3CCD0F2BFF2BCDC2E733139BCS1134000A7CF1FFF79003C1640F01801AE1D06181B S113FFF0400A400A400A400A400A400A400A4000B7S9034000BC 目标代码文件是以S记录 八种 格式表示的机器码文件 3 4CW工程文件组织 26 3 4CW环境C语言工程文件的组织 编译链接还产生lst文件与map文件 新建工程有两种方法使用工程模板使用已存在的工程复制一份继续进行新的工程编程 27 为了复用代码 提高编程效率和增强代码的可移植性 在控制小灯闪烁的实例编程中使用了构件化的思想 程序中定义了以下构件 GPIO构件 用于实现对所有GPIO引脚统一编程 包括构件头文件GPIO h和构件源文件GPIO c Light构件 控制指示灯的明暗 通过调用GPIO构件完成 包括构件头文件Light h和构件源文件Light c 3 5第一个C语言工程 控制小灯闪烁 28 3 5第一个应用实例 控制小灯闪烁 3 5 2Light构件编程Light h文件 对三盏灯使用的端口和引脚进行宏定义 并给出灯控制相关函数的声明语句 Light c文件 给出两个灯控制函数的具体定义 这两个函数均调用了GPIO构件中的函数来实现 29 3 5第一个应用实例 控制小灯闪烁 3 5 3Light测试工程主程序 一盏灯交替亮 暗Light Run灯接TC口的1引脚两盏灯交替亮 暗Light Run灯接TC口的1引脚Light Error灯接TC口的2引脚三盏灯交替亮 暗Light Run灯接TC口的1引脚Light Error灯接TC口的2引脚Light Link灯接LD口的2引脚 30 3 6理解第一个C工程的执行过程 系统上电 STACKSIZE0 x100 初始化堆栈大小VECTOR0 Startup 复位向量 初始化堆栈初始化RAM复制初始数据初始化ROM系统模块初始化并跳转到main主程序 执行用户自定义的main程序 硬件中断机制始终开启 并实时的 监听 内外环境而恰当地激发特定的事务处理过程 31 3 6第一个汇编语言工程 控制小灯闪烁 汇编工程文件的组织1 主函数文件 main asm 2 中断处理程序文件 isr asm 3 框架程序文件4 汇编软件构件文件5 通用程序文件 32 3 5第一个应用实例 控制小灯闪烁 3 5 2Light构件汇编程序Light inc文件 对三盏灯使用的端口和引脚进行宏定义 并给出灯控制相关函数

温馨提示

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

评论

0/150

提交评论