嵌入式系统与开发复习大纲.docx
- 文档编号:2395798
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:29
- 大小:1.64MB
嵌入式系统与开发复习大纲.docx
《嵌入式系统与开发复习大纲.docx》由会员分享,可在线阅读,更多相关《嵌入式系统与开发复习大纲.docx(29页珍藏版)》请在冰豆网上搜索。
嵌入式系统与开发复习大纲
1.了解嵌入式系统的一般定义方法及其相关含义。
P22
2.了解基于ARM核的研究和商业运作模式。
P152
3.了解嵌入式应用开发的一般流程及方法。
P122
4.了解ARM微处理器7种异常模式及含义P203
5.了解ARM微处理器大小端存储模式含义及区别P233
6.了解ADS集成开发环境及其使用方法。
(打印ADS看门狗)3
7.了解arm-linux-*相关工具的作用及其使用方法。
4
8.了解嵌入式远程GDB的使用方法。
P1135
9.了解CodeBlocks软件的基本使用方法。
P1006
10.了解设备驱动和一般应用程序的区别。
6
11.了解设备驱动的基本作用。
6
12.了解Linux支持的三类的硬件设备:
字符、块和网络设备。
7
13.了解引入模块的基本原理和模块的本质。
7
14.了解Qt程序的优点。
8
15.了解使用Qt开发嵌入式应用的基本方法。
8
16.掌握非操作系统模式的嵌入式开发模型及开发所涉及的基本过程。
8
17.掌握基于操作系统模式的嵌入式开发模型及开发所涉及的基本过程。
9
18.掌握S3C2440看门狗工作的基本原理及控制方法。
10
19.掌握使用S3C2440芯片的GPIO控制LED灯打开或关闭的基本原理及控制方法。
10
20.掌握宿主机-目标板开发模式的基本原理和工作方法。
10
21.掌握bootloader、内核和文件系统等的编译、裁剪和烧写过程。
10
22.掌握Make及Makefile文件使用方法。
12
23.掌握模块的加载和卸载方法。
P7715
24.掌握Linux设备驱动模型的构建方法。
15
25.掌握Qt程序的信号和槽的工作机理。
16
26.掌握看门狗程序的编写原理和编写方法(非操作系统模式和操作系统模式)。
打印PPT7(45-结尾)20
27.掌握跑马灯程序的编写原理和编写方法(非操作系统模式和操作系统模式)。
20
28.掌握嵌入式应用程序移植基本步骤和方法20
29.掌握嵌入式sqlite基本使用命令和编程函数20
SQLITE数据库设计20
SQLite命令行实例:
20
SQLite编程接口22
SQLite自定义函数23
1.了解嵌入式系统的一般定义方法及其相关含义。
P2
2.了解基于ARM核的研究和商业运作模式。
P15
§企业运行的模式—chipless的生产模式
§公司既不生产芯片,也不设计芯片,而是设计出高效的IP内核
§全球有103家巨型IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户
3.了解嵌入式应用开发的一般流程及方法。
P12
方法:
v嵌入式产品开发流程与8位机开发流程类似,
但增加了RTOS移植部分
v元器件选型-〉原理图编制-〉印制板-〉样板试制-〉硬件功能测试-〉RTOS移植-〉BSP调试-〉协议栈移植-〉应用程序调试-〉系统联调-〉样机交付-〉小批量生产-〉产品改进-〉大批量生产
v另外嵌入式开发中普遍使用C语言,系统复杂程度和开发周期均比8位机开发增加
4.了解ARM微处理器7种异常模式及含义P20
5.了解ARM微处理器大小端存储模式含义及区别P23
6.了解ADS集成开发环境及其使用方法。
vARM公司推出的新一代ARM集成开发工具(相对于SDT)
v全称:
MetrowerksCodeWarriorforARMDeveloperSuitev1.2
▪ADS的CodeWarriorIDE基于MetrowerksCodeWarriorIDE4.2版本
▪它经过适当的裁剪以支持ADS工具链
vADS的主要组成部件有:
▪命令行开发工具
§armcc:
ARMC编译器
armcc用于将用ANSIC编写的程序编译成32位
ARM指令代码
varmcc最基本的用法为:
armcc[options]file1file2...filen
这里的option是编译器所需要的选项,
fiel1,file2…filen是相关的文件名
§举例:
armcc-cinit.sled.s
§armcpp:
ARMC++编译器
§armasm:
ARM汇编编译器:
§armlink:
ARM连接器
▪ARM运行时库
运行时库就是Crun-timelibrary,包含了C程序运行的最基本和最常用的函数.
▪GUI开发环境(CodeWarrior和AXD)
功能:
(1)源代码编辑器
§成在CodeWarriorIDE的浏览器中,能够根据语法格式,使用不同的颜色显示代码。
(2)源代码浏览器
§保存了在源码中定义的所有符号,能够使用户在源码中快速方便的跳转
(3)查找和替换功能
§用户可以在多个文件中,利用字符串通配符,进行字符串的搜索和替换
(4)文件比较功能
§可以使用户比较路径中的不同文本文件的内容
ADS中两种target:
§目标系统(Targetsystem)
•特指代码要运行的环境,是基于ARM的硬件。
比如,要为ARM开发板上编写要运行在它上面的程序,这个开发板就是目标系统
§生成目标(Buildtarget)
•指用于生成特定的目标文件的选项设置(包括汇编选项,编译选项,链接选项以及链接后的处理选项)和所用的文件的集合
v有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序
7.了解arm-linux-*相关工具的作用及其使用方法。
C/C++编译器arm-linux-gcc
§arm-linux-gcc主要功能是将源程序编译成汇编代码,它有十分丰富的命令选项,可以控制编译的各个阶段
汇编器arm-linux-as
§汇编器arm-linux-as将arm-linux-gcc编译的汇编代码转换为目标代码
连接器arm-linux-ld
§在编写一个大的程序时,经常把它分成许多独立的模块,这时需要连接器所有的模块组合起来,并结合c函数库和初始化代码,产生最后可执行的文件
库管理器arm-linux-ar
§可以使用ar程序建立静态库,把几个小文件合并成一个大文件
§建立静态库时,必须把几个.O文件合并成一个单独的.a文件
arm-linux-gcc语法形式
§arm-linux-gcc[option|filename]...
通常情况下,产生一个新的程序需要经过四个阶段:
预处理、编译、汇编,链接。
-s:
只对文件进行编译,但是不进行汇编与链接。
-E:
只对文件进行预处理
-C:
只对文件进行编译和汇编
-O:
缺省目标名称为.out
arm-linux-objdump
即以一种可阅读的格式让程序员更多地了解二进制文件可能带有的附加信息。
arm-linux-objdump[option]可执行文件名
•-a显示档案库的成员信息
•-D反汇编所有段
•-h显示目标文件各个section的头部摘要信息。
•--help简短的帮助信息
•-d反汇编代码段
语法格式:
§ldd[--version][-v|--verbose][-d|--data-relocs][-r|--function-relocs][--help]FILE...
§--version:
此选项用于打印出ldd的版本号。
§-v或--verbose:
此选项指示ldd输出关于所依赖的
动态链接库的尽可能详细的信息。
§-d或--data-relocs:
此选项执行重定位,并且显示
不存在的函数。
§-r或--function-relocs:
此选项执行数据对象与函
数的重定位,同时报告不存在的对象。
§–help:
此选项用于打印出ldd的帮助信息
arm-linux-stripstrip经常用来去除目标件中的一些符号表、调试符号表等信息,以减小程序的大小。
[arm@localhostgcc]#arm-linux-strip–stripallhello;
arm-linux-objcopy工具程序objcopy的作用是拷贝一个目标文件的内容到另一个目标文件中
arm-linux-readelfreadelf用来显示ELF格式目标文件的信息
8.了解嵌入式远程GDB的使用方法。
P113
在可以使用gdb调试程序之前,必须使用-g选项编译源文件。
可在Makefile中如下定义CFLAGS变量:
§CFLAGS=-g
§或者在使用gcc编译的时候加上-g选项,
§$gcc-g-ohellohello.c
运行gdb调试程序时通常使用如下的命令:
§$gdbprogname
常用命令:
vbreakNUM在指定的行上设置断点
vbt显示所有的调用栈帧。
该命令可用来显示函数的调用顺序
vclear删除设置在特定源文件、特定行上的断点。
其用法为:
clearFILENAME:
NUM
vcontinue继续执行正在调试的程序
vdisplayEXPR每次程序停止后显示表达式的值。
表达式由程序定义的变量组成
vfileFILE装载指定的可执行文件进行调试
vhelpNAME显示指定命令的帮助信息
vinfobreak显示当前断点清单,包括到达断点处的次数等
vinfofiles显示被调试文件的详细信息
vinfofunc显示所有的函数名称
vinfolocal显示当函数中的局部变量信息
vinfoprog显示被调试程序的执行状态
vinfovar显示所有的全局和静态变量名称
vkill终止正被调试的程序。
vlist显示源代码段。
vmake在不退出gdb的情况下运行make工具
vnext在不单步执行进入其他函数的情况下,
向前执行一行源代码
vprintEXPR显示表达式EXPR的值
vstep向前执行一行源代码,遇到函数的情况下,进入函数内部执行
vrun执行当前被调试的程序
9.了解CodeBlocks软件的基本使用方法。
P100
10.了解设备驱动和一般应用程序的区别。
v应用程序是一个进程
§编程从主函数main()开始
§主函数main()返回即是进程结束
v驱动程序是一系列内核函数
§驱动程序向内核添加了一些函数,是内核的一部分
•Open()
•Release()
•Read()
•Write()
§这些函数由内核在适当的时候来调用
§这些函数可以用来完成硬件访问等操作
1.应用程序从头到尾按顺序执行单个任务。
模块程序要先注册到内核,为的是给调用做准备
2.退出时,应用程序的资源系统会回收,模块程序要手动
3.模块程序不能像应用程序那样连接库函数,它调用的只能是内核中的头文件include/linux,linux/asm
4.模块运行在内核空间,应用程序运行在用户空间
11.了解设备驱动的基本作用。
v系统调用
§是操作系统内核和应用程序之间的接口
v设备驱动程序
§是操作系统内核和机器硬件之间的接口
§为应用程序屏蔽了硬件的细节
v在应用程序看来,硬件设备只是一个设备文件
§应用程序可以象操作普通文件一样对硬件设备进行操作
v设备驱动程序是内核的一部分,它完成以下的功能:
§对设备初始化和释放
§把数据从内核传送到硬件和从硬件读取数据
§读取应用程序传送给设备文件的数据和回送应用程序请求的数据
§检测和处理设备出现的错误
12.了解Linux支持的三类的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发 复习 大纲
![提示](https://static.bdocx.com/images/bang_tan.gif)