2018-2019嵌入式期末复习材料.doc
- 文档编号:140977
- 上传时间:2022-10-04
- 格式:DOC
- 页数:8
- 大小:969KB
2018-2019嵌入式期末复习材料.doc
《2018-2019嵌入式期末复习材料.doc》由会员分享,可在线阅读,更多相关《2018-2019嵌入式期末复习材料.doc(8页珍藏版)》请在冰豆网上搜索。
嵌入式系统原理与应用
期末复习提纲
考试题型大致:
填空+选择30~50%、简答题20~30%、程序填空(程序设计、代码解析)10~20%综合题10~20%
一、本学期嵌入式课程实验内容(裸机GPIO的基本配置:
端口分为几组?
输入,输出地址汇编编程(怎么配置)、应用程序开发与移植,驱动程序实验:
(框架,驱动程序每一部分在做什么,实现什么功能)demo、继电器、led点阵、AD驱动程序)
NFS怎么连到实验箱?
遍历用什么工具?
二、教材内容(每一章都会有)
第1章(填空,选择,简答)
定义(★)
以功能定义:
用于控制、监视、或者辅助操作机器和设备的装置。
以特点定义:
以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
四个发展阶段:
第一阶段:
20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段;
第二阶段:
以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统;
第三阶段:
以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段;
第四阶段:
以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。
发展趋势:
1.产品种类不断丰富,应用范围不断普及
2.产品性能不断提高
3.产品功耗不断降低,体积不断缩小
4.网络化、智能化程度不断提高
5.软件成为影响价格的主要因素
特点:
专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。
应用领域:
生产过程控制、数据采集、通信、军事、海洋、等领域
硬件结构(★):
微处理器 外围电路 外部设备
软件结构(★):
板级支持包 实时操作系统 应用编程接口 应用程序
分类(★):
嵌入式处理器 微控制器 数字信号处理器
主流的嵌入式操作系统:
VxWorks,Windows CE、uC/OS-II和嵌入式Linux。
第2章(ARM所支持的汇编?
)
简答题:
1、ARM微处理器的工作状态,及切换方法。
(★)
答:
ARM和Thunb状态。
切换方法:
进入Thunb状态:
当操作数寄存器的状态位(位0)为1时,执行BX指令,此外,当处理器处于Thumb状态时发生异常,则异常处理返回时,自动切换到Thumb状态。
进入ARM状态:
当操作数寄存器的状态位为0时,执行BX指令。
此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
2、NANDFlash自动引导模式的流程(★)
1.当系统复位后,如果自动引导模式使能(OM[1:
0]=00).系统就会自动将NANDFlash的前4KB复制到Steppingstone中。
2.将Setppingstone映射到nCCS0中。
3.CPU从steppingstone中开始执行程序,这段程序的功能是将NANDFlash中Bootloader的第二阶段程序复制到SDRAM中,然后再跳转到SDRAM中执行引导程序的第二阶段代码。
3、电源管理模式及切换方法(★)
Normal模式:
为所有外设和一些基本的模块提供时钟。
Slow模式:
为通过一个慢时钟来降低电源功耗
Power-off模式:
为断开内部电源,只给内部的唤醒逻辑供电。
IDLE模式:
为断开提供给CPU的时钟。
4、串口操作流程
数据发送、数据接收、中断/DMA产生、波特率发生、loop-back模式、红外模式和自动流控制。
5、ARM处理器对异常的处理流程
1.保存异常返回地址到rl4_
2.保存当前CPSR到CPSR_
3.改写CPSR以切换到相应的异常模式和处理器状态
4.禁止IRQ
5.跳转到相应的异常向量表人口进行异常处理
5.异常返回
程序题:
1、编写一简单ARM汇编程序段,实现1+2+…+100的运算
2、假设LED1接在GPF7上,GPF7输出0时LED灯亮,输出1时LED灯熄灭。
用ARM汇编编写程序点亮LED灯。
注:
GPFCON寄存器地址:
0x56000050;GPFDAT寄存器地址:
0x56000054;GPF7对应GPFCON中的[15,14]位,位值为00:
输入;01:
输出;10:
EINT7。
Text
Global-start
-start
LDRR0,=0x56000050
MOVR1,#0x56000050
STRR1,[R0]
LDRR0,=0x56000054
MOVR1,#0X00000000
STRR1,[R0]
MAIN_LOOP:
BMAIN_LOOP
若为0X000000080则灯灭
3、写一段ARM汇编程序:
循环累加队列MyArray中的所有元素,直到碰上零值元素,结果放在R4中。
LDRR0,[R1],#8;将存储器地址为R1的字数据读入寄存器R0,并将R1+8的值存入R1。
4、指出下面各条指令的寻址方式。
SUBR0,R1,R2 寄存器寻址
SUBS R0,R0,#1 立即寻址
MOVR0,R2,LSL#3 寄存器移位寻址
SWP R1,R1,[R2] 寄存器间接寻址
LDR R2,[R3,#0x0C] 基址变址寻址
5、解释下面的每条ARM汇编语句:
ADDR0,R0,#0x3f
ADDR3,R2,R1,LSLR4
LDMIAR0,{R1,R2,R3,R4}
MULSR0,R1,R2
STRR0,[R1,#8]
第3章:
1、掌握gcc命令,及常用编译选项P66
Gcc命令格式:
gcc[选项]文件列表
常用选项:
1.输出文件选项(-O)2.链接文件库选项3.指定头文件目录选项(-I)4.指定库文件目录选项(-L)5.警告选项6.调试选项7.优化选项
2、掌握GCC编译过程P64
一、预编译:
1.把include中的头文件复制到要编译的源文件中。
2.用实际值替代define文本。
3.在调用宏的地方进行宏替换gcc-Ehello.c
二、编译:
1.检查代码的语法。
2.将编译后的文件替换或汇编语言,并自动生成后缀为.s的文件gcc-stest.c。
三、汇编。
将汇编语言代码变成目标代码gcc-ctest.c
四、连接目标代码,并生成可执行文件。
gcc-otesttest.o/gcc-otesttest.c
3、gdb调试程序的方法,及常用命令P70-73
1.编译生成可执行程序。
2.启动GDB。
3.设置断点。
4.运行程序。
5.单步执行。
6.继续执行。
7.退出。
4、Makefile文件的编写(要会写),特别是Makefile预定义变量(含义)的使用P75-81
第4章:
第七章的实验好好看看(实验手册)
掌握嵌入式系统开发流程(★)
1、交叉编译工具链的安装;2、安装配置TFTP服务;3、安装配置NFS服务;4、C-Kermit的安装配置;5、minicom的安装配置;6、windows下超级终端的配置。
2、掌握Bootloader的框架、及具体功能(★)
框架:
Stage1:
用汇编语言编写,主要进行设备的初始化;Stage2:
用C语言编增强程序的移植性和可读性。
具体功能:
可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适状态。
3、掌握Linux内核主要的组成部分及它们的具体功能
Linux内核主要由五个子系统组成:
进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。
进程调度:
控制进程对CPU的访问。
当需要选择下一个进程运行时,由调度程序选择最值得运行的进程;
内存管理:
允许多个进程安全的共享主内存区域;
虚拟文件系统:
隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统;
网络接口:
提供了对各种网络标准的存取和各种网络硬件的支持;
进程间通讯:
支持进程间各种通信机制。
4、掌握内核的裁剪和编译的步骤
剪裁:
1.选择硬件平台的类型2.选择内核对MTD和Flash存储器的支持3.选择内核对网络的支持。
3.选择内核对文件系统的支持
1、make config 进入命令行;
2、make menuconfig 内核裁剪;
编译:
3、make clean 清理以前已生成的目标文件;
4、make dep 编译变量的依赖关系;
5、make zImage 生成内核镜像文件zImage。
6、makemodules编译模块
7、makemodules_install安装编译完成的模块
5、掌握根文件系统的构建步骤
1、建立基本的目录结构;
2、交叉编译BusyBox;
3、创建配置文件;
4、利用cramfs工具创建根文件系统映像文件。
第5章
1、掌握设备驱动程序的功能、组成;驱动程序与应用程序的区别;(★)
功能:
1、对设备初始化和释放;2、数据传送;3、检测和处理设备出现的错误。
组成:
1、自动配置和初始化子程序;2、服务于I/O请求的子程序;3、中断服务子程序。
区别:
第一:
主动与被动的区别。
应用程序有一个main函数,总是从些函数开始主动执行一个任务,而驱动程序安装之后,便停止工作,并等待被应用程序调用。
第二:
使用的库函数不同。
第三:
程序运行的区域不同。
驱动程序工作在内核态;应用程序工作在用户态。
2、设备文件的常用接口(★)
open、close、read、write、ioctl
3、驱动程序的动态安装与卸载(书本上有个框图)
insmod、rmmod
4、掌握查看驱动模块、测试驱动的方法(★)
Lsmod
5、掌握驱动程序中重要的数据结构
file_operations、file和indode
6、掌握教材上的驱动程序实例(demo和AD驱动)(★)P127-P138
简答题:
1、ADC转换器的工作流程(★)
初始化时,先将寄存器各位清空。
转换时,先将寄存器的最高位置1,再将寄存器的数值送入DAC,经D/A转换后生成模拟量送入比较器中与输入的模拟量进行比较,若Vs 1、设置A/D转换器的相关参数 2、选择A/D转换器的输入通道 3、命令A/D转换器开始转换 4、读取ADCDAT0数据寄存器的低10位数据,就是A/D转换结果 2、驱动程序的编译、安装和测试方法(★) 编译: 一般采用Make工具 安装: 使用insmod 测试: 编写一个应用程序 3、驱动程序查用函数,及参数列表中各个参数的意义。 P125-P127(设备注册,创建,中断号的申请用什么函数) 字符设备注册及注销函数: 字符设备驱动程序可通过register_chrdev函数向内核注册设备,又可通过unregister_chrdev函数向内核注销设备。 中断申请和释放函数: 设备驱动程序可通过request_irq函数向内核申请中断,又可通过free_irq函数释放中断。 阻塞型I/O操作函数: 可以通过调用以下函数让进程进入睡眠状态。 voidsleep_on(structwait_queue**q); voidinterrutible_sleep_on(struct
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2018 2019 嵌入式 期末 复习 材料