嵌入式linux复习资料
linux嵌入式复习资料

嵌入式系统设计与应用(软件部分)一、题型:填空25分,选择20分,命令解释10分,综合问答30分,阅读程序15 分。
二、基础知识,基本概念,常用命令,涉及面广,占相当比重。
三、阅读实验指导书,部分实验内容也是考试范围。
四、阅读程序题,重点在要求大家上机完成的程序。
五、以下仅是部分内容:1. 你是否自己安装了Linux操作系统?如果安装了,是虚拟机还是裸机安装?如果没有安装?原因是什么?答:自己安装了Linux操作系统,是裸机安装的。
2.Linux内核具有两种版本号,分别是什么,这样区分的优点?答:Linux内核具有两种版本号:实验版本和产品化版本。
优点:可以方便广大软件人员加入到Linux的开发和测试工作中来,另一方面又可以让一些用户使用上稳定的Linux版本。
3.Linux系统中文件权限分别赋予哪三类用户,每类用户权限用三位表示,分别是什么?答:三类用户分别为文件拥有者(u)、拥有者所在用户组(g)和其他用户组(o)。
每类用户权限用三位表示,分别是读(r)、写(w)和执行(x)。
4. 目前常用的嵌入式操作系统有(至少写三个)。
答:Linux、WinCE、Android。
5.Linux中改变文件权限的命令是chmod,改变文件所有者的命令是chown。
6.Linux是自由软件,它的发行遵守什么,其目的是什么?答:Linux是自由软件,但它的自由受到GPL(通用公共许可证)的限制。
它主要目标是保证软件对所有的用户来说是自由的。
7.POSIX标准的全称是:可移植操作系统接口(Portable Operating System Interface),制定该标准的目的是什么?答:POSIX标准的目的是为了提高UNIX环境下应用程序的可移植性。
遵循此标准的各种UNIX,其上的应用程序可相互无缝移植。
8.进程是操作系统分配资源和进行调度的独立单位,具有独立性和动态性。
进程的三要素分别是进程号(Pid)、用户和组标识(user and group identifier)、链接信息(Links)。
嵌入式liunx复习资料总结

1.sudo apt-get install vim2.系统立即关机:sudo shutdown –h now(关机后关闭电源 halt)3.45分钟后计算机自动关机:sudo shutdown –h +454.60分钟后自动重启:sudo shutdown –r +605.Linux基本命令:cd切换目录;grep查找字符串;head显示文件开头;tail显示文件结尾;sort按次序显示文件;diff比较两个文件;file测试文件内容;6.ps列出进程;df检查文件系统空间占用情况;kill杀死进程;chmod更改文件或目录的访问权限[文件所有者,所在组,任何用户/组];info获取帮助;7.pwd显示当前目录的绝对路径;rpm文件包管理;clear清屏;ln创建文件链接;who列出系统上的用户;write发送消息;talk与其他用户通信;man获取帮助8.链接:ln [option] source_file des_file; gcc -s file.c-f 建立 ~代表/home-i 删除;ln –s abc cde 建立软连接;ln abc cde 建立硬链接删除非空文件夹:rm -r8.linux文件系统:Ext3是linux广泛使用的一种文件格式;最大的特点是日志文件系统:可将整个磁盘的写入动作完整的记录在磁盘的某个区域,以便在必要时回溯跟踪;windows的主要系统格式:FAT16,FAT32,NIFS,目前linux可以自动识别这些文件,以只读方式访问计算机磁盘上windows上的系统文件。
9.tar命令:用于将若干文件或目录合成一个文件(以便备份和压缩)10.gcc编译四步曲:预处理,编译,汇编,链接11.37个寄存器:31个通用寄存器,6个状态寄存器;CPSR程序状态寄存器;12.QT中信号和槽的五种连接关系:一个信号可以连接到多个槽;多个信号可以连接到同一个槽;一个信号可以与另一个信号相连;链接可以被删除;信号和槽函数必须有相同的参数类型,如此信号和槽函数才能成功连接;13.文件截短:truncate()和ftruncate()截取一些数据,以缩短文件;成功返回0,错误114.进程包括:正文段,用户数据段,系统数据段。
嵌入式考试资料整理

