嵌入式系统试题库(精选8篇)
一、选择题
1:下面关于嵌入式系统逻辑组成的叙述中,错误的是()。A:嵌入式系统与通用计算机一样,也由硬件和软件两部分组成
B:硬件的主体是CPU和存储器,它们通过I/O接口和I/O设备与外部世界联系 C:嵌入式系统的CPU主要使用的是数字信号处理器 D:嵌入式系统的软件配置有些很简单,有些比较复杂 2:下面关于数字信号处理器的叙述中错误的是()。A:它是一种适用于数字信号处理的微处理器 B:它的英文缩写是DPS C:它支持单指令多数据(SIMD)并行处理的指令
D:它能显著提高音频、视频等数字信号的数据处理效率
3:片上系统是嵌入式处理器芯片的一个重要品种,下列叙述中错误的是()。A:SoC已经成为嵌入式处理器芯片的主流发展趋势 B:它是集成电路加工工艺进入到深亚微米时代的产物
C:片上系统使用单个芯片进行数据的采集、转换、存储和处理,但不支持I/O功能 D:片上系统既能把数字电路也能把模拟电路集成在单个芯片上
4:按照软硬件技术复杂程度进行分类,可以把嵌入式系统分为哪三大类?()。A:高端系统、中端系统和低端系统 B:军用系统、工业用系统和民用系统 C:硬实时系统、准实时系统和非实时系统 D:片上系统、微控制器和数字信号处理器
5:半导体集成电路是微电子技术的核心。下面有关集成电路的叙述中错误的是()。
A:集成电路有小规模、中规模、大规模、超大规模和极大规模等多种,嵌入式处理器芯片一般属于大规模集成电路
B:集成电路的制造大约需要几百道工序,工艺复杂且技术难度非常高
C:集成电路大多在硅衬底上制作而成,硅衬底是单晶硅锭经切割、研磨和抛光而成的圆形薄片 D:集成电路中的电路及电子元件,需反复交叉使用氧化,光刻,掺杂和互连等工序才能制成 6:一幅1024 x 768的彩色图像,每个像素使用16位表示,采用压缩比为5倍的算法压缩图像数据之后,其数据量大约是多少MB?()。A:0.3 B:0.5 C:1 D:1.5 7:以太网中计算机间以帧为单位进行通信,下列选项中不属于以太网数据帧内容的是()。A:IP地址 B:MAC地址 C:有效载荷 D:校验信息
8:下面是IP协议中A类IP地址有关规定的叙述,其中正确的是()。A:它适用于中型网络
B:它适用的网络最多只能连接65534台主机 C:它不能用于多目的地址发送(组播)D:它的二进制表示中最高位一定是“0” 9:对于嵌入式处理器说法正确的是()。A:ARM处理器采用CISC和RISC相结合的结构 B:嵌入式处理器都采用哈佛结构
C:ARM处理器具有耗电省、功能强、成本低等特点 D:ARM处理器内部的总线标准是PCI Express 10:以下关于ARM处理器的叙述中,错误的是()。A:ARM7~ARM11为经典ARM处理器
B:Cortex-A系列为应用Cortex处理器,主要面向高端应用 C:Cortex-M系列为面向移动计算领域的嵌入式处理器 D:Cortex-R系列应用于实时应用的场合
11:关于ARM的工作状态,以下说法正确的是()。A:ARM处理器的工作状态包括ARM状态和Thumb状态两种 B:ARM状态支持16位指令宽度也支持32位指令宽度
C:Thumb状态或Thumb-2状态下,代码密度低于ARM状态,占用存储空间变大 D:ARM处理器复位后自动进入ARM状态
12:ARM处理器当前运算操所产生的标志位记录在以下哪个寄存器中?()。A:PSP B:MSP C:SPSR D:CPSR 13:ARM处理器如果R1=0x98001200,已知在小端模式下,内存0x98001204中存放数据0x35, 0x98001205中存放数据0x36, 0x98001206中存放数据0x37, 0x98001207中存放数据0x38, 在指令LDR R0,[R1,#4]执行后,R0中的值为()。A:0x35363738 B:0x36353837 C:0x38373635 D:0x37383536 14:ARM处理器将R0中一个字的数据,存入由R1指示的内存区域,则使用的指令是()。A:STR R0,[R1] B:LDR R0,[R1] C:STRH R0,[R1] D:STRB R0,[R1] 15:在以下ARM处理器指令中可让寄存器R1中指定位“清零”的指令操作码为()。A:MOV B:AND C:ADD D:ORR 16:ARM处理器如果R1=0x00000080,则指令MOV R0,R1, LSL#2执行后,R0的值为()。A:0x00000200 B:0x00000320 C:0x00000020 D:0x00000040 17:以下ARM处理器的指令或伪指令错误的是()。A:MOV R1,R2 B:LDR R1,#0x12345678 C:LDR R1,=0x00000020 D:ADC R1,R2,R3 18:ARM处理器在比较指令之后,如果要依据是否相等转移到指定地址L1,则以下指令错误的是()。A:BEQ L1 B:BNE L1 C:BXEQ L1 D:BLAL L1 19:下面是有关嵌入式系统的最小系统组成的叙述: Ⅰ.嵌入式最小系统包括嵌入式处理器 Ⅱ.嵌入式最小系统包括电源电路 Ⅲ.嵌入式最小系统包括时钟电路 Ⅳ.嵌入式最小系统包括复位电路 上述叙述中,正确的是()。A:仅Ⅰ和Ⅲ B:仅Ⅰ和Ⅱ C:仅Ⅱ、Ⅲ和Ⅳ D:全部
20:下面关于JTAG的叙述中,错误的是()。A:JTAG技术是一种嵌入式测试技术
B:大多数ARM嵌入式处理器芯片不包含JTAG接口 C:多个器件可以通过JTAG接口串联在一起进行测试 D:通过芯片的JTAG接口可以实现在线编程功能
21:典型的嵌入式系统硬件由嵌入式最小硬件系统及相关通道或接口组成,若一个嵌入式系统需要完成模拟量输出功能,该功能是由下面列出的嵌入式系统的哪个通道实现的?()。A:前向通道 B:后向通道 C:人机交互通道 D:相互互连通道
22:基于ARM内核的嵌入式处理器芯片采用系统总线与外围总线两层结构的方式构建片上系统,下面列出的组件中,不与系统总线相连的组件是()。A:电源管理与时钟控制器 B:DMA控制接口 C:RTC D:中断控制器
23:下面是基于ARM内核的嵌入式芯片中有关GPIO的叙述,其中错误的是()。A:GPIO作为输入接口时具有缓冲功能 B:GPIO作为输出接口时具有锁存功能 C:GPIO的引脚一般是多功能复用的
D:GPIO一般只具有0态和1态,不具有高阻状态
24:基于ARM内核的嵌入式芯片中包含互连通信组件,下面不属于互连通信组件的是()。A:PWM B:SPI C:I2C D:Ethernet 25:下面是关于嵌入式系统使用的存储器的叙述:
Ⅰ.嵌入式系统使用的存储器按照其存取特性可分为RAM和ROM Ⅱ.嵌入式系统使用的存储器按照其所处物理位置可分为片内存储器和片外存储器以及外部存储器 Ⅲ.嵌入式系统使用的存储器按照存储信息的类型可分为程序存储器和数据存储器 Ⅳ.新型的铁电存储器FRAM在嵌入式系统中得到了应用 上述叙述中,正确的是()。A:仅Ⅰ和Ⅱ B:仅Ⅱ和Ⅲ C:仅Ⅰ和Ⅲ D:全部
26:下面关于I2C的叙述中,错误的是()。A:I2C即集成电路互连总线
B:I2C具有SDA、SCL和ACK共3条信号线
C:I2C传送数据时,每次传送的字节数目没有限制 D:I2C是多主总线
27:下面是关于UART的叙述,其中错误的是:()。
A:ARM芯片中的UART收发信息时,可以采用FIFO模式,也可以采用普通模式 B:UART传送信息的格式以起始位开始,以停止位结束 C:UART传送信息时,一次传送的数据位的长度只能是8位 D:基于UART可组成RS-232接口
28:下面是关于嵌入式系统中使用的键盘的叙述,其中错误的是()。
A:利用嵌入式芯片的GPIO构成线性键盘时,一个按键需要占用一个GPIO引脚 B:采用矩阵键盘结构时,8个GPIO引脚最多能构成12个按键的键盘 C:采用机械式按键设计键盘时,按键按下时会产生抖动 D:矩阵键盘通常用行扫描法或反转法读取按键的特征值
29:uC/OS-II操作系统启动的过程中,Bootloader执行完毕后,调用应用程序主文件(通常是main.c)里的main()函数。main()函数在执行过程中,除了用户函数和硬件初始化函数之外,需要执行以下三个主要的uC/OS-II函数: I.OSStart()II.OSTaskCreate()III.OSInit()它们的执行顺序是()。A:I、II、III B:III、I、II C:II、III、I D:III、II、I 30:uC/OS-II系统中的每个任务都处在以下5种状态之一:休眠态、就绪态、运行态、挂起态(等待某一事件发生)和被中断态,以下哪个说法是错误的()。
A:任务处于休眠态,相当于该任务驻留在外存中,但还没有交给内核管理
B:任务处于就绪态,意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行
C:任务处于运行态,指任务得到了CPU的控制权正在运行之中
D:任务处于被中断态,是指发生中断时执行相应的中断服务,原来正在运行的任务暂时停止运行,进入了被中断状态
31:uC/OS-II总是运行处于就绪态任务中优先级最高的那个任务,以下哪个说法是错误的()。A:真正实现任务切换的函数是OSCtxSw()B:任务级的调度是由函数OSSched()完成 C:中断级的调度是由函数OSIntExit()完成 D:实现上下文切换的函数是OSSched()32:uC/OS-II允许中断嵌套,嵌套层数可达多少层?()。A:32 B:26 C:128 D:255 33:uC/OS-II能够提供周期性时钟信号(即所谓的时钟节拍),用于实现任务的正确延时和超时确认。节拍率应在什么范围内?()。A:10 Hz~100Hz B:10Hz~1000Hz C:100 Hz~1000Hz D:100 Hz~10000Hz 34:uC/OS-II的事件控制块有4种类型,需要使用4个不同的函数来创建。如下选项中哪一个用于创建事件控制块?()。A:OSTaskCreate()B:OSThreadCreate()C:OSQCreate()D:OSCtxSw()35:下面关于Linux内核的有关叙述中,错误的是()。
A:进程调度模块负责控制进程对CPU资源的使用,所采取的调度策略是使得各个进程能够平均访问CPU,但并不保证内核能及时地执行硬件操作
B:Linux内存管理模块的功能之一是屏蔽各种硬件内存结构的差异并向上返回统一的访问接口 C:网络接口模块包含网络接口驱动程序
D:支持进程之间各种通信机制,其通信机制主要包括信号、管道、消息队列、信号量、共享内存和套接字
36:关于U-Boot,以下说法错误的是()。
A:U-Boot全称USB Bootloader,通过USB接口完成启动支持多种处理器和操作系统 B:U-Boot支持PowerPC、x86、ARM等多种体系结构的处理器
C:U-Boot支持嵌入式Linux、VxWorks、QNX、RTEMS、Windows CE等操作系统 D:U-Boot采用两个阶段完成操作系统的引导加载
37:关于微内核和宏内核操作系统,如下哪一项的说法是错误的?()。A:VxWorks是典型的微内核结构嵌入式操作系统
B:iOS追根溯源是一个类UNIX操作系统,它属于宏内核架构 C:Android OS是典型的宏内核操作系统
D:一般认为微内核系统的实时性较好,故Symbian归类为强实时嵌入式操作系统 38:以下关于VxWorks操作系统的叙述中,错误的是()。
A:是目前公认为实时性很强、可靠性很高的一种嵌入式实时操作系统 B:在航空航天、通信和国防领域具有广泛的应用
C:属于大型商用操作系统,具有配套的VMWare集成开发环境,为开发者带 来很大方便
D:支持基于抢占式优先级调度的任务管理
39:嵌入式系统开发时,应该根据应用需求来选择相应的开发工具软件。RVDS是一个较常用的开发工具软件,下面的有关叙述中错误的是()。
A:RVDS中包括工程管理器、编译连接器、调试器和指令集仿真器 B:RVDS只支持ARM内核的微处理器芯片 C:RVDS支持对Flash存储器的编程
D:RVDS编译的代码比ADS1.2编译的代码执行效率高
40:若基于Linux操作系统所开发的ARM应用程序源文件名为test.c,那么要生成该程序代码的调试信息,编译时使用的GCC命令正确的是()。A:arm-linux-gcc-c-o test.o test.c B:arm-linux-gcc-S-o test.o test.c C:arm-linux-gcc-o test test.c D:arm-linux-gcc-g-o test test.c
二、填空题
1:SoC芯片中的CPU绝大多数是以IP核的方式集成在芯片中的,很少再自行设计开发。目前32位嵌入式处理器主要采用的是由____【1】____国一家专门从事RISC处理器内核设计公司设计的____【2】______内核。
2:我国大陆地区目前广泛使用的汉字编码国家标准有____【3】______和GB18030两种,常用汉字采用___【4】____个字节表示。3:在Internet中负责选择合适的路由,使发送的数据分组(packet)能够正确无误地按照地址找到目的计算机所使用的是___【5】____协议簇中的___【6】____协议。
4:ARM处理器有7种异常,按向量地址从小到大排列的顺序是:__【7】_____、未定义指令UND、软件中断SWI、指令预取中止PABT、数据访问中止DABT、__【8】_____以及快速中断FIQ。
5:在ARM处理器中,R0~R15是通用寄存器,其中作为堆栈指针SP使用的寄存器是___【9】____,作为程序链接寄存器LR使用的是___【10】____。
6:已知ARM处理器的R1=0x12345678, R2=0xFF00FF00,则执行指令ORR R0,R1,R2后,寄存器R0=___【11】____,R1=___【12】____。
7:已知ARM处理器进位标志C=1, R1=1000, R2=99, 执行指令ADDC R0,R1,R2之后,R0=___【13】____, R1=___【14】____。
8:ARM处理器用一条指令完成有条件的无符号数加法运算,并更新CPSR中的状态,条件是如果相等, 要求指令执行R1+R2,结果送R3中,则这条指令为___【15】____;如果条件是大于,要求指令执行R1-R2,结果放R3中,则该指令为___【16】___。
9:为了连接ARM内核与处理器芯片中的其他各种组件,ARM公司定义了总线规范,该规范用4个大写英文字母表示为___【17】____,即先进的微控制器___【18】____体系结构。
10:ARM处理器芯片内部的___【19】____组件包括ADC和DAC,有的还带有比较器等。这对于既需要处理____【20】___信号又需要处理模拟信号的混合系统的设计提供了较好的解决方案。
11:目前有两种主要的闪存技术,一种是___【21】____Flash,其特点是以字节为单位随机存取,另一种是___【22】____Flash,以页(行)为单位随机存取。(填写用英文大写字母表示的简称)12:如存储器的工作频率为333MHz,数据线宽度为32位,每个周期传输1次数据,则存储器的带宽=___【23】____MB/s。若存储器总线采用串行总线,以10位为一个数据帧(包含一个字节的存储数据),则总线带宽=总线频率/___【24】____。
13:SPI的信号线MISO称为____【25】___数据线, MOSI称为___【26】____数据线。14:响应时间(Response Time)是计算机从识别一个外部事件到做出响应的时间。在RTOS运行过程中响应时间是重要指标之一,其具体指标包括:___【27】____延迟时间和___【28】____切换时间。15:uC/OS-II 是目前常用的嵌入式操作系统之一,其内核只提供____【29】___调度、任务间通信与同步、任务管理、时间管理和___【30】____管理等基本功能,资源消耗非常小。
16:具有操作系统的嵌入式系统加电后最初执行的操作称为引导或者自举(Boot),对应的程序称为引导程序,或者引导加载程序(Bootloader)。引导加载程序主要完成___【31】____、外设存在自检、内存地址映射、初始化外围设备、内存寻址定位、加载并启动___【32】____。17:由于Bootloader的实现依赖于CPU的体系结构,因此大多数Bootloader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,且使用___【33】____语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和___【34】____性。18:RTLinux基本的设计理念就是“架空”Linux内核,以便让其他实时进程能尽快地被执行。RTLinux开发者并没有针对实时操作系统的特性而重写Linux的内核,而是将Linux的内核代码做一些修改,将Linux的任务以及Linux内核本身作为一个___【35】____优先级的任务,而实时任务作为最___【36】____优先级的任务。
19:嵌入式系统开发时,由于受到目标机资源的限制,需要建立一个___【37】____与目标机组成的调试架构来完成开发工作。若目标机为裸机环境时,通常需要通过___【38】____接口来完成硬件环境测试及初始软件的调试和下载。
20:基于嵌入式WEB的应用系统中,构件设计阶段需要设计支持以太网通信的电路,包括以太网控制电路及以太网____【39】___电路。若选用的以太网控制芯片为AX88796芯片,并用S3C2410芯片的nGCS2引脚连接到AX88796芯片的片选引脚上(即CS引脚上,CS低电平有效),那么,AX88796芯片内部寄存器的读/写地址,其首地址是___【40】____。
三、综合题
2:
1、某机械设备的控制器,其基本功能要求有: 需要有8个数字量输入,用于采集设备的状态信息;且需要8个数字量输出,用于控制设备动作。具备一个RS-232接口,可以和上位机连接,接收上位机发送的命令及参数。需要提供一个基准定时信号,定时时间间隔为0.01秒。需要彩色LCD显示器,用于显示状态信息等。根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该机械设备控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见题后说明)。
(1)若硬件设计时采用GPIO端口E的GPE0~GPE7引脚作为8个数字量输出,那么软件设计时其初始化语句是:rGPECON=(rGPECON|0x00005555)&___【1】____。若软件设计时需要通过GPE5引脚输出“1”来驱动执行机构动作,那么语句是:rGPEDAT= rGPEDAT | ___【2】____。(注:rGPECON是端口E的控制寄存器所对应的变量,rGPEDAT是端口E的数据寄存器所对应的变量)
(2)硬件设计时,选用UART0来完成RS-232接口电路设计。在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、奇校验、1位停止位。请补充完善下面的UART0初始化函数(注:主频参数为PCLK): void UART0_Init(){ rGPHCON=(rGPHCON&0xFFFFFF00)|___【3】____;//端口H相应引脚功能初始化 rUFCON0=0x0;//FIFO不使能 rUMCON0=0x0;rULCON0=___【4】____;//设置线路控制寄存器 rUCON0= 0x145;//设置控制寄存器
rUBRDIV0=((int)(PCLK/___【5】____)1);//设置波特率,小数采用四舍五入 }(3)按照上面UART0初始化函数所设置的通信速率,每秒钟最多能传输___【6】____个字节的信息。若上位机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输____【7】___秒才能完成下载(1K=1024,精确到小数点后面1位数字)。
(4)系统中所需要的0.01秒基准定时时间选用S3C2410芯片内部的Timer0部件来产生。若系统的主频参数PCLK为264MHz,分频器值选择为16,预分频系数选择为3,那么,Timer0的计数常数为___【8】____。软件设计时,设计了如下的Timer0初始化函数,请补充完善。(注:下面程序中⑨、⑩、⑿用8位十六进制数表示,⑾用4位十六进制数表示)void Timer0Int(void){ //设置定时器配置寄存器0(TCFG0)
rTCFG0=___【9】____;//Timer0预分频系数选择为3,该寄存器中其它无关位均为0 //设置定时器配置寄存器1(TCFG1)
rTCFG1=___【10】___;// Timer0分频器值为16,该寄存器中其它无关位均为0 //设置计数常数
rTCNTB0=___【11】____;//设置控制寄存器TCON rTCON=___【12】____;//更新TCNTB0和TCMPB0,该寄存器中其它无关位均为0 rTCON=0x00000009;//设置Timer0自动装载,并启动 }(5)彩色LCD显示屏的硬件接口电路由S3C2410的专用GPIO端口__【13】_____和端口___【14】____相关引脚配以驱动电路来设计。软件设计时,需要通过设置它们控制寄存器的值分别为___【15】____和____【16】___来确定它们的引脚功能。
(6)系统的软件可以设计为在无操作系统的环境下运行。设计者自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。ARM9体系结构中规定的IRQ异常所对应的异常向量地址为___【17】____。Timer0部件所产生的0.01秒基准时间到时将引起IRQ异常。由于IRQ异常向量地址与下一个异常向量地址之间间隔为___【18】____个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。堆栈指针的设置需按工作模式来进行。设置IRQ模式下的堆栈指针,需在R0“清0”后用指令ORRR1,R0,#0x12|___【19】____和MSR CPSR_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。这些初始化工作完成后,即可通过指令___【20】____来引导应用程序的主函数main()。说明:下面是试题解答时需要用到的寄存器格式及相关说明。1)端口C的控制寄存器(GPCCON)引脚GPCCON的位描述
GPC15[31:30]00=输入,01=输出,10=VD7,11=保留 GPC14[29:28]00=输入,01=输出,10= VD6,11=保留 GPC13[27:26]00=输入,01=输出,10= VD5,11=保留 GPC12[25:24]00=输入,01=输出,10= VD4,11=保留 GPC11[23:22]00=输入,01=输出,10= VD3,11=保留 GPC10[21:20]00=输入,01=输出,10= VD2,11=保留 GPC9[19:18]00=输入,01=输出,10= VD1,11=保留 GPC8[17:16]00=输入,01=输出,10= VD0,11=保留 GPC7[15:14]00=输入,01=输出,10=LCDVF2,11=保留 GPC6[13:12]00=输入,01=输出,10= LCDVF1,11=保留 GPC5[11:10]00=输入,01=输出,10=LCDVF0,11=保留 GPC4[9:8]00=输入,01=输出,10=VM,11=IIS数据输出
GPC3[7:6]00=输入,01=输出,10=VFRAME,11= IIS数据输入 GPC2[5:4]00=输入,01=输出,10=VLINE,11=保留 GPC1[3:2]00=输入,01=输出,10=VCLK,11=保留 GPC0[1:0]00=输入,01=输出,10=LEND,11=保留 2)端口D的控制寄存器(GPDCON)引脚GPDCON的位描述
GPD15[31:30]00=输入,01=输出,10=VD23,11=保留 GPD14[29:28]00=输入,01=输出,10= VD22,11=保留 GPD13[27:26]00=输入,01=输出,10= VD21,11=保留 GPD12[25:24]00=输入,01=输出,10= VD20,11=保留 GPD11[23:22]00=输入,01=输出,10= VD19,11=保留 GPD10[21:20]00=输入,01=输出,10= VD18,11=保留 GPD9[19:18]00=输入,01=输出,10= VD17,11=保留 GPD8[17:16]00=输入,01=输出,10= VD16,11=保留 GPD7[15:14]00=输入,01=输出,10= VD15,11=保留 GPD6[13:12]00=输入,01=输出,10= VD14,11=保留 GPD5[11:10]00=输入,01=输出,10= VD13,11=保留 GPD4[9:8]00=输入,01=输出,10= VD12,11=保留 GPD3[7:6]00=输入,01=输出,10= VD11,11=保留 GPD2[5:4]00=输入,01=输出,10= VD10,11=保留 GPD1[3:2]00=输入,01=输出,10= VD9,11=保留 GPD0[1:0]00=输入,01=输出,10= VD8,11=保留 3)端口E的控制寄存器(GPECON)引脚GPECON的位描述
GPE15[31:30]00=输入,01=输出,10=IICSDA,11=保留 GPE14[29:28]00=输入,01=输出,10=IICSCL,11=保留 GPE13[27:26]00=输入,01=输出,10=SPICLK0,11=保留 GPE12[25:24]00=输入,01=输出,10=SPIMOSI0,11=保留 GPE11[23:22]00=输入,01=输出,10=SPIMISO0,11=保留 GPE10[21:20]00=输入,01=输出,10=SSDAT3,11=保留 GPE9[19:18]00=输入,01=输出,10=SSDAT2,11=保留 GPE8[17:16]00=输入,01=输出,10=SSDAT1,11=保留 GPE7[15:14]00=输入,01=输出,10=SSDAT0,11=保留 GPE6[13:12]00=输入,01=输出,10=SDCMD,11=保留 GPE5[11:10]00=输入,01=输出,10=SDLCK,11=保留
GPE4[9:8]00=输入,01=输出,10=IISSDO,11=IIS数据输出 GPE3[7:6]00=输入,01=输出,10=IISSI,11= IIS数据输入 GPE2[5:4]00=输入,01=输出,10=CDCLK,11=保留 GPE1[3:2]00=输入,01=输出,10=IISCLK,11=保留 GPE0[1:0]00=输入,01=输出,10=IISLRCK,11=保留 4)端口H的控制寄存器(GPHCON)引脚GPHCON的位描述
GPH10[21:20]00=输入,01=输出,10=CLKOUT1,11=保留 GPH9[19:18]00=输入,01=输出,10= CLKOUT0,11=保留 GPH8[17:16]00=输入,01=输出,10=UEXTCLK,11=保留 GPH7[15:14]00=输入,01=输出,10=RXD2,11=保留 GPH6[13:12]00=输入,01=输出,10=TXD2,11=保留 GPH5[11:10]00=输入,01=输出,10=RXD1,11=保留
GPH4[9:8]00=输入,01=输出,10=TXD1,11=IIS数据输出 GPH3[7:6]00=输入,01=输出,10=RXD0,11= IIS数据输入 GPH2[5:4]00=输入,01=输出,10=TXD0,11=保留 GPH1[3:2]00=输入,01=输出,10=nRTS0,11=保留 GPH0[1:0]00=输入,01=输出,10=nCTS0,11=保留 5)UART线路控制寄存器(ULCONn n可以是0、1、2)ULCONn的位[7][6][5:3][2][1]描述保留 值为0确定红外模式 0=正常操作模式
1=正常操作模式确定校验类型 0xx=无校验 100=奇校验
101=偶校验确定停止位数 0=1位停止位
1=2位停止位确定数据位 00=5位01=6位
10=7位11=8位6)TCFG0寄存器 TCFG0的位功能描述初始状态值
[31:24]保留0x00[23:16]在此不用0x00 [15:8]确定Timer2,Timer3,Timer4的预分频系数0x00[7:0]确定 Timer0,Timer1的预分频系数0x007)TCFG1寄存器 TCFG1的位功能描述初始状态值[31:24]保留0x00 [23:20]在此不用0b0000 [19:16]确定Timer4的分频器值0000=2 0001=4 0010=8 0011=16 [15:12]确定Timer3的分频器值0000=2 0001=4 0010=8 0011=16 [11:8]确定Timer2的分频器值0000=2 0001=4 0010=8 0011=16 [7:4]确定Timer1的分频器值0000=2 0001=4 0010=8 0011=16 [3:0]确定Timer0的分频器值0000=2 0001=4 0010=8 0011=16 说明:设置TCFG0、TCFG1可以确定预分频器系数、分频器值,如:通过设置TCFG0为0x0000001F,Timer0的预分频器系数选择为31,设置TCFG1为0x00000001,Timer0的分频器值选择为4。通过下面公式计算定时器的计数常数:
定时器输入时钟频率=PCLK/(预分频系数+1)/分频器值 计数常数=定时时间间隔/(1/定时器输入时钟频率)预分频系数的范围为0~255,分频器值的取值范围为2、4、8、16。6)TCON寄存器(注:此处不用的位被省略,其值默认为0x0000000)
TCON的位功能描述初始状态值厖0x0000000[3]确定Timer0的自动装载功能 1=自动装载0=一次停止0b0[2]确定Timer0的输出反转位 1=TOUT0反转0=TOUT0不反转0b0[1]确定Timer0的更新
1=更新TCNTB0和TCMPB0 0=不更新0b0[0]确定Timer0的启动/停止 1=启动0=停止0b0
第套2参考答案
一、选择题答案
1-5:CBCAA 6-10:AADCC 21-25:BCDAD 26-30:BCBDA
11-15:DDCAB 16-20:ABDDB 31-35:DDACA 36-40:ADCBD
二、填空题答案
1:英 2:ARM 3:GB2312 4:2 5:TCP/IP 6:IP 7:复位
8:外部中断请求 9:R13 10:R14
三、综合题答案 11:0xFF34FF78 12:0x12345678 13:1100 14:1000 15:ADDCEQ R3,R1,R2 16:SUBHIS R3,R1,R2 17:AMBA 18:总线 19:模拟 20:数字
21:NOR 22:NAND 23:1332 24:10
25:主机输入从机输出26:主机输出从机输入27:中断 28:任务 29:任务 30:存储
31:加电自检 32:操作系统 33:汇编 34:可移植 35:低 36:高 37:宿主机 38:JTAG 39:驱动
40:0x10000000
由于嵌入式系统具有体积小、性能好、功耗低、可靠性高以及面向应用的突出特点,因此嵌入式系统已被广泛应用于军事、国防、电子信息、家电、网络通信、工业控制等领域。嵌入式系统的应用前景是非常广阔的,IC卡、手持电脑、智能手机、车载GPS、数字电视机顶盒,人们在生活中无时无处不接触到嵌入式产品,尤其是嵌入式无线网络产品的出现,使嵌入式产品和我们的生活紧密相连。在方便人们生活的同时,嵌入式系统本身也取得了巨大的发展,由之推动了嵌入式操作系统的快速进步。嵌入式操作系统与传统的操作系统有很大的不同,这也对操作系统教学提出了不同的要求。
1 嵌入式对于操作系统教学的需求
嵌入式系统是一种特殊的计算机系统,但在其特殊性首先是建立在计算机系统的普遍特性之上。现代计算机系统已经越来越离不开性能良好的操作系统和网络的支持,而嵌入式系统也是如此。从近5年来看,嵌入式系统中取得巨大发展的是拥有操作系统的嵌入式系统。未来,随着IPv6协议的全面使用,IP地址的数量将极大增加,到时每一个嵌入式终端都可以拥有自己的IP地址,网络对于嵌入式系统的重要性将前所未有的表现出来。因而,要学习好嵌入式系统首先要对操作系统的相关理论有很好的认识。
操作系统可以被看作是计算机系统的指挥中心,统管整个系统的所有资源,制定不同资源的分配策略,调度系统中运行的用户程序,协调它们对资源的需求,从而使整个系统在高效、有序的环境里运行。这中间就需要明确操作系统到底是怎样管理资源的,使用什么样的方式分配资源,使用什么样的方式协调整个系统的运行。
同时,操作系统又是一个具体的概念,只有对应具体的操作系统进行讲解,才能真正理解相关理论。作为嵌入式系统中使用最多的操作系统,同时又是开源软件的Linux就成为了最好的范例。所以,有必要将Linux操作系统的基础知识也同时进行学习。
2 教学内容的选择与构建
根据嵌入式系统的需求,可以确定教学的内容,主要分为三大部分:第一部分是传统操作系统的理论知识;第二部分是Linux操作系统的基础知识;第三部分是如何构建一个嵌入式操作系统。
2.1 嵌入式基础理论
嵌入式基础理论中应当着重讲解操作系统内核的概念,进程的概念,如何对进程进行调度,内存的管理,设备和接口管理,文件系统和文件管理等内容。这些内容都是传统操作系统课程中最核心的部分,通过这些内容的学习,要使学生具有学习后续课程的基础理论。但有别于传统的操作系统课程,对于一些极少使用的知识点必须进行删减,以节约教学时间。
2.2 Linux操作系统基础
Linux操作系统基础着重讲解Linux操作系统的基础知识。包括Linux操作系统的内核、文件系统、调度机制,以及如何使用Linux操作系统进行文件管理,权限管理,进程管理和提供各种网络服务。通过这部分内容的学习,首先为学生下一步的学习打下基础,最重要的是把学生Windows等于操作系统的错误概念改正过来,使学生真正对操作系统这个概念有一个具体化的认识。
2.3 构建嵌入式操作系统
这部分将介绍如何使用Linux操作系统为基础,构建一个嵌入式操作系统,包括内核的裁剪和移植,文件系统的使用,驱动的使用等方面。通过这部分教学,使学生对于嵌入式操作系统有明确的认识。
3 实验的选择与设计
在操作系统教学中,实验是必不可少的环节。根据嵌入式对于操作系统对于实验的需求,可以分为两大类。第一类是在虚拟机环境下的实验。第二类是嵌入式环境中的操作系统构建。
3.1 虚拟机环境下的实验设计
Linux操作系统的使用和常见的Windows操作系统有很多的不同,在Linux系统中图形界面只被作为一个用户程序存在,随时可以关闭,同时其文件系统及操作命令也和Windows不相同,因而有必要专门对其进行实践练习。但Linux操作系统中的root用户权限极大,初学者在使用该用户进行操作时常常造成各种问题,所有通常在给Linux初学者搭建实验平台是一般会使用虚拟机软件(如Vmware等)搭建一个虚拟平台。这类虚拟平台可以创建虚拟系统的镜像,如因操作错误引起问题,可以快速的通过还原镜像来解决。
在虚拟机环境下的实验主要是帮助学习Linux操作系统的基本操作,包括Linux系统的安装,Linux系统中文件的管理,权限的管理,用户的管理,进程的管理,及使用Linux系统提供各种网络服务。
3.2 嵌入式环境下的实验设计
由于嵌入式操作系统的特殊性,仅仅在PC环境下对其进行虚拟测试并不能保证其在嵌入式环境中的正常使用,因而需要使用一个真实的嵌入式环境来进行嵌入式操作系统构建的相关实验。这里可以使用嵌入式实验箱来进行。实验包括Bootloader引导程序的使用;Linux的移植、文件系统的生成与下载;Linux的驱动程序(键盘驱动、LED灯驱动、马达驱动等)的编写;Linux的应用程序的编写;使用实验箱上网等。
4 教学的方法与手段
4.1 结合计算机学科的发展现状,将各类知识综合串讲
计算机学科是一个发展迅速的学科,因而常常出现教材内容与目前的发展现状相脱节的问题。因此在授课时要特别注意查阅最新资料,用以代替教材中与目前发展现状不相符的地方。如对于处理器的主频制造工艺,内存储器的容量频率等都以最新的资料代替书中的内容,对于嵌入式系统讲解时以学生常见的智能手机为例,这些都能增加学生的学习兴趣,提高教学效果。同时,教学中应注意将多门课程的知识综合串讲,力图使学生将所有知识融会贯通,能够从整体上来理解所学。
4.2 案例式教学
实验与教学紧密结合是计算机类学科教学的一个重要特点,非常适合使用案例式教学。案例式教学的基本步骤是提出一个目标,通过分析,总结出解决方案,然后动手解决。在解决的过程中由学生为主导,教师给以指导。这种教学方法能够充分激发学生的学习热情。
4.3 分层次递进教学
学生的理解能力和知识基础各不相同,搞一刀切的教学难于做到使所有学生都受益。分层次递进的教学方式,改变过去将所有知识点一起教授的教学方法,转而从最基础核心的知识点讲起,逐渐扩展,将知识点按难度逐渐讲授。这样使所有学生都能有所得。
4.4 改革考核方式
事实证明“一张试卷打天下”的考核方式往往并不能真正反映出学生对于知识的掌握和运用情况。考核中可以引入更多的内容,如让学生按要求对Linux操作系统下的文件、权限、用户等进行管理,在嵌入式实验箱上编写一段简单的驱动程序等。把这些作为考核的重要组成部分可以很好的反映出学生运用所学知识解决具体问题的能力。
5 结论
随着嵌入式系统的快速发展,传统的操作系统课程不再适合嵌入式系统开发的需要。因而有必要对其从教学内容、教学方法和实验设计等方面进行一定的改变,使之满足嵌入式系统开发的需求。
摘要:近年来嵌入式系统,尤其是具有操作系统的嵌入式系统取得了极大的发展。传统的操作系统课程已经不能满足嵌入式系统发展的需求,因而有必要对操作系统教学进行调整。文章中针对嵌入式系统的需求,讨论了操作系统课程如何选取教学内容、设计实验,并对教学方法进行了一定研究。
关键词:嵌入式,操作系统,教学
参考文献
[1]韦照川,李德明.嵌入式系统发展概述[J].科技信息,2010(1):839.
[2]刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:航空航天大学出版社,2006.
[3]杨丽萍.王自力.基于嵌入式Linux的网络操作系统设计[J].微计算机信息,2009(25):120-121.
[4]毛敬玉.浅析Linux操作系统教学[J].科技信息,2010(25):204.
关键词:嵌入式系统;家居控制系统;研究;探讨
中图分类号:TP311文献标识码:A文章编号:1007-9599 (2011) 05-0000-02
Home Control System Research Based on Embedded System
Zhou Zuhua
(Vocational and Technical College,Guizhou University,Guiyang550003,China)
Abstract:At present,the rapid development of family intelligent technology,the family intelligent controller of home intelligent system is the key.Home control system based on embedded system has become one of our development focus of the study.Based on the study of a large number of home and abroad on the basis of the control system,a home control system to achieve:that is, the control module to combine with the operating system,plus a variety of sensors embedded home control system.
Keywords:Embedded system;Home control system;Research;Discussion
一、嵌入式系统家居控制系统的硬件设计及功能
对基于嵌入式系统家居控制系统的进行研究探讨,就需要我们对其硬件进行科学合理的设计,并充分实现其功能作用。因此,在设计嵌入式系统家居控制系统的时候,我们必须要充分考虑到控制系统的科学、稳定、扩展等特点。这样,就要求我们必须把嵌入式系统家居控制系统的硬件设计当作其中最为核心的组成部分来进行,尽量优化设计,最大限度地发挥其功能作用。一般情况下,我们可以把嵌入式系统家居控制系统设计成为核心模块和控制模块两个部分。在嵌入式系统家居控制系统中,核心模块主要用来构建嵌入式控制系统的,而控制模块则主要是一些位置处于外面环境的接口所组成的。实际上,嵌入式系统家居控制系统的硬件主要有:核心模块主要是由处理装置(如微处理器等)以及处于外面环境中的存储芯片等所组成的。就嵌入式系统家居控制系统的发展而言,三星公司所生产的S3C2440微处理器使用最多最广。这是因为,S3C2440微处理器被广泛应用到多媒体软件、便捷式通信产品等嵌入式系统内,同时还能够比较轻易地运行到Windows CE中。此外,因为整个嵌入式系统家居控制系统的实现要求比较高,所以采用三星公司生产的S3C2440微处理器则能够很好地满足了这些要求。处于外面环境中的存储芯片,即控制模块则采用芯片,通过串口信号线与微处理器相互连接,同时通过CPU进行控制。不过,这样需要增加相应的驱动线路。但是其触摸屏则采用了四线电阻式,直接把它同CPU相互连接起来。
二、嵌入式系统家居控制系统的软件设计及功能
通过Windows CE操作控制系统可以实现和满足嵌入式系统家居控制系统对实时性以及网络功能的具体要求。不过,我们也必须同时综合考虑开发成本以及难易程度等因素。此外,Windows CE操作控制系统具有比较好的用户界面,而且比较容易于操作、控制和管理等。同时,在嵌入式系统家居控制系统中,我们主要是应用层面的开发与研究。因此,选用Windows CE操作控制系统比较适合,也比较划算。但在Windows CE操作控制系统产品的开发过程中,有以下几个方面的重要内容值得我们重视:一是驱动程序的研究开发;二是内核定制;三是应用程序的研究开发等。以上几点在嵌入式系统家居控制系统极为重要与关键。而微软在这些方面都提供了比较好的开发工具,因而也就成为了内核定制以及应用程序研究开发的重要工具之一。
(一)嵌入式系统家居操作控制系统的平台定制
在嵌入式系统家居控制系统中,其硬件平台成功组建以后,我们必须结合具体的家居应用实际,针对特定的硬件定制嵌入式操作控制系统,这也是本文研究和探讨的重点。可以这么说,要想直接在嵌入式系统家居控制系统的硬件平台上编写相应的软件是相当困难的,因为嵌入式系统家居控制系统资源受到极大的限制。当前,人们通常是采用宿主机或者目标机等的方式进行,即就是首先在相应的电脑上编写控制程序,接着应用交叉编译方式,从而生成在目标平台上可以运行的二进制程序或文件,最后一个步骤是下载到相应的目标平台上运行,进而实现其功能与作用。但是,在进行嵌入式系统家居控制系统研究开发以前,我们必须首先要建立和配置好交叉研究开发的环境与条件。Windows CE操作控制系统作为一个很好的平台,其定制过程主要包括以下几个方面:一是确定并选择操作系统的基本配置,并且要为特定的操作控制平台确定和选择相应的微处理器以及支持包等。二是利用标准研究开发向导,并根据Windows CE操作控制系统的基本架构,结合目标硬件设备研究开发、添加适当的组件、设备驱动程序等,创建一个定制的平台。如果可以,就对一些配置文件进行修改之后,再培植所需要的功能模块中去,与此同时通过编译进而生成相应的镜像文件。三是应用串口、网络或USB等把编译生成的相应镜像文件下载到目标设备中,可以使用调试工具查看Windows CE操作控制系统的运行情况,并可以随时进行调试或修改。若有必要,可以重新进行配置、封装、调试以及修改等,直到达到用户的要求为止,从而更好地实现嵌入式系统家居控制系统的功能。四是最后需要导出相应的软件研究开发工具包,在运行后安装到系统中,从而使得系统可以进行特定硬件平台的应用程序研究与开发。
(二)嵌入式系统家居控制系统驱动程序的研究开发
通常情况下,由于嵌入式系统家居控制系统的驱动程序涉及到中断驱动程序和GPIO 驱动,因此可以采用单片驱动程序和分层驱动两种方式进行。在这里,单片驱动程序我们就不用多说了,而主要研究分层驱动程序。分层驱动程序主要由两个部分组成,即模型设备驱动程序依赖平台的驱动程序。微软为连接驱动程序提供了相应的设备驱动程序,模型驱动程序对于平台来说都是通用的,也就是同时都是源代码和库。总体上看,模型驱动程序主要执行以下任务:一是连接设备驱动程序提供器接口;二是把不同的操作控制系统连接在一起;三是负责与系统控制模块与内核之间的通信,与此同时,也包括诸如中断控制等一些复杂的操作。而设备驱动程序接口主要是供模型设备驱动程序调用,主要由模型设备驱动程序提供。而对于分层驱动程序方面,编写驱动主要就是要编写直接操作处理器中寄存器的相应数值和操作系统平台中传递的参数。通常,它们在操作控制系统的层面上,通过传递数值和返回参数,修改和获取S3C244的相应数值,并通过调用相关应用程序来实现需要的控制功能。
(三)嵌入式系统家居控制系统应用软件的研究开发
作为微软公司研究开发的Windows CE操作控制系统具有与Windows系统基本一致的功能与作用。当然,Windows CE操作控制系统的研究开发也有着自己显著的特征。对于Windows CE操作控制系统应用软件的研究开发,我们应当注意以下几点:首先,必须使用Unicode字符集的程序。其次,程序代码应当做到和最小,因为嵌入式设备一般都没有太大的空间容纳像台式电脑那样的内存,如果程序过大,运行的时间就会延长。再次,Windows CE操作控制系统应用软件的程序主要是通过驱动程序读取。直接获取与S3C2440端口相连的传感器的状态和数值后,把相关信息返回Windows CE操作控制系统应用软件的程序中,程序再根据传感器的状态及数值又把关联的信息通过调用串口驱动程序,发送相应的命令并传给有关功能模块,随后该模块发送信息到用户手机,用户就可以随时看到家中的变化。倘若用户要对家中的一些设备进行操作,就可以应用发送信息的方式把控制信息传给有关功能模块,该功能模块再将此信息又传到Windows CE操作控制系统应用软件的程序中,这时应用程序就可以控制相应的端口了,进而满足用户的具体要求。
三、结束语
在当今社会,随着家庭智能化技术的全面快速发展,家居控制系统的重要意义和作用越来越凸显在人们的面前,这也是嵌入式系统家居控制系统的关键所在。因此,我们必须结合实际,坚持以先进的现代科学技术和通信技术为前提与基础,尽力做到以嵌入式系统为技术核心,不断优化家居控制系统的结构与功能,保证其功能全面、性能稳定、耗能低下等特征,促进其全面快速健康发展,更好地为人们提供方便快捷的服务。
参考文献:
[1]赵静,梅军.嵌入式智能家居控制系统的研究与设计[J].今日电子,2010,2
[2]彭小军,李荣.基于ARM的嵌入式智能家居控制系统研究[J].低压电器,2009,18
[3]郭海杰,吴飞,雷必成.嵌入式智能家居控制系统的研究[J].福建电脑,2009,3
实验(实习)名称
电机转动控制及中断实验 实验(实习)日期
2016.5 得分
指导教师 谢胜东
学院 计算机与软件 专业 计算机科学与技术 年级
2013 班次 3 姓名
叶正舟 学号
20131308072 实验名称
电机转动控制及中断实验 实验目的
(1)熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置
(2)编程实现 ARM系统的PWM 输出和I/O 输出,前者用于控制直流电机,后者用于控制步进电机。
(3)了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。
(4)掌握带有PWM 和I/O 的CPU 编程实现其相应功能的主要方法。实验环境
(1)ADS1.2开发环境(2)PC(3)串口线 实验内容及要求
学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM知识,掌握PWM 的生成方法,同时也要掌握I/O 的控制方法。
(1)编程实现ARM芯片的一对PWM 输出用于控制直流电机的转动,通过A/D 旋钮控制其正反转及转速
(2)编程实现ARM的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动,通过A/D 旋钮转角控制步进电机的转角。
(3)通过超级终端来控制直流电机与步进电机的切换。实验设计与实验步骤
(1)新建工程,将“电机转动控制实验”中的文件添加到工程(2)编写直流电机初始化数(MotorCtrl.c)(3)控制直流电机与步进电机 实验过程与分析
(1)通过把从串口中得到控制信息的代码修改成从zlg7289芯片中读取小键盘信息,从而利用试验台的小键盘来控制步进电机和直流电机的切换
(2)A/D转换可以把电信号转换成数字信号来控制电机的转速。for(;;)
{ loop:
//if((rUTRSTAT0 & 0x1))//有输入,则返回
if(rPDATG&ZLG7289_KEY)//17键小键盘控制电机
{
*Revdata=RdURXH0();
goto begin;
}
Delay(10);ADData=GetADresult(0);
if(abs(lastADData-ADData)<20)
goto loop;Delay(10);count=-(ADData-lastADData)*3;
//(ADData-lastADData)*270/1024为ad旋钮转过的角度,360/512为步距角,//由于接了1/8减速器,两者之商再乘以8为步进电机相应转过的角度
if(count>=0)
{//转角大于零
for(j=0;j { for(i=0;i<=7;i++) { SETEXIOBITMASK(stepdata[i], 0xf0); Delay(200); } } } lastADData=ADData; } } 实验结果总结 利用A/D转换器实现了对直流电机和步进电机的控制,利用实验设备上自带的小键盘实现了A/D转换器对两个电机控制的切换。心得体会 设计题目:用键盘控制LED显示不同图形 中央民族大学 二零零八年十月三十一日 一、设计目的 了解LED点阵和矩阵键盘的工作原理。 二、设计内容 编写程序控制用矩阵键盘控制LED点亮,产生不同的图形。 三、设计方案 功能概述: 本设计要实现的功能是通过键盘控制LED点阵图形显示,如果键盘输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。 1、程序设计思路 本设计要实现键盘控制LED点阵图形显示,就必须要编写键盘和LED点阵的程序。先通过扫描矩阵键盘,得到键盘值,然后再调用点阵显示子函数,根据扫描的键盘值,在LED点阵上显示不同的图形。 2、主程序设计 主程序要实现的功能是矩阵键盘扫描,得到键盘值,然后把值传给LED显示函数。 程序流程图如下: 3、LED点阵显示函数设计 本函数要实现的功能是根据键盘的值,在LED点阵上显示不同的图形。如果键盘的输入值为0-9则显示相应的数字,如果输入的是其他值,则显示“+”。本程序采用二维数组存放要显示的图形的字模,然后再通过逐行扫描LED点阵,把要显示的图形分8次显示,一次显示一行,利用人眼的视觉暂留效应,是人看到的是一个图形一次显示出来,通过一个循环控制图形显示的时间。程序流程图如下: 4、点阵图形设计 根据8*8 LED点阵的原理,8X8 点阵共需要64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0 电平,则相应的二极管就亮; 先绘制出要显示的图形如下: 根据图形中点亮的LED灯的位置,得到相应图形的16进制数,存放在二维数组Buf1[11][8]中。 所以要显示的图形的字模如下: buf1[11][8]={ {0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0 {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1 {0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2 {0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3 {0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4 {0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5 {0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6 {0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7 {0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8 {0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9 {0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00} //+ }; 四、程序源代码 //*************************************************************** #include #define DEVICE_NAME “/dev/led_ary_ctl” #define DEVICE_NAME1 “/dev/keypad” void Key(unsigned char b[]); //------main----int main(void){ int fd; int ret; unsigned char buf[2]; double x; char pre_scancode = 0xff; printf(“n start keypad_driver test nn”); fd = open(DEVICE_NAME1, O_RDWR); printf(“fd = %dn”,fd); if(fd ==-1){ printf(“open device %s errorn”,DEVICE_NAME1);} else { buf[0]=0x22; while(1) { read(fd,buf,1); if(buf[0]!= pre_scancode) { if(buf[0]!=0xff) { printf(“key =%xn”,buf[0]); Key(buf); } } pre_scancode = buf[0]; usleep(50000); } // close ret = close(fd); printf(“ret=%dn”,ret); printf(“close keypad_driver testn”);} return 0;}// end main //***************************************************************************** //---------------void Key(unsigned char b[]){ int fd; int ret; int i,j,k; unsigned char buf[2]; unsigned char buf2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char buf1[11][8]={{0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0 {0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1 {0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2 {0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3 {0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4 {0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5 {0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6 {0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7 {0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8 {0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9 {0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00} //+ }; // begin of led ary buf[0]= 1; buf[1]= 0; if(b[0]<=9)i=b[0];else i=10; fd = open(DEVICE_NAME, O_RDWR); printf(“fd = %dn”,fd); if(fd ==-1) printf(“open device %s errorn”,DEVICE_NAME); else { for(j=0;j<=5;j++) { for(k=0;k<8;k++) { buf[0]=buf1[i][k];buf[1]=buf2[k]; write(fd,buf,2); } usleep(1); } // close ret = close(fd); printf(“ret=%dn”,ret); printf(“close led_driver testn”);} } //- 五、设计结果 实现键盘控制LED点阵显示,输入0-9十个数字时显示相应的数字,如果输入其他的键,则显示“+”号。 六、心得体会 通过本次实验,我们对linux下的实验更加熟悉了,对LED点阵显示和矩阵键盘的原理有了深入的了解,掌握了点阵图形的设计方法和键盘的输入的读取,并把二者结合起来,实现了键盘控制点阵图形现实。 第一章:ARM2410CL嵌入式系统基础实验 实验一ARM2410CL嵌入式教学实验系统 实验报告要求: (1)简述嵌入式LINUX开发的流程。 实验二 嵌入式LINUX开发环境的配置 实验报告要求: (1)简述嵌入式LINUX开发环境配置的具体步骤。 (2)简述网络文件系统(NFS)。 第二章:系统实验 实验一 LINUX基本应用程序编写实验 实验报告要求: (1)简述交叉编译器基本概念及简述计算机平台和ARM平台编译环境的异同。 (2)简述Makefile文件作用和基本组成。 (3)ARM中怎样将编写的应用程序下载到LINUX中?怎样在LINUX中运行该程序? 实验二 串行端口程序设计 实验报告要求: (1)简述LINUX下的串口程序设计的基本步骤。 (2)编写一个简单的文件收发程序完成串口文件的下载并画出实验流程图。 第三章:内核与根文件系统实验 实验一 内核移植与编译实验 实验报告要求: (1)LINUX内核移植的基本概念。 (2)简述LINUX内核配置和编译步骤。 实验二 根文件系统实验 实验报告要求: (1)简述文件系统的基本概念并列出LINUX下根文件系统的目录结构及习惯用法。 (2)在LINUX下,怎样制作cramfs格式的根文件系统? 实验心得:(要求写出关于本次实验收获及实验教学的意见及建议) 注:1.实验报告要求使用实验报告纸完成。 电力监测系统由电网监控仪、客户端计算机和W e b浏览器组成, 其中电理监测仪和客户端计算机构成客户-服务器分布式网络结构, 客户端计算机和W e b浏览器构成浏览器一客户机模式, 均通过I n t e r n e t进行网络通信。 1 构建嵌入式Linux软件开发平台 嵌入式L i n u x强大的网络支持功能, 低廉的价格以及众多开发人员的维护成为嵌入式网络监控系统操作系统的首选。选用J a v a语言, 是由于其强大的移植能力、多线程处理和联网能力。系统的软件平台一共包括两大组成部分:嵌入式L i n u x平台的构建和Embedded开发环境搭建。 1.1 Linux内核移植和编译 L i n u x是一个移植性非常好的操作系统, 它广泛支持许多不同体系结构的计算机系统。关于L i n u x的移植其实是一件相当复杂的事情, 一般情况而言, 从内核官方网站上得到的内核源码远远不能在它所支持的平台上运行。从官方网站上得到的内核源码只能保证在X 8 6平台上能够正确运行成功, 其它平台上的代码还不是经过严格测试。要使Linux内核在ARM9平台上运行成功, 不仅要求开发者对A R M 9平台有深入的理解, 对L i~内核有深入的解析, 还要对G N U工具链有足够的认识。因此可以说要移植L i n u x内核, 一般的开发人员是没有足够的能力完成。尽管移植L i n u x内核是一件非常困难的事情, 但是也有简单的解决方法, 那就是去ARM平台内核树维护者Russell King的网站下载有关于ARM9平台的Linux内核补丁, 另外需要将内核打上补丁才可以在ARM平台上运行[3]。 1.2 Linux下构建Qt/Embedded开发环境 一般来说, 由于基于Qt/Embedded开发的应用程序会最终发布到嵌入式L i n u x操作系统的小型设备上, 所以使用安装有L i n u x操作系统的P C或者工作站来完成QdEmbedded开发环境。 在搭建环境时, 一定要在安装R H 9时选择全部安装, 不然搭建环境时会出错。在这里我选用的是广州友善之臂提供的两个开发包, 分别是arm-qtopia.tgz和x86-qtopia.tgz, 下面重点介绍如何搭建Qt/Embedded开发环境。 2 电力监控系统中的软件设计 2.1 Linux下的网络通信程序设计 T C P/I P是用于计算机通信的一组协议, 它是Internet协议族, TCP/IP协议包括TCP, IP, UDP, TELNET, FTP, SMTP, ARP, TFTP等许多协议, 这些协议一起称为TCP/IP协议。 L i n u x支持B S D的套接字和全部的T C P/I P协议, 是通过网络协议将其视为一组相连的软件层来实现的, B S D套接字 (BSD Socket) 由通用的套接字管理软件支持, 该软件是I N E T套接字层, 用来管理基于IP的TCP与UDP端口到端口的互联问题, 从协议分层来看, I P是网络层协议, T C P是一个可靠的端口到端口的传输层协议, 他是利用I P层进行传接报文的, 同时也是面向连接的, 通过建立一条虚拟电路在不同的网路间传输报文, 保证所传输报文的无丢失性和无重复性。 网络通信大部分是在客户机/服务器模式下进行的, 例如使用t e l n e t连接到主机的端口时, 主机就开始运行t e l n e t的程序, 用来处理所有进入的t e l n e t连接。本系统服务器端程序在L i n u x下设计, 客户端程序在Java环境下设计。 本程序设计有以下几步组成。 (1) 通过函数socket () 建立一个套接口。 (2) 通过函数bind () 绑定一个地址, 包括本地I P地址和端口地址。 (3) 通过函数listen () 监听客户端的新的连接请求。 (4) 通过函数accept () 进入无限循环, 接受客户端新的连接。 2.2 Embedded图形用户界面设计 图形用户界面GUI (Graphics User Interface) 是迄今为止计算机系统中最成熟的人机交互技术。一个好的图形用户界面的设计不仅要考虑到具体硬件环境的限制, 而且还要考虑到用户的喜好等等。 Qt/Embedded是一个为嵌入式应用定制的用于多种平台图形界面程序开发的C++工具包, 以原始Q t为基础, 做了许多适合用于嵌入式环境调整, 是面向对象编程的理想环境。Qt/Embedded通过Qt API与L i n u x/I O设备直接交互, 面向对象的体系结构势代码结构化、重用并且运行快速。与其他GUI相比, Qt GUI非常快, 没有分层结构, 这使得它成为运行基于Q t的程序的最紧凑环境。 Q t拥有一系列能满足不同需要的窗口部件, 如按钮、滚动条等。Q t中有3个主要的基类:QObject, QTimer和QWidget。窗口部件是QWidget或其子类的实例, 自定义的部件则是通过子类继承得来。为了实时显示电网1-3 1次谐波、电网频率、电网电压电流有效值、功率因数、T H D等电网数据, 本文设计的应用程序需要很多Q W i d g e t部件和一些自定义类。 3 结语 本系统采用嵌入式电力监控系统对电网参数进行监测, 并把监测数据通过Internet传送到远程监控主机中, 专业人员就可以远程对设备的运行进行及时、准确监控, 对其故障先兆做出判断和预测, 采取有效措施解决问题, 就可以保证大型机组安全运行, 防止恶性事故的发生, 避免了定期检修引起的生产停顿, 预防和消除故障, 提高设备运行的可靠性、安全性和有效性。 参考文献 [1]李环, 任波.电力谐波参数检测系统的设计[J].沈阳工业学院学报, 2002, 21 (3) :37~39. [2]翟洪叶, 符影杰.基于A R M的电网电压谐波监测仪的研制[[J].中国仪器仪表, 2006, 10:32~35. 关键词:多任务操作系统;嵌入式系统;开发;应用 中图分类号:TP316.2 文献标识码:A 文章编号:1674-7712 (2014) 18-0000-01 所谓多任务系统,顾名思义就是指能够满足实时控制系统的实时性要求,可以有效地管理系统及资源的操作系统软件,随着近些年来对互联网技术的需求,凭借其在企业管理之中的重要地位,获得了飞速发展的机会,一般说来多应用在嵌入式系统之中,两者相辅相成。众所周知,嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统,并以计算机作为运行基础,如何才能够将两者有机的结合,已经成为越来越多专业人士密切关注的人们话题之一,本文仅代表个人观点,片面偏颇之处,还望不吝指正。 一、项目概述 (一)任务及多任务 就计算机技术工程之中,任务是指独立执行的一个功能或这个处理的过程,是RTOS调度的基本单位。一般说来,在一个多任务处理的环境之下,只有当其它程序认可的时候,一个运行程序才可获得处理的时间。在现实的生活之中,这种技术的应用可以表现为在计算机上多程序的运行,可以较大程度的提高人们利用互联网的效率,提高居民幸福指数,此外在企业的应用之中,通常表现为对机器、装置多种工况的实时监测,可以有效地提高机器、装置运行效率,促进生产力的进一步提升。 (二)调度方式 随着时代的不断快速发展,激烈的市场竞争要求任务及多任务技术的应用必须更加精确的采样和实时反馈信息,所以,多任务操作系统的优势可以说是十分显著的。任务调度在一个任务的完成、中断处理结束以及任务被阻塞时执行。调度的时候首先要得到最高优先级的就绪任务,然后再进行现场的保存和恢复。 (三)发展趋势 正如上文所述,城市化进程的加剧,使人类对于计算机的运行做出了更高的要求,多任务操作系统在嵌入式系统开发中的应用,可以有效、及时的反馈信息,不仅仅对于民用互联网技术的提高,具有非常重要的意义,且在企业中的意义也十分的显著,主要表现在促进企业管理的方面,有鉴于此,其发展一直备受关注,然而随着时间的逐渐推移,其中也逐渐暴露出一些问题,正日益阻碍该领域成果的取得,所以,必须要及时的提出切实可行的方案,才能够为其发展重新注入活力,促进生活质量及综合竞争力的更好提高。 二、多任务操作系统在嵌入式系统应用的不足之处 (一)技术层面 就我国互联网的发展现状而言,技术方面的缺陷是当前首要处理的问题之一。计算机的起源可以追溯到1946年,由美国人率先研制并使用,第三次工业革命的爆发,促进了以互联网技术为基础的计算机行业的蓬勃发展,至今计算机互联网已经成为科技的象征,并在国民经济之中占据重要的成分。然而由于我国在该领域的发展和起步都比较的晚,且起初的重视程度不够高,一些居民对待其态度也有失准确,导致其发展还远远不如其他发达国家,甚至更多的互联网技术都只是舶来品,没有多少能代表我国技术的标志性产品。此外,由于我国教育制度的不足,大多数学校培养的人才缺乏创新,使技术瓶颈也很难得到大的突破。 (二)管理层面 在管理层面导致计算机互联网技术不足,主要表现在软件开发企业和应用该技术的企业。在软件开发企业之中,由于上文所提及的技术性缺陷,导致在人员的管理上存在缺陷,笔者通过对相关数据的整理和分析发现,众多计算机软件开发公司在职员的录用上,大多忽视对高校专业人士的重视,因为他们缺乏一定的实践经验,对职员的学习机会也不加把握,往往只是培养少数骨干,所以,在整个业内难以形成浓郁的学习成长氛围,此外各软件公司之间的竞争也属于一种混乱无序的状态。在一般企业的应用中,由于内部关系逐渐呈现复杂化的趋势,企业经营者一味追求利益,也忽视该技术的运用及升级,尤其是中小型企业,该技术的应用近乎空白,这些客观因素的存在,无疑都在一定程度上阻碍多任务操作系统在嵌入式系统之中的应用。 三、多任务操作系统在嵌入式系统应用的相应对策 (一)技术层面 正如上文所述,我国计算机互联网技术仍然处于起步阶段,针对技术不足的现象,个人认为不妨通过政策予以大力的扶持与鼓励,改变从前的教育模式,实现企业和高校之间的密切合作,形成一股有效的合力,共同推动人才的成长,为计算机互联网技术的发展提供坚实的技术保证;在企业内部,重视职员的学习机会,使每个职员都有机会为企业的发展贡献才智;通过现代传媒的手段,普及互联网的知识,吸引更多专业人士的关注,共同致力于互联网技术的更好发展;建立软件开发区,通过各个企业之间的良性竞争,激烈共同发展。 (二)管理层面 在管理層面,必须革新企业经营者的发展观念,通过各种符合时代发展要求的观念理念,为多任务操作系统在嵌入式系统的应用保驾护航;加强和高校之间的联系,使最新的研究成果更加有效地运用到现实生活当中,促进该技术的升级;建立健全、完备的监督制度,规范企业内部的管理,为计算机技术的应用提供一定的制度保证。 四、结束语 正如上文所述,随着时代的不断快速发展,计算机技术的应用不仅仅能够为居民的生活品质提高做出相应的保障,还能够在较大程度上提升企业的综合竞争力,有鉴于此,必须对其有正确的认知,并能够积极分析其存在的不足,技术予以妥善的解决,促进该领域的健康、稳定发展,本文仅结合个人多年的工作实践经验,就多任务操作系统在嵌入式系统之中的应用展开了论述,旨在促进该行业的更好发展,观点片面不足之处,还望专业人士不吝指正。 参考文献: [1]荣国平,刘天宇,谢明娟.嵌入式系统开发中敏捷方法的应用研究综述[J].科学学报,2014(02). [2]喻亮.嵌入式系统的结构特征与研究概况[J].企业科技与发展,2010(08). 【嵌入式系统试题库】推荐阅读: 嵌入式系统开发试题07-19 嵌入式毕业论文:嵌入式系统的应用06-19 构建嵌入式linux系统10-25 嵌入式系统学习心得07-11 嵌入式系统设计课程设计大纲(给学生)10-22 嵌入式笔试题及答案11-22 嵌入式培训总结06-17 实习总结嵌入式11-11 嵌入式开发学习心得11-16 嵌入式应用实践总结12-17嵌入式系统课程设计 篇5
嵌入式系统实验报告 篇6
嵌入式系统试题库 篇7
嵌入式系统试题库 篇8