导图社区 嵌入式操作系统复习
南京工程学院2019-2020学年第二学期,嵌入式操作系统期末考试复习重点介绍
编辑于2020-08-10 16:10:15嵌入式操作系统
第一章
1.嵌入式系统分类(主要按实时性分类)
2.常用嵌入式系统类型(对应着名字)
3.嵌入式系统的定义(一般和IEEE)
4.嵌入式开发模型-交叉开发(几个元素,元素之间的连接关系,各个元素作用)
5.嵌入式系统的重要特征
6.嵌入式系统的基本组成--软件--硬件
7.Linux的版本命名规则
8.嵌入式Linux内核的五个功能模块(模块名称和作用)
9.内核的配置和编译
1.为啥配置内核
2.配置内核的方法
配置命令的方式和区别
make config
make menuconfig
配置内核的方法(文本菜单式配置)(三个选项的含义)
< >
<M>
<*>
3.内核的编译
make zImage
make bzImage
4.编译内核模块
make modules
一个C文件如何编译成.ko文件
make modules_install
主要就是两个命令作用
区分二者
10.内核初始化流程
1.Bootloader的定义及作用
2.Bootloader的两种工作模式
1.启动加载
2.下载
是什么,区别是什么
11.嵌入式Linux系统的典型结构(在固态Flash的分布情况)
典型结构图(会画)
四个部分作用会简要的回答
12.嵌入式Linux内核的初始化流程中
1.根文件目录(至少哪几个,存放的内容是啥)
2.内核初始化阶段-init执行过程(乾坤大挪移的功夫)
第二章
1.嵌入式Linux设备驱动模型
1.驱动模式三(嵌入式应用程序如何使用我们的硬件资源的过程,使用设备文件调用硬件驱动,然后操作硬件(字符设备和块设备))
2.设备文件的概念
3.Linux用户如何使用驱动程序?(见上或PPT)
4.设备文件放置的位置(Linux在那个目录下)
5.设备驱动
字符型设备驱动(重点讲解)
设备驱动模型图
分配cdev(静态分配和动态分配中cdev_alloc())
初始化cdev(初始化cdev_init)
注册cdev
设备(驱动)注销(cdev_del)
这几个工作时候通过什么函数实现
2.Linux内核模块基础(概念)
1.为什么会有内核模块
子主题
2.内核模块的特点
3.如何安装卸载内核模块
1.安装 insmod
2.卸载 rmmod
4.内核模块的示例代码(读懂程序,读懂这个编程框架)
5。字符设备驱动程序(因为我们嵌入式Linux是以内核模块的形式注入系统中),字符设备驱动程序就是内核模块,所以编写字符设备驱动程序就要按照编写内核模块的框架编写
给出一个驱动程序代码(mendev.c)(看懂)
3.gcc工具
1.常用的选项的功能(示例代码)
-o output_filename
-c (编译生成.o文件)
-g
2.常用Linux的命令(ls, cd, pwd, chmod(修改文件权限))
第三章 嵌入式Linux文件系统
1.什么是文件系统?
2.Windows的文件系统类型(名字大概含义)(FAT, FAT32, FAT64, exFAT, NTFS )
3.Linux的文件系统类型 (ext2, ext3, ntfs)
4.嵌入式Linux系统的文件系统 (jffs2, yaffs, cramfs, romfs, ramdisk)
5.Linux系统中的文件类型
普通文件(-)
目录文件 (d)
符号链接文件 (l)
块设备文件(b)和字符设备文件(c)
6.VFS(虚拟文件系统)
1.什么是VFS
2.作用是什么
3.VFS的接口(VFS提供上/下两类接口,上层接口是提供给用户使用,下层接口提供给真实文件系统)(VFS接口图)
第4章 嵌入式Linux的MTD子系统
1.掌握NOR Flash和NAND Flash的区别和概念
2.什么是MTD(概念和作用)(掌握)(memory technology device 内存技术设备)是用于访问内存memory设备(ROM, flash)的Linux的子系统
3.(掌握)Linux系统中的Flash设备驱动的四层结构 (MTD的层次结构及架构图)
1.设备节点
2.MTD设备层
3.MTD原始设备层
4.硬件驱动层
4.嵌入式Linux的常用工具
1.交叉工具链
(重点掌握)2.MakeFile工程管理工具
1.为什么需要Makefile?(作用)
(掌握)2.Makefile的组成(Makefile文件描述了整个程序的编译,连接等规则)(规则和变量)(规则怎么构成)
子主题
第五章 嵌入式Linux调试技术
内核调试概念
(掌握)1.GDB的使用和调试的流程
1.编译生成可执行文件:gcc -g test.c -o test
2.启动GDB: gdb test
3.在main函数处设置断点: break main
4.运行流程:run
(掌握)5.利用更加丰富的gdb命令对程序进行调试
list(l):查看程序
break(b) 函数名 在某函数入口处添加断点
break(b) 行号 在指定行添加断点
break(b) 文件名:行号 在指定文件的指定行添加断点
info break 查看所有设置的断点
delete 断点编号 删除断点
next(n) 单步运行程序(不进入子函数)
step(s) 单步运行程序(进入子函数)
continue(c) 继续运行程序
print(p) 变量名 查看指定变量值
set var = value 设置变量的值
quit(q) 退出gdb
(掌握)2.Core Dump故障分析
(掌握)1.Core Dump(核心转存)定义和作用
子主题
内核调试技术
3.交叉调试(远程调试)
(会画)1.交叉调试图(有哪些硬件,硬件之间有什么关系,各个元素名字和关系会画,和交叉开发一样重要,需要会画)(后面还有一个交叉调试图了解一下)
子主题
(知道)4.嵌入式linux系统内核调试技术
1.在线仿真器ICE技术
2.JTAG技术(JTAG端口调试)
3.源程序模拟器技术(例如Android Studio中的模拟器采用这样的技术)
4.调试代理技术(KGDB)
5.其他调试技术
利用打印消息调试
利用/porc文件系统调试
利用ioctl命令调试
5.内核调试工具KGDB
1:知道KGDB如何调试连接的(掌握这种调试模式,硬件之间是如何连接)
2:KGDB调试原理的连接图
3.其他内容了解,不做重点
(不用做过多了解)6.多进程调试技术
Tip3:本导图根据施展老师复习课整理得来,有问题可以联系我或者施展老师,或者需要导图源文件自己编辑可以联系我,QQ:2112860871 导图文件下载链接7天内有效: https://cowtransfer.com/s/eb1495bb107841(本框影响观看可以pdf编辑软件去掉的)
Tip2: 单选 20题40分 判断题 5题10分 简答题 4题32分 程序分析题 8分 应用题 10分
Tip1 梳理内容 大于 考试内容