Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5379393
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类:

2008-07-04 10:22:36

什么叫嵌入式系统?
 
嵌入式系统是指用于执行独立功能专用计算机系统。它由包括微处理器、定时器、
微控制器、存储器、传感器
等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系
统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各
种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和
通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以满足系
统对功
能、成本、体积和功耗
等要求。
 
 
 
嵌入式系统软硬件特点?
 
嵌入式系统的硬件必须根据具体的应用任务,以功耗,成本,体积, 可靠性,处理能力
为指标来选择。可裁剪为完成某一特定任务高度定制的。嵌入式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑,可靠,大多对实时性有严格要求。可裁剪,为完成某一特定任务高度定制的。
 
 

并行接口各管脚功能?
 
1 选通端(STROBE),低电平有效10 确认(ACKNLG),低电平有效
2 数据位0(DATA0) 11 忙(BUSY)
3 数据位1(DATA1) 12 缺纸(PE)
4 数据位2(DATA2) 13 选择(SLCT)
5 数据位3(DATA3) 14 自动换行(AUTO FEED),低电平有效
6 数据位4(DATA4) 15 错误(ERROR),低电平有效
7 数据位5(DATA5) 16 初始化(INIT 低电平),低电平有效
8 数据位6(DATA6) 17 选择输入(SLCT IN 低电平),低电平有效
9 数据位7(DATA7) 18 到25 地线(GND)
 
 
 
 
232口为什么容易出问题?
 
因为:232接口采用负逻辑,最大传输距离为30米,它传输速率低,传输距离近抗干扰能力差。不支持热插拔。
 
 

操作系统功能?
 
操作系统是用户和计算机硬件之间的一个中介,并用于管理计算机资源和控制应用程序运行的计算机程序。一般会提供以下服务:
(1) 进程及进程管理
(2) 内存及虚拟管理
(3) 信息保护和安全
(4) 调度和资源管理
(5) 模块化系统化设计。
 
 

什么叫中断?
 
让系统中的其它模块能够中断正在执行中的进程从而完成一些紧急任务,这就是中断
通俗的讲,所谓中断就是暂停正在运行的进程,让他去做另外一个更紧急的任务。然后在返回到当前暂停的进程处,继续运行。
 
 
 
中断分类?
 
中断类型主要有四类,即软件中断、定时中断、I/O 中断和硬件故障等
 
 
 
中断处理过程?
 
第一步,某个中断源(如软件、I/O、定时器甚至是硬件故障)向处理器发出中断信号
第二步,处理器在响应中断之前完成当前指令;
第三步,处理器检测是否存在中断,并发给中断源一个确认信号,这个确认信号可以让中断源撤出其中断信号;
第四步,处理器将处理器时间交给中断处理例程之前需要做一些准备工作,这其中主
要包括保存在中断点时当前程序的状态。最低限度的保存信息应该包括程序
状态字信息和当前程序下一条指令的地址;
第五步,处理器执行中断处理例程
第六步,中断例程执行完毕后,处理器保存与中断例程相关的必要信息,
处理器恢复
被中断程序在中断点时的状态
第七步,处理器继续原来的指令执行过程
 
 
 
如何把名为chardrv.o安装到系统中,并且详细说出各个步骤对系统产生的响应?
 
$ insmod -f chardev.o
如果安装成功,在/proc/devices文件中就可以看到设备test,
并可以看到它的主设备号。
要卸载的话,运行
$ rmmod test
下一步要创建设备文件。
mknod /dev/test c major minor
c 是指字符设备,major是主设备号,就是在/proc/devices里看到的。
minor是从设备号,设置成0就可以了。
 
 
 
 
 
mknod 和 insmod 之间的区别?
 
insmod是安装模块指令,在系统中安装驱动程序时使用,mknod是在系统中建立节点指令,一个驱动程序可能被很多节点使用,所以只有安装完驱动程序后,才可以建立节点使用该驱动程序。
 
 
 

设备驱动程序是内核的一部分,它完成哪些功能?
 
  1.对设备初始化和释放.
 
  2.把数据内核传送到硬件和从硬件读取数据.
 
  3.读取应用程序传送给设备文件的数据回送应用程序请求的数据.
 
  4.检测和处理设备出现的错误.
 
 
 

