嵌入式软件开发期末考试复习资料

上传人:m**** 文档编号:503810126 上传时间:2023-05-27 格式:DOC 页数:16 大小:409KB
返回 下载 相关 举报
嵌入式软件开发期末考试复习资料_第1页
第1页 / 共16页
嵌入式软件开发期末考试复习资料_第2页
第2页 / 共16页
嵌入式软件开发期末考试复习资料_第3页
第3页 / 共16页
嵌入式软件开发期末考试复习资料_第4页
第4页 / 共16页
嵌入式软件开发期末考试复习资料_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《嵌入式软件开发期末考试复习资料》由会员分享,可在线阅读,更多相关《嵌入式软件开发期末考试复习资料(16页珍藏版)》请在金锄头文库上搜索。

1、同学们,最近连续出差,回来后已经进入考试了,之前说的找时间给大家答疑已不现实,现在把考试的重点范围发给大家,请大家认真复习。一、 知识点(选择、填空、判断)Linux常见的文件类型:普通文件 :包括文本文件、shell脚本、二进制的可执行程序和各种类型的数据.目录文件 :包含文件名和子目录名以及指向那些文件和子目录的指针链接文件 设备文件 :字符设备文件/块设备文件文件属性:1.管道:p表示命名管道,比如FIFO文件2.堆栈:f表示堆栈文件,比如LIFO3.套接字:s表示套接字Linux常见的文件系统类型 ext2和ext3 :ext3是现在Linux下常见的默认文件系统,采用了日志式的管理机

2、制,它使文件系统具有很强的快速恢复能力。 swap文件系统 :是Linux中作为交换分区使用的 vfat文件系统 NFS文件系统 ;网络文件系统,很方便的在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统,访问速度快、稳定性高,很方便的实现文件本地修改。 ISO9660文件系统 :光盘所使用的文件系统,不仅可以提供对光盘的读写,还可以实现对光盘的刻录。 内存文件系统:proc、sys、ramdisk 嵌入式文件系统:cramfs、jffs、yaffs等Linux常用命令的作用,实验时用的即可 ps:显示当前系统中由该用户运行的进程列表 top:动态显示系统中运行的程序(一般为每隔5

3、s) 文件系统挂载命令(mount):挂载文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。挂载是指把分区和目录对应的过程,而挂载点是指挂载在文件树中的位置。mount命令就可以把文件系统挂载到相应的目录下,并且由于Linux中把设备都当作文件一样使用,因此,mount命令也可以挂载不同的设备。通常,在Linux下“/mnt”目录是专门用于挂载不同的文件系统的,它可以在该目录下新建不同的子目录来挂载不同的设备文件系统。 cd:改变当前工作目录 ls:列出目录和文件的信息 mkdir :创建一个目录 cat :连接并显示指定的一个和多个文件的有关信息。 cp:将给出的文件或目

4、录复制到另一文件或目录中 mv:为文件或目录改名或将文件由一个目录移入另一个目录中。 rm:删除一个目录中的一个或多个文件或目录。 ln:为某一个文件在另外一个位置建立一个符号链接。当需要在不同的目录用到相同的文件时,Linux允许用户不用在每一个需要的目录下都存放一个相同的文件,而只需将其他目录下文件用ln命令链接即可,这样就不必重复地占用磁盘空间。 ln命令会保持每一处链接文件的同步性,也就是说,不论改动了哪一处,其他的文件都会发生相同的变化。 ln的链接又软链接和硬链接两种: 软链接就是上面所说的ln -s * *,它只会在用户选定的位置上生成一个文件的镜像,不会重复占用磁盘空间,平时使

5、用较多的都是软链接; 硬链接是不带参数的ln * *,它会在用户选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 ping:用于查看网络上的主机是否在工作 ifconfig:查看和配置网络接口的参数Vi的模式:vi:命令行模式-插入模式-底行模式 在插入模式中,按“ESC”键,则转入命令行模式,并在底行中输入“:wq(存盘退出)”进入底行模式Gcc的常用参数含义文件权限的标示:linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的

6、其他用户(o).进程的状态P204文件的不带缓存函数和带缓存函数不带缓存:open()函数(打开或创建文件)、close()函数(关闭一个被打开的文件)、read()函数(用于将从指定的文件描述符中读出的数据放到缓存区中,并返回实际读入的字节数)、write()函数(用于向打开的文件写数据,写操作从文件的当前指针位置开始)、lseek()函数(用于在指定的文件描述符中将文件指针定位到相应的位置)、lockf()函数和fcntl()函数(实现文件上锁)、select()函数和poll()函数 (select()和poll()的I/O多路转接模型是处理I/O复用的一个高效的方法)带缓存:打开文件:

