华农《嵌入式软件开发技术》课程的复习提纲

上传人:xins****2008 文档编号:114986176 上传时间:2019-11-12 格式:DOC 页数:24 大小:3.25MB
返回 下载 相关 举报
华农《嵌入式软件开发技术》课程的复习提纲_第1页
第1页 / 共24页
华农《嵌入式软件开发技术》课程的复习提纲_第2页
第2页 / 共24页
华农《嵌入式软件开发技术》课程的复习提纲_第3页
第3页 / 共24页
华农《嵌入式软件开发技术》课程的复习提纲_第4页
第4页 / 共24页
华农《嵌入式软件开发技术》课程的复习提纲_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《华农《嵌入式软件开发技术》课程的复习提纲》由会员分享,可在线阅读,更多相关《华农《嵌入式软件开发技术》课程的复习提纲(24页珍藏版)》请在金锄头文库上搜索。

1、1. 绪论(课本)l 嵌入式系统的定义(课本 P1)嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可裁剪,满足实际应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统,其中起智能控制作用的计算机称为嵌入式计算机或嵌入式控制器。l 嵌入式系统的特点(6 个特点,只记标题,P1-2)a) 嵌入性b) 专用性c) 资源约束性d) 实时性e) 可靠性和安全性f) 市场与技术的不可垄断性l 课本 P2,嵌入式系统的组成层次结构,图1-1(重点)l 嵌入式操作系统的特点(8 点,只记标题,P9-10)a) 实时性b) 可确定性c) 用户控制d) 可靠性e) 可移植性f) 紧凑性g)

2、可剪裁与可配置性h) 可扩展性l 嵌入式系统软件开发的特点(5 点,只记标题,P15-16)a) 规模不大,开发难度较大b) 嵌入式应用程序与嵌入式操作系统一体化c) 代码质量要求高、关键功能模块实现要求较高的可靠性与实时性d) 嵌入系统软硬件设计的协同性e) 嵌入式系统软件开发平台的交叉特性l 嵌入式软件调试过程(重点,课本 P19,图1-8)2. ARM处理器基础本章只出 1 条选择题。只需了解 ARM 是RISC 处理器,共有37 个寄存器(31+6)等基本知识。ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。3. 程序优化技巧实验一相关a) 了解从源代码

3、-中间代码-机器码之间,编译器、连接器等做的工作即编译器是将一种语言翻译成另一种语言的程序。链接器将一系列的目标文件、库、及可能的命令文件作为它的输入,然后将输出的目标文件作为产品结果,此外也可能有诸如加载映射信息或调试器符号文件的副产品编译器和汇编器创建了目标文件(包含由源程序生成的二进制代码和数据)。链接器将多个目标文件合并成一个,加载器读取这些目标文件并将它们加载到内存中(在一个集成编程环境中b) ARM 编译器优化级别(重点,能具体解释各个级别的内容)i. -O0DEBUG 关闭大多数优化. 最好的调试信息,最少的优化ii. -O1DEBUGREL 多数优化选项许可 给一个满意的调试,

4、好的代码密度iii. -O2RELEASE(default) 完全的优化 有限的调试信息,最好的代码密度 为代码大小或运行速度的优化,可选择:-Ospace(默认的)或-Otime. 使用-g选像可包含源码级调试信息c) 清楚理解自动优化、冗余代码清除、指令编排、嵌套优化、内联例子等概念和实际应用,能通过阅读例子代码,解释以上优化做了什么事情i. 自动优化 O0ii. 冗余代码清除iii. 指令编排iv. 嵌套优化v. 内联d) 使用 ARM 编译器编码参数传递(4、6 参数的区别,解释)e) 循环终止(实验一的相关内容,重点)f) 局部和全局数据 全局变量和局部变量的区别主要在于生存周期不同

5、,全局变量在整个程序生成期间可见,局部变量在自己的作用域内可见。 全局变量的内存分配是静态的,位于PE文件在数据区,在main()前由C、C+运行期函数初始化,如果没有初值,会被初始化为0。 局部变量的内存分配是动态的,位于线程堆栈中。如果没有初始化的,初值视当前内存内的值而定。g) 堆栈的用法4. 多任务操作系统PPT&BOOKa) OAL、BSP 概念(重点)OAL:OAL(OEM 适配层,OEMAdaptation Layer),用来引导系统核心映像和初始化、管理硬件。它是BSP驱动的一部分。 BSP板级支持包(Board SupportPackage),是介于硬件和操作系统中驱动层程序

6、之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。b) BSP 在嵌入式系统和Windows 系统中的不同其实运行在PC机上的Windows或Linux系统也是有BSP的。只是PC机均采用统一的X86体系架构,这样一定操作系统(Win、Linux)的BSP相对x86架构是单一确定的,不需要做任何修改就可以很容易支持OS在x86上正常运行,所以在PC机上谈论BSP这个概念也没什么意义了。而对嵌入式系统来说情况则完全不同,目前市场上多种结构的嵌入式CPU(RISC)并存(PPC、ARM、MIPS.),

7、为了性能的需要,外围设备也会有不同的选择和定义。 一个嵌入式操作系统针对不同的CPU,会有不同的BSP,即使同一种CPU,由于外设的一点差别(如外部扩展DRAM的大小,类型改变),BSP相应的部分也不一样。 所以根据硬件设计编写和修改BSP,保证系统正常的运行是非常重要的。c) BSP 在嵌入式开发中的位置和作用(重点)BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能够正常运行的保证。 大概步骤如下:1. 硬件主板研制,测试。2. 操作系统的选定,BSP编程。3. 上层应用程序的开发。 BSP部分在硬件和操作系统,上层应用程序之间。所以这就要求BSP程序员对硬件,软件和操作系统都要有

