调试控制,CPl5用于存储系统控制以及测试控制。S3C2410X的资源包括:11个LCD控制器支持STN和TFT带有触摸屏的液晶显示屏。2SDRAM控制器。33个通道的UART,4个通道的DMA,2个通道的SPI接121,8个通道的10位ADC及AD控制器。44个具有PWM功能的计时器和一个内部时钟,看门狗计数器。5IIC总线接口,触摸屏接121,SD接VI和MMC卡接口。62个USB主机接口,1个USB设备接121。7117位通用I/O口和24位外部中断源。在时钟方面S3C2410X也有突出的特点,该芯片集成了~个具有日历功能的RTC和具有PLLMPLL和UPLL的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高可达到203MHz。这个工作频率能够使处理器轻松运行Li
ux,Wi
CE等嵌入式操作系统以及进行较复杂的信息处理。UPLL产生实现主从USB功能的时钟。24交叉编译环境的建立交叉编译是嵌入式开发过程中的一项重要技术,它的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机,后者称为主机。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行。本系统采用基于ARM920T的S3C2410X,可以使用常用的ARM交叉编译器。要成功构建完整的交叉编译环境,需要在宿主机上创建一系列的工具,包括C/C编译器、汇编器、链接器、嵌入式系统的标准C库和GDB代码级调试器。成功建立好开发环境后便可以运用这些工具进行嵌入式系统开发了。
3USB摄像头驱动程序设计
6
f摄像头属于视频设备,在Li
ux内核中,VideoforLi
ux简称V4L是关于视频设备的驱动标准。这个标准为应用程序定义了一系列的接口函数,内核、驱动和应用程序都是依靠这个标准来进行交流。本系统所使用的USB摄像头正是基于该标准来编写驱动和应用程序的。Li
ux内核是依据设备号来操作设备文件的,在内核中,摄像头对应的设备文件名为/dev/video0,主设备号是81,次设备号根据摄像头数目来确定,本系统中仅使用一个摄像头,所以可以通过mk
od/dev/video0c810来创建节点。USB摄像头驱动程序实现原理如图12所示:
用户进程
系统调用
摄像头驱动文件操作接口接收缓冲区发送缓冲区
中断服务程序
摄像头
图12摄像头驱动实现原理
USB摄像头的驱动和通用设备的驱动准则一样,但需要与内核提供的视频驱动挂钩。即首先在驱动中声明一个videodevice结构,并为其指定文件操作函数指针数组fops,向系统注册。在应用程序发出文件操作的相关命令时,核心根据这些指针r