当前位置:文档之家› 基于嵌入式Linux系统的网络编程技术

基于嵌入式Linux系统的网络编程技术

基于嵌入式Linux系统的网络编程技术
基于嵌入式Linux系统的网络编程技术

中国科技信息2006年第5期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2006

引 言

源代码开放的嵌入式Linux操作系统具备稳定、高效、易定制、易裁减、硬件支持广泛等特点,逐渐成为嵌入式操作系统的研究重点。嵌入式系统中的设备与PC之间经常需要交换大量可靠的数据,而且必须达到一定的传输速率。在本系统中PC和ARM控制板之间传输的数据量有1GB,而且要求传输速率大于1M bytes/s。由于网口较之串口、并口有数据传输速率快、准确性高等特性,因此,网络编程在实际中得到了大量的应用。利用网口进行数据交换还可以进行远程控制。在本系统中用的ARM板是傅立叶公司的AT91RM9200评估板[1]。其CPU为ARM920T,系统应用内存为32M,flash为16M,外扩网口一个,适应10M/100M以太网。串口两个,通讯速度可以达到115200bit/s。普通I/O口122个。装载入板子的操作系统为RedHat linux。网口通讯由于其快速性、高可靠性也逐渐成为系统与外界交换信息的主要接口。对于嵌入式Linux要用网口,需要在编译内核的时候选择支持以太网的TCP/IP和UDP/IP协议栈,即在ARM板上的Linux内核里要有TCP/IP和UDP/IP协议栈支持。交叉编译的工具为:arm-linux-gcc。

图1 Linux下面向连接的socket网络编程模型

要采用网络编程就要用到网络套接字(Socket)。网络的Socket数据传输是一种特殊的I/O,Socket也是一种描述符,套接字是网络通信的基本操作单元,它提供了不同主机间的进程双向通信的端点,这些进程在通信前各自建立一个Socket,并通过对Socket的读写操作实现网络通信的功能。系统在PC机与ARM开发板之间建立一个可靠的面向连接的网络套接字服务,使得ARM开发板可以通过网口与PC机进行数据交换。

1,Linux网络编程模型及常用函数

1.1 Linux网络编程模型[2]

在客户端/服务器模式中,我们将请求服务的一方称为客户(client),将提供某种服务的一方称为服务器(server)。一个服务程序通

基于嵌入式Linux系统的网络编程技术

Network Programming Technology in Embedded Linux

俞冬丽 金华职业技术学院 321017

摘 要:本文详细的介绍了基于Linux系统的嵌入式ARM板与PC机之间的网络通讯技术,并结合实例阐述了Linux操作系统下Socket套接字常用函数的用法,实现了客户机/服务器模型的网络编程。

关键词:Linux;Socket;嵌入式;客户机/服务器Abstract: This paper introduces the technology of network communication between the PC and AT91RM9200,which was installed in the embedded Linux. It also illustratesthe usage of common socket functions in the Linux operating system, and achieves the technology of programming with the model of Client/Server in the network.Key words: Linux;Socket;Embedded;Client/Server

常在一个众所周知的地址监听对服务的请求,

也就使说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时候,服务程序被激活,它将创建出一个子进程为客户提供服务。而父进程继续在原地址监听。在子进程完成了相应的操作后,服务器关闭此连接套接字,并结束此子进程。

套接字有三种类型:数据流套接字、数据包套接字和原始套接字。

数据流套接字定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输。数据包套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,使无序的,并且不保证可靠,无差错。原始套接字允许对底层协议如IP或ICMP直接访问,主要用于新的网络协议实现的测试。此处介绍的是用的最为广泛的面向连接的数据流套接字。其工作过程如下:

服务器通过调用socket函数创建一个用于通讯的套接字。然后调用bind()将该套接字和本地网络地址联系在一起,再调用listen函数使该套接字成为一个监听套接字,做好监听准备,并规定它的请求队列的长度。之后就调用accept函数来启动该套接字,等待客户端的连接。客户在建立套接字后就可以调用connect()和服务器建立连接。连接一旦建立,客户机和服务器之间就可以通过调用read()和write()进行数据交换。最后待数据传送结束后,双方调用close()关闭套接字。

客户端进程和服务器进程交互的过程如图1所示。

1.2 套接字常用函数

以下我们将介绍建立面向连接的socket网络编程常用函数[3][4]的用法。详细阐述一下容易出错的bind函数。其余可以参考文献[2]。

1.2.1、服务器和客户机首先要调用socket()函数,建立套接字并指明应用何种通讯协议。格式如下:int socket( int domain, inttype, int protocol);

此函数为通信建立一个面向连接的套接字端口,若成功调用将返回一个整型的文件描述符,错误则返回-1。参数 domain指明套接字所用的协议族,一般我们选用AF_INET(Internet协议,TCP/IP编程选该值)。参数type 指明套接字类型,即上面所阐述的三类型:SOCK_STREAM:流式套接字,SOCK_DGRAM:数据报套接字及SOCK_RAW:原始套接字。参数protocol 为套接字所用的协议,一般可以设为0。

如下代码用于创建一个TCP套接字:int sockfd = socket(AF_INET,SOCK_STREAM, 0);

1.2.2、一旦Socket调用成功并返回一个文件描述符,则应将该Socket与服务器本机上的一个端口绑定,就可以在该端口监听服务请求。该函数只用于服务器端程序,客户端无此

调用。其格式为:int bind ( int sockfd , conststruct sockaddr * address , size_t addrlen);

此函数三个参数含义如下:

a) sockfd 即为socket函数返回的文件描述符;

b) address为指向sockaddr类型的指针,它保存了套接字的地址(即端口和IP地址)信息;sockaddr类型的指针与sockaddr_in类型的指针可以互换。Sockaddr_in类型定义如下:

struct sockaddr_in{short int sin_family; //地址族unsigned short int sin_port; //端口号struct in_addr sin_addr; //IP地址

unsigned char sin_zero[8]

; //填充0,以保持与struct sockaddr 同样大小

};

