《嵌入式系统开发与应用》教学教案.docx
《《嵌入式系统开发与应用》教学教案.docx》由会员分享,可在线阅读,更多相关《《嵌入式系统开发与应用》教学教案.docx(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学习情境一走入嵌入式世界任务1嵌入式系统概述学习内容1 .嵌入式系统的由来2 .嵌入式系统的概念3 .嵌入式系统的应用新课引入以广州周立功公司开发的MagicARM2200实验箱为开发平台来介绍嵌入式系统的基 础知识。实验箱展示,并进行资源介绍,引导学生分析与前面所学单片机有什么联系和区别?演示8个LED闪烁一一与单片机相同点展示电脑鼠一ARM核心控制芯片型号是Luminau生产的LM3s615 (Cortex -M3) o电脑 鼠走迷宫竞赛视频。一一比单片机能实现更为复杂的功能新课讲授.嵌入式系统的由来微控制器朝着小型、价廉、高可靠性的方向开展,将微型机嵌入到一个对象体系中, 实现对象体系的
2、智能化控制。嵌入式系统是从计算机技术的开展中别离出来的专用计算 机系统。2、嵌入式系统的概念嵌入式系统和通用计算机系统的区别嵌入式系统与单片机的关系嵌入式系统一般是基于32位嵌入式处理器,从事网络、通信、多媒体等的应用可以把嵌入式系统应用分成高端与低端,把单片机应用理解成嵌入式系统的低端应 用什么是嵌入式系统列举生活中使用嵌入式的实例,引出嵌入式系统的概念。学生操作练习:定义一个数据段,段名为Xufe,属性为读写。C0DE16、CODE32语法格式: CODE 16 (或CODE32)举例:(3)ENTRY语法格式:ENTRYENT RY伪指令用于指定汇编程序的入口点。举例:(4)END语法格
3、式:ENDEND伪指令用于通知编译器已经到了源程序的结尾。举例:(5)EQU语法格式:名称EQU表达式,类型EQU伪指令用于为程序中的常量、标号等定义一个等效的字符名称 举例:Test EQU 50任务实施在ADS软件中编写一段完整的汇编语言程序1 .教师演示2 .学生操作操作步骤:建立工程Prog 1. me p 建立新文件testl.s,汇编程序补充完整;给地址0x40003000定义一个别名ADDR;声明代码段EXAM,只读属性 ;标识程序入口;声明下面代码是32位ARM指令RI,# ADDRR0,#20R0, RI LOOPSTART LDRMOVSTRLOOP B ;程序结束添加文件
4、到工程编译点击Make按钮,进行编译连接.小结本节主要介绍汇编语言程序结构和常用的伪指令。作业定义一个数据段,段名为XPdata,属性为读写。定义一个代码段,段名为XPcode,属性为只读。学习情境二 在ADS环境中开发汇编程序任务3寻址方式任务描述正确判断ARM指令的基本寻址方式任务分析及相关知识点L寻址方式概念根据指令中给出的地址码寻找操作数的真实地址的方式。2.寻址方式种类只介绍5种基本寻址方式立即寻址,寄存器寻址,寄存器间接寻址,寄存器移位寻址,基址寻址。想一想,单片机有几种基本寻址方式立即寻址,寄存器寻址,寄存器间接寻址,直接寻址四种基本寻址方式(1)立即寻址什么是立即寻址?举例说明
5、:SUBS RO,RO,#1MOV R0,#0xFF0000标志:#教师演示:在ADS软件中操作,观察操作结果。立即数满足要求:8位位图什么是8位位图:能够由一个8位常数循环移位偶数位得到。以下常数是否是立即数0x3FC(0xFF2) 0 0xF0000000(0xF0 24) OxFFFF OxFOOOOOOlO学生举3个合法的立即数思考题:所有的8位常数都是合法立即数,对吗?(2)寄存器寻址ARM寄存器37个用户可见的寄存器31个通用32位寄存器,6个状态寄存器各模式可访问的寄存器,分析各寄存器的作用什么是寄存器寻址?举例说明:SUBS R0,R0,R2MOV RO,RI标志:寄存器教师演
6、示:在ADS软件中操作,给寄存器赋值,观察操作结果。(3)寄存器间接寻址什么是寄存器间接寻址?举例说明:SUBS R0,R0,R2MOV RO,RI标志:寄存器与单片机寄存器间接寻址方式比照教师演示:在ADS软件中操作,给寄存器赋值,观察操作结果。(4)寄存器移位寻址ARM指令集特有。什么是寄存器移位寻址?移位操作包括:LSL LSR ROR ASR RRX举例说明:SUBS RO,RO,R2,LSR #2MOV RO,RI,LSL R3标志:移位指令教师演示:在ADS软件中操作,给寄存器赋值,观察操作结果。(5)基址寻址什么是基址寻址?用于访问基址附近的存储单元。如查表等举例说明:LDR R
7、l,R2,#0x03LDR R1,RO,R3,LSL #1标志:寄存器,立即数教师演示:在ADS软件中操作,给寄存器赋值,观察操作结果。任务实施正确判断ARM指令的基本寻址方式SUBS RO, RO, #1LDR RI, RO, R3, LSL #1ANDS RI, RI, R2, LSL R3LDR R2, R3 , #0x0CSUB RO, RI, R2ADD RI, RI, R2MOV RO, #1小结了解5种基本寻址方式的执行方式。作业习题1学习情境二 在ADS环境中开发汇编程序任务4跳转指令任务描述利用跳转指令实现程序的循环。任务分析及相关知识点1 .指令格式 S , , 分别解释指
8、令格式中用到的术语号内的项是必需的,什号内的项是可选的举例AND RI, R2, #OxOFvoperand2第二个操作数可用形式举例 LDR RO, R1, #4X 总结第二个操作数可用格式是什么?常数表达式一必须是8位位图。举例 SUB RI, RI, R2X总结第二个操作数可用格式是什么?寄存器举例 ADD RI, RI, RI, LSL #3X总结第二个操作数可用格式是什么?寄存器移位2 .移位指令LSL (或ASL)操作格式:通用寄存器,LSL (或ASL) 操作数其中,操作数可以是通用寄存器,也可以是立即数(031)。图示法解释操作形式举例说明LSR操作格式:通用寄存器,LSR操作
9、数其中,操作数可以是通用寄存器,也可以是立即数(031)。图示法解释操作形式举例说明ASR操作格式:通用寄存器,ASR操作数其中,操作数可以是通用寄存器,也可以是立即数(031) o图示法解释操作形式举例说明(4) ROR操作格式:通用寄存器,ROR操作数其中,操作数可以是通用寄存器,也可以是立即数(031)。图示法解释操作形式举例说明3.跳转指令(重点)ARM分为5大类指令回忆51单片机的跳转指令,分条件跳转指令和无条件跳转指令ARM跳转指令3条(DB指令格式为:B条件目标地址B指令是最简单的跳转指令。举例:见教材P40(2)BL指令带链接的跳转指令BL指令的格式为:BL条件 目标地址举例(
10、51单片机子程序调用指令的例子,假设为ARM那么是)跳转之前,在寄存器R14中会自动地保存PC的当前值,即把跳转指令的下一条指 令的地址复制到R14 (LR)(3)BX指令带状态切换的跳转指令,实现ARM和Thumb状态间的切换。BX指令的格式为:BX条件目标地址如何判断目标地址处是ARM指令还是Thumb指令?看目标地址的位。是1还是 0.注意:三种跳转指令的区别任务实施利用跳转指令实现程序的循环LOOP MOV RI,#3ADD Rl,#lMOV R2,R1B LOOP;让程序跳转到LOOP处循环执行这段代码 小结介绍了指令格式、移位指令和三条跳转指令。作业写出三条跳转指令的区别。学习情境
11、二 在ADS环境中开发汇编程序任务6条件码执行任务描述比拟 RO, R1 的大小,假设 ROR1,那么 RO=RO+1, R0W1,那么 R1=R1+1任务分析及相关知识点1 .比拟指令(DCMP指令CMP指令的格式为:CMP条件寄存器,操作数2CMP指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比拟,同时 更新CPSR中条件标志位的值。比拟指令常与条件码一起使用。条件码:当指令的执行条件满足时,指令被执行,否那么指令被忽略。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记 符的后面和指令同时使用。见教材表3-1.2 2) CMN指令CMN指令的格式为:C
12、MN条件寄存器,操作数2CMN指令用于把一个寄存器的内容和另一个寄存器的内容或立即数取反后进行比 较,同时更新CPSR中条件标志位的值。该指令实际完成操作数1和操作数2相加,并根据结果更改条件标志位。3 .条件码作用 ARM特有指令条件码见教材P49表2-3举例说明注意条件码在指令中的位置:操作码后面,不加空格。执行方式:常结合比拟指令一起使用,当指令的执行条件满足时,指令才被执行, 否那么指令被忽略。任务实施比拟RO, R1 的大小,假设ROR1,那么RO=RO+1, R0W1,那么R1=R1+1操作步骤:在ADS中完成1 .建立工程2 .建立新文件3 .编译4 .调试5 .观察寄存器的结果
13、指令实现CMP RO,R1ADDHI RO,RO,#1ADDLS R1,R1,#1小结掌握比拟指令和条件码的应用方法。作业当R1和。相等时跳转到Lable处执行 答案CMP R1, #0BEQ Label“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。6 .嵌入式系统的应用一视频 在智能仪器仪表上的应用在工业控制中的应用在家用电器中的应用给学生看一段智能家居的视频,体会现代生活的新技术,新体验在计算机网络和通信领域中的应用机器人播放一段街舞机器人视频,感受嵌入式系统ARM的智能体验医疗电子小结介绍了嵌入式系统的概念,特点以及应用等。作业.举出5个嵌入式系统的家电产品1 .什么
14、叫嵌入式系统学习情境二 在ADS环境中开发汇编程序任务5数据处理指令应用任务描述在ADS环境下编程实现RO=R1 *R2 +R3R4相关知识点2 .数据传送指令MOVMOV指令的格式源操作数形式:寄存器,立即数,移位寄存器举例,在ADS中单步运行观察寄存器的结果MVNMVN指令的格式源操作数形式:寄存器,立即数,移位寄存器举例,在ADS中单步运行观察寄存器的结果3 .算术运算指令ADD指令ADD指令的格式操作数2形式:立即数,寄存器,移位寄存器举例,在ADS中单步运行观察寄存器的结果ADC指令ADC指令的格式操作数2形式:立即数,寄存器,移位寄存器举例,在ADS中单步运行观察寄存器的结果SUB
15、指令SUB指令的格式操作数2形式:立即数,寄存器,移位寄存器举例,在ADS中单步运行观察寄存器的结果SBC指令SBC指令的格式操作数2形式:立即数,寄存器,移位寄存器在ADS中单步运行观察寄存器的结果乘法、乘加指令指令中的所有操作数必须为通用寄存器1) MUL指令 32位乘法运算MUL指令的格式2) MLA指令 32位乘加运算MLA指令的格式算术运算指令举例:使用 MVN、SUB 指令实现:R5 = Ox5FFFFFF8 - R8 * 8任务分析分组讨论,找小组代表讲老师汇总:会用到加法指令、减法指令、乘法指令和数据传送指令。任务实施在ADS环境下编程实现R0=RI *R2 +R3 - R4操
16、作步骤:1、新建工程 程名称“math”2、建立程序文件并加载程序文件testl.s到工程3、编译连接常见错误和解决方案:常见错误一:Could not open file-*解决方案:点击菜单Projector emove object code,将以前所生成的所有目标文件 删除。常见错误二:unknown opcode解决方案:一种可能是格式问题:EQU指令和标号必须顶格写,其他不能顶格写;另一种可能是操作码输入错误。常 见错误三:bad register name symbol;解决方案:标号输入错误4、选择调试工具,选择ARMUL(软件仿真)5、运行程序,观察寄存器结果小结学会使用AR
17、M的主要数据处理指令,记住指令中的操作数2的格式。指令功能用法。作业习题2,3学习情境二 在ADS环境中开发汇编程序任务7逻辑运算指令任务描述 R0=10, Rl=25, R5=0xF0000001,如果 ROR1,利用逻辑运算指令将R5低8位清零,否那么将R5低8位置1。相关知识点一.逻辑运算指令LAND指令AND指令的格式指令功能操作数2形式:立即数,寄存器,移位寄存器该指令常用于屏蔽源寄存器1的某些位。举例:写出指令保持R0的位0、1不变,其余位清零。4 . ORR指令ORR指令的格式指令功能操作数2形式:立即数,寄存器,移位寄存器该指令常用于设置源寄存器1的某些位。举例:置位R0的0、
18、1位,其余位保持不变。5 .EOR指令EOR指令的格式指令功能:与1进行异或实现反转操作数2形式:立即数,寄存器,移位寄存器举例:反转R0的0、1位,其余位保持不变。6 . BIC指令BIC指令的格式操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。指令功能:用于清除源寄存器1的某些位举例:清除R0中的位0、1、和3,其余的位保持不变。二.移位指令移位操作在ARM指令集中不作为单独的指令使用,它只能作为指令格式中是一个 字段,在汇编语言中表示为指令中的选项。LSL逻辑左移 ASL 算术左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移图示法举例任务分析分组讨论教师提出指导性建议任
19、务要实现R0和R1比拟,可以使用比拟指令CMP,假设ROR1,将R5中的低8位 清零,可以使用逻辑与指令来实现,即R5和。xFFFFFFOO相与,OxFFFFFFOO不是合法 立即数,需要将它取反再和R5相与;或者使用BIC指令也可以实现清零。假设R0WR1, 将R5中的低8位置1,可以使用逻辑或指令来实现,即R5和。xOOOOOOFF相或。而且 逻辑操作是满足某些条件执行,因此要使用条件码。根据分析画出流程图和程序代码。任务实施1 .新建工程翻开ADS集成开发环境,点击【File】菜单,选择【New.】即弹出New对话框,在 New对话框选择【Project】页建立新工程,在【Locatio
20、n】项选择工程存放路径,并在【Project name项输入工程名称Luoji”2 .建立程序文件并加载程序文件到工程在New对话框选择【File】页来建立程序文件,在【File name项输入程序名称 “test2.s 选中“Add to Project”项,选中 Debug, Debug Rei, Release 三项,点 击“确定”按钮。3 .编译连接点击“Make”编译连接。4 .选择调试工具点击Debug,进入AXD,点击菜单【Options】选择【Configure Target】, 即弹出Choose Target窗口,选择ARMUL(软件仿真)。5 .加载可执行文件关闭AXD界
21、面,重新进入ADS界面,点击“Debug”图标按钮进入 AXD调试环境。6 .翻开寄存器窗口翻开处理器寄存器窗口,点开“Current”前面的加号,会出现所有通用寄存器,便 于观察寄存器的值。单步运行,观察R5寄存器的值。小结学会使用ARM的逻辑运算指令和移位指令,指令功能用法。作业使用CMP指令判断(5*Y/2)(2*X)吗?假设大于那么R5 = R5&0xFFFF0000,否那么R5 二R5|0x000000FF学习情境二 在ADS环境中开发汇编程序任务8存储、加载指令应用任务描述将寄存器R1中的数据传送到存储器的0x30000000地址单元中。新课引入前面讲的数据操作指令是对寄存器的操作
22、,没有对存储器进行操作。 而加载存储指令是对寄存器和存储器之间传输数据。新课讲授相关知识点1 .存储指令功能:是将寄存器中的数据保存到存储器。与加载指令操作相反。存储指令分类:STR, STRB, STRH(1) STR指令格式,功能描述,指令举例(2) STRB指令格式,功能描述,指令举例 STRH指令格式,功能描述,指令举例2加载指令功能:是将存储器中的数据加载到寄存器。加载指令分类:LDR, LDRB, LDRH(1) LDR指令格式,功能描述,指令举例(2) LDRB指令格式,功能描述,指令举例(3) LDRH指令格式,功能描述,指令举例思考题:MOV和LDR指令有何不同?MOV是把数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统开发与应用 嵌入式 系统 开发 应用 教学 教案
限制150内