第一篇:嵌入式考试笔试
基于双核处理器的视频观瞄设备,同时实现标清分辨率的红外和可见光两路模拟复合信号采集和处理,且由两个内核中的CoreA完成红外通道视频信号处理,CoreB完成可见光通道视频处理,系统需要按照嵌入式系统模式实现“通道关联”实时红外信号检测与目标型号判别。
要求:
1.画出实现此功能的硬件流程图和软件流程图
2.程序会用到数据结构和数据传输流程
3.在多任务情况下,进程和线程的区别与联系。以及如何保持同步
4.影响实时性的主要参数,以及如何改善。
解:
12数据结构会用到乒乓双缓冲
3进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.联系:线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
区别:进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
多任务下的同步:在多任务操作系统下,要保持线程和进程的同步利用:1临界区2互斥锁3信号量4事件机制
4.所谓的实时性,也就是从系统发生到系统响应的时间。或者,更广泛一点,也就是从用户输入一个信息到系统处理完以后,返回给用户的这个反应时间。影响实时性一般有一下几个方面:
1>中断响应时间
2>RTOS进程调度响应时间
3>任务切换时间
4>应用程序响应时间
改善:
中断的响应时间是有处理器决定的,可以有系统设置来改善。或者寻找更好的处理器。
对于进程调度本身,有很多经典的算法,可参考操作系统的理论部分,有些算法的实时性稍高,但整体性就稍差,有些则相反,可以选择高效的进程调度策略,来提高进程响应速度。另外,尽量减少系统的进程数,进程越少,处理器的负担越小,响应就越快。进程中屏蔽中断的地方就越少,则整体响应时间就越快。
采用抢占式内核处理形式
提高应用程序的执行效率
第二篇:嵌入式linux工程师笔试题目
北京航天泰睿科技有限公司
嵌入式linux笔试题目
一、简答题:
1. 请写出实现后面几个功能的Linux命令:显示文件,拷贝,删除
Ls cp rm 2. do„„while和while„„do有什么区别?
Do„while是先执行一次循环体内的代码然后在判断,而while„.do则是先判断一下条件,然后在执行。Do„„.while如果是不满足条件也会执行,一定会执行一次。
3. Linux系统下.ko文件是什么文件?.so文件是什么文件?
Linux系统下.ko是模块文件,比如驱动之类的。.so是动态链接库文件 4. 如何使用vi进行块拷贝、粘贴、删除的操作
5. 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是。
/etc 这个目录用来存放系统管理所需要的配置文件和子目录
6. 如何使用gcc得到宏展开的中间代码
gcc –E –P xxfile 7. 如何使用gdb调试多进程
先ps出进程id,再gdb-a attach上去,b设一个断点,c继续运行就可以了
8. 用户进程间通信主要哪几种方式
管道,信号量,消息队列,有名管道 9. 解释命令ls-amore具体含义。
-a 输出目录下的所有文件,包括隐藏文件-m 横向输出文件名,并以’,’隔开-o 显示文件除组外的详细信息-r 对目录反向排序
-e 输出时间的全部信息,而不是简要信息
10. LINUX中的管道指什么,重定向又指什么
管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称为半双工管道。数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道);如果要进行双工通信,需要建 立两个管道。管道只能用于父子进程或者兄弟进程间通信。,也就是说管道只能用于具有亲缘关系的进程间通信。
11. 请写出下列代码的输出内容 #include “stdio.h” main(){ int a,b,c,d;a=10;
第1页/共3页
北京航天泰睿科技有限公司
b=a++;c=++a;d=10*a++;printf(“b,c,d:%d,%d,%d”,b,c,d);return 0;
12. 编写一个函数intcharnum(charfn[10]),该函数以只读方式打开文件fn,,通过统计,返回文件中字符的个数,请使用while循环实现计数功能。请勿修改主函数main和其他函数中的任何内容,仅在函数charnum的花括号中填写若干语句。
文件kt7_2.cpp的内容如下:
#include
#include
#include
intcharnum(charfn[10]);
voidmain(){ intnum;
num=charnum(“abc.txt”);} cout<<“num=”<
intcharnum(charfn[10]){
}
二、编程题
13. 如果有一个简单的Test项目目录如下:
# tree Test Test |--common.h |--main.cpp |--test.cpp `--test.h
1)使用wildcard、patsubst函数编写一个C++项目的Makefile文件 2)使用automake、autoconfig编写一个支持configure选项的configure.in脚本
14. 编写一个hello world程序,要求以创建进程的方式打印Hello World!
15. 打开一个文件,并读取从第100字节开始的50字节数据。
第2页/共3页
北京航天泰睿科技有限公司
16. 编写一对socket程序,要求类似于network echo procotol。
Client每隔1秒把自己的IP地址轮流循环发送给一个Server.Server接到IP后,在屏幕上打印对方IP;然后把自己的IP发送回去。Client收到回复后,在屏幕上打印对方IP。
程序一直运行,直到用户退出。各自分类统计接收到的各IP的数据包的个数。
注意:Client可以向多个Server发送请求,Server也可以接收多个Client请求。
17.请描述Linux下程序开发到执行的工作流程(结合自己的项目经历)。
18.结合自己的学习或工作感受简述Linux与Windows编程的区别,嵌入式Linux与Windows的嵌入式OS(如XPE、WinCE)的区别。
第3页/共3页
第三篇:嵌入式考试总结
嵌入式系统定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统应用:工业控制火控系统、飞行控制系统、测试仪器、医疗设备、游戏机 应用发展阶段:无操作系统的嵌入算法阶段、简单监控式的实时操作系统阶段、通用的嵌入式网络实时操作系统阶段
嵌入式系统已经有了近30年的发展历史,它是硬件和软件交替发展的双螺旋式发展
嵌入式系统特点:1 面向特定应用、2 可裁减、3.处理器体系结构和类型多样化。4.大多都有实时操作系统。5 一般有实时性要求。6资源比较少。7 软件固化在存储器芯片中。8 通常要求功耗小。9 集成度高。10嵌入式系统本身不具备自举开发能力 嵌入式系统的组成:硬件平台、板级支持包(BSP)、操作系统、应用程序 嵌入式系统硬件平台:嵌入式处理器、存储器件、外设接口
嵌入式CPU的特点:1 对实时多任务操作系统具有很强的支持能力。2具有功能很强的存储区保护功能。3 处理器结构可扩展。4 低功耗。嵌入式CPU的分类:嵌入式微控制器(EMCU)、嵌入式微处理器(EMPU)、嵌入式DSP处理器(EDSP)、嵌入式片上系统(ESoC)
MCU(MicroController Unit)MCU芯片内集成了ROM/EEPOM、RAM、总线、总线逻辑、I/O等必要功能和外设。已有20多年的历史。如51,98/96。
与MPU比,单片化、体积小,功耗、成本低,可靠性高,能节省系统开支、降低出错概率和减少高频干扰适合控制系统。
发展:内核化(内核 +IP、内核 +FPGA、内核+外围模块)、专用化(接口单片机、网络单片机、射频单片机、数采单片机、电力线载波…)
DSP(Digital Signal Processor)专用于信号处理,采用哈佛体系结构,指令系统特殊,具有较高的编译效率和指令执行速度。如数字滤波、快速傅立叶变换和离散余弦变换等DSP算法。
MPU(MicroProcessor Unit)由CPU演变而来,32位以上。与通用CPU比,MPU只保留与应用相关的功能和硬件,除去冗余的功能部分,实现最少的功耗和资源,满足嵌入式需求。与工业控制计算机比,MPU体积小,重量轻,成本低,可靠性高。常见的嵌入式处理器核:ARM、MIPS、PowerPC、68K、x86 SoC(System on Chip)是嵌入式系统多种形式的统一归宿SOC最大的特点,成功实现软硬件无缝结合,直接在处理器芯片内嵌入操作系统的代码模块。SOC具有极高的综合性。由于绝大部分系统构件都是在系统内部,整个系统特别简洁,不仅减少了功耗和体积,并且提高了可靠性,和设计效率。降低内部工作电压,减少芯片功耗;减少芯片引脚数目,简化制造过程;简化外围驱动单元,优化处理速度; 优化内部电路结构,降低系统噪声
冯.诺伊曼结构,也称普林斯顿结构、程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。
哈佛结构:程序指令存储和数据存储分开的存储器结构。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。CISC:复杂指令集 特点是指令数量庞大臃肿,具有大量的指令和寻址方式每个指令不管执行频度高低都处于同一个优先级,程序员的编程工作相对容易。但它的致命弊端是执行效率低下,处理器的晶体管被大量低效的指令所占据,资源利用率颇为低下。
RISC:精简指令集 8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。在通道中只包含最有用的指令 确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单嵌入式处理器采用RISC 指令流水:执行指令的过程:(1)取指令(Fetch)(2)译码(Decode)(3)取操作数(Fetch Operant)(4)执行指令(Execute)(5)写回(Write Back)采用指令流水线技术,提高处理器的执行效率
嵌入式处理器的技术指标 :1.功能:集成的存储器、外设、接口等的种类和数量;2.字长:字长指数据总线位数;3.处理速度:4.寻址能力:寻址能力取决于地址总线的宽度;5.功耗:工作功耗、待机功耗等,功耗与频率,功耗与电压;6.温度:民用、工业用、军用、航天等级别。民用范围为0℃~70℃
嵌入式处理器的选择:
1、技术指标原则:首要考虑功能,其次考虑对其他芯片的支持情况,再次考虑处理器的字长、寻址空间、主频、功耗等;
2、熟悉原则: 降低开发风险和难度;
3、成本原则:处理器成本和额外成本;
4、支持工具原则:选择合适的软件开发工具;
5、整体原则:全盘考虑处理器和其他部件或软件的兼容和约束
嵌入式处理器的发展方向:
1、多核结构:在一个处理器中集成两个或多个完整的CPU核;提升处理器的并行性能。缩短核间的互连和通信延迟。多核结构简单,易于优化设计。
2、更低的功耗:功耗更小,工作方式:等待、暂停、休眠、空闲、节电等;
3、更先进的工艺和更小的封装;
4、更宽的工作电压范围:3.3~5.5 V 2.2~6 V。最低工作电压1.8 V。ARM(Advanced RISC Machines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商
ARM优点:全新设计的RISC结构的32位处理器;因为是全新的设计,开始就是32位,没有历史遗留问题(比如x86)。所以,更便于对处理器结构进行优化;价格低廉;ARM公司不生产芯片,专心研究处理器内核的解决方案;低功耗
ARM架构:32位ALU31个;32位通用寄存器及6位状态寄存器;32X8位乘法器;32X32位桶型移位寄存器;指令译码及控制逻辑;指令流水线;数据地址寄存器 ARM的流水线结构:一条指令的执行可分成若干阶段:(1)取指,从存储器中取出指令(FETCH)(2)译码,指令译码(DEC)(3)取操作数,如从寄存器读取(REG)(4)执行计算(ALU)(5)存储器访问,操作数与存储器有关(Mem)(6)结果写回寄存器(RES)
程序执行时间:T(proc)=N(inst)*CPI/f(clk)T(proc):程序执行时间N(inst):一个程序的指令CPI:执行一条指令的平均周期f(clk):处理器的时钟周期,减少程序执行时间的关键是减少CPI 流水线除了加深流水线的深度和加快时钟频率来提高流水线的效率和吞吐率外,还要解决:结构相关:在流水线中重叠执行的指令,产生资源冲突。ARM中采用I-Cache,D-Cache,ALU采用单独加法器计算地址;数据相关:一条指令需要前面指令的执行结果。定向技术(将ALU结果直接送到ALU输入)、流水线互锁(通过硬件检测,暂停至定向技术可以解决)、编译器优化;控制相关:分支指令时。指令预测、计算分支转移成功的PC值
ARM存储结构:ARM架构处理器的存储器寻址空间有4GB;有的带有I-CACHE和D-CACHE;片内不带RAM和ROM。系统需要的RAM、ROM(包括FLASH)都通过总线外接;由于存储器寻址空间达4GB,有的片内带有MMU;允许外接 PCMCIA 存储器的分类:与CPU的联系:主存:直接和CPU交换信息;辅存:不能直接和CPU交换信息。按存储元件使用的材料:半导体存储器(常作主存);磁存储器(磁带,磁盘);光存储器(光盘)。(对半导体存储器)按读写工作方式可分:RAM(随机存储器),ROM(只读存储器)存储器技术指标:1.存储容量,2.存取速度3.易失性4.只读性5.功耗6.可靠性7.价格 存储空间的组织:实际存储器由多种类型和容量的存储芯片组成。合理安排每个存储芯片的地址范围。存储空间的组织问题实质是地址译码电路的设计问题。地址译码的过程包括两个步骤:先选中某个存储芯片(称为片选),其次选中片内的某个单元(称为片内寻址)。片选过程:由译码电路对高位地址进行译码后产生的片选信号;片内寻址:由地址译码电路对低位地址进行译码实现存储单元寻址。常用的片选方法:线选法、全译码法、部分译码法和混合译码法等。
RAM是一种可读可写的内存,在上电的情况下才能保持在存储器中。(1)存放当前正在执行的程序和数据。(2)存放I/O缓冲数据(3)作为中断服务程序中保护现场信息的堆栈 ROM分类:(1)掩膜型ROM:内容在芯片生产出来之前指定。(2)PROM:一次性编程的只读存储器,OTP(Once Time Program)。(3)EPROM:可以修改ROM中的数据,即重复烧录。紫外线照射。4)E2PROM:断电情况下保存数据,又能在应用系统中在线修改
Flash存储器概述:Flash存储器就是俗称的闪存,它是一种非易失性存储芯片,Flash存储器具有高密度、低价格、非易失性、快速(读取速度较快)及可用电擦除可编程等特点。Flash存储器被广泛应用于各类移动存储器卡、U盘、数码相机记忆卡、记忆棒等。
Flash存储器分类:Flash存储器主要有NOR Flash存储器和NAND Flash存储器两类。NOR Flash:基于Intel公司所开发的架构,可以随机读取任意单元的内容,读取速度较快。写入和擦除的速度较低,以块(Block)为单位进行数据的读/写。最大优点是可以直接从Flash中运行程序,缺点是工艺复杂,价格也比较贵。
NAND Flash:基于东芝公司(Toshiba)所开发的结构通过I/O指令的方式进行读取,因此需要通过驱动程序来读取。存储容量较大、成本较低,常用来制作记忆卡。存储空间是按照块和页(Page)的概念来组织的。
接口的功能:外设识别和寻址,速度匹配和缓冲,时序匹配,信息格式匹配和信息类型转换等。接口的结构:接口一般由数据存储(缓冲)电路,控制命令逻辑电路,状态设置和存储电路构成 接口数据传输的方式:1.程序查询方式。2.中断方式。3.DMA。
接口设计的过程:接口设计首先在硬件上分析接口两侧情况.然后考虑CPU总线与I/O设备之间信号的转换.合理选用I/O接口芯片.进行硬件连接.最后进行接口驱动程序分析与设计。总线:是各种信号线的集合,是嵌入式系统中各部件之间传输数据、地址和控制信息的公共通路.总线的主要参数:总线带宽、总线位宽、总线工作频率等几个.常用的总线:USB总线.I2C总线.DMA总线.SPI总线.I2S总线.CAN总线.RS232C/485总线.IEEE1394总线等
电路:电路是由若干相互连接、相互作用的基本电子器件组成的具有特定功能的电子系统 电路原理图:描述元器件或芯片引脚的逻辑连接的图纸,由元器件、连接、标号等组成。印制电路板(Print Circuit Board,PCB)描述元器件或芯片引脚的物理连接的图纸
采用嵌入式操作系统的必要性:1提高系统的可靠性2提高开发效率,缩短开发周期3能充分发挥32位CPU的多任务潜力
嵌入式操作系统的特点:具备一般操作系统的基本功能,如任务调度、同步机制、中断处理和内存管理等外,还有以下特点:(1)可拆装性(2)支持实时性(3)统一的接口(4)操作方便简单(5)提供强大的网络功能(6)强稳定性、弱交互性(7)固化代码(8)更好的硬件适应性
实时系统主要衡量指标:响应时间(Response Time)控制应用中最重要;生存时间(Survival Time)在此时间内数据有效;吞吐量(Throughout)一定时间内系统可以处理事件的总数 实时操作系统的分类:一.速度分,强实时系统、一般实时系统、弱实时系统.二.确定性分,硬实时系统、软实时系统.三.软件结构分,1、单线程程序(1)循环轮询:特点:对简单系统易于实现、没有中断,不会出现随机性问题、应用领域有限、对大量I/O服务的应用实现困难、大的程序不便调试,适合慢速系统(2)有限状态机:特点:小系统易于实现、可以执行快速、只通过输出功能改变机器的响应、应用领域有限、不能保证确定性、大系统难于调试。(3)事件驱动系统,事件驱动系统是能对外部时间直接响应的系统。包括前后台、实时多任务、多处理器。是RTOS的主要形式。四.开放性分
1、商用系统:特点:充分满足了模块化设计的要求,可把程序按照模块化的要求自然分解成若干独立的任务。启动监控任务程序,提高了系统的可靠性。良好的开发工具,提高了开发效率。特殊设计,避免系统崩溃。产品不断升级。
2、专用系统,一些专业厂家为本公司产品特制的OS,不提供应用开发者使用。如CISCO的网络产品的EPOC等。特点:操作系统功能较弱。针对性强、安全性高
3、开放系统,如:各类嵌入式LINUX(RT LINU、μCLINUX)、μC/OS等。特点:源码公开、功能简单、技术支持差、系统稳定性差、对开发者要求高。
典型的RTOS包括:
1、RTOS基本内核:RTOS基础和核心。包括任务管理、中断管理、基本的通信管理和内存管理。其中对外设的管理只提供中断管理,不提供具体的操作。
2、扩展内核:方便用户使用的扩展,建立在基本内核上。如GUI、TCP/IP、浏览器、电源管理、文件管理
3、设备驱动接口:在内核和IO间,定义软硬件的界线,方便RTOS移植和升级。有的统一于RTOS基本内核。
4、API RTOS与通用操作系统的(GPOS)比较:基本设计原则 :GPOS尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。RTOS:采用各种算法和策略,始终保证系统行为的可预测性(predictability),即在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求.任务调度策略:GPOS:基于优先级的抢先式调度策略,对于优先级相同的进程则采用时间片轮转调度方式,用户进程可以通过系统调用动态地调整自己的优先级,操作系统也可根据情况调整某些进程的优先级。RTOS :采用固定优先级抢先式调度方式,进程的优先级是固定不变的,并且该优先级是在运行前通过某种优先级分配策略来指定的。内存管理:GPOS:虚存管理机制 RTOS:在原有虚存管理机制的基础上增加页面锁。得到 了虚存管理机制为软件开发带来的好处,又提高了系统的可预测性。缺点是由于TLB等机制的设计也是按照注重平均表现的原则进行的,因此系统的可预测性并不能完全得到保障,采用静态内存划分的方式,为每个实时任务划分固定的内存区域。这种方式的优点是系统具有较好的可预测性,缺点是灵活性不够好。中断处理 GPOS:中断处理程序的优先级被设定为高于任何用户进程。RTOS:一种是除时钟中断外,屏蔽所有其它中断,中断处理程序变为周期性的轮询操作,这些操作由核心态的设备驱动程序或由用户态的设备支持库来完成。优点:充分保证了系统的可预测性。缺点:对环境变化的响应可能不如上述中断处理方式快,另外轮询操作在一定程度上降低了CPU的有效利用率。另一种是对于采用轮询方式无法满足需求的外部事件,采用中断方式,其它时间仍然采用轮询方式。此时中断处理程序与所以其它任务一样拥有优先级,调度器根据优先级对处于就绪态的任务和中断处理程序统一进行处理器调度。这种方式使外部事件的响应速度加快,并避免了上述中断方式带来第二个问题,但第一个问题仍然存在。共享资源的互斥访问 GPOS:采用信号量机制来解决共享资源的互斥访问 RTOS:对传统的信号量机制进行了一些扩展,引入了如优先级继承协议、优先级顶置协议以及Stack Resource Policy等机制,较好地解决了优先级倒置的问题。系统调用以及系统内部操作的时间开销 进程通过系统调用得到操作系统提供的服务,操作系统通过内部操作(如上下文切换等)来完成一些内部管理工作。为保证系统的可预测性,实时操作系统中的所有系统调用以及系统内部操作的时间开销都应是有界的,并且该界限是一个具体的量化数值。而在通用操作系统中对这些时间开销则未做如此限制
系统的可重入性 在通用操作系统中,核心态系统调用往往是不可重入的,当一低优先级任务调用核心态系统调用时,在该时间段内到达的高优先级任务必须等到低优先级的系统调用完成才能获得CPU,这就降低了系统的可预测性。因此,实时操作系统中的核心态系统调用往往设计为可重入的。
辅助工具 实时操作系统额外提供了一些辅助工具,如实时任务在最坏情况下的执行时间估算工具、系统的实时性验证工具等,可帮助工程师进行系统的实时性验证工作。
操作系统的移植:嵌入式操作系统还有一个特点是,针对不同的平台,系统不是直接可用的,一般需要经过针对专门平台的移植操作系统才能正常工作。嵌入式操作系统移植的目的是指使操作系统能在某个微处理器或微控制器上运行
操作系统的移植大体可以分为三个层次:结构层次的移植。如果待移植处理器的结构不同于任何已经支持的处理器结构。平台层次的移植。如果待移植处理器是某种操作系统已支持体系的处理器。板级移植。如果所用处理器已被操作系统支持,就只需要板级移植了。包括驱动程序的编写和环境变量设置等内容等
Windows CE系统架构:Windows CE属于比较典型的微内核操作系统。在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现
WinCE系统包括四层结构:应用程序、WinCE内核映像、板级支持包(BSP)、硬件平台。BSP(Board Support Packet——板级支持包)是介于底层硬件和上层软件之间的底层软件开发包,它主要的功能是给上层提供统一接口,同时屏蔽各种硬件底层的差异,以及提供操作系统的驱动及硬件驱动。简单的说,就是BSP包含了所有与硬件有关的代码,为操作系统提供了硬件平台无关性
BSP组成:是一个包括启动程序Bootloader、OEM适配层程序(OAL)、标准开发板(SDB)和相关硬件设备的驱动程序和配置文件的软件包。
WinCE BSP组成:OEM改编层,Bootloader,设备驱动,配置文件
Windows CE开发环境搭建:1安装ActiveSync4.5用于连接WindowsCE设备和安装桌面Windows的PC机的工具2安装Visual Studio 2005开发套件3安装Visual Studio 2005 SP1 4安装目标设备SDK:Windows Mobile 6 professional SDK,Windows Mobile 6 professional image(CHS)
嵌入式系统的开发模式:嵌入式的开发与通用计算机系统的开发的最大不同是嵌入式系统采用交叉开发的架构。首先,利用主机系统上丰富的资源及良好的开发环境开发和仿真调试目标系统上的软件。然后通过接口将交叉编译的目标代码传输到目标系统上,并用交叉调试器在监控程序或实时内核/操作系统的支持下进行实时分析和调度。最后,目标系统在特定的环境下运行
嵌入式系统交叉开发环境:指用于嵌入式软件开发的所有工具软件的集合,一般包括文本编辑器,交叉编译器,交叉调试器,仿真器,下载器等,由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。
嵌入式开发环境的建立:1根据目标系统的处理器体系结构选择合适的工具和仿真器2根据目标系统上的接口资源,选择合适的开发主机和目标系统的联系方式3选择合适的开发主机操作系统(WINDOWS,LINUX)4在目标机和主机系统安装相应开发工具,建立开发环境5嵌入式软件开发工具根据不同的阶段分类:需求分析工具,软件设计工具,编码调试工具,测试工具,配置管理工具、维护工具等。
嵌入式软件开发工具根据嵌入式软件开发分类:与嵌入式QS相关的开发工具,用于开发:基于嵌入式OS的应用,部分驱动程序等;与嵌入式QS无关的开发工具,用于开发:基本的驱动程序,辅助硬件调试程序,系统软件等
交叉调试器:调试程序和被调试程序运行在不同机器上的调试器。调试器通过某种方式能控制目标机上被调试程序的运行方式。通过调试器能查看和修改目标机上的内存、寄存器以及被调试程序中的变量等。典型的交叉调试器方法:Crash and Burn,ROM Moniter。ROM Emulator,In Circuit E mulator,On Chip Debugging ROM Moniter:ROM Monitor是被固化且运行在目标机上的一段程序,负责监控目标机上被调试程序的运行,与宿主机端的调试器一起完成对应用程序的调试。调试器与ROM Monitor之间的通信遵循远程调试协议。
ROM Monitor能配合调试器完成:程序映像下载;对目标机系统内存的读写;对寄存器的读写;设置和清除不同类型的断点;单步执行指令;复位系统等调试功能
调试过程(1)启动目标机,监控器掌握对目标机的控制,等待和调试器建立连接;(2)启动调试器,并和监控器建立起通信连接;(3)使用调试器将应用程序下载到目标机上的RAM空间中;(4)使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;(5)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。
ROM Emulator:ROM Emulator是一种用于替代目标机上的ROM芯片的设备,即ROM仿真器。利用这种设备,目标机可以没有ROM芯片,但目标机的CPU可以读取ROM Emulator设备上ROM芯片的内容:ROM Emulator设备上的ROM芯片的地址可以实时地映射到目标机的ROM地址空间,从而仿真(Emulation)目标机的ROM。
ICE(In-Circuit Emulator)是一种用于替代目标机上CPU的设备,即在线仿真器。它比一般的CPU有更多的引出线,能够将内部的信号输出到被控制的目标机。ICE上的Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。连接ICE和目标机时,一般是将目标机的CPU取下,而将ICE的CPU引出线接到目标机的CPU插槽。用ICE进行调试时,在Host端运行的调试器通过ICE来控制目标机上运行的程序。适用于:调试实时的应用系统;调试设备驱动程序;对硬件进行功能和性能的测试;实时性能分析
OCD(On Chip Debugging)是CPU芯片提供的一种调试功能(片上调试),可以认为是一种廉价的ICE功能:OCD的价格只有ICE的20%,但提供了ICE 80%的功能。调试方法:1)将CPU的模式分为一般模式和调试模式2)一般模式下,CPU从内存读取指令执行3)调试模式下,CPU首先从调试端口读取指令,通过调试端口可以控制CPU进入和退出调试模式;Host端的调试器可以直接向目标机发送要执行的指令,读写目标机的内存和各种寄存器,控制目标程序的运行以及完成各种复杂的调试功能。
软件仿真器调试的特点:优点:最大好处就是可以不用真正的目标机,可以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用Host资源提供更详细的错误诊断信息。缺点:和实际的运行环境差别很大;设备模拟的局限性较大;实时特性较差;对Host的资源要求较高。适用范围:对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序
嵌入式软件测试工具:能够用来辅助测试的工具,主要用来支持测试人员的工作。一般有内存分析工具,性能分析工具,覆盖分析工具,缺陷跟踪工具等。
软硬件分开设计存在问题:缺少统一的软硬件表示方法;划分依靠先验定义;不能够验证整个系统;通过HW/SW边界时很难发现不兼容问题;缺少成熟的设计流程;上市时间问题;描述更改变得困难
软硬件协同设计定义:软硬件共同设计目的是为硬件和软件的协同描述,验证和综合提供一种集成环境
软硬件协同设计的基本需求:统一的软硬件描述方式;交互式软硬件划分技术 ;完整的软硬件模型基础;正确的验证方法 软件硬件协同设计的设计流程:用HDL语言和C语言进行系统描述并进行模拟仿真和系统功能验证;对软硬件实现进行功能划分,分别用语言进行设计并将其综合起来进行功能验证和性能预测等仿真确认(协调模拟仿真);如无问题则进行软件和硬件详细设计;最后系统测试 软件硬件协同设计的特点:缩短开发周期;取得更好的设计效果;满足苛刻的设计限制 ; 这种平台的推出将不仅包含芯片本身,还必须包含完整的开发系统和典型应用实例,而供应商提供的服务和技术支持也当然要成为产品不可分割的一部分 缺点:典型的手动划分(manual Partition);固定应用领域(carefully very specialized);逐渐增长的评估需求支持很弱(no abstract models);主要强调性能;模型的连贯性在设计重用中不被支持;商业系统更强调协同验证(co-verification)方面(more achievable goal)
嵌入式系统典型的接口(RS232RS484USB、同步串口及其他串口、I2C、I2S、AC97、LAN等的应用特点): RS232:采用RS232的三根线进行通信。接口为D型的9针阳性的插头。低速红外异步通信接口,支持使用红外的双向无线通信,提供发送编码器和接收解码器,支持IrDAV1.11的物理链路。不支持IR LED驱动器和接收放大器。支持半双工,最高波特率115.2Kb/s。蓝牙 I2C总线接口:由PHILIPS创建的双线方式串行总线.双向数据线用于输入输出,双向时钟线用于控制和采样,每个设备有一个地址,采用主从方式通信。实现主机与外设间通信.允许多主机,此时采用裁决控制器。I2C单元是处理器内部总线上的设备。USB:Host控制器基于PCI,提高了系统性能,即插即用,无需手动设置地址、中断……热插拨,系统不需重启便可工作.易于扩展,理论上可连接多达127个设备,但一般都只限于连接两三个设备,真正组网后的系统稳定因素需要探讨.USB2.0以低成本实现高达480Mb/s的传输率(USB1.0的全速设备可达12Mb/s)接口标准统一、端口供电 AC97控制器:支持AC97 V2.实现话音数字化
内部集成电路声音控制器(I2S)用于数字立体声的规程 多媒体卡控制器(MMC)
Boot Loader技术:嵌入式系统中的 OS 启动加载程序.引导加载程序(包括固化在固件(firmware)中的boot代码,和Boot Loader两大部分,是系统加电后运行的第一段软件代码).相对于操作系统内核来说,它是一个硬件抽象层,系统的加载启动任务就完全由 Boot Loader 来完成,在操作系统内核运行之前运行一段小程序
功能:初始化硬件设备,建立内存空间的映射图,调整系统软硬件环境,以便操作系统内核启动
不通用:依赖于硬件,依赖于具体的板级配置 不同的 CPU有不同的Boot Loader 多阶段的 Boot Loader:提供更为复杂的功能,以及更好的可移植性,从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,启动过程可以分为 stage 1和stage2两部分 两种不同的操作模式:一.启动加载模式:自主(Autonomous)模式,从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,Boot Loader 的正常工作模式
二.下载模式:通过串口连接或网络连接等通信手段从主机(Host)下载文件,如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中。通常在第一次安装内核与根文件系统时被使用系统更新也会使用 Boot Loader 的这种工作模式,通常都会向它的终端用户提供一个简单的命令行接口
第四篇:嵌入式程序员C语言笔试题目
华硕_嵌入式程序员C语言笔试题目
预处理器(Preprocessor).用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR(60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1)#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B)((A)<=(B)?(A):(B))
这个测试是为下面的目的而设的:
1)标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3)懂得在宏中小心地把参数用括号括起来
4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
least = MIN(*p++, b);
3.预处理器标识#error的目的是什么?
Error directives produce compiler-time error messages.死循环(Infinite loops)
4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
这个问题用几个解决方案。我首选的方案是:
while(1){ }
一些程序员更喜欢如下方案:
for(;;){ }
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。
第三个方案是用 goto Loop:...goto Loop;
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。
数据声明(Data declarations)
5.用变量a给出下面的定义
a)一个整型数(An integer)
b)一个指向整型数的指针(A pointer to an integer)c)一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an intege)r
d)一个有10个整型数的数组(An array of 10 integers)e)一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)
f)一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument and return an integer)
答案是:
a)int a;// An integer
b)int *a;// A pointer to an integer
c)int **a;// A pointer to a pointer to an integer
d)int a[10];// An array of 10 integers
e)int *a[10];// An array of 10 pointers to integers
f)int(*a)[10];// A pointer to an array of 10 integers
g)int(*a)(int);// A pointer to a function a that takes an integer argument and returns an integer
h)int(*a[10])(int);// An array of 10 pointers to functions that take an integer argument and return an integer
人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢? Static
6.关键字static的作用是什么?
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。
Const
7.关键字const有什么含意?
我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)
如果应试者能正确回答这个问题,我将问他一个附加的问题:
下面的声明都是什么意思?
const int a;
int const a;
const int *a;
int * const a;
int const * const a=new int(1);
/******/
前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意识a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:
1)关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
第五篇:嵌入式Linux笔试题库和答案
嵌入式Linux笔试题库
一.选择题
1.Linux的创始人是谁()
A、Turbolinux B、AT&T Bell Laboratry C、University of Helsinki
D、Linus Torvalds 2.在Linux中,命令解释器是哪个()
A、管道
B、分级文件系统
C、字符型处理器
D、shell 3.Linux安装程序提供了两个引导装载程序()A、GROUP和LLTO
B、DIR和COID
C、GRUB和LILO
D、以上都不是
4.如果当前目录是/home/sea/china,那么“china”的父目录是哪个目录()
A、/home/sea B、/home/
C、/
D、/sea 5.在Linux中,要删除abc目录及其全部内容的命令为:()A、rm abc B、rm-r abc C、rmdir abc
D、rmdir-r abc 6.假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1分区加载到/win目录?()
A、mount-t windows /win
/dev/hda1 B、mount-fs=msdos
/dev/hda1
/win C、mount-s
win
/dev/hda1 /win D、mount –t vfat
/dev/hda1 /win 7.显示用户的主目录的命令是什么()A、echo $HOME B、echo $USERDIR C、echo $ECHO D、echo $ENV
8.系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有()权限。
A、744
B、664
C、646
D、746 9.如何查看一个RPM软件包是否安装()A、rpm
-Vc
postfix
B、rpm-q
postfix
C、rpm
--changelog
postfix
D、rpm
-q—changelog
postfix
10*.在Linux中,提供TCP/IP包过滤功能的软件叫什么(C)A、rarp
B、route
C、iptables
D、filter 11.nfs服务的配置文件是什么?()
/etc/mtab B、/etc/fastboot C、/etc/fstab D、/etc/exports 12.用命令ls-al显示出文件ff的描述:-rwxr-xr--1 root root Cec 10 17:12 ff 由此可知文件ff的类型为:()A、普通文件
B、硬连接
C、目录
D符号连接 13.Linux操作系统中的shell是()A、命令解释器
B、程序设计语言
C、脚本编辑器
D、编译器
14.能实现文件系统远程挂载的是()。
599 A.SAMBA B.NFS
C.NIS
D.HTTPS 15.Linux系统下硬盘分区,能直接使用的分区是()A、主分区 B、扩展分区 C、逻辑分区
D、扩展分区和逻辑分区
16.Linux系统的1.0版内核的发布是在(A)A.1992年
B.1993年
C.1994年
D.1995年
17.在vi编辑器的命令模式中,在光标所在位置的右侧插入字符的命令是(A)A.a
B.A C.i D.I 18.要给文件file1加上其他人可执行属性的命令是()A.chmod a+x
B.chown a+x
C.chmod o+x
D.chown o+x 19下面哪个linux 命令可以一次显示一页内容?()A.pause
B.cat
C.more
D.grep 20、下面命令的作用是:set ps1=“[uwt]$”,export ps1()A.改变错误信息提示 B.改变命令提示符 C.改变一些终端参数 D.改变辅助命令提示符
21、如何从当前系统中卸载U盘()A.umount B.dismount C.mount-u D.从/etc/fstab 中删除这个文件系统项
22、在linux 中,如何标识第一块IDE硬盘 上的第2 个扩展分区?()A./dev/hdb2 B./dev/hd1b2 C./dev/hdb6 D./dev/hd1b6
23、下面哪条命令可以把f1.txt 复制为f2.txt?()A.cp f1.txt | f2.txt B.cat f1.txt | f2.txt C.cat f1.txt > f2.txt D.copy f1.txt | f2.txt
24、下面哪个命令可以压缩部分文件:()A.tar-dzvf filename.tgz * B.tar-tzvf filename.tgz * C.tar-czvf filename.tgz * D.tar-xzvf filename.tgz *
25.与通用操作系统相比嵌入式操作系统还必须具有的特点是()
A强稳定性,弱交互性
B 较强实时性
C 可伸缩性
D 功耗管理与节能
26.下列那种设备不属于嵌入式系统产品()。A、PDA
B ATM取款机
C 个人计算机
D 机顶盒 27.下列是开源的嵌入式操作系统的是()A.嵌入式linux B uc/os D Palm OS
E WinCE 28.下列不属于ARM处理器异常工作模式的是()A.快速中断模式 B.未定义模式
C.数据访问终止模式 D.用户模式
29.嵌入式软件开发与通用软件开发增加了()环节 A.代码编写
B.代码调试
C.代码固化
D.软件测试 30.嵌入式系统调试方式中不占用系统资源的调试方式是()A模拟器方式
B 监控器方式
C
ICE在线仿真器
D
IDE在线调试器方式
31.烧写到FLASH里的是()格式的文件。
A..asm B..bin C..obj
D..cpp 32.汇编程序中的伪指令是在()阶段起作用。
A.编辑 B.链接 C.编译
D.执行
33、目前嵌入式处理器的种类大约有()A.500多种 B.800多种
C.1000多种
D.2000多种
34.嵌入式系统中硬件层主要包括了嵌入式系统必要的硬件设备,(),存储器,I/O等。
A 嵌入式微处理器
B 嵌入式控制器
C单片机
D.SOC 35.解压文件linux.tar.gz使用的命令是()A.tar –jxvf linux.tar.gz
B.tar jcvf linux.tar.gz
C.tar –zxvf linux.tar.gz D.tar –czvf linux.tar.gz 36.在vi处于命令行模式时,如果需要对文本进行修改,欲在光标所在位置的下一个位置开始输入字符,则()。
A按下字母i进入插入模式
B 按下字母a进入插入模式 C 按下字母O进入插入模式
D 按下字母n进入插入模式 37.当前vi处于插入模式时,现放弃对文本修改,既不保存退出vi,则()
A.使用“:q!”命令
B.使用“:wq!”命令退出
C. 先按“ESC”后,使用”:q!”命令退出。D先按“ESC”后,使用”:wq!”命令退出
38.经过汇编后,生成的目标文件的后缀名为()A..c
B.s C.o
D.exe 39.对代码文件code.c编译,生成可调式代码的命令是()A #gcc –g code.c –o code B #gcc code.c –o code C #gcc –g code.c code
D #gcc –g code
40.NAND FLASH和NOR FLASH的区别正确的是()A.NOR的读速度比NAND稍慢一些 B NAND 的擦除速度远比NOR的慢 C.NAND的写入速度比NOR慢很多 D.大多数写入操作需要先进行擦除操作。
二、多项选择题:
1.常见的Linux发行版本有:(ABCDE)
A、Redhat Linux
B、Turbo Linux
C、Debian GNU/Linux
D、SuSE Linux
E、Mandrake Linux 2.请选出所有能将文件a.dat的权限从'rwx------' 改为 'rwxr-x---'的命令:(CD)A、chown rwxr-x---a.dat
B、chmod rwxr-x---a.dat C、chmod g+rx a.dat
D、chmod 750 a.dat 3.对于所有用户都能读的文件权限是(ABC)A.777
B.444
C.644
D.640 三.填空题
1.Linux一般包括四个主要部分,()()()()。
2.目前,几乎所有的linux发行版本都包括了()和()两种。3.Linux内核主要由()()()()()5部分组成。4.vi编辑器的三种状态()()()。
5.使用gcc编译文件生成可执行文件要经历四个相互关联的步骤:(预处理)(编译)(汇编)和(链接)。
6.bootloader常见的两种操作模式是()和(),仅仅对开发人员有用的模式是()。
四.问答题
1.makefile文件的作用是什么?
答案:一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。2.Linux显示文件夹中隐藏文件信息的命令是什么? 3.Linux文件属性有哪些?(共十位)
-rw-r--r—1 第一个属性代表这个文件是【目录、文件或连结文件】,当为[ d ]则是目录,为[-]则是文件,若是[ l ]则表示为连结档(link file); 若是[ b ]则表示为装置文件里面的可供储存的接口设备;
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
接下来的属性中,三个为一组,且均为【rwx】三个参数的组合,其中[r]代可读、[w]代表可写、[x]代表可执行: 第一组为【拥有人的权限】,第二组为【同群组的权限】;
第三组为【其它非本群组的权限】。
4.说明下述Linux系统命令的主要功能是什么。显示文件目录命令ls 改变当前目录命令cd 如cd / /home 建立子目录mkdir mkdir xiong 删除子目录命令rmdir 如 rmdir /mnt/cdrom 删除文件命令rm 如 rm /ucdos.bat 文件复制命令cp 如 cp /ucdos/* /fox 获取帮助信息命令man 如 man ls 显示文件的内容cat more less 5.简述Linux在嵌入式系统市场上取得辉煌的成果的原因。6.简述嵌入式Linux系统开发流程。
答:嵌入式系统平台移植主要包括以下几部分
1)交叉编译器的制作和安装 2)Bootloader开发和移植 3)嵌入式操作系统开发和移植 4)根文件系统制作和移植 5)应用程序开发 6)系统集成和测试
7*.嵌入式根文件系统的设计目标应该包括哪些方面? 8*.arm系列处理器arm7tdmi中的tdmi四个字母的含义。9.嵌入式系统发展经历了那些阶段,有什么特点?
10*.嵌入式系统的设计方法和过程与传统的单片机开发有什么不同?
11.简述哈佛体系结构和冯诺依曼体系结构的不同点。12.简述NAND_FLASH和NOR_FLASH的异同点? 13.简述S3C2410与ARM920T的关系.14.嵌入式系统常用调试方法有几种,各有什么优缺点?
15.什么是嵌入式操作系统?常见的嵌入式操作系统有哪些?(列举五个以上),嵌入式操作系统有什么特点?
16.什么是交叉开发环境?简述嵌入式linux系统交叉开发环境的构建过程?
17.什么是bootloader?常用的bootloader有那些?bootloader两种工作模式有什么不同,分别应用在那种情况下? 18.简述bootloader在嵌入式系统平台上的移植过程?
19.说明linux平台下用C语言软件开发方法?(说明需要用到那些工具)20什么是SOC? 21.嵌入式系统有什么特点? 22.什么是交叉编译工具链? 23.简述嵌入式Linux系统根文件系统的作用。25.名词解释ARM
答:ARM(Advanced RISC Machine的缩写),ARM可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字,全名是Advanced RISC Machine。该公司1990年11月成立于英国剑桥,主要出售芯片设计技术的授权,是苹果电脑,Acorn电脑集团和VLSI Technology的合资企业。Acorn曾推出世界上首个商用单芯片RISC处理器,而苹果电脑当时希望将RISC技术应用于自身系统,ARM微处理器新标准因此应运而生。26.CISC
答:复杂指令系统计算机 CISC(Complex Instruction Set Computer)依靠增强指令的功能,增加指令系统的复杂程度来提高计算机系统的性能。特点:
(1)指令系统复杂庞大,指令数目一般多达200~300条。(2)指令格式多,指令字长不固定,使用多种不同的寻址方式。(3)可访存指令不受限制。
(4)各种指令的执行时间和使用频率相差很大。(5)大多数采用微程序控制器。
27.RISC:(Reduced Instruction Set Computer)精简指令系统,简化指令功能及优化的编译程序来提高计算机系统的性能。特点:
(1)选取使用频率高的简单指令以及很有用但又不复杂的指令组成指令系统。
(2)指令数少,指令长度一致,指令格式少,寻址方式少,指令总数大都不超过100条。
(3)以寄存器 — 寄存器方式工作,只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器之间进行。
(4)采用指令流水线调度,使大部分指令在一个机器周期内完成。(5)使用较多的通用寄存器以减少访存。
(6)以组合电路控制为主,不用或少用微程序控制。采用优化编译技术,力求高效率支持高级语言的实现。28.JTAG
答:JTAG(Joint Test Action Group;联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System Programmable在线编程),对FLASH等器件进行编程。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程 29.Bootloader 答:简单地说,Boot Loader 就是在操作系统内核运行之前运行的一段小程序,程序的主要功能是初始化系统基本硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。30.U-boot 答:U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。U-boot支持众多的硬件平台,是应用非常广泛的bootloader 31.make 答:make是Linux下的工具软件,make工具与makefile文件配合使用,实现Linux系统下工程管理,实现程序编译的自动化。32.makefile 答:Linux系统下一种文件,该文件与Linux下的工具make配合使用,实现Linux下工程项目管理,实现程序编译的自动化。