嵌入式linux复习.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“b” (block 块设备) 2) 目录文件
3) 链接文件 4)
设备一、嵌入式操作系统
功能
特点
嵌入性②专用性③实时性④可靠性⑤可剪裁性⑥功耗低 体系架构(三大类) 宏内核
分层(基于分层的微内核)
微内核(着重)
文件系统、分区和挂载
1) 分区和目录的关系(p23)
Linux 下,分区属于目录结构
2) 挂载
把分区和目录对应的过程
3) Linux 系统必须包含分区
a.
Swap 分区 b. 根分区
4) Linux 目录结构
/bin : linux 常用操作命令的执行文件 /boot :操作系统启动时所要用到的程序 /dev :外部设备
/etc :配置文件
/home :用户工具根目录
/mnt :挂载点
/usr :用户的应用程序和文件
5) 文件系统(inode 节点)
文件管理有关软件
被管理文件 实施文件管理所需数据结构
虚拟机网络连接四种方式
1) Bridged 方式(桥接)
2) NAT 方式
3) Host-Only 方式(共享网络连接)
4) Custom 方式(自定义)
文件类型(四种)(包括属性)
1)普通文件
“d” (directory) T” (link)
“c” (char 字符设备) 文件属性(p44)(可读可写可执行)(修改权限命令) “x”可执行
常用命令 1) 文件与目录相关命令
2) 磁盘管理与维护命令
3) 系统管理与设置命令
4) 网络相关命令(!)
5)压缩备份命令
、Linux编程
Linux下C开发流程(四大步骤)(图p68)
①编写源代码②编译源代码③运行程序④调试程序⑤交叉编译©Makefile A gcc编译流程
1)预处理-E .i
2)编译-S .s
3)汇编-c .o
4)链接
GDB使用(断点)
>-g 编译gdbtest (启动GDB)
>break 16 (第16行设置断点)
A break func (在函数func入口设置断点)
Makefile (组成构架、三要素)(p99)
>目标体(target),通常是目标文件或可执行文件
>目标体所依赖的文件(dependency_file)
>创建目标体所需要的命令(command)
Makefile的编写
!!注意要写<Tab>符
Make clean干什么的、交叉编译修改处
知道CVS是做什么用的
主要用于在多人开发环境下的原码的维护
系统调用(P132综合实例)
进程的状态和转换
1)状态
/执行态
/就绪态
/等待态
2)状态转换(pl36看图说话)
Fork函数
用于从已存在的进程中创建一个新进程
A 返回值为0,子程序
>返回值大于0,父程序。
出错返回-1
A 进程标识有进程号pid,父进程号ppid (都是非零的正整数)(getpid, getppid) exit ()和_exit ()函数的区别(pl42)
管道通信
>半双工。
双方通信时,需建立两个管道
>只用于父子或兄弟进程
>写末读头(队列)
>建立与使用
/ Pipe (fd)建立
/ Fd[0]读
/ Fd[l]写
①②③④⑤⑥
⑦⑧
• 线程与进程的区别(pl64)
>
进程在自己独有的地址空间内执彳丁 >
独有寄存器和堆栈 > 独立的动态数据堆、静态数据区和程序代码
<进程共享同一地址空间
<共享动态堆、静态数据区和程序代码
&线程是处理机调度的基本单位 二、嵌入式软件开发
• Bootloader
1) 操作模式
2) 第一阶段stagel (内存空间分配,图、分析过程)
A 硬件设备初始化
>
为加载stage2准备RAM 空间 >
复制stage2到RAM 中 A 设置堆栈
> 跳转到stage2的C 入口点 3) 第二阶段stage2
>初始化本阶段要使用到的硬件设备
>
检测系统的内存映射 >
加载内核映像和根文件系统映像 A 设置内核的启动参数 >
调用内核 •
嵌入式linux 软件架构(几层,内容pl72) 设备驱动层、操作系统层、中间件层、应用软
件层 • 软件开发流程(几个步骤) 建立开发环境 配置开发主机
建立引导装载程序bootloader 移植linux 操作系统 建立根文件系统
建立应用程序的文件系统 开发应用程序
烧写内核、根文件系统和应用程序 • Tftp 挂在命令 • 内核的编译和下载(命令)
A 内核编译
Make clean :正式编译内核之前先把环境给清理干净
Make dep :编译相关依赖文件
Make zlmage :最终的编译命令 A 内核下载 • 文件系统(典型的文件系统)
A 基于flash 的文件系统
A 基于RAM 的文件系统
A 网络文件系统NFS
• 驱动程序(p239)
& 可不可以包含标准C 库头文件
■ 主要功能
/对设备进彳丁初始化
/ 启动或停止设备的运行
/把数据从内核传送到硬件和从硬件读取数据
/读取应用程序传送给设备文件的数据和回送应用程序请求的数据
/检测和处理设备出现的错误
•设备驱动加载方式(动态/静态)
•Linux设备驱动(架构、重要函数)
初始化函数、注册
1.头文件
2.初始化(初始化函数、注册函数)
3.卸载(卸载函数)
•file_operations数据结构(干什么的)。
内核内部通过file结构识别设备,通过file_operations数据结构提供的文件系统的入口点函数,也就是访问设备驱动的函数,结构中的每一个成员都对应着一个系统调用& File_operations结构中的成员几乎全部是函数指针,实质上就是函数跳转表
O系统调用怎么映射到设备
•Linux设备的控制方式(3种)
>查询方式
>中断方式
>直接内存存取方式(DMA)
四、嵌入式应用程序
•MiniGUI
1)三种运行模式
/线程模式
/进程模式
/独立模式
2)消息传递机制(p263图)
•QT
>程序设计基本流程
/编辑源文件
/ 生成工程文件(qmake)
/ 生成makefile
/ 编译运行
A信号和槽(课件)
◊之间建立什么连接,基本原理,特点
•SQLite基本命令
编程(给框架)API函数
•三次握手
•结构体sockaddr 和sockaddr_in
•Socket通信(TCP/UDP)(流程、使用的函数、出错判断)。