Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计_第1页
Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计_第2页
Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计_第3页
Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计_第4页
Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计为基于S3C2410的嵌入式平台(扩大了多种外围设备,包括:LCD、AD、网络芯片等等)构建出一个基于Linux2.6.16内核的嵌入式系统开发平台,以满足风力发电监控系统开发的需求。 1系统构架 本系统的硬件平台是以32位高性能嵌入式处理器S3C2410A作为系统的CPU,其工作频率为203 MHz,具有强大的处理能力。另外,还扩展有多种外围设备,如:分辨率为640480的26万色TFT液晶显示屏、串口、USB口、网口、64MB Flash、64MB SDRAM等等。可以充分满足风力发电监控系统

2、开发的需求。 本硬件平台的软件构架主要分为以下几个部分:BSP层、操作系统层以及应用层,图1所示是其软件构架图。本系统的硬件平台是由嵌入式微处理器及其外围设备所构成的。硬件抽象层(BSP)是存储在硬件平台ROM或Flash上的负责与硬件底层交流的硬件驱动程序,主要负责对系统开展初始化,并将收集的硬件信息传递到接下来运行的操作系统内核中去。操作系统内核通过BSP来管理系统硬件资源,并为上层软件提供进程调度、内存管理、文件系统、设备驱动等服务。应用层主要负责与用户开展交流。 在完成系统的构架设计以后,就可以针对硬件平台开展具体的构建了,其工作主要包括以下几个部分:BootLoader移植、内核移植

3、以及文件系统的建立等,其中内核移植包括网络设备、LCD和USB等驱动的移植。文中针对本系统的设计给出了相关程序的移植。 2 Boot Loader移植 Boot Loader (引导加载程序)是系统加电后运行的段代码。这段小程序用于初始化硬件设备和建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为终调用操作系统内核准备好正确的环境。 目前,较流行的BootLoader主要有U-boot和Vivi等。本设计主要是以S3C2410为控制器的硬件平台,因此可以选用带有网络功能的Vivi作为系统的Boot Loader。作为引导程序的Vivi一般分为stage1和stage2两大部

4、分。stage1主要是根据CPU的体系构造开展设备初始化等工作,通常都用短小精悍的汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现更加复杂的功能,且代码会具有更好的可读性和可移植性。为了使Vivi更适合本系统的硬件平台,设计时需要对其开展部分修改。 (1)修改编译器 首先要把Vivi中Makefile的有关编译的选项指向安装好的3.4.1版本的交叉编译工具链,将编译所需的Linux文件夹“UNUX-INCLUDE-DIR=”指向交叉编译器所在的文件夹“LINUX-INCLUDE-DIR=usrlocalarm3.4.1include”,并将“CROSS-COMPILE=”项修改

5、为“CROSS-COMPILE=usrlocalarm3.4.1binarm-linux-”。 (2)修改启动参数 接着根据硬件平台的实际情况要修改Vivi中Flash分块情况。本系统将Flash划分成四个部分:部分用来存放系统的Vivi:第二部分用来存放Vivi以及Linux操作系统的启动参数;第三部分用来存放嵌入式Linux操作系统;一部分用来存放文件系统。具体的地址及块大小分配如下表1所列。 修改完以上两项就可以对Vivi开展编译了,之后通过JTAG将生成的二进制代码烧写到Flash的部分,即完成了Vivi的移植。 3内核移植 内核移植和BootLoader移植一样要根据设计的硬件平台来

6、开展。根据本嵌入式系统硬件平台的设计,需修改内核Makefile文件、设置Flash分区、配置与编译内核等,并完成网络设备、LCD以及USB等驱动的移植,下面简单介绍一下针对本硬件平台的相关移植工作。 (1)内核编译与移植 在交叉编译内核之前,要先对编译选项开展配置。执行“make menuconfig”指令,进人Syetem Type选项,选择对S3C2410系统板的支持,然后配置File System和Block device,接下来使用“make dep”指令设置依赖关系,之后便可以使用“make zImage”指令开展编译。编译内核交叉编译时间相对较长。终会生成一个文件zImage,这

7、就是编译成功后的ARM Linux内核文件。将编译好的内核镜像文件写入到Flash中,即完成了内核的移植。 (2)网络设备移植 系统中采用CS8900A作为网络芯片,支持10 Mbs的传输率,它使用S3C2410的nGCS3作为片选线,IRQ_EINT9作为外部中断信号线。其驱动移植方法如下: 1)在linuxdrivernetarm目录下参加芯片的驱动程序文件cs8900.h和cs8900.c: 2)在SMDk2410_init函数中完成相应存放器设置;在cs8900_probe()函数中对S3C2410的网络控制存放器开展设置:参加_raw_writel(0 x221ldll0,S3C24

8、10_BWSCON);和_raw_writel(0 x1f7c,S3C2410_BANKCON3);两个语句; 3)将网卡的物理地址(0 x19000000)映射到vSMDK2410_ETH_IO所指向的虚拟地址上去,即在archarmmach-s3c2410mach-smdk2410.c文件中的smdk2410_iodesc 构造数组中添加如下内容:vSMDK2410_ETH_IO,0 x19000000,SZ_1M,MTl_DEVICE; 4)配置网络设备驱动的Makefile、Kconfig文件,并对头文件做部分修改。 (3) LCD移植 在2.6.16内核中已经包含了S3C2410的L

9、CD驱动程序,因此,移植的主要工作是要根据驱动程序及LCD屏的实际情况开展初始化。S3C2410自带5个LCD控制器,每个控制器有不同的功能,必需对每个控制器的参数开展相应的设置才能顺利地启动LCD,这些参数包括:液晶屏类型(TFT屏或CSTN屏)、颜色位数、垂直度、水*、控制信号线的极性以及液晶屏的分辨率等等。 本系统采用的是SHARP 8.0英寸的TFT液晶屏。参考该液晶屏手册,根据实际情况设置各个存放器的参数如下表2所列。 设置好液晶屏的参数后,再在平台初始化函数smdk2410_devices_initdata中启动液晶屏。,修改driversvideo目录下的Kconfig和driv

10、ersvideo目录下的Makefile文件。 4文件系统建立 每种操作系统都有适合自己的文件系统,如:Windows一般采用FAT32或NTFS文件系统格式,Linux采用EXT2或EXT3文件系统格式,而嵌入式Linux操作系统是建立在一种称为YAFFS2(YAFF文件系统的改良版)的针对嵌入式Linux的文件系统之上。因此可根据本系统的硬件平台设计及所采用的Linux内核。构建出YAfTS2文件系统,步骤如下: (1)在内核*立YAFFS2目录fsyaffs2,并把的YAFFS2代码(可以从网上开源的YAFFS2的源码)复制到该目录下面; (2)修改Kconfig和Makefile,使其可以配置YAFFS2; (3)在YAFFS2目录中生成Makefile和Kconfig文件; (4)根据表1在内核中修改NAND分区; (5)配置内核时,应选中MTD支持和YAFFS2支持; (6)编译内核并将其到开发板的Flash中; (7)制作根文件系统到Flash的指定地址(地址如下表1所示)。 至此,就搭建好了风力发电监控系统开发所需要的软硬件平台。图2所示是基于搭建好的平台并使用QtEmb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论