sin_family 为套接字的协议族地址类型,如TCP/IP协议族为AF_INET;sin_port和sin_addr为端口号和IP地址。对于端口号的分配,小于1024的所有端口是保留给系统使用的,普通进程应当使用大于1024且小于65536范围内的端口号,由于基于Intel、ARM芯片的计算机和arm控制板采用的数据存放顺序是倒序存放,即低字节在内存地址的底端,高字节在内存地址的高端。我们称这种存放顺序为主机字节顺序;而Internet上传送的数据是顺序存放的,我们称为网络顺序。这样在数据被发送到网络之前,必须要进行字节顺序的转换。具体例子可参见以下的例子。也可以用以下赋值实现自动获取本机IP地址和一个没被占用的端口号,Sin_zero[8]数组填以0。

address.sin_port = 0;

address.sin_addr = INADDR_ANY;bzero(&(addresss.sin_zero), 8);

c) addrlen为套接字地址的长度。

2,具体应用

以下将针对具体应用,介绍客户端程序的编写。由于服务器端的程序是在PC上实现的,具体的例子见文献[3],此处仅给出客户端程序的编写和操作。即在ARM板上运行的程序的编写和编译过程。程序编写顺序将按图1所示的顺序进行编写。具体程序如下所示:

#include <stdio.h>#include<netdb.h>#include<netinet/in.h>#include<sys/types.h>#include<sys/socket.h>#include<errno.h>

#define SERVER_PORT 8006 //定义端口号需与主机端口号一致

#define MAXSIZE 1024