Linux系统常用基本命令及相关参数(常用)(下面知识一部分,更具体看第2章ppt)1.创建文件(创建一个空白的文件,可以在其中添加文本或数据)使用touch命令格式:touch<文件名> 如:touch myfile使用vi编辑器格式:vi textfile2.复制文件cp <源> <目标> 把<源>替换成想要复制的文件,把<目标>替换成想要保存复制文件的目录名如:将/root下的myfile复制到/目录下cp /root/myfile /3.移动文件用mv命令4.删除文件使用rm命令5.cat 命令会把文件的内容全部显示在屏幕上1)cat f1 f2>f3 将两个文件合并为一个新文件2)cat f4>>f3 把某一个文件的内容追加到另一个文件的后面6.查找文件的命令(find命令)7.文件的压缩和归档1)bzip2和bunzip2,使用bzip2压缩文件,在shell提示下键入以下命令:bzip2 filename文件即被压缩并保存为filename.bz2如果要解压被压缩的文件,键入以下命令:bunzip2 filename.bz21)gzip和gunzip.要用gzip来压缩文件,在shell提示下键入:gzip filename文件即会被压缩,并保存为filename.gz要解压被压缩的文件,键入命令:gunzip filename.gztar –tvf filename.tar要列出tar文件的内容,键入以上命令。
tar –xvf filename.tar这个命令不会删除tar文件,但会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。
8.目录的操作1) 建立子目录命令mkdir2) 删除子目录命令rmdir用rmdir来删除目录,但是目录要求必须是空目录,要使用rm 来删除非空目录,必须指定–r选项。
嵌入式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、PalmB、VxWorksC、LinuxD、WinCE4、嵌入式系统设计过程中一般需要考虑的因素不包括:(D)A、性能B、功耗C、价格D、大小5、在嵌入式系统中比较流行的主流程序有:(A)A、AngelB、BlobC、Red BootD、U-Boot三、叙述题1、举例说明身边常用的嵌入式系统。
嵌入式Linux应用开发复习资料

第一章嵌入式系统概述●嵌入式系统设计与应用开发●了解嵌入式系统的基本组成●了解嵌入式微处理器及ARM微处理器系列●了解嵌入式操作系统●掌握嵌入式系统设计的过程及方法●1、嵌入式系统简介●嵌入式系统的定义●嵌入式系统体系结构●应用领域和发展方向●嵌入式系统定义●嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
●嵌入式计算机系统与通用计算机系统最本质的区别在于软硬件可裁剪、专用计算机系统。
嵌入式系统是将一个计算机系统“嵌入”对象系统。
这个对象可能是庞大的机器,也可能是小巧的手持设备。
●嵌入式系统的核心是嵌入式微处理器,该处理器都是RISC(Reduce Instruction SetComputing,精简指令集计算机)的处理器内核。
●嵌入式系统体系结构●应用领域和发展方向●信息电器●移动计算设备●网络设备●工控、仿真、医疗仪器等●2、嵌入式微处理器●嵌入式处理器简介●ARM微处理器●ARM微处理器系列●ARM 处理器的选型●S3C2410 微处理器介绍●嵌入式处理器简介●嵌入式微处理器(Embedded Microprocessor Unit,EMPU)●嵌入式微控制器(Microcontroller Unit,MCU)●嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)●嵌入式片上系统(System On Chip)●ARM微处理器●ARM是(Advanced RISC Machines,高级精简指令系统处理器)的缩写,它既是一种微处理器知识产权(IP)核,也是一个公司的名称。
1991年公司成立于英国剑桥,其主要业务是设计16位和32位的嵌入式微处理器。
●ARM本身并不生产和销售芯片,而是采用技术授权的方式,由合作公司生产各具特色的芯片。
世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
linux嵌入式操作系统知识点复习

嵌入式LINUX操作系统知识点复习1、背)嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪,对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
2、通常把进行嵌入式系统开发的PC机称为宿主机,把嵌入式系统的机器称为H标机。
3、)在目标机上嵌入某种功能较强且占用内存较少的操作系统,用户程序在该操作系统支持下运行,这种操作系统称为嵌入式操作系统。
4、带操作系统的嵌入式系统,在编制较为复杂和高端应用程序时,用户程序会显得比较简单,而不带操作系统的嵌入式系统,在系统稳定性、实时性等方面要髙于带操作系统的, 但不太适用于编制较为复杂的用户程序。
5、目前的嵌入式操作系统主要有Linux、WindowsCE、eCos、VXWorks等几种。
6、ARM处理器是一种低功耗、高性能的32位RISC处理器。
7、在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。
8、shell脚本是一个包含一系列命令序列的文本文件。
9、X ) shell脚本编程与C语言编程的区别。
10、vi是一个Linux系统下的文本编辑器,可通过它来编写程序代码。
11、gcc是Linux下的程序编译工具,它可将C语言源程序编译链接成可执行文件。
12、gcc通过后缀来区别输入文件的类别,默认的输岀文件名为a.outo13、在Linux下,gcc进行编译链接的缺省操作是链接成动态库,要链接成静态库需要加上“-static”的参数。
14、动态库链接与静态库链接的区别。
15、gdb是Linux下的程序调试工具,它可启动被调试程序、让被调试程序在断点处停住、可检査程序状态。
16、需要用gdb调试的程序,在用gcc编译时需要加上"-g”的参数。
17、MakeFile文件描述了整个工程的编译、链接等规则,它是make文件执行时所必需的文件。
18、X )分析一个具体的MakeFile文件。
19、在Linux中的文件编程可使用系统调用和C语言库函数两种方法。
嵌入式复习资料1

