浙江农林大学嵌入式提纲.docx

上传人:b****4 文档编号:27244791 上传时间:2023-06-28 格式:DOCX 页数:18 大小:25.32KB
下载 相关 举报
浙江农林大学嵌入式提纲.docx_第1页
第1页 / 共18页
浙江农林大学嵌入式提纲.docx_第2页
第2页 / 共18页
浙江农林大学嵌入式提纲.docx_第3页
第3页 / 共18页
浙江农林大学嵌入式提纲.docx_第4页
第4页 / 共18页
浙江农林大学嵌入式提纲.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

浙江农林大学嵌入式提纲.docx

《浙江农林大学嵌入式提纲.docx》由会员分享,可在线阅读,更多相关《浙江农林大学嵌入式提纲.docx(18页珍藏版)》请在冰豆网上搜索。

浙江农林大学嵌入式提纲.docx

浙江农林大学嵌入式提纲

1、什么叫嵌入式系统?

嵌入式系统是操作系统和功能软件集成于运算机硬件系统当中。

简单地说确实是系统的应用软件与系统的硬件一体化。

2、嵌入式系统的特点。

嵌入式系统一样功能单一、简单、且兼容性方面要求不高,但在大小、本钱方面的限制较多。

通常具有软件代码小、高度自动化、响应速度快等特点。

3、有哪些常见的嵌入式操作系统,各有什么特点。

VxWorks(靠得住性和实时性)

(一)靠得住性。

VxWorks的用户群遍及军事、航空、航天等系统要求极高的环境,在长期的实际工作中,充分验证了其极高的靠得住性。

(二)实时性。

其系统本身的开销很小,进程调度、进程间通信、中断处置等系统公用程序精练而有效,延迟短。

多任务机制中对任务的操纵采取了优先级抢占和轮转调度机制,也充分保证了靠得住的实时性,使一样的硬件配置能知足更强的实时性要求,为应用的开发留下了更大的余地。

(三)可裁剪性。

VxWorks由一个体积很小的内核及一些能够依照需要进行定制的系统模块组成。

其内核最小为8KB。

其高度灵活性可利用户很容易对这一操作系统进行定制和做适当开发,来知足自己的实际应用需要。

(四)其他:

高效的任务治理;灵活的任务间通信;微秒级的中断处置;支持实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。

(五)价钱昂贵。

pSOS(体系结构先进、实时多任务、商业化)

(一)支持范围相当普遍的CPU和驱动器等硬件产品

(二)集成TCP/IP协议

(三)快速准确的系统核心为应用提供优化的运行环境

(四)运行高效稳固、多处置器支持

(五)文件系统支持包括ISO9660、MS-DOS兼容文件系统和高性能嵌入式文件系统

PalmOS(32位、掌上电脑、开放接口)

(一)操作系统节能功能。

半休眠(doze)、休眠(sleep)

(二)合理的内存治理。

类PC

(三)数据以数据库格式来存储。

直接在存储堆处置数据,通过内存治理的API实现。

(四)与PC信息同步。

(五)外围硬件丰硕。

QNX(散布式、可扩展、实时)

(一)进程在独立的地址空间运行,运行速度快

(二)支持多种资源治理器,多个文件系统同时运行

(三)支持窗口、图形、网络效劳

WindowsCE(32位、开放接口、图形界面、类Windows)

(一)灵活的电源治理。

睡眠/唤醒

(二)利用对象存储技术,包括文件系统、注册表及数据库。

高性能

(三)高效率。

按需换页、共享存储、交叉处置同步、支持大容量堆(heap)

(四)良好的通信能力

(五)支持嵌套中断

(六)更好的线程响应能力

(七)256个优先级别,时序安排灵活

(八)API丰硕

μC/OS-II(小、实时、教学)

(一)免费公布源代码

(二)执行效率高、占用空间小、实时性能优良和可扩展性强

(三)本身没有对文件系统支持

(四)源代码结构清楚,既可商用又可教学

嵌入式Linux(RT-linux空间数据搜集、科学仪器测控、电影特技图形处置,uCLinux没有MMU,Embedix完整,红旗嵌入式Linux中科院)

(一)开放源代码。

(二)高性能、可裁剪内核。

(三)优秀的网络功能。

4、ARM共有多少寄放器?

其中有哪几个通用寄放器?

哪几个状态寄放器?

ARM微处置器共有37个32位寄放器,其中31个为通用寄放器,6个为状态寄放器。

可是这些寄放器不能被同时访问,具体哪些寄放器是可编程访问的,取决微处置器的工作状态及具体的运行模式。

