交通管理系统在Linux环境下实现
Circuit Sound Controller)为立体声频串行接口控制器,AC97(AC'97Controller Unit)为声频控制单元。I2S和AC97不能同时应用。UART(Universal asynchronous Receiver/Transmitter Serial Ports)异步接收/发送端口支持三种异步接收/发送UART模式。NSSP(Network Synchronous Serial Protocol)为网络同步串行端口,SSP为同步串行端口。SlowIrDA(Slow Infrared Data Association)为慢速红外线通信端口,FastIrDA为快速红外线通信端口。USB Client(Universal Serial Bus Client)为通用串行总线单元。MMC(Multimemedia Card Controller)为多媒体控制器。
|
PXA255的具体特征为:
(1)PXA255是一个32位处理器;
(2)Intel XscaleTM内核采用ARM*Version 5TE型指令结构,其中T指Thumb指令集,E(DSP-Enhance)指加强的DSP指令集,能进行整数和浮点数处理。
(3)PXA255工作电压是1.3V,而PXA250工作电压是1.5V,PXA255功耗更小,节约了电能。采用0.18μm制造工艺,是一块面积为17mm×l7mm、256脚的芯片。
PXA255是一个高性能、低价格、低能耗的RISC处理器。采用该芯片的PDA,体积更小,电池用得更久,上网速度更快。
4嵌入式Linux的应用
4.1嵌入式Linux
高端嵌入式系统要求许多高级的功能,如图形用户界面和网络支持。很多高端RTOS供应商已经提供了这些功能,但其价格较高。微软的Windows CE有此类功能,但不具备大多数嵌入式系统要求的实时性能,而且难以移植。以DOS为基础用单独的第三方工具拼凑成一个操作系统,同样不能满足嵌入式系统的要求。嵌入式Linux操作系统以价格低廉、功能强大又易于移植而被广泛采用,成为新兴的操作系统。Linux嵌入式操作系统是一种实时的、支持嵌入式系统应用的操作系统软件,是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统在系统实时高效性、硬件的相关依靠性、软件固态化及应用的专用性等方面具有较为突出的特点。
Linux是与Unix相似、以核心为基础、完全内存保护、多任务多进程的操作系统,为嵌入操作系统提供了一个极有吸引力的选择。PDA选择嵌入式Linux作为操作系统,主要原因如下:
(1)系统处理实时性好,性能稳定。
(2)文件管理系统更适合于大量的图像数据。
(3)内核小巧和高效,作为专用系统,具有系统小令精简、处理速度快等特点。
(4)系统数据置于ROM/FLASH MEMORY,调用速度快,不会被改变,稳定性好。
(5)本身内置网络支持。
4.2 PAD中嵌入式Linux内核实现方法
Linux系统分为三个层次:用户、核心和硬件。Linux内核可直接从Internet下载,也可从一发行版本如Red Hat Linux、Turbo Linux得到。Linux核心源代码执行GPL版权协议,任何人都可在遵循GPL版权协议条件下对Linux核心进行修改和补充,并可根据自身应用系统的需求,进行裁减定制,形成针对应用的嵌入式Linux内核。本方案采用Red hat Linux 6.0,内核版本2.2.5,在保留TCP/IP网络支持、STAR902以太网卡驱动的情况下,定制后的内核大小为360KB,足以满足本系统中嵌入式硬件及软件的需求。
Linux核心源程序通常都安装在/usr/src/linux下,核心源程序文件按树形结构进行组织。在这里,对Linux内核进行分析:
(1)系统的引导和初始化:Linux系统的引导有Lilo、Loadin引导和Linux的自举引导三种。而Linux的自举引导所对应源程序为arch/i386/boot/bootsect.S,它为实模式汇编程序。无论哪种引导方式,最后都要跳转到arch/i386/Kernel/setup.S。setup.S主要进行实模式下的初始化,为系统进入保护模式做准备。此后,系统执行arch/i386/kernel/head.S。head.S中定义的一段汇编程序setup_idt,负责建立一张256项idt表,此表保存着所有自陷和中断的入口地址,其中包括系统调用总控程序system_call人口地址。除此之外,head.S违要做一些其他初始化工作。
(2)系统初始化后,运行第一个内核程序asmlinkage void_init start_kernel(void),它定义在/usr/src/linux/init/main.c中。它通过调用usr/src/linux/arch/i386/kemel/traps.c中的函数void-init trap init(void),把各个自陷和中断服务程序的入口地址设置到idt表中。其中系统调用的总控程序system_call就是中断服务程序之一。void_init trap_init(void)函数则通过调用一个宏set_system_gate,把系统调用的总控程序入口挂在中断0x80上。其中SYSCALL_VECTOR是定义在/usr/src/linux/arch/i386/
电子 Linux MIPS 集成电路 嵌入式 振荡器 PWM 总线 红外 USB ARM DSP 电压 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 航天器DC/DC变换器的可靠性设计(02-12)
- 我国科学家人脸与笔迹识别领域获突破(04-29)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)