嵌入式复习资料填空题:1、Linux系统中,链接分为:硬链接和符号链接。
P422、安装Linux系统对硬盘分区时,必须有两种分区类型:swap 分区和根分区。
3、Vi编辑器具有两种工作模式:编辑模式和命令模式P72 。
4、mv命令可以移动文件和目录,还可以更名文件和目录。
5、增加一个用户的命令是:和。
6、ARM是一种通用的16位/32位RISC处理器。
P1807、系统调用是指操作系统提供用户程序调用的一组“特殊”接口,相当于。
8、ARM总共有个寄存器,个通用寄存器,和个状态寄存器,但并不是同时可见的。
9、MiniGUI有三种运行模式,分别是MiniGUI—Threads 、MiniGUI—Processes和MiniGUI—Standalone 。
P25510、在使用CreateInfo创建主窗口之前,设置窗口没有扩展风格,实现的语句是CreateInfo.dwExStyle = WS_EX_NONE 。
P27011、列出所有数据库test.db中的表people所有的内容的数据库命令是creat index people_title_index on people(name) 。
P32112、UDP数据包的发送方使用的端口号为16 位。
P34213、前台启动的进程使用复合键终止。
第2章14、某文件的权限为:crw-rw—rw--,用数值形式表示该权限,则该八进制数为,文件属性是。
P5515、线程是进程的一个实体,一个进程中可以有多个线程,线程的资源是__共享的。
P16316、Vivi 是由韩国Mizi公司开发的一种Bootloader,适合于ARM9处理器。
P20417、设备驱动模块的功能就是扩展内核的功能,主要完成两部分任务:一个是系统调用另一个是处理中断。
系统调用部分则是对设备的操作过程,P233选择题:( C ) 1、linux操作系统内核创始人是。
A. Bill GatesB. Richard StallmanC. Linus TorvaldsD. Dennis M· Ritchie、Ken Thompson( ) 2、利用命令find查找当前目录下的名称尾为.c的文件,并将结果输出到标准输出的命令是。
嵌入式Linux笔试题库和复习资料分解