但在任何时候,通用寄放器R14~R0、程序计数器PC、一个或两个状态寄放器都是可访问的

5、ARM微处置器有哪7种运行模式?

1)用户模式(usr):

ARM处置器正常的程序执行状态

2)快速中断模式(fiq):

用于高速数据传输或通道处置

3)外部中断模式(irq):

用于通用的中断处置

4)治理模式(svc):

操作系统利用的爱惜模式

5)数据访问终止模式(abt):

当数据或指令预取终止时进入该模式,可用于虚拟存储及存储爱惜。

6)系统模式(sys):

运行具有特权的操作系统任务。

7)未概念指令中止模式(und):

当未概念的指令执行时进入该模式,可用于支持硬件协处置器的软件仿真。

6、几个经常使用的的指令:

B、BL、BLX、BX、CMP、MOV、MRS、MSR、LDR、STR、ADD、SUB、TEQ、TST等。

ADC带进位加法指令

ADD加法指令

AND逻辑与指令

B跳转指令

BIC位清零指令

BL带返回的跳转指令

BLX带返回和状态切换的跳转指令

BX带状态切换的跳转指令

CDP协处置器数据操作指令

CMN比较反值指令

CMP比较指令

EOR异或指令

LDC存储器到协处置器的数据传输指令

LDM加载多个寄放器指令

LDR存储器到寄放器的数据传输指令

MCR从ARM寄放器到协处置器寄放器的数据传输指令

MLA乘加运算指令

MOV数据传送指令

MRC从协处置器寄放器到ARM寄放器的数据传输指令

MRS传送CPSR或SPSR的内容到通用寄放器指令

MSR传送通用寄放器到CPSR或SPSR的指令

MUL32位乘法指令

MLA32位乘加指令

MVN数据取反传送指令

ORR逻辑或指令

RSB逆向减法指令

RSC带借位的逆向减法指令

SBC带借位减法指令

STC协处置器寄放器写入存储器指令

STM批量内存字写入指令

STR寄放器到存储器的数据传输指令

SUB减法指令

SWI软件中断指令

SWP互换指令

TEQ相等测试指令

TST位测试指令

7、S3C2440的特点。

要紧结构:

频率400MHz,其ARM920T核由ARM9TDMI、存储治理单元(MMU)和高速缓存三部份组成。

其中,MMU能够治理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。

ARM920T有两个内部协处置器:

CP14和CP15。

CP14用于调试操纵,CP15用于存储系统操纵和测试操纵。

片内资源:

1个LCD操纵器(支持STN和TFT带有触摸屏的液晶显示屏)

SDRAM操纵器

3个通道的UART

4个通道的DMA

4个具有PWM功能的计时器和1个内部时钟

触摸屏接口

I2C总线接口

2个USB主机接口,1个USB设备接口

2个SPI接口

SD接口和MMC卡接口

看门狗计数器

117位通用I/O口和24位外部中断源

8通道10位AD操纵器

体系结构:

16/32位RISC体系结构和ARM920T内核壮大的指令集

增强的ARM体系结构MMU,用于支持WinCE和Linux

采纳ARM920TCPU内核支持ARM调试体系结构

内部高级微操纵器总线(AMBA)体系结构(,AHB/APB)

支持高速总线模式和异步总线模式,支持外部等待信号延迟总线周期

8、Linux的大体命令:

cd、pwd、cp、chmod、tar、insmod、rmmod、ping、ifconfig、mount、ls等,vi中的:

q!

、:

wq、:

setnu

改变工作目录位置,如:

cd[name]。

例:

cd/usr/include(进入/usr/include目录),cd..(..表示上一级目录)

2.pwd显示当前所在目录。

3.ls显示目录文件.如:

ls[-atFlgR][name]。

例:

ls–a(显示出包括隐藏文件的所有文件),ls-l(示目录下所有文件的详细信息)

4.mkdir建新目录,如:

mkdirdirectory-name。

例:

cd/,mkdirtest,cdtest,mkdiraa(在/目录下建立test目录,并在test中建立aa)

5.rmdir删除目录。

如:

rmdirdirectory-name。

例:

rm–rf/test/aa(加rf参数删除所有的内容)

6.echo显示环境变量,例:

echo$HOME(显示HOME变量的值)

7.cp复制文件。

例:

cp/usr/include//test/aa

8.mv移动或更改文件、目录名称。

例mv/test/aa//test/aa/

9.rm删除文件,rmfilename。

例:

