嵌入式系统设计复习.doc_第1页
嵌入式系统设计复习.doc_第2页
嵌入式系统设计复习.doc_第3页
嵌入式系统设计复习.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

嵌入式系统设计问题1. 嵌入式系统介绍 嵌入式系统硬件的核心是嵌入式微处理器 嵌入式处理器指令的执行周期包括取指令、指令译码、执行指令、存储 嵌入式发展的四个阶段: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。 第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。 第三阶段是实时操作系统的嵌入式系统的嵌入式系统阶段。 第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。问题2. VxWorks的优势 操作系统是WindRiver公司推出的一种32位嵌入式实时操作系统它的优点是VxWorks源码开源,用户的开发成本低。问题3. PowerPC架构嵌入式微处理器的主要特点v 独特的分支出来单元可以让指令预期效率大大提高v 超标量的设计v 可处理“字节非对齐”的数据存储问题4.嵌入式系统设计应用 v 嵌入式系统一般定义:以应用为中心、以计算机技术为基础,可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。v IEEE对嵌入式系统的定义:嵌入式系统是“用于控制、监视或者辅助操作的机器、设备或装置”。v 嵌入式实时系统除具有嵌入式系统的基本特征外,还具实时性和可靠性的重要特点。v 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能v 微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器组。v 一场出现后处理器强制从异常类型所对应的固定存储器地址开始执行程序,这些存储器地址称为异常向量。v 总线定时方式有三种:同步定时、异步定时、半同步定时。v GCC的编译流程分为4个步骤,分别为:预处理、编译、汇编、链接。v ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,R15寄存器用于存储PC,R13通常用来存储SP。v 在Windows CE 中可使用CreateThread()函数创建一个新线程。v 嵌入式系统的开发由于受到系统资源开销的限制,通常采用交叉开发环境。v 嵌入式系统的软件通常固态化存储在ROM、FLASH或NVRAM中。v UpdateDate,顾名思义是用来刷新数据的。语句UpdateDate(TRUE)刷新控件的值到对应的变量,语句UpdateDate(FALSE)拷贝变量值到控件显示。问题5. 嵌入式系统设计细节v 1.优先级驱动v 优先级驱动:在一个多任务系统中,正在运行的任务总是优先级最高的任务。在任何给 定的时间内,总是把处理器分配给最高优先级的任务。v 2.相对寻址v 相对寻址:以程序计数器PC的当前值为基地址,指令中的地址标量作为偏移量,将两者相加后得到操作数的有效地址。v 3.中断延迟v 中断延迟:中断延迟是指中断发生到开始执行中断处理程序的这一段时间。v 4. 实时执行体v 实时执行体:实时执行程序包括一套支持实时系统所必需的机制,如多任务支持、CPU调度、通信和存储分配等。在嵌入式应用中,这一套机制被称为实时操作系统或实时执行体或实时内核。VxWorks就是一个实时执行体,编程人员根据实时执行体基础构造自己的应用。v 5. 堆栈寻址v 堆栈寻址:堆栈是一种数据结构,按先进后出(FILO,First In Last Out)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是只向栈顶。v 6. 重调度过程v 重调度过程:重调度过程是一段系统程序,用于判定任务优先级和任务的执行状态。一旦任务的状态发生变化,就会引起切换。问题6.目前使用的嵌入式操作系统主要有哪些?请举出六种较常用的。Windows CE/Windows Mobile、VxWork、Linux、uCos、Symbian、QNX(任选六)问题7. Boot Loader在嵌入式系统中主要起什么作用?完成哪些主要的工作? Boot Loader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。通过Boot Loader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。问题8.嵌入式GUI的实现一般要划分为几个模块?简述各个模块的功能 1)GUI用户接口模块:为上层应用软件开发人员提供方便、易用的API接口函数。 2)GUI对象模块:GUI对象模块对窗口环境中的逻辑对象进行组织管理。 3)GUI基本图形模块:在该模块中实现了对显示输出设备的操作,如画点、画线、画矩形等基本功能,还有对字符的解析输出以及对图形的解析输出。 4)GUI消息驱动模块:该模块是GUI系统的通信模块,负责GUI的消息接收和与其他任务的通信以及消息队列的维护。问题9.嵌入式开发环境主要包括哪些组件? 嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括: 宿主机 目标机(评估电路板) 基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE 运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境嵌入式操作系统问题10. Qtopia Core的底层图形接口是什么?它的驱动程序的实现分为哪两个方面?1)FrameBuffer 2)一方面是对LCD以及其相关部件的初始化,包括画面缓冲区的创建和对DMA通道的设置。另一方面是对画面缓冲区的读写。问题11. 综合例题例一:写一段 ARM汇编程序:循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。程序框架如下,补充代码完成上述功能。AREA total, CODE READONLYENTRY startMOV r4, #0ADR r0, myarray (在此补充代码)代码:loopLDR r1, r0, #4ADDr4, r4, r1CMPr1, #0BNEloopstopB stopmyarrayDCD 0x11DCD0x22DCD 0x0END例二:编写程序,要求如下:(1)使用fork( )创建一个子进程,然后让其子进程暂停5s;(2)接着对原有的父进程使用waitpid( )函数,且要求该父进程不会阻塞; (3)若有子进程退出,则waitpid( )返回子进程号,否则返回0,并且父进程每个1秒判断一次。 #include #include #include #include #include int main() pid_t pc ,pr pc = fork(); if(pc 0) printf(Error forkn); else if(pc =0) sleep(5); exit(0);+else do pr=waitpid(pc, NULL, WNOHANG); if (pr = 0) printf The child process has not exitedn; sleep(1); while (pr=0); if(pr = pc) printf(Get child exit code: %dn,pr); else printf(Some error occured.n); 例三:读下面程序#include static int debug_enable=0; module_param(debug_enable,int,0);MODULE_PARM_DESC(debug_enable,Enable module debug mode.);static int _init hello_init(void) printf(Hello Example Init - debug mode is %sn, debug_enable?enable:disabled); return 0; static int _exit hello_exit(void) printf(Hello Example Exitn);module_init(hello_init);module_exit(hello_exit);回答问题:(1)该程序是哪一类程序?实现什么功能?(2)试分析在以下执行中的运行结果。 a)$ insmod /lib/modules/hello1.ko debug_enable=1 b)$ insmod /lib/modules/hello1.ko(1)、该程序是一个可接

温馨提示

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

评论

0/150

提交评论