嵌入式Linux笔试题库一.选择题1.Linux的创始人是谁()A、TurbolinuxB、AT&T Bell LaboratryC、University of HelsinkiD、Linus Torvalds2.在Linux中,命令解释器是哪个()A、管道B、分级文件系统C、字符型处理器D、shell3.Linux安装程序提供了两个引导装载程序( )A、GROUP和LLTOB、DIR和COIDC、GRUB和LILOD、以上都不是4.如果当前目录是/home/sea/china,那么“china”的父目录是哪个目录()A、/home/seaB、/home/C、/D、/sea5.在Linux中,要删除abc目录及其全部内容的命令为:()A、rm abcB、rm -r abcC、rmdir abcD、rmdir -r abc6.假定kernel支持vfat分区,下面哪一个操作是将/dev/hda1分区加载到/win目录?()A、mount -t windows /win /dev/hda1B、mount -fs=msdos /dev/hda1 /winC、mount -s win /dev/hda1 /winD、mount –t vfat /dev/hda1 /win7.显示用户的主目录的命令是什么()A、echo $HOMEB、echo $USERDIRC、echo $ECHOD、echo $ENV8.系统中有用户user1和user2,同属于users组。
在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有( )权限。
A、744B、664C、646D、7469.如何查看一个RPM软件包是否安装( )A、rpm -Vc postfixB、rpm -q postfixC、rpm --changelog postfixD、rpm -q—changelog postfix10*.在Linux中,提供TCP/IP包过滤功能的软件叫什么( C )A、rarpB、routeC、iptablesD、filter11.nfs服务的配置文件是什么?()/etc/mtab B、/etc/fastboot C、/etc/fstab D、/etc/exports12.用命令ls -al显示出文件ff的描述:-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff 由此可知文件ff的类型为:()A、普通文件B、硬连接C、目录D符号连接13.Linux操作系统中的shell是()A、命令解释器B、程序设计语言C、脚本编辑器D、编译器14.能实现文件系统远程挂载的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、文件系统是指操作系统中与管理文件有关的软件和数据,windows文件系统是以驱动器盘符为基础的,而且每个目录与相应的分区对应;linux下,分区属于目录结构。
1、Swap交换分区一般设为内存大小的2倍;windows选择FAT32、NTFS两种格式,linux 使用EXT3格式。
2、文件属性:-rwx rwx rwx- 表示普通文件d 表示目录文件l 表示链接文件3、文件系统目录结构/bin 存放常用操作命令文件/boot 存放操作系统启动时所要用到的程序/etc 存放系统管理时要用到的各种配置文件和子目录/home 系统默认的用户工作根目录4、常见系统管理命令Ps 显示当前系统中由该用户运行的进程列表Kill 输出特定的信号给指定的PID(进程号)的进程5、chmod:改变文件的访问权限(1)符号标记格式:chmod [选项] 。
符号权限[符号权限] 。
文件U:文件所有者、g:所属的用户组、o:系统里的其他用户、a:所有这3个不同的用户级别。
+:增加权限、—:删除权限、=:设置权限例:#chmod a+rx,u+w abc.tgz(2)八进制数格式:chmod [选项] 。
八进制权限文件。
例:-r w x -rwx rw- r-x4 2 1 7 6 5#chmod 765 abc.tar.gz使用chmod必须具有root权限7、linux的启动过程:(简答)(1)打开电源,CPU进入实模式,并从地址0xFFFF0000开始自动执行程序代码,这时BIOS进行开机自检,并按bios的设置进行设备启动,接着启动设备上安装的引导程序lilo 或grub开始引导linux,linux获得启动权。
(2)linux进行内核引导,主要完成磁盘引导、读取机器系统数据、实模式和保护模式的切换、加载数据段寄存器以及重置中断描述符表等。
(3)执行init程序,init程序调用了rc.sysinit和rc等程序,而rc.sysinit和rc在完成系统初始化和运行服务的任务后返回init。
(4)Init启动mingetty,打开终端供用户登录系统,用户登录成功后进入shell,这样就完成了系统的整个启动过程。
8、vi的模式:命令行模式、插入模式、底行模式9、Gcc所支持后缀名解释.c C原始程序.s/.S 汇编语言原始程序.c/.cc/.cxx C++原始程序.h 预处理文件(头文件).m Objective-C原始程序.o 目标文件.i 已经预处理的C原始程序.a/.so 编译后的库文件.ii 已经预处理的C++原始程序P62 表3.7-I dir 在头文件的搜索路径列表中添加dir目录P63 表3.8-L dir 在库文件的搜索路径列表中添加dir目录10、库函数有静态库和动态库两种,它们的相同点及区别?(简答)静态库是指编译连接时,将库文件的代码全部加入可执行文件中,因此生产的文件比较大,但在运行时也就不需要库文件了,其后缀名通常为“.a”。
动态库与之相反,在编译链接时并没有将库文件的代码加入可执行文件中,而是在程序执行时加载库,这样可以节省系统的开销,后缀名一般为“.so”。
11、makefile(P76-80)P78 表3.1612、几种主流的嵌入式操作系统嵌入式linux、VxWorks、QNX、windows CE 、Palm OS13、理解嵌入式的特点P96(考小题)14、ARM微处理器工作状态(简答)(1)ARM状态,此时处理器执行32位的字对齐的ARM指令。
(2)Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
(3)Thumb2状态,此时处理器执行16/32位混合的、多类型对齐的指令。
15、ARM系统结构的存储格式(简答)大端格式:在这种格式中,字数据的高字节存储在低地址中,而子数据的低字节则存放在高地址中。
小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
16、P110 深刻理解交叉编译。
交叉编译:就是在一个平台上生成可以在另一个平台上执行的代码,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。
17、minicom是在Linux下串口通信的软件,在minicom中“ttyS0”对应“COM1”,“ttyS1”对应“COM2”。
18、内核的编译主要分别为3个步骤:内核配置、建立依赖关系、创建内核映像。
19、内核支持4种不同的配置方法:(简答)Make config:基于文本的最为传统的配置界面,不推荐使用。
Make menuconfig:基于文本选单的配置界面,字符终端下推荐使用。
Make xconfig:基于图形窗口模式的配置界面,Xwindow下推荐使用。
Make oldconfig:自动读入“.config”配置文件,并且只要求用户设定前次没有设定过的选项。
20、linux内核源码目录结构P129/arch子目录包含了所有处理器体系结构的内核代码。
/drivers子目录包含了内核中所有的设备驱动程序。
21、linux支持多种文件系统,在嵌入式系统中常见的系统文件有cramfs、romfs、jffs、yaffs。
在嵌入式linux中,busybox是构造文件系统最常用的软件工具包。
22、Bootloader的两大作用:初始化硬件、加载内核。
23、在linux系统中,将程序的运行空间分为内核空间和用户空间。
24、通常,一个进程启动时,都会打开3个文件:标准输入、标准输出、标准出错处理。
25、终端有3种工作模式:规范模式、非规范模式、原始模式。
26、P178-182 串口27、进程运行的状态:a)执行态:该进程正在运行,即进程正在占用CPU。
b)就绪态:进程已经具备执行的一切条件,正在等待分配CPU的处理时间片。
c)等待态:进程不能使用CPU,若等待事件发生则可将其唤醒。
28、linux中的进程包含3个段:数据段、代码段、堆栈段。
29、常用的进程通信方式有以下几种:P234(简答)(1)管道及有名管道:管道可用于具有亲缘关系进程的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进行间的通信。
(2)信号:信号是在软件层次上对中断机制的一种模拟,用于通知进程有某件事发生。
(3)消息队列:消息队列是消息的链接表,包括Posix消息队列、systemV消息队列。
(4)共享内存:最有用的进程间通信方式。
(5)信号量:主要作为进程之间以及同一进程的不同线程之间的同步和互斥手段。
(6)套接字:是一种更为一般的进程通信机制,可用于网络中不同机器之间的进程通信,应用非常广泛。
实验题1、P157-截取文件内容/* copy_file.c */#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#define BUFFER_SIZE 1024 /* 每次读写缓存大小,影响运行效率*/#define SRC_FILE_NAME "src_file" /* 源文件名*/#define DEST_FILE_NAME "dest_file" /* 目标文件名文件名*/#define OFFSET 10240 /* 拷贝的数据大小*/int main(){int src_file, dest_file;unsigned char buff[BUFFER_SIZE];int real_read_len;/* 以只读方式打开源文件*/src_file = open(SRC_FILE_NAME, O_RDONL Y);/* 以只写方式打开目标文件,若此文件不存在则创建, 访问权限值为644 */dest_file=open(DEST_FILE_NAME,O_WRONL Y|O_CREA T,S_IRUSR|S_IWUSR|S_IRGR P|S_IROTH);if (src_file < 0 || dest_file < 0){printf("Open file error\n");exit(1);}/* 将源文件的读写指针移到最后10KB的起始位置*/lseek(src_file, -OFFSET, SEEK_END);/* 读取源文件的最后10KB数据并写到目标文件中,每次读写1KB */while ((real_read_len = read(src_file, buff, sizeof(buff))) > 0) {write(dest_file, buff, real_read_len);}close(dest_file);close(src_file);return 0;}实验题2、p183-写串口/* com_writer.c */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include "uart_api.h"int main(void){int fd;char buff[BUFFER_SIZE];if((fd = open_port(HOST_COM_PORT)) < 0) /* 打开串口*/ {perror("open_port");return 1;}if(set_com_config(fd, 115200, 8, 'N', 1) < 0) /* 配置串口*/ {perror("set_com_config");return 1;}do{printf("Input some words(enter 'quit' to exit):");memset(buff, 0, BUFFER_SIZE);if (fgets(buff, BUFFER_SIZE, stdin) == NULL){perror("fgets");break;}write(fd, buff, strlen(buff));} while(strncmp(buff, "quit", 4));close(fd);return 0;}实验题3、P184-读串口/* com_reader.c */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include "uart_api.h"int main(void){int fd;char buff[BUFFER_SIZE];if((fd = open_port(TARGET_COM_PORT)) < 0) /* ´ò¿ª´®¿Ú */ {perror("open_port");return 1;}if(set_com_config(fd, 115200, 8, 'N', 1) < 0) /* ÉèÖô®¿Ú */{perror("set_com_config");return 1;}do{memset(buff, 0, BUFFER_SIZE);if (read(fd, buff, BUFFER_SIZE) > 0){printf("The received words are : %s", buff);}} while(strncmp(buff, "quit", 4));close(fd);return 0;}。