《最新嵌入式处理器原理及应用上机实验PPT课件》由会员分享,可在线阅读,更多相关《最新嵌入式处理器原理及应用上机实验PPT课件(30页珍藏版)》请在金锄头文库上搜索。
1、嵌入式处理器原理及应用上嵌入式处理器原理及应用上机实验机实验电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心一、实验目的一、实验目的理解并实现理解并实现ARM7ARM7处理器的模式切换、处理器的模式切换、C C语言中对语言中对ARMARM汇编子程序的调用、汇编子程序的调用、中断处理程序的设计和编写。中断处理程序的设计和编写。理解理解 W90P710 W90P710 高级中断控制器使用高级中断控制器使用的基本方法和一般的中断处理方法。的基本方法和一般的中断处理方法。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心
2、电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心ARM 有有 7 种异常,分种异常,分别为:复位复位(reset),未定未定义指令指令(undefined instruction),软件中断件中断(software interrupt),指令指令预取取中止中止(prefetch abort),数据数据访问中止中止(data abort),外部中断
3、外部中断请求求(IRQ),快速快速中断中断请求求(FIQ)。对应于于这 7 类异常,异常,ARM 有相有相应的异常工作的异常工作模模式式,如下,如下图所示:所示: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心在上图下方的方格代表在上图下方的方格代表 ARM 的的 7 种模式。其中种模式。其中 User 和和SYS 模式共用一组寄存器,其它模式共用一组寄存器,其它 5 种模式各有自己种模式各有自己的一套寄存器组,褐色部分的寄存器是各模式下的特殊寄的一套寄存器组,褐色部分的寄存器是各模式下的特殊寄存器,只有进入了该模式,才
4、可以访问。而淡蓝色部分的存器,只有进入了该模式,才可以访问。而淡蓝色部分的寄存器是共用的,对各个模式可见。寄存器是共用的,对各个模式可见。观察该图可知,观察该图可知,ARM 共有共有 37 个寄存器,每个寄存个寄存器,每个寄存器器 32 位宽,无论何时,至多只有位宽,无论何时,至多只有 18个寄存器对处理器是个寄存器对处理器是可见的:可见的:r0-r15,cpsr,spsr。 R0-R12:通用寄存器,用于保存数据和指针。:通用寄存器,用于保存数据和指针。 R13:通常被看作堆栈指针寄存器:通常被看作堆栈指针寄存器(SP) R14:链接寄存器,通常用于保存返回地址:链接寄存器,通常用于保存返回
5、地址 R15:程序计数器:程序计数器(PC) 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心CPSR:程序状态寄存器,用于记录当前程序运行的:程序状态寄存器,用于记录当前程序运行的状态。这里有必要再介绍下它的格式,如下图状态。这里有必要再介绍下它的格式,如下图(因为因为它可控制它可控制CPU 对中断是否响应对中断是否响应):这里我们关注的是与中断相关的两个位:这里我们关注的是与中断相关的两个位:I,F(中断禁止位中断禁止位): 当当 I=1 时禁止时禁止 IRQ 中断,为零时则打开中断中断,为零时则打开中断当当 F=1 时禁止时禁止 FIQ 中断,为零时则打开中断中断,为零时则打
6、开中断电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心M4-M0(M 控制位控制位):用于控制处理器模式,它:用于控制处理器模式,它们与处理器模式的对应关系如下图:们与处理器模式的对应关系如下图:SPSR:备份程序状份程序状态寄存器。当特定的异常中断寄存器。当特定的异常中断发生生时,这个寄存器用于保存当前程序状个寄存器用于保存当前程序状态器的内容。器的内容。在异常中断程序退出在异常中断程序退出时,可以用,可以用 SPSR 中保存的中保存的值来恢复来恢复 CPSR。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心3.异常向量表异常向量表通常有两种方法将异常中断处理程序注
7、册到异通常有两种方法将异常中断处理程序注册到异常中断向量表中。一种是使用跳转指令常中断向量表中。一种是使用跳转指令 BL,另一种,另一种使用数据读取指令使用数据读取指令 LDR。但由于跳转指令只能在。但由于跳转指令只能在 32MB 的范围内跳转,所受的局限较大。故我们只介的范围内跳转,所受的局限较大。故我们只介绍使用绍使用 LDR 的情况,这大体又可以分为用的情况,这大体又可以分为用 c 语言安语言安装和用汇编语言安装两种。装和用汇编语言安装两种。在在 LambdaEDU3 集成开发环境中,已经编写集成开发环境中,已经编写好了针对华邦好了针对华邦 W90P710 这块板子的异常向量表,使这块板
8、子的异常向量表,使用的是用汇编语言安装中断处理例程的方法,具体的用的是用汇编语言安装中断处理例程的方法,具体的启动代码在启动代码在 Lambda EDU3 安装目录下的安装目录下的 :LambdaEDUtargettoolbspsboardsarmw90p710_evbstartredboot _debugvectors.S 中。中。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心这些代些代码是用符合是用符合 GCC 汇编器器规范的代范的代码写的。写的。第一行代第一行代码是声明是声明该段并段并赋以以.vectors,ax的
9、属性。的属性。以后的以后的 8 条条语句是数据句是数据读取指令取指令(除除 NOP 外,表示不操外,表示不操作作),分,分别对应 ARM 的的 7 中异常中异常发生生时,处理开始的第理开始的第一条指令。一条指令。这里里简要介要介绍下另一种安装中断下另一种安装中断处理程序的方法,理程序的方法,它是用它是用 C 语言言实现的。下面的。下面给出出实际代代码:其中其中 INT32U 是无符号整型数据是无符号整型数据类型,型,0xE59FF018 是是 LDR PC,PC,#0x18指令的指令的编码,读者可根据先前的者可根据先前的描述仔描述仔细分析。分析。 电子科技大学嵌入式软件工程中心电子科技大学嵌入
10、式软件工程中心4. W90P710 硬件中断控制硬件中断控制在在 W90P710 微处理器中有一个叫中断控制器微处理器中有一个叫中断控制器(AIC,advanced interrupt controller)的部件,可以处的部件,可以处理多达理多达 32 个中断源,目前只定义了个中断源,目前只定义了 31 种,每个中断种,每个中断源都对应了唯一的中断号,如下图所示:源都对应了唯一的中断号,如下图所示: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心此外,为了更好的管理中断,此外,为了更好的管理中断,AIC 还实现了还实现了一个一个 8 级级(0-7)的中断优先级位表。如下表:的中
11、断优先级位表。如下表: 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心其中中断号越低,优先级就越高。例如其中中断号越低,优先级就越高。例如 1 号号看门狗中断优先级最高。另外优先级为看门狗中断优先级最高。另外优先级为0 的四个中的四个中断触发的是断触发的是 FIQ 中断,而其余级别的中断全都属于中断,而其余级别的中断全都属于 IRQ 中断。中断。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心5.通过通过GPIO控制控制LED7GPIO 意为通用目的的输入输出接口,通过意为通用目的的输入输出接口,通过与其相关的寄存器进行特定的配置,该微处理器引与其相关的寄存器进行特定
12、的配置,该微处理器引脚将与微处理器中特定的电路进行逻辑连接,实现脚将与微处理器中特定的电路进行逻辑连接,实现特定的功能。每个特定的功能。每个 GPIO 组中包含的一个微处理器组中包含的一个微处理器引脚一般由寄存器(引脚一般由寄存器(GPIO_CFG)中特定位置的两)中特定位置的两个个 BIT 来控制,最多情况下,一个微处理器引脚可来控制,最多情况下,一个微处理器引脚可以被配置成以被配置成 4 种模式(种模式(00、01、10、11),但是某),但是某一个配置下仅仅能使用其中一个功能。一个配置下仅仅能使用其中一个功能。具体寄存器及相关控制位的使用参见具体寄存器及相关控制位的使用参见DATA SH
13、EET。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心五、实验步骤五、实验步骤使用交叉网线(网线的一头为使用交叉网线(网线的一头为 T568A,另一头为,另一头为 T568B)连接)连接 W90P710 学习板的网卡接口可学习板的网卡接口可 PC 机的网机的网卡接口。卡接口。 使用串口线连接使用串口线连接 W90P710 学习板的学习板的 UART0 和和 PC 机的机的串口。配置超级终端(具体操作,请参考串口。配置超级终端(具体操作,请参考W90P710 学学习板实验指南习板实验指南)。)。 启动启动 LambdaEDU3,新建一个,新建一个“标准应用项目标准应用项目”,项目,
14、项目名称自拟,使用名称自拟,使用“w90p710 标准应用标准应用(ARM)”作为其应用作为其应用程序框架(模板),选择程序框架(模板),选择“w90p710_evb_elf_RedBoot_debug”作为其配置。作为其配置。在工程的在工程的 src 文件夹下分别创建自己的源程序文件并填写文件夹下分别创建自己的源程序文件并填写相应的程序代码。相应的程序代码。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 完成代码后,展开完成代码后,展开“W90PP710_evb_elf_RedBoot_Debug”,双击,双击“目目标板配置标板配置”,在打开的页面中,点击,在打开的页面中,点击
15、“W90P710_Excpetion 配置配置”,修改,修改“IRQ”设置为设置为“false”,保存所作的修改。,保存所作的修改。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心右右击项目名称目名称选择“重建重建 BSP 及及项目目”,完成,完成该项目的目的编译和和链接接。在在“目目标机管理机管理”中添加一个中添加一个“基于基于标准准 RSP 的的连接方接方式式”,名称,名称为“RedBoot”,体系,体系结构构选择“arm”,连接接类型型选择“TCP”,IP 地址地址为“192.168.1.211”,端端口口 号号 为 “ 9000 ”。 完完 成成 后后 , 在在 “ 目目
16、 标 机机 管管 理理 ” 中中 右右 击 “ RedBoot(TCP; 192.168.1.211:9000)”,选择“连接接”。在在“C/C+项目目”中右中右击项目目中的中的“w90p710_evb_elf_RedBoot_debug”,选择“运行运行”,执行程序(开始向目行程序(开始向目标板上下板上下载程序前,大程序前,大约需需要要 5 秒秒钟时间进行行连接接准准备)。)。 电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心 运行后,运行后,请从超从超级终端端中可以看到运行中可以看到运行结果,同果,同时也也可从可从LED7上看到上看到时钟中断的次数。中断的次数。注意:注意:Re
17、dBoot 使用了使用了 Timer0,为了了不和不和 RedBoot 冲突,冲突,实验中中应使用使用Timer1。另外,在另外,在读代代码过程中,一些程中,一些伪指令的写法和我指令的写法和我们课堂上堂上所所讲的的伪指令略有区指令略有区别。比如:比如:.extern W90P710_CPU_ISR_Handler 就是就是extern.global IRQ_ISR_Handler 就是就是GLOBAL.equ NO_INT ,0xC0 就是就是EQU电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容1. 需在需在实验报告中回答以下告中回答以下问题:
18、系系统的初始化由哪几个函数的初始化由哪几个函数实现?每个函数分?每个函数分别需需要完成什么功能要完成什么功能(可用文字叙述可用文字叙述)?init.c里里为什么有个空循什么有个空循环while(1)?AIC中断控制器支持多少个中断,中断控制器支持多少个中断,优先先级如何?每如何?每个中断所个中断所对应的中断的中断处理程序的名字是什么?理程序的名字是什么?(以如以如下表格形式写出下表格形式写出)序号中断名优先级中断处理程序名12电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容1. 需在需在实验报告中回答以下告中回答以下问题:系系统的初始化由哪几个函
19、数的初始化由哪几个函数实现?每个函数分?每个函数分别需需要完成什么功能要完成什么功能(可用文字叙述可用文字叙述)?init.c里里为什么有个空循什么有个空循环while(1)?AIC中断控制器支持多少个中断,中断控制器支持多少个中断,优先先级如何?每如何?每个中断所个中断所对应的中断的中断处理程序的名字是什么?理程序的名字是什么?(以如以如下表格形式写出下表格形式写出)序号中断名优先级中断处理程序名12电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容W90P710_CPU_A.S中中间有两行注有两行注释需要回答。需要回答。写出三写出三级中断所中断
20、所对应的三的三级中断函数分中断函数分别是什么。是什么。W90p710_aic.c 中函数中函数W90P710_T1_INT_ISR()中中变量量i的作用是什么?的作用是什么?修改修改LED更新更新频率的方法有几种?每种方法需要在率的方法有几种?每种方法需要在哪个源代哪个源代码文件的哪一个地方把代文件的哪一个地方把代码修改成什么修改成什么样?电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验报告需完成内容实验报告需完成内容2. 在代在代码中中补全内容:全内容:在在W90P710_CPU_A.S中中CPSR_Init标号的相号的相应之之处补全代全代码,完成更新,完成更新CPSR使开中
21、断。使开中断。在在W90P710_CPU_A.S中最后一部分中最后一部分补全恢复全恢复现场的代的代码。在在LED7.c中中补全注全注释里要求的里要求的1行代行代码。注:注:补上的代上的代码不不仅需写在源文件相需写在源文件相应之之处,还应写写在在实验报告中。告中。电子科技大学嵌入式软件工程中心电子科技大学嵌入式软件工程中心实验需注意事项实验需注意事项1.需需请老老师或助教确或助教确认实验的完整性,包括演示的完整性,包括演示程序的正确运行程序的正确运行过程和程和LED显示示结果。果。2.当天内完成当天内完成实验报告,并提交。格式要求:正告,并提交。格式要求:正文文为小四号宋体,行小四号宋体,行间距距为1.25倍行距。倍行距。3.离开之前,离开之前,删除自己除自己电脑上的相关文件,并关上的相关文件,并关闭电脑后方可离开。后方可离开。