嵌入式处理器原理及应用上机实验

上传人:工**** 文档编号:579163556 上传时间:2024-08-26 格式:PPT 页数:29 大小:564.29KB
返回 下载 相关 举报
嵌入式处理器原理及应用上机实验_第1页
第1页 / 共29页
嵌入式处理器原理及应用上机实验_第2页
第2页 / 共29页
嵌入式处理器原理及应用上机实验_第3页
第3页 / 共29页
嵌入式处理器原理及应用上机实验_第4页
第4页 / 共29页
嵌入式处理器原理及应用上机实验_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《嵌入式处理器原理及应用上机实验》由会员分享,可在线阅读,更多相关《嵌入式处理器原理及应用上机实验(29页珍藏版)》请在金锄头文库上搜索。

1、电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心嵌入式处理器原理及应用嵌入式处理器原理及应用上机实验上机实验电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心一、实验目的一、实验目的理解并实现理解并实现ARM7ARM7处理器的模式切换、处理器的模式切换、C C语言中对语言中对ARMARM汇编子程序的汇编子程序的调用调用、中断处理程序的设计和编写。中断处理程序的设计和编写。理解理解 W90P710 W90P710 高级中断控制器使用高级中断控制器使用的基本的基本方法和一般的中断处理方法和一般的中断处理方法方法。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心了解

2、了解 W90P710 ARM7W90P710 ARM7处理器中用于输入处理器中用于输入输出的输出的 GPIO GPIO 的基本用法的基本用法,了解了解外部外部芯片芯片 BC7281B BC7281B 中中 LED7 LED7 段数码管显示段数码管显示功能的基本使用方法。功能的基本使用方法。 掌握使用掌握使用 W90P710 W90P710 处理器通过处理器通过 GPIO GPIO 对外部芯片进行控制的基本原理。对外部芯片进行控制的基本原理。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心二、实验设备二、实验设备硬件硬件: PC 机机 一一台台 W90P710 学习学习板板一一台台

3、 软件软件: Windows2000/XP 系统系统 LambdaEDU3 集成开发环境集成开发环境 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心三、实验内容三、实验内容配置配置 AIC; 配置配置 Timer;配置配置LED7 ,利用,利用GPIO实现对实现对LED7的控的控制;制;为为 Timer 中断编写中断处理中断编写中断处理程序,响应时程序,响应时钟中断并将中断次数在钟中断并将中断次数在LED7上显示。上显示。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心四、实验原理四、实验原理1.定时器原理定时器原理Timer,能产生特定的周期性中断。这个中,能产生

4、特定的周期性中断。这个中断可以看作是操作系统心脏的脉动,断可以看作是操作系统心脏的脉动,用于用于实现时实现时间的延时和确认超时。时钟节拍的频率越高,系间的延时和确认超时。时钟节拍的频率越高,系统用于处理时钟中断的统用于处理时钟中断的额外开销额外开销也越大。也越大。 W90P710 的的24位位 Timer 含有两个通道,分含有两个通道,分别是别是 Timer0 和和 Timer1。每个通道有一个。每个通道有一个独立的独立的时钟源,每隔一定时间,计数寄存器的值减时钟源,每隔一定时间,计数寄存器的值减 1,当计数寄存器的值达到零时,就会当计数寄存器的值达到零时,就会触发触发一次中断。一次中断。设计

5、通用软件可以设计通用软件可以在每个在每个中断发生时加中断发生时加 1,达到,达到计数的目的。计数的目的。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心对于对于 W90P710,晶振输入频率为,晶振输入频率为 15MHZ,用,用户可根据上面的等式计算出户可根据上面的等式计算出 Timer 中断中断的频率,如下的频率,如下表:表: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心2.中断中断Timer 触发中断并在中断服务子程序里实现触发中断并在中断服务子程序里实现相关的计数功能相关的计数功能。中断中断是操作系统处理事件的一种机制,以异是操作系统处理事件的一种机制,以异步

6、的方式通知步的方式通知 CPU 有个事件发生了有个事件发生了。中断。中断一旦被识一旦被识别,别,CPU 保存现场,进入中断服务子程序保存现场,进入中断服务子程序(ISR),在返回前又恢复现场在返回前又恢复现场。这种。这种机制使得机制使得 CPU 可以在事可以在事件发生时予以处理,克服了早期的操作系统中,件发生时予以处理,克服了早期的操作系统中,CPU 轮询某个轮询某个事件是否发生,造成事件是否发生,造成 CPU 资源的浪资源的浪费的缺点。费的缺点。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ARM 有有 7 种异常,分别为种异常,分别为:复位复位(reset),未定义未定义指令