cd/test/aa,rm

文件的途径寻觅。

例:

find/-name(在根目录/下找

磁盘挂载命令。

例:

#mount–tvfat/dev/hda6/mnt–oiocharset=utf8(把windows的D盘挂到/mnt目录中,并支持中文)

12.卸载用umount,如#umount/mnt

文件属性的设置,#cd/test,#chmod777aa(把/test/aa设置为可读、可写、可执行)

文件备份和紧缩,例:

#cp/usr/include/*/test/aa,cd/test,#tar–zcvfaa(把aa目录紧缩成,#tar–zxvf把解紧缩)

查看和更改网络接口的地址和参数

测试网络是不是畅通,例:

#ping,#ping命令要紧查看系统中进程的`状态。

#ps

显示档案系统的状况,或是看所有档案系统的状况(预设值),#df–h

统计目录(或文件)所占磁盘空间的大小。

#du/home

用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址.#ifconfigeth0netmaskbroadcast、如何用gcc编译一个C语言程序,标准C库有什么用。

预处置:

gcc–E–o

编译:

gcc–S–o(.c)

汇编:

gcc–c–o

链接:

gcc–ohello

生成动态库:

gcc–shared–o

标准C库使C语言程序设计灵活方便,能够在非独立运行的条件下,挪用库提供的函数,实现C所没有提供的功能。

10、什么叫交叉编译?

在主机环境编译目标板上运行的程序

1一、主机与目标板之间有哪些常见的连接方式,各有什么特点。

1)串口通信接口。

经常使用的串口有9针(DB9)和25针(DB25),通信距离近可用电缆线直连标准RS232端口,距离较远需调制解调器。

通过串口能够向目标板发送死令,显示信息,也能够通过串口传送文件等。

串口通信的优势是驱动程序实现比较简单,缺点是速度较慢,不适合大数据量传输。

2)以太网接口。

网络接口一样采纳RJ-45接头,通过以太网接口进行通信的速度较快,能够实现NFS文件共享和Tftp网络文件传输等。

缺点是驱动程序实现比较困难,一样都基于厂家提供的驱动进行二次开发。

3)USB接口。

统一了各类接口设备的连接头、即插即用特性、热插拔特性、具有、12Mbps、480Mbps()等传输速度;最多能够连接127个设备;可由USB电缆供电而不需要附加电源;具有电源治理功能。

总线结构采纳阶梯式星形的拓扑结构。

4)JTAG接口。

最初用来对芯片进行测试,此刻经常使用于实现ISP(In-SystemProgrammable,在线编程),对FLASH进行编程。

1二、主机开发环境如何配置?

1)主机操作系统安装

2)主机与开发板的通信软件(Minicom)安装配置

3)文件传输效劳安装配置(Tftp,NFS)

4)成立交叉开发环境

13、什么是NFS效劳?

如何设置?

如何挂载?

什么是tftp效劳?

如何设置?

网络文件系统(NetworkFileSystem,NFS)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户能够在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。

NFS开发环境的成立需要配置linux效劳器端和嵌入式目标系统端。

配置NFS网络文件系统。

需要关闭防火墙(iptables-F),以简化嵌入式网络调试环境设置进程。

配置NFS:

点击主菜单运行系统设置->效劳器设置->NFS效劳器(英文为:

SETUP->SYSTEMSERVICE->NFS);或也可编写/etc/exports文件,输入/arm2410s,建议同窗如此操作。

启动NFS:

serviceportmaprestart,servicenfsrestart

Mount–tnfs/mnt

Tftp协议是简单文件传输协议,基于UDP协议,没有文件治理、用户操纵等功能,因此实现起来简单易行,利用方便。

分效劳端程序和客户端程序,在主机通常同时配置有Tftp效劳端和客户端。

安装好客户端tftp,效劳端tftpd和inetd,在/etc/中添加

#tftpddgramudpwaitroot/usr/sbin/–s/监听目录

14、在嵌入式系统中应用什么编译器来编译程序?

arm-linux-gcc

1五、什么是Bootloader?

Bootloader有什么作用?

嵌入式系统有哪些常见的Bootloader?

Bootloader确实是在操作系统内核运行之前运行的一段小程序。

通过这段小程序,能够初始化硬件设备、成立内存空间的映射图,从而将系统的软硬件环境带到一个适合的状态,以便为最终挪用操作系统内核预备好正确的环境。

LILO、Grub、loadlin、U-Boot、RedBoot、Vivi、ROLO、Etherboot、LinuxBIOS、blob