int main(int argc , char **argv){int sockfd;

(下转第80页)

中国科技信息2006年第5期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2006

在市场经济条件下,要求企业在收到产品的市

场需求信息后,能够快速做出反应,及时、准确地向用户提供产品的价格,为企业在激烈的市场竞争中赢得用户创造条件。产品的快速报价是在没有进行详细设计之前进行的,因此产品的材料消耗与工时消耗都不能确定,为了提高报价速度和报价的准确性,采用按产品结构树进行成本估算的方法。按产品结构树进行成本估算要求先建立产品的结构树,也就是先确定构成产品的零部件,对于企业零部件数据库中已有的部件(通用件),只要将其成本信息从原有的零部件数据库中调出便可。而数据库没有的零部件则按新零部件处理。对于新零件重新设计,计算成本,并存入数据库中。对于新部件要按产品结构树展开,完成设计后,根据设计结果确定新部件消耗的材料定额和工时定额,材料费用按估算的部件材料消耗定额与当前材料采购平均成本的乘积计算;而加工费则按部件消耗的加工工时、组装工时与企业近期加工费率的乘积计算。新部件的成本为按产品结构树展开的子零件和子部件的成本和。采用这种计算成本的方法,只需将产品结构变动的部分重新进行计算,然后把原有零部件与新测算的零部件成本相加后,便可估算出产品的制造成本,本文针对旋转格栅除污机进行开发报价系统设计。

1,报价系统设计

1.1 系统结构

图1 快速报价的工艺流程

旋转格栅除污机报价系统的开发

孟令旸1 夏玉林2

(1.唐山市教育局 063000; 2.唐山学院东校区 063020)

按产品结构树进行快速报价的工作流程如图1所示。

1.2 系统功能

旋转格栅除污机主要组成部分:①传动装置(含减速机座)②主传动涨紧装置③主传动链轮组④转刷

⑤转刷涨紧装置⑥上部导轮组⑦机架⑧栅网⑨挡渣体⑩电气系统

旋转格栅除污机的报价计算是在总体设计基础上进行的,报价计算模块能够完成其组成部分的成本计算,进行成本报价。由材料报价费及加工费组成。在进入各项报价子模块后,首先读相应子模块报价计算的数据文件;然后进行数据处理及零部件材料用量计算;逐项检索各种零部件材料价格数据库进行价格统计;最后形成各级子模块报价结果明细表。

1.3 软件开发

1.3.1软件系统主界面说明

图2 软件的主界面

报价子系统主界面采用多文档(MDI)窗体,它允许用户同时显示多个文档,每个文档显示在它自己的窗口中。文档或子窗口被包含在父窗口中,父窗口为应用程序中所有的子窗口提供工作空间。在运行时,子窗体显示在MDI 父窗体工作空间之内(其区域在父窗体边框以内及标题与菜单栏之下)。当子窗体最小化时,它的图标显示在 MDI 窗体的工作空间之内,而不是在任务栏中。

软件的主界面如图2所示。1.3.2 软件系统

系统采用Visual Basic 6.0和MS SQL Server开发,可在Win9x、Windows2000及Win NT 平台下运行。报价系统设计了基础数据库录入模块、原始参数输入模块、选型计算模块、查询模块和报价结果打印模块共同完成报价系统全部工作。系统设置有两种数据输入:设计文件转入,是根据设计部门提供的设计文件自动转入报价所需数据;手工输入,操作人员手工确定某些成本信息。选型计算模块可对数记录进行添加、删除、修改。查询模块进行各个数据库的浏览查询。报价结果打印模块可将所需要的选型结果打印出来。

2,结论

旋转格栅除污机报价系统解决了原报价系统手工运算、操作,难以实现用户对本企业快速反应的要求;解决了信息传递及共享的问题;解决了产品设计数据信息一致性的问题。旋转格栅除污机报价系统研制的成功使报价实现了计算机化、信息化、系列化、准确化及快速化,使报价更加规范化。

参考文献:

1.张暴暴等.组合式冷库工程设计及报价系统开发与研究[J].机械设计与制造.1999.6:67-692.曾庆良等.铁路货车产品报价系统的设计与软件开发[J].机械设计与制造.2000.4:71-73

3.王道荣. Visual Basic 6.0数据库处理[M].北京:中国铁道出版社.2000.9

LInux 嵌入式操作系统期末试题

1.简答题:请简单概括什么是嵌入式系统、并举出嵌入式系统的特点;(6分) 答: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统; 其特点如下: (1)嵌入式系统是面向特定系统应用的。 (2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各个行业; 是一个技术密集、资金密集、高度分散、不断创新的知识集成系统; (3)嵌入式系统的硬件和软件都必须具有高度可定制性;只有这样才能适应嵌入式系 统应用的需要,在产品价格和性能方面具备竞争力; (4)嵌入式系统的生命周期相当长。 (5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。 2.嵌入式操作系统的优势:1.低成本开发系统 2.可应用多种硬件平台 3.可定制内核 4. 性能优异 5.良好的网络支持 3.linux文件类型:1.普通文件 2.目录文件 3.链接文件 4.设备文件 a.块设备文件(硬 盘:/dev/hda1)b.字符设备(串行端口接口设备) 4.linux文件属性:访问权限:r:可读w:可写x:可执行用户级别:u:文件拥有者g:所 属用户组 o:其他用户第一个字符显示文件类型:-普通d目录 l 链接… 5.简答题:(6分) linux目录结构:/bin 存放linux常用操作命令的执行文件(二进制文件) /boot 操作系统启动时所需要的程序 /dev Linux系统中使用的外部设备 /etc 系统管理时所需要的各种配置文件和子目录 /etc/rc.d Linux启动和关闭时要用到的脚本 /etc/rc.d/init Linux默认服务的启动脚本 /home 系统中默认用户工作根目录 /lib 存放系统动态链接共享库 /mnt软驱、光驱、硬盘的挂载点 /proc存放系统核心与执行程序所需信息、 /root超级用户登陆时的主目录 /sbin 存放管理员常用系统管理程序 /usr存放用户应用程序和文件 /var存放日志信息(答六点即可) 6.编写一个shell文件:创建studen01 –student30这30个用户,用户组为class1,之 后编写shell文件,删除所有用户

嵌入式linux简单程序

1、demo demo.c #ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE #define MODULE #endif #include #include //模块相关 #include //内核相关 #include //file_operations #include //ssize_t定义文件 #include //__init和__exit相关 #include #include #include //copy_to_user()和copy_from_user()在此定义 #include /*相关宏定义*/ #define DEVICE_NAME "demo"//设备名称 #define demo_MAJOR 88//主设备号 #define demo_MINOR 0//次设备号 #define ERROR -1 static int MAX_BUF_LEN=1024;//数值的最大值 static int WRI_LENGTH=0; /*结构体的定义*/ static int demo_major=demo_MAJOR; struct demo_dev { struct cdev cdev; char drv_buf[1024]; }; struct demo_dev * demo_devp; /****************************************************************************** *******/ /*demo设备文件打开*/ int demo_open(struct inode * inode,struct file *filp) { filp->private_data=demo_devp;

嵌入式Linux系统的搭建与配置过程

1.摘要 (2) 2.UBOOT,LINUX内核,文件系统的介绍及相互关系..3 2.1嵌入式系统简介 (3) 2.2嵌入式Linux概述 (3) 2.3UBOOT简介 (4) 3.UBOOT的启动过程 (6) 4.内核的主要功能和裁剪 (7) 4.1Linux的编译 (7) 4.2嵌入式Linux的配置和剪裁 (8) 5.文件系统的制作过程 (8) 6.交叉编译器的搭建和环境变量的设置 (9) 7.驱动程序的编写过程与关键点 (11) 7.1Linux网络驱动程序的结构 (11) 7.2网络驱动程序的基本方法 (12) 7.3网络驱动程序中用到的数据结构 (12) 7.4常用的系统支持 (14) 7.5编写Linux网络驱动程序中需要注意的问题 (18) 8.参考文献 (20)

嵌入式系统是以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其它设备的控制、监视或管理等功能。其广泛应用于控制领域、消费电子产品等行业,已成为现代电子领域的重要研究方向之一。嵌入式Linux的研究已经成为当前信息技术研究的热点,它的应用蕴含着巨大的商业价值,并且己经广泛的应用于各种信息家电、通讯产品、工业控制中。论文首先介绍了ARM和嵌入式Linux操作系统的特点和当前的发展概况。然后阐述了嵌入式Linux 开发流程以及移植到具体硬件平台需要完成的工作,如U-Boot的移植、Linux内核的编译与裁剪、文件系统的制作、驱动程序的编写等。 关键字:嵌入式;ARM;嵌入式Linux;Linux内核;驱动程序

嵌入式Linux系统开发标准教程

嵌入式Linux系统开发标准教程 目录 版权信息 内容简介 编辑推荐 目录 编辑本段版权信息 书名: 嵌入式Linux系统开发标准教程 作者:华清远见嵌入式培训中心 出版社:人民邮电出版社 出版时间: 2009 ISBN: 9787115194756 开本:16 定价: 45.00 元 编辑本段内容简介 《嵌入式Linux系统开发标准教程(第2版)》以嵌入式Linux系统开发流程为主线,剖析了嵌入式Linux系统构建的各个环节。《嵌入式Linux 系统开发标准教程(第2版)》从嵌入式系统基础知识和Linux编程技术讲起,接下来介绍了嵌入式Linux交叉开发环境的建立,然后分析了嵌入式Linux系统的引导程序、内核和文件系统三大组成部分,最后介绍了嵌入式Linux系统集成和部署的方法。 《嵌入式Linux系统开发标准教程(第2版)》先以ARM平台为例,对U-Boot和Linux内核启动过程做了详细分析,为学习嵌入式Linux系统开

发奠定基础,然后从概念上阐述了嵌入式Linux系统开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式Linux系统的构建。 《嵌入式Linux系统开发标准教程(第2版)》可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望进入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和教辅材料。 编辑本段编辑推荐 众多专家、厂商联合推荐,业界权威培训机构的经验总结。《嵌入式Linux系统开发标准教程(第2版)》配套PPT嵌入式专家讲座视频鞂式图书样章。嵌入式系统概述、ARM嵌入式处理器、Linux编程环境,嵌入式交叉开发环境、交叉杆塔工具链、Bootloader、配置编译Linux内核、Liux内核移植、内核高度技术、制作根文件系统、开源软件的应用、系统集成测试、部署Linux系统。 编辑本段目录 第1章嵌入式系统概述 1.1嵌入式系统的定义与特点 1.2常见的嵌入式操作系统 1.3嵌入式Linux的发展历史 1.4初步认识嵌入式Linux开发环境 1.5嵌入式Linux系统开发要点 第2章ARM嵌入式处理器 2.1初识ARM 2.1.1ARM公司简介 2.1.2ARM体系结构基础 2.1.3Linux与ARM处理器 2.2ARM指令集 2.2.1ARM处理器的指令集概述 2.2.2ARM指令寻址方式 2.2.3Thumb指令概述 2.3典型ARM处理器简介 2.3.1AtmelAT91RM9200 2.3.2SamsungS3C2410 2.3.3TIOMAP1510/1610系列 2.3.4Freescalei.Max21 2.4典型的嵌入式系统开发平台——三星S3C2410开发板

LInux嵌入式操作系统期末试题

简答题:请简单概括什么是嵌入式系统、并举出嵌入式系统的特点;(6分) 答: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统; 其特点如下: (1)嵌入式系统是面向特定系统应用的。 (2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各个行业; 是一个技术密集、资金密集、高度分散、不断创新的知识集成系统; (3)嵌入式系统的硬件和软件都必须具有高度可定制性;只有这样才能适应嵌入式系统应用的需要,在产 品价格和性能方面具备竞争力; (4)嵌入式系统的生命周期相当长。 (5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。 嵌入式操作系统的优势:1.低成本开发系统 2.可应用多种硬件平台 3.可定制内核 4.性能优异 5.良好的网络支持 linux文件类型:1.普通文件2.目录文件3.链接文件4.设备文件a.块设备文件(硬盘:/dev/hda1)b.字符设备(串行端口接口设备) linux文件属性:访问权限:r:可读w:可写x:可执行用户级别:u:文件拥有者g:所属用户组o:其他用户第一个字符显示文件类型:- 普通 d 目录 l 链接… 简答题:(6分) linux目录结构:/bin 存放linux常用操作命令的执行文件(二进制文件) /boot 操作系统启动时所需要的程序 /dev Linux系统中使用的外部设备 /etc 系统管理时所需要的各种配置文件和子目录 /etc/rc.d Linux启动和关闭时要用到的脚本 /etc/rc.d/init Linux默认服务的启动脚本 /home 系统中默认用户工作根目录 /lib 存放系统动态链接共享库 /mnt软驱、光驱、硬盘的挂载点 /proc存放系统核心与执行程序所需信息、 /root超级用户登陆时的主目录 /sbin 存放管理员常用系统管理程序 /usr存放用户应用程序和文件 /var存放日志信息(答六点即可) 编写一个shell文件:创建studen01 –student30这30个用户,用户组为class1,之后编写shell文件,删除所有用户 操作步骤:1.打开Terminal(终端): 2.输入vi shell 3.输入i 进入编辑模式 4.输入 #!/bin/bash groupadd class1 for((i=1;i<10;i++)) do username=student0$i

嵌入式Linux应用程序开发报告

湖南工业大学 课程设计 资料袋 计算机与通信学院学院(系、部)2015~ 2016 学年第一学期 课程名称嵌入式Linux应用程序开发指导教师叶伟琼职称副教授 学生姓名皓月叶舞专业班级通信工程12XX 学号124082004XX 题目AD驱动 成绩起止日期2015 年12 月14 日~2015年12月20 日 目录清单 序号材料名称资料数量备注 1 课程设计任务书 1 2 课程设计说明书 1 3 课程设计图纸10 张4 5 6

湖南工业大学 课程设计任务书 2015 —2016学年第1 学期 计算机与通信学院通信工程专业12XX 班 课程名称:嵌入式Linux应用程序开发 设计题目: AD驱动 完成期限:自2015 年12 月14 日至2015 年12 月20 日共 1 周 内容及任务一、设计的主要技术参数 数模转换、数模编程 二、设计任务(内容) 1、完成相关编程模拟量输入采集和转换 2、将结果显示 3、测试并运行,改变模拟量输入 4、验证 5、完成课程设计说明书 三、设计工作量 1周完成 进度安排 起止日期工作内容 12月14日分组、任务分配、课题理解 12月15日-12月17日功能分析、程序设计 12月18日-12月19日实验验证和测试 12月20 日总结、书写实验报告 参考资料[1] 王实甫. 嵌入式Linux系统设计与实例开发. 吉林大学出版社,2004年 [2] 田丰兴. 嵌入式控制系统. 北京航空航天大学出版社,2002年 指导教师(签字):年月日系(教研室)主任(签字):年月日

湖南工业大学 嵌入式Linux应用程序设计 课程设计说明书 AD驱动 起止日期: 2015年 12月14日至 2015年 12月 20 日 学生姓名皓月叶舞 班级通信1204班 学号124082004XX 成绩 指导教师(签字) 计算机与通信学院 2015年 12月20日

嵌入式Linux系统期末考试简答题、运用题

简答题与应用题 什么是嵌入式系统?主要有什么特点? 以应用为中心,以计算机技术为基础的, 并且软件硬件是可剪裁的, 能满足应用系统对功能、 可靠性、成本、 体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的 计算机系统相比,特点为: (1) (2) (5) 嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。 4、什么是Linux ?什么是嵌入式 Linux ? 答:严格来讲,Linux 是指由Linux 本人维护并不断更新的内核 。 一个嵌入式Linux 系统指的是一个基于 Linux 内核的,但不包含有关这个内核的任何专业的库或是用户工具 的嵌入式系统。 Linux 内核构建嵌入式操作系统有什么优势(优良特性)? 程度代码是可以获取的,可靠度高; 有完整的源码,软件丰富并且免费; 得到众多硬件生产家的广泛支持;包括 cpu 、计算机外 围设备 完善的通信协议、软件标准和文件管理机制; 提供完全免费且优秀的开发工具; 广泛的社群支持 无需购买lice nee ,是免费的; 不依赖特定厂商、供应商; 成本相对低廉。 6、 RTOS (嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客 户服务程序。中断程序响应中断并完成 是在固定时间内。 7、什么是实时LinUX ?涉及到哪些软硬件内容? 答:实时LinUX ( RT-Linux )通过在Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核 ,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度 ,标准的Linux 内核的优先级最低,可以被实时进程抢断。 正 常的Linux 进程仍可以在Linux 内核上运行,这样既可以使用标准分时操作系统即 Linux 的各种服务,又能提 供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。 能在规定的时间内完成对突发事件的处理的 Linux 系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux 内核构成,并简要说明各部分的功能? 答: MMU :内存管理单元,完成地址映射(应用虚拟地址方式) VFS :虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方 1、 答: 面向特定应用,一般都有实时要求; 集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集 成系统; 嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 嵌入式系统的软 硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要 考虑的主要问题。 嵌入式系统软件一般都固化在存储器芯片中。 (3) (4) 5、 用 答:( 1) (2) (3) (4) (5) (6) (7) (8) () 2、 答: 3、嵌入式操作系统的作用是什么?

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

嵌入式Linux系统

10-1 嵌入式Linux系统概述 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 Linux在所有的操作系统中,Linux 是一个发展最快、应用最为广泛的操作系统。 所谓嵌入式Linux,是指Linux 在嵌入式系统中应用,而不是什么嵌入式功能。实际上,嵌入式Linux 和Linux 是同一件事。 10-2 Linux启动过程综述 一. Bootloader 二.Kernel引导入口 三.核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 Bootloader 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。 在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等),firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设置;而SRM

华清远见嵌入式Linux课程

课程名称:嵌入式学院—嵌入式LINUX工程师就业培训班 上课时间为:上午9:00—12:00 下午13:30—17:30 (每天7小时正式上课时间)晚自习18:00—21:00 第一阶段:嵌入式Linux软件工程师 ?职场定位:Linux Development Engineer for Software Engineering ?本期目标:嵌入式系统是现在最热门的计算机应用领域之一,嵌入式C语言在其中起着至关重要的作用。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、C编程语法基础和Linux操作系统的使用,并熟练掌握嵌入式Linux的开发环境,为将来的编程工作打基础。

第二阶段:嵌入式Linux系统工程师 ?职场定位:Linux Development Engineer for Embedded Systems ?证书:微软嵌入式工程师认证证书(认证费500元),红帽公司《Linux应用开发工程师证书》(认证费500元) ?本期目标:参加本期培训的学员应该掌握嵌入式C语言编程技巧。嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟悉嵌入式Linux开发流程,强化学员对Linux应用开发的理解和编码调试的能力,同时掌握bootloader和kernel的移植技能,了解ARM体系结构和编程,具备ARM硬件接口的基础知识,并了解Linux内核开发相关内容,初步掌握Linux下的驱动程序开发方法。另外,本期课程还会让学员了解另外一个比较重要的嵌入式操作系统:Windows CE,使学员在掌握嵌入式Linux的同时,也了解Windows CE的开发方法,拓展学员的知识面,丰富学员的知识结构。最后通过几个典型的企业全真案例,进一步巩固本期课程内容,使学员真正学以致用。

如何构建嵌入式LINUX的NFS

如何构建嵌入式LINUX的NFS 准备工作:一台装有REDHAT9.0的PC机,一套LJD2410-I开发板,PC机上装有LJD2410的软件包,假如我们通过NFS要加载的文件系统为/LJD2410/root_dir/root_china,Ifconfig eth0 192.168.1.100 //设置PC机linux的IP:192.168.1.100,Ifconfig eth0 192.168.1.10 //开发板IP:192.168.1.10 我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:1、修改kernel/arch/arm/def-configs/smdk2410配置文件把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"这一行改为CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.1.100:/LJD2410/root_dir/root_china noinitrd init=linuxrc console=ttys0 ip=192.168.1.10"运行make menuconfig进入配置菜单,装载配置文件SMDK2410 选择Load an Alternate Configuration File输入配置文件的路径和文件名添加内核对NFS的支持:选中networking opTIons-》IP:kernel level auloconfiguralion项选中file systems-》network file systems-》下的root file system on nfs和nfs file system support 重新编译内核下载bootloader和kernel到开发板上,至此,开发板设置已经完成。PC 机设置:我们必须开启PC机的NFS服务,具体设置如下:1、在LINUX命令符下运行setup,在system services里面选中nfs服务,然后保存退出。2、设置PC机上的共享目录执行vi /etc/exports,在里面添加一行:/LJD2410/root_dir/root_china (rw),然后保存退出,/和rw要有空格(/LJD2410/root_dir/root_china为共享目录,rw为读写权限)。3、执行/etc/rc.d/init.d/nfs restart重启nfs服务。4、为了不必每次开机都要启动nfs服务,我们把/etc/rc.d/init.d/nfs restart 添加到/etc/rc.d/rc.local中,以后PC启动的时候就会执行此文件开启nfs服务。5、测试NFS服务:设置完成后可以在本机上进行测试,如果本机IP为192.168.1.100,则可以用mount 192.168.1.100:/LJD2410/root_dir/root_china /mnt,如果mount成功,则在/mnt的目录就可以看到root_china下面的东西了。6、修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.1.10 至此,开发板和PC

《嵌入式LInux设计与开发》练习题

练习题(一) 一、填空题 1.嵌入式系统一般包括_____________、嵌入式操作系统和。 2.Arm7内核采用的是体系结构。 3.S3C2410X芯片包含通道PWM定时器和____________通道内部计时器。4.gcc的编译流程分为预处理、编译、和______________。 5.C语言中的预处理语句是以符号开头的。 6.多任务系统中有3个功能单位:任务、和____________。 二、选择题 1.下列操作系统中,具有Windows图形界面的是()A.VxWorks B.QNX C.Windows CE D.Linux 2.使vi编辑器处于可编辑状态的命令是()A.r B.p C.i D.b 3.下列选项中,能帮助用户生成makefile的工具是()A.gcc B.autotools C.gdb D.vi 4.可以使用TFTP通过网络下载文件的命令是()A.run B.tftpboot C.sleep D.mv 5.下列不属于Linux系统中线程的是()A.用户级现程B.网络级线程C.轻量级线程D.内核级线程 6.下列选项中,常用于网络中不同机器之间的进程间通信的是()A.套接字B.管道C.信号D.信号量 7.使用有关线程操作的函数时必须包含的头文件是()A.pthread.h B.stdio.h C.time.h D.string.h 8.TCP/IP参考模型包含几层()A.4 B.5 C.6 D.7 9.在TCP中,用于发送数据的函数是()A.bind()B.send()C.accept()D.recv() 10.下列选项中,不属于Linux系统的设备分类的是()

嵌入式LINUX系统的实现

嵌入式LI N UX系统的实现 检修厂 王小康 摘 要 嵌入式系统正变得越来越流行。被广泛地应用在各种网络设备、控制设备以及个人的数字工具如PDA中。文章论述了作者在嵌入式操作系统领域里所做的研究和实践工作,主要的工作围绕着将L i nux改造成嵌入式操作系统所进行的具体工作展开,包括单板配置代码,系统的引导与修改,核心映象定制与修改和调试工作。 1 引言 在当今数字信息技术、网络技术高速发展与发达的后PC时代,嵌入式系统无处不在,并将不断涌现出新的嵌入式应用系统。传统的操作系统软件[1][2]很难有效地支持嵌入式应用系统的快速开发,因而研究与开发嵌入式操作系统,对有效的支持广大的嵌入式应用系统开发具有重大意义,是十分必要的。L i n ux正在向嵌入式领域的各个方面进军,在不久的将来,我们可以发现嵌入式L i n ux的广泛的应用:各种车载嵌入式设备(GPS,电子地图)、消费电子设备、手持电脑(H PC,PDA)、蜂窝电话、Internet接入设备、工控设备以及各种网络的基础设施(网管设备,路由,网关,交换器,HUB等)[3]。 本文是围绕着嵌入式L i n ux系统的实现展开的。首先介绍嵌入式L i n ux系统的硬件结构和软件结构;然后对基于L i n ux的嵌入式实时操作系统的实现过程进行详细的阐述;最后是简短的总结。 2 嵌入式L inux系统的硬件结构 嵌入式L i n ux系统硬件系统是个微形化的专用PC,它包括系统主机扳、通讯接口板、图象处理和显示板、输入控制板以及存储板等。主机板可采用嵌入式X86CPU系列,图象处理和显示板能支持MPEG数字解压缩和电视终端显示,输入控制包括遥控键盘、遥控器和其他一些输入设备接口,存储板主要 要求。 7 设计报警和连锁保护系统 报警系统的作用在于及时提醒操作人员密切注意监视生产状况,以便采取措施减少事故的发生,连锁保护系统是指当生产出现严重事故时,为保证设备和人身的安全,使各个设备按一定次序紧急停下来。在焙烧炉的炉顶温度控制中,根据工艺要求,一个高限报警温度为480度;三个连锁保护温度设定,一个超高限报警温度自动连锁烧嘴,引起烧嘴自动熄火,从而立即引起调节阀的自动关闭,防止煤气流入焙烧炉,一个低限位报警温度用来连锁模式的切换,使模式从酸模式自动切换到水模式,另一个超低限位报警温度用来连锁三个喷枪,使得三个喷枪自动从焙烧炉提升出来,从而保护喷枪。 8 控制系统的调试和运行状况 控制系统安装完成后,应随生产过程进行试运行,按控制要求检查和调整各控制仪表和设备的工作状况,包括调节器的P、I等参数整定,依次将全部控制系统投入运行,在从投入运行到现在有半年多的时间了,发现焙烧炉的炉顶温度控制效果好,系统运行比较稳定。 20

嵌入式Linux系统开发教程很完整的习题答案

嵌入式Linux系统开发教程很完整的习题答案

参考答案 第一章 一、填空题。 1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能。 2、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。 4、嵌入式处理器目前主要有ARM、MIPS、Power PC、68K等,其中arm处理器有三大特点:体积小、低功耗、的成本和高性能,16/32位双指令集,全球合作伙伴众多。 5、常见的嵌入式操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II和eCOS。 6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。 二、选择题 1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:、存储器(SDRAM、ROM等)、设备I/O接口等。(A) A、嵌入式处理器 B、嵌入式控制器 C、单片机 D、集成芯片 2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。(D) A、分时多任务操作系统 B、多任务操作系统 C、实时操作系统 D、实时多任务操作系统 3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是。(B) A、Palm B、VxWorks C、Linux D、WinCE [在此处键入]

嵌入式LINUX试题

一、单项选择题 1.在宿主机上开启tftp服务时,所要修改的配置文件为()A./etc/exports B./etc/xinetd.d C.以上都不对 D./etc/xinetd.d/tftp 答案:D 2.内核在配置结束后,会将用户的选择结果保存在文件()中A.defconfig B.config C.default D..config 答案:D 3.u-boot指令中,下载文件的命令是() A.setenv B.reset C.tftp D.ping 答案:C 4.Kconfig文件中生成新的配置菜单使用() A.menu B.help C.default D.config 答案:A 5.在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定()A.优化参数 B.目标系统架构 C.交叉编译器 D.编译参数 答案:B 6.在构建嵌入式linux平台过程中,具备开发能力的计算机我们称之为()A.计算机 B.宿主机 C.服务器 D.目标系统 答案:B 7.内核在编译时所依赖的编译规则文件是() A..config B.Makefile C.Make D.File 答案:B 8.linux下所使用的串口调试工具是()

B.nfs C.minicom D.tftp 答案:C 9.内核配置菜单生成时所依赖的文件是() A.config B.Kconfig C.Makefile D.kconfig 答案:B 10.U-Boot下tftp下载文件到目标系统的内存当中,在内存当中默认的地址是()A.0x30000000 B.0x30008000 C.0x30000100 D.0x30080000 答案:B 11.在操作过程中,内核编译所生成的内核压缩可执行文件是()A.s3c2440 B.linux-2.6.32.2 C.zImage D.选项均不真确 答案:C 12.系统环境变量中用来作为可执行文件搜索路径的变量是(); A.PWD B.HISTORY_SIZE C.LD_LIBRARY_PATH D.PATH 答案:D 13.创建设备文件有手动创建与自动创建之分,那么手动创建时标示设备所属种类时是用()来区分的。 A.次设备号 B.num C.-m D.主设备号 答案:D 14.嵌入式系统是面向()、实现特定功能的、软硬件可裁剪的计算机控制系统; A.家庭 B.特定领域 C.工厂 D.学校 答案:B 15.在Linux下,打补丁时所使用的命令是() A.patch

嵌入式Linux应用程序开发测试题

嵌入式Linux应用程序开发测试题(14级嵌入式方向专用) 一、选择题 1、下列哪一项不是嵌入式操作系统的特点D A、占有资源少 B、低成本 C、高可靠性 D、交互性 2、在Linux内核配置过程中,下面哪项命令采用的是基于图形窗口模式的配置 界面C A、make config B、make menuconfig C、make xconfig D、make oldconfig 3、在Linux内核配置过程中,下面哪项命令建立依赖关系C A、make config B、make menuconfig C、make dep D、make clean 4、交叉编译器中,下面哪项不是必需包含的D A、glibc B、gcc C、binutils D、tmake 5、内核的编译主要步骤不包括下面哪项D A、内核配置 B、建立依存关系 C、建立内核 D、加载内核 6、内核编译时选项前的尖括号中可以是空,*,M,其中*表示C A、选项将编译为模块 B、不包含选项 C、包含选项 7、Bootloader的stage1阶段主要完成的工作不包括下面哪项D A、基本的硬件初始化 B、为加载stage2准备RAM空间 C、拷贝stage2到RAM中 D、用汇编语言跳转到main入口函数 8、GCC的正确编译流程为A A、预处理-编译-汇编-链接 B、预处理-编译-链接-汇编

C、预处理-链接-编译-汇编 D、编译-预处理-汇编-链接 9、如需GCC提供编译过程中所有有用的报警信息,则在编译时应加入选项B A、-w B、-Wall C、-werror D、-error 10、下面哪些与GDB相关的说法是错误的B A、GDB能调试可执行文件 B、GDB能调试源代码 C、GDB对编译过程有要求D、GDB支持交叉调试 11、在GDB调试过程中,使用下面哪项命令设置断点,其中m代表行号A A、b m B、c m C、n m D、s m 12、open函数原型中的O_RDWR标志表示文件打开方式为C A、只读方式打开文件 B、可写方式打开文件 C、读写方式打开文件 D、以添加方式打开文件,在打开文件的同时,文件指针指向文件末尾 13、在Linux操作系统中,串口设备的设备名一般为C A、com1 B、port1 C、ttyS0 D、serl1 14、下面哪项对Linux操作系统下fork函数的描述是错误的D A、fork函数执行一次返回两个值 B、新进程称为子进程,而原进程称为父进程 C、父进程返回值为子进程的进程号 D、子进程返回值为父进程的进程号 15、编写守护进程的第一步为A A、创建子进程,父进程退出 B、在子进程中创建新会话 C、改变当前目录为根目录 D、关闭文件描述符 16、在关于TCP/UDP的描述中,下面哪项是错误的C A、TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递

嵌入式Linux系统期末考试简答题运用题

简答题与应用题: 1、什么是嵌入式系统?主要有什么特点? 答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的计算机系统相比,特点为: (1)面向特定应用,一般都有实时要求; (2)集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集成系统; (3)嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 (4)嵌入式系统的软硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要考虑的主要问题。 (5)嵌入式系统软件一般都固化在存储器芯片中。 2、嵌入式系统有哪几个部分? 答:嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。3、嵌入式操作系统的作用是什么? *实际是一组软件模块集合 满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面 4、什么是Linux?什么是嵌入式Linux? 答:严格来讲,Linux是指由Linux本人维护并不断更新的内核。 一个嵌入式Linux系统指的是一个基于Linux内核的,但不包含有关这个内核的任何专业的库或是用户工具的嵌入式系统。 5、用Linux内核构建嵌入式操作系统有什么优势(优良特性)? 答:(1)程度代码是可以获取的,可靠度高; (2)有完整的源码,软件丰富并且免费; (3)得到众多硬件生产家的广泛支持;包括cpu、计算机外围设备 (4)完善的通信协议、软件标准和文件管理机制; (5)提供完全免费且优秀的开发工具; (6)广泛的社群支持 (7)无需购买licence,是免费的; (8)不依赖特定厂商、供应商; (9)成本相对低廉。 6、RTOS(嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客户服务程序。中断程序响应中断并完成是在固定时间内。 7、什么是实时Linux?涉及到哪些软硬件内容? 答:实时Linux(RT-Linux)通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的Linux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种服务, 又能提供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。能在规定的时间内完成对突发事件的处理的Linux系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux内核构成,并简要说明各部分的功能? 答: MMU:内存管理单元,完成地址映射(应用虚拟地址方式) VFS:虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方

嵌入式Linux系统开发教程答案

1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力 、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用 、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。4、嵌入式处理器目前主要有 PC、68K等,其中arm处理器有三大特点:体积小、低功耗、的成本和高性能,16/32 操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II和eCOS。6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:嵌入式处理器、存储器(SDRAM、ROM等)、设备I/O接口等。2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为实时多任务操作系统,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是VxWorks 。4、嵌入式系统设计过程中一般需要考虑的因素不包括:(大小)5、在嵌入式系统中比较流行的主流程序有:(Angel、Blob、Red Boot )1、Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在:开放性、多用户、多任务、友好的用户界面、设备独立性、丰富的网络功能、文件传输、远程访问、可靠的安全性、良好的可移植性、X Window系统、内存保护模式。2、Linux 作环境)、文件结构(File Structure)和实用工具。3、目前几乎所有的Linux ;查看当前路径应使用命令:pwd;的作用是:使linux.tar.gz文件 Linux内核主要由:进程调度,内存管理,虚拟文件系统,网络接口,进程间 (Red Flag)2、启动shell环境时,屏幕上显示“[arm@www home]$”,其中的arm 命令时,如果想对文件名中的不可显示字符用八进制逃逸字符显示,则应该选用的参数是(-b)。4、解 Linux用的文件系统是(ntfs)。1、ARM9系列微处理器在高性能和 5级整数流水线,指令执行效率更高;提供1.1MIPS/MHz的哈佛总线结构;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA总线接口。2、ARM芯片的内核一般包括以下几个单元:ARM9TDMI32RISC处理器、数据 本质上是内存中一段连续的地址,对其最常见的操作为“压栈”( 出)。1、在arm/thumb汇编语言程序中,程序是以程序段的形式呈现的。程序段是具有特有名称的相对独立的指令或数据序号。程序段有两大类型代码段、数据段。2、基于linux下GCC汇编语言,代码表号必须在一行的顶端,后面要加上:,注视的内容可以在前面加上@。 3、符号定义伪指令()、数据定义伪指令(Data Definition 4、linux下的嵌入式程序开发,主要需要的代码编辑器,如vi和gedit,另外还需要编译器gcc、调试器Vi编辑器基本上有三种基本状态,分别是:命令模式(command mode)、插入模式(insert mode)和底行模式(gcc编译文件生成可执行文件要经历四个相互关联的步骤:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。1.假如使用伪指令定义一个局部的数据量,变量名为temp,然后给其赋值为8,汇编代码为(GBLA temp;temp SET A 0x08;)2、在vi处于命令行模式时,如果需要对文本进行修改,欲在光标所在位置的下一个位置开始输入文字,则(按下字母“a”进入插入模式)3、当前vi 处于插入模式,先放弃对文本的修改,即不保存退出vi,则(先按下“ESC”后,再使用“:q!”命令)。4、经过汇编之后,生成的目标文件的后缀名为(.o)。 5、对代码文件code.c进行调试的命令为($gcc –g code.c –o code)。1、SMDK2440平台的开发板采用的处理器是S3C2440,其主频一般为400M。2、windows软件环境的设置一般包括以下几部分:超级终端的设置、DNW设置、GIVEIO驱动的设置和USB驱动3、在windows系统上建立基于linux嵌入式开发环境一般有三种方案可以选择分别是Windows系统下安装虚拟机Vmware、Windows+Linux双系统安装、基于Windows操作系统下的Cygwin4、UBUNTU的网络设置可以采用命令行方式、也可以采用图形界面操作方式来配置。5、开发板硬件平台是基于三星S3C2440的SMDK2440平台的目标板,使用的刻录软件为SJF2440。1、为了通过PC的串口和开发板进行交互,需要使用(超级终端)。2、在嵌入式linux的开发中,能实现上传下载文件、刻录文件、运行映像等功能工具是(DNW)。 3、由普通用户账户转为管理员账户登录,使用的命令为($su root)。 4、安装FTP服务器时,在终端输入的命令为($sudo apt-get install vsftpd)。 5、安装Telnet服务时,在终端输入的命令为($sudo apt-get install telnetd)1、交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码执行工具链软件,通过带有不同的参数,可以实现编译、链接、处理、调试等不同的功能。2、linux经常使用的工具链软件有Binutils、Gcc、Glibc和Gdb。3、分布构建交叉编译工具链的制作过程需要以下几步编译binutils、编译辅助gcc编译器、编译glibc库、重新编译完整的gcc。4、使用crosstool构建交叉编译工具链的制作过程需要以下几步:准备工作、建立脚本文件、建立配置文件、执行脚本文件和编译gdb调试器。5、使用crosstool构建交叉编译工具链的制作过程中需要的配置文件,其主要作用是定义配置文件、定义生成编译工具链的名称、定义编译选项等。1.(binutils)十二进制程序处理工具,包括连接器,汇编器等目标程序处理的工具。2.构建交叉编译器的第一个步骤是(下载工具)。3、分析以下代码#export PRJROOT=/home/arm/armlinux #export TARGET=arm-linux #export PREFIX=$PRJROOT/$TARGET其中,变量PREFIX代表的路径为(/home/arm/armlinux)。4. Binutils是gnu工具之一,他包括连接器、汇编器和其他用于目标文件和档案的工具,特使二进制代码的处理维护工具。其中包括(ld)命令,他是把一些目标和归档文件结合在一起,重定位数据,并连接符号引用。5.分布构建交叉编译链的过程有两次变异gcc,其中第二次进行编译的作用是(获得glibc库的支持) 。1、Bootloader,亦称引导加载程序,是系统加电后运行的第一段软件代码。2、一般Bootloader包含两种不同的操作模式:启动加载模式 的主要功能是引导操作系统启动,它的启动方式有网络启动、磁盘启动和Flash 运行的第一阶段主要完成以下工作:屏蔽所有中断、设置CPU的速度和时钟频率、RAM初始化、初始化LED和关闭 cache。1、在Bootloader的启动方式中,Flash启动方式通常有两种,一种是可以直接从Flash启动,另一种时可以将压缩的内存映像文件从Flash中复制、解压到RAM ,再从中启动。2、在各种Bootloader中,U-boot 是以PPCBoot和ARMBoot为基础的通用加载程序,并且在ARM、PowerPC以及MIPS等多种平台上运行。3、在编译Vivi之前将Vivi里所有的“*.o”和“*.o.flag”文件删除,以确保文件编译时没有错误或者警告发生,使用的命令格式为(make distclean)。4、编译Vivi时,如果编译成功,在/vivi里面会生成三个vivi文件,其中不包括文件(vivi.exe)。5、把二进制文件载入Flash或RAM使用的命令是(load)。1、ARM-Linux内核的配置系统由三个部分组成,它们分别是Makefile、配置文件和配置工具。2、配置工具一般包括配置命令解释器和配置用户界面,前者主要作用是对配置脚本中使用的配置命令进行解释;而后者则是提供基于字符界面、基于Ncurses图形界面以及基于X Window图形界面的用户配置界面。3、Makefile文件主要包含注释、编译目标定义和适配段。4、Linux内核常用的配置命令有make oldconfig、make config、make menuconfig 和make xconfig。其中以字符界面配置的命令是make config。5、内核编译结束后,会在“/arch/arm/boot/”目录下面和根目录下面生成一个名为zImage的内核镜像文件。1.linux内核中的makefile以及与makefile直接相关的文件不包括(后缀名为.in)。2.用户通过make config 配置后,产生了后缀名为(in.config)。3.rules.make文件定义了许多变量,最重要的是那些编译、连接列表变量,但不包括(O-OBJS)。4.在内核配置过程中,如果需要设置networking support这个选项,进入的菜单项是(General setup)。5.在linux系统中,我们既需要标记变量的符号,有需要变量的物理地址,两者同时需要的时候可以采用符号表的方式,其对应的文件为(System.map)。1、Linux下的文件系统主要分为三个层次:上层用户的应用程序对文件系统的系统调用、虚拟文件系统和挂载到VFS中的各种实际文件系统。2、三种常用的块驱动程序分别是Blkmem驱动层、RAMdisk驱动层、MTD驱动层JFFS2、Yaffs、Romfs和Cramfs。 4、基于RAM的文件系统常见的有Ramdisk和Ramfs/Tmp fs。 5、System V init、Busybox init1、(MTD驱动层)也支持在一块Flash上建立多个Flash分区,没一个分区作为一个MTD block设备,可以把系统软件数据等分配到不同的

相关主题
文本预览
相关文档 最新文档