3. 嵌入式软件技术复习
简述题(作业1)
嵌入式软件技术基础-作业1
1.查阅资料回答嵌入式操作系统有哪几类,并分别举例说明
分时系统
Unix
顺序系统
Dos
全能操作系统(Rich OS):
linux
Android
IOS
Symbian
实时操作系统
VxWorks
嵌入式linux
Windows CE
FreeRTOS
RT-Threads
uC/OS-II
2、查阅资料回答如下(嵌入式)处理器有什么特点?并分别举例说明
稳定性强
环境适应性强
体积小
集成功能较多
支持实时多任务
具有存储区保护功能
功耗低
举例:Power PC、ARM
3、简述嵌入式系统开发调试方式有哪几种,如何针对这几种方式搭建开发环境?
模拟器方式
交叉调试
非交叉调试
在线仿真器方式
监控器方式
在线调试器方式
4、常见的嵌入式系统开发方法有哪几种?并比较这几种开发方法的优缺点
面向硬件开发
优点:可以对程序进行实时仿真和测试,可以直接针对硬件进行调试
缺点:需要购买硬件调试工具(如ICE),调试时必需有目标系统
面向操作系统开发
优点:不需要购买硬件调试工具,节省开发成本。最为重要的是,通过使用模拟器和仿真器,可以在没有目标系统的情况下完成相应的开发工作,便于多人同时进行开发工作
缺点:只能基于操作系统进行应用程序和驱动程序的开发
通过vmware虚拟机:对于低配置的PC不太友好
通过仿真软件:无法达到真机100%的效果
通过安装真机环境:对新手不友好,需要一定时间去熟悉
linux下C开发(作业2)
1.请在linux环境下编写一个程序,使用结构定义
要求创建3个学生定义,并给三个学生的三个成员都赋上值,写一个show函数依次把所有学生信息显示,要求用vi编辑,并用gcc在Linux下编译,测试通过。提示:创建一个工程student目录,将结构体类型、show()函数原型写到show.h,将show()定义写到show.c里,main()写到main.c 里,.h文件放在include目录下,.c 放到source目录下。
show.h
show.c
main.c
gdb调试(实验1)
编译链接生成可执行程序,在程序编译链接的过程中注意加上 -g 选项。
gdb调试生成的可执行程序
gdb命令
显示源代码
设置断点
查看断点信息
执行程序
单步执行(两种)
继续运行
查看变量值
修改变量值
查看函数调用堆栈情况
查看寄存器值
显示反汇编
gcc 编译生成动态库/静态库
1.静态库生成
2.动态库生成
makefile(作业3/实验2)
demo1目录结构
静态库生成Makefile
调用静态库makefile生成可执行文件Makefile
demo2目录结构
静态库
动态库
根目录Makefile调用 子目录Makefile
shell编程题目
试编写一个Shell程序,该程序能接收用户从键盘输入的50个整数,然后求出其总和、最大值及最小值。
判断一个文件是不是字符设备文件,如果是则将其拷贝到/dev目录下
实现自动在/home目录下添加50个账号的功能,账号名称为stud1至stud50
概念
总线结构
哈佛结构
冯*诺依曼结构
CISC&RISC
复杂指令集计算机(Complex Instruction Set Computer)
精简指令集计算机(Reduced Instruction Set Computer)
大端存储与小端存储 0x12345678
大端存储:字或半字的高位对应内存地址中的低地址
小端存储:高位数对应高地址
存储器管理单元MMU
将虚地址转换成物理地址。
对存储器访问权限的控制。
交叉编译
把在宿主机(开发环境)上编写的高级语言程序编译成可以运行在目标机(生产环境))上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。
嵌入式系统的开发模式
面向硬件
面向操作系统
什么是嵌入式系统?嵌入式系统主要的特点是什么?
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁减,适于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
稳定性强
环境适应性强
体积小
集成功能较多
支持实时多任务
具有存储区保护功能
功耗低
嵌入式处理器主要有哪几类?分别有什么特点?
嵌入式微处理器(MPU):运算器、控制器
嵌入式微控制器(MCU):片内ROM、RAM、总线、I/O口、计数器、看门狗、AD、DA、Flash
数字信号处理器(DSP):哈佛结构,适用于FFT变换、谱分析、数字滤波等操作,用于音频、视频处理
片上系统(SOC):USB、GPRS、GPS、IEEE1394、蓝牙,可靠性强、开发时间短
嵌入式微处理器(MPU):Am186/88、386EX
嵌入式微控制器(MCU):8051、P51XA
数字信号处理器(DSP):TMS320系列、DSP56200系列
片上系统(SOC):M-core、CC2430
BootLoader
在嵌入式系统中,没有像BIOS那样的固件程序,整个系统的加载启动完全由BootLoader完成。
BootLoader是操作系统内核之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射,从而将系统的软硬件环境设置成一个合适的状态,然后加载操作系统内核并运行。
特点
严重地依赖于硬件而实现。
分类
按照功能复杂程度(是否含有Monitor)划分;
按照处理器体系结构划分
Last updated