




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 什么叫嵌入式系统?嵌入式系统是操作系统和功能软件集成于计算机硬件系统之中。简单地说就是系统的应用软件与系统的硬件一体化。2、 嵌入式系统的特点。嵌入式系统一般功能单一、简单、且兼容性方面要求不高,但在大小、成本方面的限制较多。通常具有软件代码小、高度自动化、响应速度快等特点。3、 有哪些常见的嵌入式操作系统,各有什么特点。VxWorks(可靠性和实时性)(一) 可靠性。VxWorks的用户群遍及军事、航空、航天等系统要求极高的环境,在长期的实际工作中,充分验证了其极高的可靠性。(二) 实时性。其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,延迟短。多任务机制中对任务的控制采取了优先级抢占和轮转调度机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下了更大的余地。(三) 可裁剪性。VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。其内核最小为8KB。其高度灵活性可使用户很容易对这一操作系统进行定制和做适当开发,来满足自己的实际应用需要。(四) 其他:高效的任务管理;灵活的任务间通信;微秒级的中断处理;支持POSIX1003.1实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。(五) 价格昂贵。pSOS(体系结构先进、实时多任务、商业化)(一) 支持范围相当广泛的CPU和驱动器等硬件产品(二) 集成TCP/IP协议(三) 快速准确的系统核心为应用提供优化的运行环境(四) 运行高效稳定、多处理器支持(五) 文件系统支持包括ISO9660、MS-DOS兼容文件系统和高性能嵌入式文件系统Palm OS(32位、掌上电脑、开放接口)(一) 操作系统节能功能。半休眠(doze)、休眠(sleep)(二) 合理的内存管理。类PC(三) 数据以数据库格式来存储。直接在存储堆处理数据,通过内存管理的API实现。(四) 与PC信息同步。(五) 外围硬件丰富。QNX(分布式、可扩展、实时)(一) 进程在独立的地址空间运行,运行速度快(二) 支持多种资源管理器,多个文件系统同时运行(三) 支持窗口、图形、网络服务Windows CE(32位、开放接口、图形界面、类Windows)(一) 灵活的电源管理。睡眠/唤醒(二) 使用对象存储技术,包括文件系统、注册表及数据库。高性能(三) 高效率。按需换页、共享存储、交叉处理同步、支持大容量堆(heap)(四) 良好的通信能力(五) 支持嵌套中断(六) 更好的线程响应能力(七) 256个优先级别,时序安排灵活(八) API丰富C/OS-II(小、实时、教学)(一) 免费公开源代码(二) 执行效率高、占用空间小、实时性能优良和可扩展性强(三) 本身没有对文件系统支持(四) 源代码结构清晰,既可商用又可教学嵌入式Linux(RT-linux空间数据采集、科学仪器测控、电影特技图形处理,uCLinux没有MMU,Embedix完整,红旗嵌入式Linux中科院)(一) 开放源代码。(二) 高性能、可裁剪内核。(三) 优秀的网络功能。4、 ARM共有多少寄存器?其中有哪几个通用寄存器?哪几个状态寄存器?ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14R0、程序计数器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的指令MUL 32位乘法指令MLA 32位乘加指令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个通道的UART4个通道的DMA4个具有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采用ARM920T CPU内核支持ARM调试体系结构内部高级微控制器总线(AMBA)体系结构(AMBA2.0,AHB/APB)支持高速总线模式和异步总线模式,支持外部等待信号延迟总线周期8、Linux的基本命令:cd、pwd、cp、chmod、tar、insmod、rmmod、 ping、ifconfig、mount、ls等,vi中的:q!、:wq、:set nu1.cd改变工作目录位置,如:cd name。例:cd /usr/include(进入/usr/include目录),cd .(.表示上一级目录)2.pwd显示当前所在目录。3.ls显示目录文件.如: ls -atFlgR name。例:ls a(显示出包含隐藏文件的所有文件),ls -l (示目录下所有文件的详细信息)4.mkdir建新目录,如:mkdir directory-name。例:cd /, mkdir test, cd test, mkdir aa(在/目录下建立test目录,并在test中建立aa)5.rmdir删除目录。如:rmdir directory-name。例:rm rf /test/aa(加rf参数删除所有的内容)6.echo显示环境变量,例:echo $HOME(显示HOME变量的值)7.cp复制文件。例:cp /usr/include/sched.h /test/aa8.mv移动或更改文件、目录名称。例mv /test/aa/sched.h /test/aa/aa.h9.rm删除文件,rm filename。例:cd /test/aa, rm aa.h10.find文件的路径寻找。例:find / -name grub.conf(在根目录/下找grub.conf)11.mount磁盘挂载命令。例:#mount t vfat /dev/hda6 /mnt o iocharset=utf8(把windows的D盘挂到/mnt目录中,并支持中文)12.卸载用umount,如#umount /mnt13.chmod文件属性的设置,#cd /test, #chmod 777 aa(把/test/aa设置为可读、可写、可执行)14.tar文件备份和压缩,例:#cp /usr/include/* /test/aa, cd /test, # tar zcvf aa.tar.gz aa(把aa目录压缩成aa.tar.gz),#tar zxvf aa.tar.gz(把aa.tar.gz解压缩)15.ifconfig查看和更改网络接口的地址和参数16.ping测试网络是否畅通,例: #ping , #ping 17.ps命令主要查看系统中进程的状态。#ps18.df显示档案系统的状况,或是看所有档案系统的状况(预设值), #df h19.du统计目录(或文件)所占磁盘空间的大小。#du /home20.ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址.#ifconfig eth0 3 netmask 28 broadcast 279、如何用gcc编译一个C语言程序,标准C库有什么用。预处理:gcc E o hello.i hello.c编译:gcc S o hello.s hello.i(.c)汇编:gcc c o hello.o hello.s链接:gcc o hello hello.o生成动态库:gcc shared abs.c o libabs.so标准C库使C语言程序设计灵活方便,可以在非独立运行的条件下,调用库提供的函数,实现C所没有提供的功能。10、 什么叫交叉编译?在主机环境编译目标板上运行的程序11、主机与目标板之间有哪些常见的连接方式,各有什么特点。1) 串口通信接口。常用的串口有9针(DB9)和25针(DB25),通信距离近可用电缆线直连标准RS232端口,距离较远需调制解调器。通过串口可以向目标板发送命令,显示信息,也可以通过串口传送文件等。串口通信的优点是驱动程序实现比较简单,缺点是速度较慢,不适合大数据量传输。2) 以太网接口。网络接口一般采用RJ-45接头,通过以太网接口进行通信的速度较快,可以实现NFS文件共享和Tftp网络文件传输等。缺点是驱动程序实现比较困难,一般都基于厂家提供的驱动进行二次开发。3) USB接口。统一了各种接口设备的连接头、即插即用特性、热插拔特性、具备1.5Mbps、12Mbps、480Mbps(USB2.0)等传输速率;最多可以连接127个设备;可由USB电缆供电而不需要附加电源;具有电源管理功能。总线结构采用阶梯式星形的拓扑结构。4) JTAG接口。最初用来对芯片进行测试,现在常用于实现ISP(In-System Programmable,在线编程),对FLASH进行编程。12、主机开发环境如何配置?1) 主机操作系统安装2) 主机与开发板的通信软件(Minicom)安装配置3) 文件传输服务安装配置(Tftp,NFS)4) 建立交叉开发环境13、什么是NFS服务?如何设置?如何挂载?什么是tftp服务?如何设置?网络文件系统(Network File System,NFS)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。NFS开发环境的建立需要配置linux服务器端和嵌入式目标系统端。配置NFS 网络文件系统。需要关闭防火墙(iptables -F),以简化嵌入式网络调试环境设置过程。配置NFS:点击主菜单运行系统设置-服务器设置-NFS 服务器(英文为:SETUP-SYSTEMSERVICE-NFS);或者也可编写/etc/exports 文件,输入/arm2410s 192.168.0.*(rw,sync.no_root_squash),建议同学这样操作。启动NFS: service portmap restart , service nfs restartMount t nfs :/home/share /mntTftp协议是简单文件传输协议,基于UDP协议,没有文件管理、用户控制等功能,因此实现起来简单易行,使用方便。分服务端程序和客户端程序,在主机通常同时配置有Tftp服务端和客户端。安装好客户端tftp,服务端tftpd和inetd,在/etc/inetd.conf中添加#tftpd dgram udp wait root /usr/sbin/in.tftpd s /监听目录14、在嵌入式系统中应用什么编译器来编译程序?arm-linux-gcc15、什么是Bootloader?Bootloader有什么作用?嵌入式系统有哪些常见的Bootloader?Bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。LILO、Grub、loadlin、U-Boot、RedBoot、Vivi、ROLO、Etherboot、LinuxBIOS、blob16、U-Boot是什么,如何编译?U-Boot是一个开源的Bootloader(引导装载程序)。移植参考实验5,配置好后编译直接Make。17、Linux配置内核可以用什么命令?编译内核用什么命令?配置内核:make menuconfig,编译内核:Make zImage18、根文件系统中一般要哪些目录?根文件系统有哪些规则?dev、proc、etc、sbin、bin、lib、mnt、usr把任何在运行时不需要进行更新的文件放在CramFs文件系统中,因为其压缩比高;那些需要经常读写的目录如var、tmp应放在tmpFs文件系统中,以减少对Flash的读写次数;对于那些需要进行读写,并且在下次启动之后也能将更新信息保存的文件,则应该放在日志型文件系统里。如果采用NOR型闪存,则应选择JFFS2文件系统,如果是NAND闪存,则应选择YAFFS文件系统。19、如何用mknod创建节点?mknod m 666 null c 1 3mknod m 666 zero c 1 3mknod m 600 console c 5 1cp -dpR /dev/tty0-9 /test/my_rootfs/dev/cp -dpR /dev/ram* /test/my_rootfs/dev/20、BusyBox是什么?如何使用?BusyBox是一个Unix工具集,提供一百多种GNU常用工具、Shell脚本工具等。Busybox +命令如ls21、QT/Embedded是什么?用QT Designer生成的程序如何编译?qmake 工程名.promake22、Linux 串口通信中,如何设置串口属性?如何打开串口?如何读写数据?在嵌入式Linux中,串口是一个字设备,访问具体的串行端口的编程与读写文件的操作类似,只需打开相应的设备文件即可操作。串口编程特殊在于串口通信时相关参数与属性的设置。嵌入式Linux的串口编程时应注意,若在根文件中没有串口设备文件,应使用mknod命令创建,这这里假设串口设备是/dev/ttyS0,介绍一下串口的编程过程。mknod /dev/ttyS0 c 4 641、打开串口 打开串口设备文件的操作与普通文件的操作类似,都采用标准的I/O操作函数open()。 fd = open(/dev/ttyS0,O_RDWR|O_NDELAY|O_NOCTTY); open()函数有两个参数,第一个参数是要打开的文件名(此处为串口设备文件/dev/ttyS0);第二个参数设置打开的方式,O_RDWR表示打开的文件可读/写,O_NDELAY表示以非阻塞方式打开,ONOCTTY表示若打开的文件为终端设备,则不会将终端作为进程控制终端。2、设置串口属性 串口通信时的属性设置是串口编程的关键问题,许多串口通信时的错误都与串口的设置相关,所以编程时应特别注意这些设置,最常见的设置包括波特率、奇偶校验和停止位以及流控制等。 在Linux中,串口被作为终端I/O,它的参数设置需要使用struct termios结构体,这个结构体在termio.h文件中定义,且应在程序中包含这个头文件。 typedef unsigned char cc_t ; typedef unsigned int speed_t ; typedef unsigned int tcflag_t ; struct termios tcflag_t c_iflag ; /*输入模式标志*/ tcflag_t c_oflag ; /*输出模式标志*/ tcflag_t c_cflag ; /*控制模式标志*/ tcflag_t c_lflag ; /*本地模式标志*/ tcflag_t c_line ; /*行规程类型,一般应用程序不使用*/ cc_t c_ccNCC; /*控制字符*/ speed_t c_ispeed ; /*输入数据波特率*/ speed_t c_ospeed ; /*输出数据波特率*/ ; 串口的设置主要是设置这个结构体的各成员值,然后利用该结构体将参数传给硬件驱动程序。在Linux中,串口以串行终端的方式进行处理,因而,可以使用tcgetattr()/tcsetattr()函数获取/设置串口的参数。 int tcgetattr( int fd, struct termios *termios_p ); int tcsetattr( int fd, int optional_actions , struct termios *termios_p ); 这两个参数都有一个批向termios结构体的指针作为参数,用于返回当前终端的属性或设置该终端的属性。参数fd就是用open()函数打开的终端文件句柄,而串口就是用open()打开的串口设备文件句柄。tcsetattr()函数的optional_action参数用于指定新设定的参数起作用的时间,其设定值可以为: TCSANOW 改变立即生效 TCSADRAIN 在所有的输出都被传输后改变生效,适用于更改影响输出参数的情况。 TCSAFLUSH 在所有输出都被传输后改变生效,丢弃所有末读入的输入(清空输入缓 存)。(1)设置波特率 使用cfsetospeed()/cfsetispeed()函数设置波特率,它们分别用于在termios结构体中设置输出和输入的波特率。设置波特率可以使用波特率常数,其定义为字母“B速率”,如B19200就是波特率为19200bps,B115200就是波特率为115200 cfsetispeed( struct termios *termios_p, speed_t speed ); /speed为波特率常数int cfsetospeed( struct termios *termios_p, speed_t speed );例 :cfsetispeed( ttys0_opt, B115200 );cfsetospeed( ttys0_opt, B115200 );(2)设置控制模式标志 控制模式标志c_cflag主要用于设置串口对DCD信号状态检测、硬件流控制、字符位宽、停止位和奇偶校验等,常用标志位如下:CLOCAL 忽略DCD信号,若不使用MODEM,或没有串口没有CD脚就设置此标志CREAD 启用接收装置,可以接收字符CRTSCTS启用硬件流控制,对于许多三线制的串不应使用,需设置CRTCTSCSIZE 字符位数掩码,常用CS8CSTOPB 使用两个停止位,若用一位应设置CSTOPBPARENB 启用奇偶校验 例如,下面的代码将串口设置为忽略DCD信号,启用接收装置,关闭硬件流控制,传输数据时使用8位数据位和一位停止位(8N1),不使用奇偶校验。 struct temios ttys0 ttyso_opt.c_cflag |= CLOCAL | CREAD ; /将CLOCAL与CREAD位设置为1 ttys0_opt.c_cflag &= CRTSCTS ; /将硬件流控制位CRTSCTS清0,其他位不变 ttys0_opt.c_cflag & CSIZE ; /清除数据位掩码 ttys0_opt.c_cflag |= CS8 ; /设置8位数据位标志CS8 ttys0_opt.c_cflag &= (PARENB|CSTOPB);/使用1位停止位,停用奇偶校验(3)设置本地模式标志 本地模式标志c_lflag主要用于设置终端与用户的交互方式,常见的设置标志位有ICANON,ECHO和ECHOE等。其中,ICANON标志位用于实现规范输入,即read()读到行结束符后返回,常用于终端的处理;若串口用于发送/接收数据,则应清除此标志,使用非规范模式(raw mode)。非规范模式中,输入数据不组成行,不处规范模式中的特殊字符。在规范模式中,当设置ECHO标志位时,用户向终端输入的字符将被回传给用户;当设置ECHOE标志位时,用户输入退格键时,则回传“退格空格退格”序列给用户,使得退格键覆盖的字符从显示中消失,这样更符合用户的习惯(若未设置此标志,输入退格键时,则光标回退一个字符,但原有的字符未从显示中消失)。(4)设置输入模式标志 输入模式标志c_iflag主要用于控制串口的输入特性,常用的设置有IXOFF和IXON,分别用于软件流控制。其中,IXOFF用于防止输入缓冲区溢出;IXON则是在输入数据中识别软件流控制标志。由于许多嵌入式系统无法使用硬件流控制,因此,只能使用软件流控制数据传输的速度,但是,它可能降低串口数据传输效率。启用软件流控制的代码如下: ttys0_opt.c_iflag |= IXOFF|IXON ;(5)设置输出模式标志 输出模式标志c_oflag主要用于对串口在规范模式时输出的特殊字符处理,而对非规范模式无效。(6)设置控制字符 在非规范模式中,控制字符数组c_cc中的变量c_ccVMIN和c_ccVTIME用于设置read()返回前读到的最少字节数和读超时时间,其值分为四种情况: (a)c_ccVMIN0,c_ccVTIME0 读到一个字节后,启动定时器,其超时时间为c_ccVTIME,read()返回的条件为至少读到c_ccVMIN个字符或定时器超期。 (b)c_ccVMIN0, c_ccVTIME =0 只要读到数据的字节数大于等于c_ccVMIN,则read()返回;否则,将无限期阻塞等待。 (c)c_ccVMIN = 0, c_ccVTIME0 只要读到数据,则read()返回;若定时器超期(定时时间c_ccVTIME)却未读到数据,则read()返回0; (d)c_ccVMIN = 0, c_ccVTIME = 0 若有数据,则read()读取指定数量的数据后返回;若没有数据,则read()返回0;在termios结构体中填写完这些参数后,接下来就可以使用tcsetattr()函数设置串口的属性。 tcsetattr( fd, &old_opt ); /将原有的设置保存到old_opt,以便程序结束后恢复 tcsetattr( fd, TCSANOW, &ttsy0_opt );3、清空发送/接收缓冲区 为保证读/写操作不被串口缓冲区中原有的数据干拢,可以在读/写数据前用tcflush()函数清空串口发送/接收缓冲区。tcflush()函数的参数可为: TCIFLUSH 清空输入队列 TCOFLUSH 清空输出队列 TCIOFLUSH 同时清空输入和输出队列4、从串口读写数据 串口的数据读/写与普通文件的读/写一样,都是使用read()/write()函数实现。 n = write( fd, b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考英语第一轮复习:过去进行时(含答案解析)
- 2025年地标建筑建设合同提前终止
- 2025标准版试用买卖合同范本
- 2025湖南省职业病防治院高层次人才公开招聘9人考前自测高频考点模拟试题参考答案详解
- 2025广东广州市横沥人力资源管理服务有限公司招聘服务外包人员1人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年上半年浙江宁波市北仑区(开发区)招聘国有企业人员(港城英才)及进入人员模拟试卷及答案详解(典优)
- 中考消防考试题库及答案
- 铁路列车乘务员考试题库及答案
- 街道特勤考试题库及答案
- 客户服务支持标准化工具与培训资料
- 国庆节磨豆腐活动方案
- 运输供应商管理制度
- 七年级上册生命、生态、安全教案全册
- 2025年日历( 每2个月一张打印版)
- 国拨资金管理办法
- (高清版)AQ∕T 1047-2007 煤矿井下煤层瓦斯压力的直接测定方法
- 危险货物集装箱装箱检查员真题练习附有答案
- HG-T20678-2023《化工设备衬里钢壳设计标准》
- 间歇充气加压用于静脉血栓栓塞症预防的中国专家共识(2022年版)
- GA/T 2019-2023公安视频监控视频存储技术要求
- 2024零碳建筑评价标准
评论
0/150
提交评论