1六、U-Boot是什么,如何编译?

U-Boot是一个开源的Bootloader(引导装载程序)。

移植参考实验5,配置好后编译直接Make。

17、Linux配置内核能够用什么命令?

编译内核用什么命令?

配置内核:

makemenuconfig,编译内核:

MakezImage

1八、根文件系统中一样要哪些目录?

根文件系统有哪些规那么?

dev、proc、etc、sbin、bin、lib、mnt、usr

把任安在运行时不需要进行更新的文件放在CramFs文件系统中,因为其紧缩比高;那些需要常常读写的目录如var、tmp应放在tmpFs文件系统中,以减少对Flash的读写次数;关于那些需要进行读写,而且在下次启动以后也能将更新信息保留的文件,那么应该放在日记型文件系统里。

若是采纳NOR型闪存,那么应选择JFFS2文件系统,若是是NAND闪存,那么应选择YAFFS文件系统。

1九、如何用mknod创建节点?

mknod–m666nullc13

mknod–m666zeroc13

mknod–m600consolec51

cp-dpR/dev/tty[0-9]/test/my_rootfs/dev/

cp-dpR/dev/ram*/test/my_rootfs/dev/

20、BusyBox是什么?

如何利用?

BusyBox是一个Unix工具集,提供一百多种GNU经常使用工具、Shell脚本工具等。

Busybox+命令如ls

2一、QT/Embedded是什么?

用QTDesigner生成的程序如何编译?

qmake工程名.pro

make

2二、Linux串口通信中,如何设置串口属性?

如何打开串口?

如何读写数据?

在嵌入式Linux中,串口是一个字设备,访问具体的串行端口的编程与读/写文件的操作类似,只需打开相应的设备文件即可操作。

串口编程特殊在于串口通信时相关参数与属性的设置。

嵌入式Linux的串口编程时应注意,假设在根文件中没有串口设备文件,应利用mknod命令创建,这那个地址假设串口设备是/dev/ttyS0,介绍一下串口的编程进程。

#mknod/dev/ttyS0c464

一、打开串口

打开串口设备文件的操作与一般文件的操作类似,都采纳标准的I/O操作函数open()。

fd=open("/dev/ttyS0",O_RDWR|O_NDELAY|O_NOCTTY);

open()函数有两个参数,第一个参数是要打开的文件名(此处为串口设备文件/dev/ttyS0);第二个参数设置打开的方式,O_RDWR表示打开的文件可读/写,O_NDELAY表示以非阻塞方式打开,O_NOCTTY表示假设打开的文件为终端设备,那么可不能将终端作为进程操纵终端。

二、设置串口属性

串口通信时的属性设置是串口编程的关键问题,许多串口通信时的错误都与串口的设置相关,因此编程时应专门注意这些设置,最多见的设置包括波特率、奇偶校验和停止位和流操纵等。

在Linux中,串口被作为终端I/O,它的参数设置需要利用structtermios结构体,那个结构体在文件中概念,且应在程序中包括那个头文件。

typedefunsignedcharcc_t;

typedefunsignedintspeed_t;

typedefunsignedinttcflag_t;

structtermios

{

tcflag_tc_iflag;/*输入模式标志*/

tcflag_tc_oflag;/*输出模式标志*/

tcflag_tc_cflag;/*操纵模式标志*/

tcflag_tc_lflag;/*本地模式标志*/

tcflag_tc_line;/*行规程类型,一样应用程序不利用*/

cc_tc_cc[NCC];/*操纵字符*/

speed_tc_ispeed;/*输入数据波特率*/

speed_tc_ospeed;/*输出数据波特率*/

};

串口的设置主若是设置那个结构体的各成员值,然后利用该结构体将参数传给硬件驱动程序。

在Linux中,串口以串行终端的方式进行处置,因此,能够利用tcgetattr()/tcsetattr()函数获取/设置串口的参数。

inttcgetattr(intfd,structtermios*termios_p);

inttcsetattr(intfd,intoptional_actions,structtermios*termios_p);

这两个参数都有一个批向termios结构体的指针作为参数,用于返回当前终端的属性或设置该终端的属性。

参数fd确实是用open()函数打开的终端文件句柄,而串口确实是用open()打开的串口设备文件句柄。

tcsetattr()函数的optional_action参数用于指定新设定的参数起作用的时刻,其设定值能够为:

TCSANOW改变当即生效

TCSADRAIN在所有的输出都被传输后改变生效,适用于更改阻碍输出参数的情形。