8、一定的了解。这样才能做好BSP编程。 熟悉工具方面:电表,示波器,逻辑分析仪。硬件仿真器,仿真调试环境 语言方面:汇编语言,C语言d) 什么是“共享资源”,举出并行编程中的例子可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。e) 优先级反转问题(重点)1) 不允许任何任务在临界区中执行时被抢占当一个任务阻塞一个或多个优先级更高的任务时,将该任务的优先级暂时提高到被它阻塞的所有任务中具有的最高优先级,从而使该任务能够抢占它所阻塞的所有任务而进入临界区,并且不影响与它所进入的临界区无关的其他高优先级的任务的执行。当任务退出临界

9、区时恢复原来的优先级。2)优先级继承协议优先级上限协议定义了信号量的优先级上限(priorityceiling),一个信号量的优先级上限与可能锁定该信号量的所有任务中优先级最高的任务相等;调度的时候不仅比较任务之间的优先级,还要比较信号的优先级上限。当一个进程要进入一个临界区的时候,如果该进程的优先级不比已经被其他进程锁定的所有信号量的优先级上限高,则会被阻塞。5. Uclinux(PPT)Wince(PPT)l UCLINUXa) 嵌入式 uClinux 基本架构(了解Boot Loader、内核初始化、系统调用函数/捕获函数、设备驱动、文件系统)BOOTLOADER:负责Linux内核的启

10、动,它用于初始化系统资源,包括SDRAM。这部分代码用于建立Linux内核运行环境和从Flash中装载初始化ramdisk。内核初始化:Linux内核的入口点是start_kernel()函数。它初始化内核的其他部分,包括捕获,IRQ通道,调度,设备驱动,标定延迟循环,最重要的是能够fork “init”进程,以启动整个多任务环境。系统调用函数/捕获函数:在执行完“init”程序后,内核对程序流不再有直接的控制权,此后,它的作用仅仅是处理异步事件(例如硬件中断)和为系统调用提供进程。设备驱动:设备驱动占据了Linux内核很大部分。同其他操作系统一样,设备驱动为它们所控制的硬件设备和操作系统提供

11、接口。文件系统:Linux最重要的特性之一就是对多种文件系统的支持。这种特性使得Linux很容易地同其他操作系统共存。文件系统的概念使得用户能够查看存储设备上的文件和路径而无须考虑实际物理设备的文件系统类型。Linux透明的支持许多不同的文件系统,将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。l WINCEn WinCE5 系统架构(图)NK.EXE:n 系统 API 调用机制(重点)n 了解 WinCE 各模块的功能n WinCE6 系统架构(重点)n WinCE5 与WinCE6 的内存管理区别(只出选择题)u 每个进程都有2GB的虚拟内存u 32K进程u 统一内核l

12、 关键的OS组件都移到了kernel空间n WinCE6 下驱动程序两种不同模式的区别(了解)n 其他部分只出选择题,阅读 ppt 就可以了6. 驱动程序开发(PPT)a) 设备驱动程序的概念设备驱动程序是与硬件设备进行通信的系统程序。一个设备可以是物理设备,也可以是一个逻辑实体。通常,这些实体需要操作系统对其进行控制,资源管理。设备驱动程序就是管理这些物理设备或者虚拟设备、协议或者系统服务的软件模块。对于每一个的设备,设备驱动程序都是必不可少。b) 了解 WinCE 驱动程序概述的内容“一般”驱动程序开发的理解 必须使用汇编语言对端口进行读写 设备驱动程序是操作系统的一部分,难于开发与调试。

13、 设备驱动程序控制硬件 中断比较难于处理 对于逻辑设备驱动程序,采用Win32 APIs从硬件获取数据设备驱动程序是操作系统的一部分,难于开发与调试 对于UNIX/Linux或者是Windows 9x,设备驱动程序是与操作系统映像连接的,并运行于系统内核态。 对于Windows CE,大多数的设备驱动程序运行于用户态,简单的来说就是一个DLL文件。设备驱动程序控制硬件 大多数的设备驱动程序用来控制硬件。 对于某些硬件,是没有驱动的。 CPU 内存 对于虚拟设备驱动程序,没有物理设备。 文件系统驱动程序 RAM diskc) WinCE 设备驱动的分类(内置驱动、总线、流接口) 内置驱动硬件所必

14、须的驱动程序,这些驱动程序通常由设计OEM厂商进行设计。 如:键盘,触摸屏,音频设备。 可能不支持一般的驱动接口,也有可能带有扩展的接口或者完全提供一个用户自定义的接口。 内置驱动通常需要针对具体的操作系统进行小幅改动。 总线 管理系统总线如PCI总线等,PCMCIA与CompactFlash也在其列。 负责处理总线上硬件的询问,以及资源的分配。 同时也请求设备管理器为总线上的硬件安装适当驱动程序。 流接口流接口驱动包括所有提供流接口函数的驱动程序,不管由这个驱动控制的设备是什么类型。 典型的流接口驱动程序有: 文件系统驱动(iostream, fstream) COM, LPTd) 了解 WinCE 下驱动的安装、加载过程e) Linux 下设备的分类f) 设备文件与设备号;设备驱动的功能7. 嵌入式软件开发a) 开发工具划分i. 集成开发环境;VS,ECLIPSEii. 调试、跟踪、分析工具;CORESIGHT、ICE&TRACEiii. 软件仿真技术;QUARTUS IIiv. 图形化开发工具;v. 高效编译工具b) 问题 1问题5,了解问题1如何加快开发周期?问题2工具之间如何配合?问题3以图形替代文本问题4:如何调试?尤其是OS问题5:如何提高编译性能?尤其是对复杂处理器、多核处理器的c) 嵌入式系统设计流程(重点)i. 系统需求分析这个阶

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

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