7、指令(undefined instruction),软件中断软件中断(software interrupt),指令预取指令预取中止中止(prefetch abort),数据数据访问中止访问中止(data abort),外部中断外部中断请求请求(IRQ),快速快速中断请求中断请求(FIQ)。对应对应于这于这 7 类异常,类异常,ARM 有相应的异常工有相应的异常工作作模式模式,如下图所示:,如下图所示: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心在上图在上图下方的方格代表下方的方格代表 ARM 的的 7 种模式。其中种

8、模式。其中 User 和和SYS 模式共用一组寄存器模式共用一组寄存器,其它,其它 5 种模式各有自己种模式各有自己的一套寄存器组,褐色部分的寄存器是各模式下的特殊寄的一套寄存器组,褐色部分的寄存器是各模式下的特殊寄存器存器,只有,只有进入了该模式,才可以访问。而淡蓝色部分的进入了该模式,才可以访问。而淡蓝色部分的寄存器是共用的,对各个模式可见。寄存器是共用的,对各个模式可见。观察观察该图可知,该图可知,ARM 共有共有 37 个寄存器,每个寄存个寄存器,每个寄存器器 32 位宽,无论何时,至多只有位宽,无论何时,至多只有 18个个寄存器对处理器是寄存器对处理器是可见的可见的:r0-r15,c

9、psr,spsr。 R0-R12:通用寄存器,用于保存数据和指针。:通用寄存器,用于保存数据和指针。 R13:通常被看作堆栈指针寄存器:通常被看作堆栈指针寄存器(SP) R14:链接寄存器,通常用于保存返回地址:链接寄存器,通常用于保存返回地址 R15:程序计数器:程序计数器(PC) 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心CPSR:程序状态寄存器,用于记录当前程序运行的:程序状态寄存器,用于记录当前程序运行的状态。这里有必要再介绍下状态。这里有必要再介绍下它的它的格式,如下图格式,如下图(因为因为它它可可控制控制CPU 对中断是否响应对中断是否响应):这里这里我们关注的是

10、与中断相关的两个位:我们关注的是与中断相关的两个位:I,F(中断禁止位中断禁止位): 当当 I=1 时禁止时禁止 IRQ 中断,为零时则打开中断,为零时则打开中断中断当当 F=1 时禁止时禁止 FIQ 中断,为零时则打开中断,为零时则打开中断中断电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心M4-M0(M 控制位控制位):用于控制处理器模式,它:用于控制处理器模式,它们与处理器模式的对应关系如下图:们与处理器模式的对应关系如下图:SPSR:备份程序状态寄存器。当特定的异常中断发:备份程序状态寄存器。当特定的异常中断发生时,这个寄存器用于保存生时,这个寄存器用于保存当前当前程序状态

11、器的内容。程序状态器的内容。在异常中断程序退出时,可以用在异常中断程序退出时,可以用 SPSR 中保存的值中保存的值来恢复来恢复 CPSR。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心3.异常向量表异常向量表通常有两种方法将异常中断处理程序注册到异通常有两种方法将异常中断处理程序注册到异常中断向量表中。一种是使用跳转常中断向量表中。一种是使用跳转指令指令 BL,另一种,另一种使用数据读取指令使用数据读取指令 LDR。但由于跳转指令只能在。但由于跳转指令只能在 32MB 的范围内跳转的范围内跳转,所,所受的局限较大。故我们只介受的局限较大。故我们只介绍使用绍使用 LDR 的情况

12、,这大体又可以分为用的情况,这大体又可以分为用 c 语言安语言安装装和用和用汇编语言安装两种汇编语言安装两种。在在 LambdaEDU3 集成开发环境中,已经编写集成开发环境中,已经编写好了针对华邦好了针对华邦 W90P710 这块板子的这块板子的异常异常向量表,使向量表,使用的是用汇编语言安装中断处理例程的方法,具体的用的是用汇编语言安装中断处理例程的方法,具体的启动代码在启动代码在 Lambda EDU3 安装目录安装目录下的下的 :LambdaEDUtargettoolbspsboardsarmw90p710_evbstartredboot _debugvectors.S 中。中。电子科

13、技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心这些这些代码是用符合代码是用符合 GCC 汇编器规范的代码写的。汇编器规范的代码写的。第一行代码是声明该段并赋第一行代码是声明该段并赋以以.vectors,ax的属性。的属性。以后的以后的 8 条语句是数据读取指令条语句是数据读取指令(除除 NOP 外,表示不操外,表示不操作作),分别分别对应对应 ARM 的的 7 中异常发生时,处理开始的中异常发生时,处理开始的第一条指令第一条指令。这里这里简要介绍下另一种安装中断处理程序的方法,简要介绍下另一种安装中断处理程序的方法,它是用它是