TCSAFLUSH在所有输出都被传输后改变生效,抛弃所有末读入的输入(清空输入缓存)。

(1)设置波特率

利用cfsetospeed()/cfsetispeed()函数设置波特率,它们别离用于在termios结构体中设置输出和输入的波特率。

设置波特率能够利用波特率常数,其概念为字母“B+速度”,如B19200确实是波特率为19200bps,B115200确实是波特率为115200bps。

intcfsetispeed(structtermios*termios_p,speed_tspeed);//speed为波特率常数

intcfsetospeed(structtermios*termios_p,speed_tspeed);

例:

cfsetispeed(ttys0_opt,B115200);

cfsetospeed(ttys0_opt,B115200);

(2)设置操纵模式标志

操纵模式标志c_cflag要紧用于设置串口对DCD信号状态检测、硬件流操纵、字符位宽、停止位和奇偶校验等,经常使用标志位如下:

CLOCAL忽略DCD信号,假设不利用MODEM,或没有串口没有CD脚就设置此标志

CREAD启用接收装置,能够接收字符

CRTSCTS启用硬件流操纵,关于许多三线制的串不该利用,需设置~CRTCTS

CSIZE字符位数掩码,经常使用CS8

CSTOPB利用两个停止位,假设用一名应设置~CSTOPB

PARENB启用奇偶校验

例如,下面的代码将串口设置为忽略DCD信号,启用接收装置,关闭硬件流操纵,传输数据时利用8位数据位和一名停止位(8N1),不利用奇偶校验。

structtemiosttys0

|=CLOCAL|CREAD;//将CLOCAL与CREAD位设置为1

&=~CRTSCTS;//将硬件流操纵位CRTSCTS清0,其他位不变

&=~CSIZE;//清除数据位掩码

|=CS8;//设置8位数据位标志CS8

&=~(PARENB|CSTOPB);//利用1位停止位,停用奇偶校验

(3)设置本地模式标志

本地模式标志c_lflag要紧用于设置终端与用户的交互方式,常见的设置标志位有ICAN-ON,ECHO和ECHOE等。

其中,ICANON标志位用于实现标准输入,即read()读到行终止符后返回,经常使用于终端的处置;假设串口用于发送/接收数据,那么应清除此标志,利用非标准模式(rawmode)。

非标准模式中,输入数据不组成行,不处标准模式中的特殊字符。

在标准模式中,当设置ECHO标志位时,用户向终端输入的字符将被回传给用户;当设置ECHOE标志位时,用户输入退格键时,那么回传“退格-空格-退格”序列给用户,使得退格键覆盖的字符从显示中消失,如此更符合用户的适应(假设未设置此标志,输入退格键时,那么光标回退一个字符,但原有的字符未从显示中消失)。

(4)设置输入模式标志

输入模式标志c_iflag要紧用于操纵串口的输入特性,经常使用的设置有IXOFF和IXON,别离用于软件流操纵。

其中,IXOFF用于避免输入缓冲区溢出;IXON那么是在输入数据中识别软件流操纵标志。

由于许多嵌入式系统无法利用硬件流操纵,因此,只能利用软件流操纵数据传输的速度,可是,它可能降低串口数据传输效率。

启用软件流操纵的代码如下:

|=IXOFF|IXON;

(5)设置输出模式标志

输出模式标志c_oflag要紧用于对串口在标准模式时输出的特殊字符处置,而对非标准模式无效。

(6)设置操纵字符

在非标准模式中,操纵字符数组c_cc[]中的变量c_cc[VMIN]和c_cc[VTIME]用于设置read()返回前读到的最少字节数和读超不时刻,其值分为四种情形:

(a)c_cc[VMIN]>0,c_cc[VTIME]>0

读到一个字节后,启动按时器,其超不时刻为c_cc[VTIME],read()返回的条件为至少读到c_cc[VMIN]个字符或按时器超期。

(b)c_cc[VMIN]>0,c_cc[VTIME]==0

只要读到数据的字节数大于等于c_cc[VMIN],那么read()返回;不然,将无穷期阻塞等待。

(c)c_cc[VMIN]==0,c_cc[VTIME]>0

只要读到数据,那么read()返回;假设按时器超期(定不时刻c_cc[VTIME])却未读到数据,那么read()返回0;

(d)c_cc[VMIN]==0,c_cc[VTIME]==0

假设有数据,那么read()读取指定数量的数据后返回;假设没有数据,那么read()返回0;

在termios结构体中填写完这些参数后,接下来就能够够利用tcsetattr()函数设置串口的属性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1