LINUX下设备驱动程序的基本结构?
 
对用户程序而言,设备驱动程序隐藏了设备的具体细节,对各种不同设备提供了一致的接口,一般来说是把设备映射为一个特殊的设备文件,用户程序可以象对其它文件一样对此设备文件进行操作。LINUX对硬件设备支持两个标准接口:块特别设备文件字符特别设备文件,通过块(字符)特别设备文件存取的设备称为块(字符)设备或具有块(字符)设备接口。块设备接口仅支持面向块的I/O操作,所有I/O操作都通过在内核地址空间中的I/O缓冲区进行,它可以支持几乎任意长度和任意位置上的I/O请求,即提供随机存取的功能。
 
 
 

设备驱动程序可以分为三个主要组成部分?
 
自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是否
能正常工作。如果该设备正常,则对这个设备及其相关的、设备驱动程序
需要的软件状态进行初始化。这部分驱动程序仅在初始化的时候被调用一
次。
服务于I/O请求的子程序,又称为驱动程序的上半部分。调用这部分是由
于系统调用的结果。这部分程序在执行的时候,系统仍认为是和进行调用
的进程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调
用的用户程序的运行环境,因此可以在其中调用sleep()等与进程运行环
境有关的函数。
中断服务子程序,又称为驱动程序的下半部分。在UNIX系统中,并不是
直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由UNIX
系统来接收硬件中断,再由系统调用中断服务子程序。中断可以产生在任
何一个进程运行的时候,因此在中断服务程序被调用的时候,不能依赖于
任何进程的状态,也就不能调用任何与进程运行环境有关的函数。因为设
备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务
子程序的时候,都带有一个或多个参数,以唯一标识请求服务的设备。
 
 
在系统内部,I/O设备的存取通过一组固定的入口点来进行,这组入口点是
由每个设备的设备驱动程序提供的。一般来说,字符型设备驱动程序能够提供哪几个入口点?
 
open入口点。打开设备准备I/O操作。对字符特别设备文件进行打开操
作,都会调用设备的open入口点。open子程序必须对将要进行的I/O
操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一
时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表
示设备处于忙状态。
close入口点。关闭一个设备。当最后一次使用设备终结后,调用close
子程序。独占设备必须标记设备可再次使用。
read入口点。从设备上读数据。对于有缓冲区的I/O操作,一般是从缓
冲区里读数据。对字符特别设备文件进行读操作将调用read子程序。
write入口点。往设备上写数据。对于有缓冲区的I/O操作,一般是把数
据写入缓冲区里。对字符特别设备文件进行写操作将调用write子程序。
 
 

ioctl函数的作用?
 
答案:完成系统对外部设备的管理工作。执行读写之外的操作。
 
 
 
select入口点的作用?
 
检查设备,看数据是否可读或设备是否可用于写数据
select系统调用在检查与设备特别文件相关的文件描述符时使用select入口点。
如果设备驱动程序没有提供上述入口点中的某一个,系统会用缺省的子程序
来代替。对于不同的系统,也还有一些其它的入口点。
 
 

在结构file_operations里,指出了设备驱动程序所提供的入口点位置,分
别是哪些?
 
open;
read;
write;
lseek;
readdir;
select;
ioctl;
mmap;
release;
 
 
 
 

register_chrdev定义为:
#include
#include
int register_chrdev(unsigned int major, const char *name,
struct file_operations *fops);
 
 
 

major是为设备驱动程序向系统申请的主设备号,如果为0则系统为此
驱动程序自动分配设备号,并且说明是如何分配的?
 
驱动程序动态地分配一个主设备号。name是设备名fops就是对各个调用的入口点的说明。此函数返回0表示成功。返回-EINVAL表示申请的主设备号非法,一般来说是主设备号大于系统所允许的最大设备号。返回-EBUSY表示所申请的主设备号正在被其它设备驱动程序使用。如果是动态分配主设备号成功,此函数将返回所分配的主设备号。如果register_chrdev操作成功,设备名就会出现在/proc/devices文件里。
 

 
阅读(1801) | 评论(0) | 转发(0) |
0

上一篇:eclipse插件配置

下一篇:java试题

给主人留下些什么吧!~~