14、用 C 语言实现的。下面语言实现的。下面给出给出实际代码:实际代码:其中其中 INT32U 是无符号整型数据类型,是无符号整型数据类型,0xE59FF018 是是 LDR PC,PC,#0x18指令的指令的编码,读者可根据先前的编码,读者可根据先前的描述仔细分析。描述仔细分析。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心4. W90P710 硬件中断硬件中断控制控制在在 W90P710 微处理器中有一个叫中断控制器微处理器中有一个叫中断控制器(AIC,advanced interrupt controller)的部件的部件,可以处,可以处理多达理多达 32 个中断源,目前只定

15、义了个中断源,目前只定义了 31 种,每个中断种,每个中断源都对应了唯一的源都对应了唯一的中断中断号,如下图所示:号,如下图所示: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心此外此外,为了更好的管理中断,为了更好的管理中断,AIC 还实现了还实现了一个一个 8 级级(0-7)的中断优先级位表。的中断优先级位表。如下表如下表: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心其中其中中断号越低,优先级就越高。例如中断号越低,优先级就越高。例如 1 号号看门狗中断优先级最高。另外优先级看门狗中断优先级最高。另外优先级为为0 的四个中的四个中断触发的是断触发的是 FIQ

16、 中断,而其余级别的中断全都属于中断,而其余级别的中断全都属于 IRQ 中断。中断。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心5.通过通过GPIO控制控制LED7GPIO 意为通用目的的输入输出接口,通过意为通用目的的输入输出接口,通过与其相关的寄存器进行特定的配置,该与其相关的寄存器进行特定的配置,该微处理器微处理器引引脚将与微处理器中特定的电路进行逻辑连接,实现脚将与微处理器中特定的电路进行逻辑连接,实现特定的功能。每个特定的功能。每个 GPIO 组中组中包含的包含的一个微处理器一个微处理器引脚一般由寄存器(引脚一般由寄存器(GPIO_CFG)中特定位置的两)中特定位置的

17、两个个 BIT 来控制,最多来控制,最多情况情况下,一个微处理器引脚可下,一个微处理器引脚可以被配置成以被配置成 4 种种模式模式(00、01、10、11),但是某),但是某一个配置下一个配置下仅仅仅仅能使用其中一个功能能使用其中一个功能。具体寄存器及相关控制位的使用参见具体寄存器及相关控制位的使用参见DATA SHEET。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心五、实验步骤五、实验步骤使用使用交叉网线(网线的一头为交叉网线(网线的一头为 T568A,另一头为,另一头为 T568B)连接)连接 W90P710 学习学习板的板的网卡接口可网卡接口可 PC 机的网机的网卡接口卡

18、接口。 使用串口线连接使用串口线连接 W90P710 学习板的学习板的 UART0 和和 PC 机的机的串口。配置超级终端串口。配置超级终端(具体操作,请参考(具体操作,请参考W90P710 学学习板实验指南习板实验指南)。)。 启动启动 LambdaEDU3,新建一个,新建一个“标准应用项目标准应用项目”,项目,项目名称名称自自拟,使用拟,使用“w90p710 标准应用标准应用(ARM)”作为其应用作为其应用程序框架(模板),程序框架(模板),选择选择“w90p710_evb_elf_RedBoot_debug”作为其配置作为其配置。在工程的在工程的 src 文件夹下分别文件夹下分别创建自己

19、的源程序文件并填写创建自己的源程序文件并填写相应相应的程序代码。的程序代码。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 完成代码后,完成代码后,展开展开“W90PP710_evb_elf_RedBoot_Debug”,双击,双击“目目标板配置标板配置”,在,在打开的页面中,点击打开的页面中,点击“W90P710_Excpetion 配置配置”,修改,修改“IRQ”设置为设置为“false”,保存,保存所作的修改。所作的修改。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心右击项目名称选择右击项目名称选择“重建重建 BSP 及项目及项目”,完成该项目,完成该项目的

