资源描述
常熟理工嵌入式期末考试复习大题部分
精品文档
第1章
1、请说明国内普遍认同的嵌入式系统的定义,它的基本要素和特征是什么? ..
答:以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统“嵌入”、“专用性”、“计算机”是其基本要素和特征。
2、请介绍四种常见的嵌入式操作系统,并说明它们各自的主要特点?
答µC/OS-II是一个可裁减的、源码开放的、结构小巧、可剥夺型的实时多任务内核,是真正的实时操作系统。
VxWorks嵌入式实时操作系统,多应用于高端技术及实时要求极高的领域。
WinCE操作系统,提供与PC机类似的图形界面和主要的应用程序,它不是一个硬实时操作系统。
Linux操作系统以内核为基础的、完全内存保护、多任务多进程的操作系统,源码开放。
第2章
1、ARM的异常中断按引起异常事件的不同可以分为哪些?各自的向量地址是多少? ..
答:异常的种类:外部中断请求(IRQ)、快速中断请求(FIQ)、软件中断(SWI)、中止(ABORT)、未定义指令、复位(RESET)。
异常向量——异常处理程序入口地址:
复位中断,0x00000000
未定义指令中断,0x00000004
软中断,0x00000008
预取中止,0x0000000C
数据中止,0x00000010
IRQ中断,0x00000018
快速中断,0x0000001C
3、ARM处理器在两种工作状态之间是如何切换的? ..
答:ARM处理器在两种工作状态之间切换方法:
进入Thumb状态:
当操作数寄存器Rm的状态位bit[0]为1时,执行BX Rm指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ,FIQ,Undef,Abort和SWI)返回时,自动切换到Thumb状态。
进入ARM状态:
当操作数寄存器Rm的状态位bit[0]为0时,执行BX Rm指令进入ARM状态。如果处理器进行异常处理,在此情况下,把PC放入异常模式链接寄存器LR中,从异常向量地址开始执行也可以进入ARM状态。
4、ARM寄存器R13,R14,R15,CPSR,SPSR分别作何用处?
答:R13一般用来作为堆栈指针(类似AT89S51的SP)。
R14(LR)一般用来作为调子程序的链接寄存器,当执行调子程序指令BL时,将程序计数器R15的内容拷贝进R14保存,从子程序返回时再将R14的内容送回到程序计数器R15。
R15一般用来存放下一条将要执行指令的地址(类似AT89S51的PC)。在ARM状态下R15的最低2位为0,在Thumb状态下R15的最低位为0。
当前程序状态寄存器CPSR与备份程序状态寄存器SPSR。当前程序状态寄存器CPSR用来保存当前的状态与控制的标志位。备份程序状态寄存器SPSR用来在操作模式切换时保存程序状态寄存器CPSR的当前值。
第6章
1、编程实现UART1的初始化。 .要求字符帧格式为7位数据位、1位停止位、偶校验、波特率取9600、采用正常工作模式、不使用中断、不使用回送、不使用错误标志状态、发送和接收采用FIFO模式,不使用自动流控制,时钟PLCK取40MHz。
UART的使用分析参考:
知识点:
S3C2410A中对UART的使用,在工作前必须对其进行初始化,即对UART的线控制寄存器(ULCON)、控制寄存器(UCON)、FIFO控制寄存器(UFCON)、Modem控制寄存器(UMCON)、波特率因子寄存器(UBRDIV)进行设置。
参考点:第6章ppt中“6.1.4 UART的初始化”中的说明。
初始化内容:
#define rULCON1 (*(volatile unsigned *)0x1d04000)
#define rUCON1 (*(volatile unsigned *)0x1d04004)
#define rUFCON1 (*(volatile unsigned *)0x1d04008)
#define rUMCON1 (*(volatile unsigned *)0x1d0400c)
#define rUBRDIV1 (*(volatile unsigned *)0x1d04028)
rULCON1=0x2A
rUCON1=0x05
rUFCON1=0x01
rUMCON1=0x0
rUBRDIV1=0x103
知识点:
S3C2410A中对GPIO口的配置寄存器GPACON~GPHCON,端口数据寄存器GPADAT~GPHDAT的使用。
参考点:第6章ppt中“GPIO应用举例”中的例子的分析。
第7章
窗体底端
1、在图中进行必要的连线,管脚电平设置,地址编号填写等,完成S3C44B0最小系统相关设计。
题目要求:1)使S3C44B0的BANK0连接一片FlashROM,且总线宽度为8位。
2)选择晶振作为时钟输入。存储器以小端模式存储字。
3)画出复位电路图,实现上电复位功能和手动按键复位功能。
(注:不使用的管脚打×)
连接参考图:
(1)BANK0,8位数据总线: OM1 = 0, OM0 = 0
DATA[7..0] 连接 DATA[7..0]
nGCS0 连接 nCS, Address[19..0]
(2)晶振连线: OM3=0,OM2=0 晶振连接EXTAL0和EXTAL0 小端模式ENDIA=0
(3)复位电路:上电低电平复位 按键复位
2、S3C44B0的存储系统中,0xc000000和0xc080000的含义是什么?它们之间的512kbyte空间做什么用?
答案参考:0xC000000是 SDRAM的起始地址,系统的程序存储空间从0xC080000开始。(2分)512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。
3、请简要描述S3C2410A微处理器的存储空间特点以及地址映射范围。
参考点:第7章ppt中“存储器系统”中的分析。
参考答案:
第8章
2、说明μC/OS-II中任务创建函数OSTaskCreate()的四个参数的含义?
参考点:第8章ppt中“8.3--8.µC/OS-II任务的创建”中的例子的分析。
答案参考:μC/OS-II中任务创建函数OSTaskCreate()的四个参数的含义:
OSTaskCreate(
MyTask, //(任务名称)
(void *)s, //(任务参数)
&TaskStartStk【TASK_STK_SIZE - 1】, //(任务栈)
0 //(任务优先级号)
);
3、画图说明μCOS-II操作系统中任务的五种状态之间是如何切换的,并举出至少一个相应的切换条件或函数。 ..
参考点:第8章ppt中“8.3—2.任务的五种状态”中的分析。参考答案:
4、以下是UCOS-II操作系统下的C语言程序,请在1)—7)的注释中填入该行语句的作用
#include"..\ucos-ii\includes.h" /* uC/OS interface */
#include "..\ucos-ii\add\osaddition.h"
#include "..\inc\drv.h"
#include <string.h>
OS_STK Main_Stack[STACKSIZE*8]={0, }; //1)定义任务栈空间
void Main_Task(void *Id);
#define Main_Task_Prio 12 // 2)定义任务优先级号
OS_EVENT *Nand_Rw_Sem; //3)定义Nand_Rw的信号量
OS_EVENT *Uart_Rw_Sem;
int main(void)
{
ARMTargetInit(); //开发板初始化
OSInit(); //4)ucos-ii操作系统的初始化
uHALr_ResetMMU();//复位MMU
LCD_Init(); //初始化LCD模块
LCD_printf("LCD initialization is OK\n");//向液晶屏输出数据
LCD_printf("320 x 240 Text Mode\n");
initOSGUI();//初始化图形界面
LoadFont();//调Unicode字库
LoadConfigSys();//使用config.sys文件配置系统设置
LCD_printf("Create task on uCOS-II...\n");
OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio); //5)创建Main_Task任务
OSAddTask_Init();//创建系统附加任务
LCD_printf("Starting uCOS-II...\n");
LCD_printf("Entering graph mode...\n");
LCD_ChangeMode(DspGraMode);//变LCD显示模式为文本模式
InitRtc();//初始化系统时钟
Nand_Rw_Sem=OSSemCreate(1); // 6)创建信号量
OSStart(); //7)OS启动,开始任务调度
return 0;
}
收集于网络,如有侵权请联系管理员删除
展开阅读全文