7、fopen()、fdopen()和freopen()、关闭标准流文件的函数为fclose()、读操作的函数为fread()、fwrite()函数是用于对指定的文件流进行写操作Linux常用编辑器: Linux中最常用的编辑器有vi(vim)和emacs 程序运行空间分为两种 在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。Socket的类型(1)流式socket(SOCK_STREAM)流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。(2

8、)数据报socket(SOCK_DGRAM)数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP。(3)原始socket原始套接字允许对底层协议如IP或ICMP进行直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。 Fork函数的作用:fork()函数用于从已存在的进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号

9、、当前工作目录、根目录、资源限制和控制终端等,而子进程所独有的只有它的进程号、资源使用和计时器等。进程间通信的方式:(1)管道(Pipe)及有名管道(named pipe)(2)信号(Signal)(3)消息队列(Messge Queue)(4)共享内存(Shared memory)(5)信号量(Semaphore)(6)套接字(Socket)Linux文件锁有哪两种:建议性锁和强制性锁。建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁。在一般情况下,内核和系统都不使用建议性锁。强制性锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写

10、操作。采用强制性锁对性能的影响很大,每次读写操作都必须检查是否有锁存在。串口对应的文件:在Linux中,所有的设备文件一般都位于“/dev”下,串口1和串口2对应的设备名为“/dev/ttyS0”和“/dev/ttyS1”,而USB转接口的设备名通常为“/dev/ttyUSB0”和“/dev/ttyUSB1”Make跟makefile的关系:Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作;makefile是make读入的惟一配置文件;makefile的

11、规则是make进行处理的依据,它包括了目标体、依赖文件及其之间的命令语句NFS服务NFS共享设置1. NFS全程net file system是linux系统与实验箱linux系统之间进行文件共享的一种服务方式,如果使用NFS就要保障XP、虚拟机、实验箱三者之间的IP在同一网段,且不冲突,并且可以互相ping通,之后再虚拟机种运行NFS2. 启动后界面如下,点击添加后弹出对话框3. 目录中设置我们要共享的目录主机中添*权限选择读写,其余复选框中均按图进行设置4. 添加成功后会出现如下一条记录5. 在实验箱端操作如下root root #ifconfig eth0 192.168.1.13roo

12、t root #mount o nolock,rsize=4096,wsize=4096 192.168.1.12:/home/uptech /mnt/nfsroot root #cd /mnt/nfs如果在挂载的时候出现无法挂载请在pc机linux系统下输入route del default即可挂载Shell Shell环境就是linux的命令行界面。当用户在命令行下工作时,不是直接同操作系统内核交互信息的,而是由命令解释器接受命令,分析后再传给相关的程序。Shell是一种linux中的命令解释程序,为用户提供使用操作系统的接口。用户在提示符下输入的命令都有shell先解释后在传给linux

13、内核。Bootloader 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序。通过这段程序,可以完成硬件设备的初始化,并建立内存空间的映射关系,从而将系统的软硬件环境带到一个合适的状态,为最终加载系统内核做好准备。 通常,Bootloader比较依赖于硬件平台,特别是在嵌入式系统中,更为如此。因此,在嵌入式世界里建立一个通用的Bootloader是一件比较困难的事情。 Bootloader与哪些相关? Bootloader所支持的CPU和嵌入式开发板 Bootloader的存储位置 Bootloader的启动过程分为单阶段和多阶段两种。通常

14、多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。 Bootloader的操作模式 Bootloader与主机之间进行文件传输所用的通信设备及协议,最常见的情况就是,目标机上的Bootloader通过串口与主机之间进行文件传输,传输协议通常是xmodem/ ymodem/zmodem等。但是,串口传输的速度是有限的,因此通过以太网连接并借助TFTP等一些协议来下载文件是个更好的选择。 Bootloader启动流程 stage1 基本的硬件初始化,包括屏蔽所有的中断、设置CPU的速度和时钟频率、RAM初始化、初始化外围设备、关闭CPU内部指令和数据cache等。 为加载sta

15、ge2准备RAM空间,通常为了获得更快的执行速度,通常把stage2加载到RAM空间中来执行,因此必须为加载Bootloader的stage2准备好一段可用的RAM空间。 拷贝stage2到RAM中,在这里要确定两点:stage2的可执行映像在固态存储设备的存放起始地址和终止地址;RAM空间的起始地址。 设置堆栈指针sp,这是为执行stage2的C语言代码做好准备。Bootloader启动流程 stage2 用汇编语言跳转到main入口函数由于stage2的代码通常用C语言来实现,目的是实现更复杂的功能和取得更好的代码可读性和可移植性。但是与普通C语言应用程序不同的是,在编译和链接Bootloader这样的程序时,不能使用glibc库中的任何支持函数。 初始化本阶段要使用到的硬件设备,包括初始化串口、初始化计时器等。在初始化这些设备之前、可以输出一些打印信息。 检测系统的内存映射,所谓内存映射就是指在整个4GB物理地址空间中指出哪些地址范围被分配用来寻址系统的内存。 加载内核映像和根文件系统映像,这里包括规划内存占用的布局和从Flash上拷贝数据。 设置内核的启动参数。 API跟系

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

当前位置:首页 > 资格认证/考试 > 自考

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