20、编译和链接的编译和链接。在在“目标机管理目标机管理”中添加一个中添加一个“基于标准基于标准 RSP 的连的连接方式接方式”,名称为,名称为“RedBoot”,体系结构,体系结构选择选择“arm”,连接类型选择,连接类型选择“TCP”,IP 地址为地址为“192.168.1.211”,端口端口 号号 为为 “ 9000 ”。 完完 成成 后后 , 在在 “ 目目 标标 机机 管管 理理 ” 中中 右右 击击 “ RedBoot(TCP; 192.168.1.211:9000)”,选择,选择“连接连接”。在在“C/C+项目项目”中右击项目中右击项目中的中的“w90p710_evb_elf_RedB

21、oot_debug”,选择,选择“运行运行”,执行程序(开始向目标板上下载程序前,大约需,执行程序(开始向目标板上下载程序前,大约需要要 5 秒钟时间进行连接秒钟时间进行连接准备准备)。)。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 运行后,请从超级终端运行后,请从超级终端中可以看到运行结果,同时也中可以看到运行结果,同时也可从可从LED7上看到时钟中断的次数。上看到时钟中断的次数。注意:注意:RedBoot 使用了使用了 Timer0,为了为了不和不和 RedBoot 冲突,冲突,实验中应使用实验中应使用Timer1。另外,在读代码过程中,一些伪指令的写法和我们课堂上另外

22、,在读代码过程中,一些伪指令的写法和我们课堂上所讲的伪指令略有区别。所讲的伪指令略有区别。比如:比如:.extern W90P710_CPU_ISR_Handler 就是就是extern.global IRQ_ISR_Handler 就是就是GLOBAL.equ NO_INT ,0xC0 就是就是EQU电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容1. 需在实验报告中回答以下问题:需在实验报告中回答以下问题:系统的初始化由哪几个函数实现?每个函数分别需系统的初始化由哪几个函数实现?每个函数分别需要完成什么功能要完成什么功能(可用文字叙述可用文字

23、叙述)?init.c里为什么有个空循环里为什么有个空循环while(1)?AIC中断控制器支持多少个中断,优先级如何?每中断控制器支持多少个中断,优先级如何?每个中断所对应的中断处理程序的名字是什么?个中断所对应的中断处理程序的名字是什么?(以如以如下表格形式写出下表格形式写出)序号序号中断名中断名优先级优先级中断处理程序名中断处理程序名12电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容1. 需在实验报告中回答以下问题:需在实验报告中回答以下问题:系统的初始化由哪几个函数实现?每个函数分别需系统的初始化由哪几个函数实现?每个函数分别需要完成什么

24、功能要完成什么功能(可用文字叙述可用文字叙述)?init.c里为什么有个空循环里为什么有个空循环while(1)?AIC中断控制器支持多少个中断,优先级如何?每中断控制器支持多少个中断,优先级如何?每个中断所对应的中断处理程序的名字是什么?个中断所对应的中断处理程序的名字是什么?(以如以如下表格形式写出下表格形式写出)序号序号中断名中断名优先级优先级中断处理程序名中断处理程序名12电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容W90P710_CPU_A.S中间有两行注释需要回答。中间有两行注释需要回答。写出三级中断所对应的三级中断函数分别是什么

25、。写出三级中断所对应的三级中断函数分别是什么。W90p710_aic.c 中函数中函数W90P710_T1_INT_ISR()中变中变量量i的作用是什么?的作用是什么?修改修改LED更新频率的方法有几种?每种方法需要在更新频率的方法有几种?每种方法需要在哪个源代码文件的哪一个地方把代码修改成什么样哪个源代码文件的哪一个地方把代码修改成什么样?电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容2. 在代码中补全内容:在代码中补全内容:在在W90P710_CPU_A.S中中CPSR_Init标号的相应之处标号的相应之处补全代码,完成更新补全代码,完成更

26、新CPSR使开中断。使开中断。在在W90P710_CPU_A.S中最后一部分补全恢复现场中最后一部分补全恢复现场的代码。的代码。在在LED7.c中补全注释里要求的中补全注释里要求的1行代码。行代码。注:补上的代码不仅需写在源文件相应之处,还应写注:补上的代码不仅需写在源文件相应之处,还应写在实验报告中。在实验报告中。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验需注意事项实验需注意事项1.需请老师或助教确认实验的完整性,包括演示需请老师或助教确认实验的完整性,包括演示程序的正确运行过程和程序的正确运行过程和LED显示结果。显示结果。2.当天内完成实验报告,并提交。格式要求:正当天内完成实验报告,并提交。格式要求:正文为小四号宋体,行间距为文为小四号宋体,行间距为1.25倍行距。倍行距。3.离开之前,删除自己电脑上的相关文件,并关离开之前,删除自己电脑上的相关文件,并关闭电脑后方可离开。闭电脑后方可离开。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号