面向嵌入式视频处理平台的Linux移植
[09-14 01:03:20] 来源:http://www.88dzw.com 电子制作 阅读:8806次
文章摘要:www.88dzw.com这样,本系统的BootLoader就设计完成了,下面就可以进行Linux内核移植。4 Linux内核移植Linux内核主要由5个子系统构成:a)进程调度(Process Scheduler):负责控制进程对CPU的使用。b)内存管理(Memory Manager):标准Linux的内存管理支持虚拟内存,进程代码、数据和堆栈的总量可以超过实际内存的大小。c)虚拟文件系统(Virtual File System):隐藏了不同硬件的具体细节,为所有设备提供统一的接口。d)网络接口(Network Interface):负责支持标准的网络通信协议和各种网络硬件设备。e)进程间
面向嵌入式视频处理平台的Linux移植,标签:电子小制作,http://www.88dzw.comwww.88dzw.com
这样,本系统的BootLoader就设计完成了,下面就可以进行Linux内核移植。
4 Linux内核移植
Linux内核主要由5个子系统构成:
a)进程调度(Process Scheduler):负责控制进程对CPU的使用。
b)内存管理(Memory Manager):标准Linux的内存管理支持虚拟内存,进程代码、数据和堆栈的总量可以超过实际内存的大小。
c)虚拟文件系统(Virtual File System):隐藏了不同硬件的具体细节,为所有设备提供统一的接口。
d)网络接口(Network Interface):负责支持标准的网络通信协议和各种网络硬件设备。
e)进程间通信(Inter-Process Communica-tion):支持进程间各种通信机制。
根据嵌入式系统的特点,要使嵌入式Linux系统具备一定的功能且保持小型化,应包括启动加载程序、内核、初始化进程,以及硬件驱动程序、文件系统、必要的应用程序等。
不管是哪一款嵌入式处理器,完成移植工作就要修改所有与体系结构有关的代码,主要指内核人口、处理器初始化、I/O口映射等。具体操作如下:
(1)修改配置文件
a)打开根目录下的Makefile文件,指定目标平台ARCH=arm;指定交叉编译器CROSS_COMPILE=arm-linux-gcc;
b)打开/arch/arm目录下的Makefile文件,添加内核起始运行地址,即image.ram应下载的位置,该位置一般在RAM区起始地址偏移0x8000处;
c)打开/arch/arm/boot目录下的Makefile文件,指定Bootloader的压缩内核解压后数据的输出地址。
(2)编译Linux内核
在完成上述工作后,开始编译Linux内核,生成目标代码。在内核源代码目录下依次键入以下命令:
a)make clean:清除以前构造内核时生成的所有目标文件、模块和临时文件;
b)make dep:搜索Linux输出与源代码之间的依赖关系,并以此生成依赖文件;
c)make menuconfig:调用菜单式的配置内核界面,内核配置的选项非常多,根据自己系统的具体情况选择合理的配置,在内核配置时选上相应型号的硬件;
d)make zImage:编译内核,生成压缩的Linux内核目标代码zImage文件;
e)make modules:编译块模块驱动程序,凡是在menuconfig中被选为的都会在这条命令运行时被编译。
至此,已编译好能在本系统上运行的Linux内核。
(3)创建JFFS2文件系统
文件系统是Linux系统的重要组成部分。本系统使用mkfs.jffs2工具创建JFFS2文件系统。首先建立/bin、/sbin等目录,然后复制命令工具到/bin文件夹,复制系统控制程序到/sbin目录下,复制应用程序运行时所需的库到/lib,库文件可从PC机的交叉编译工具安装目录下复制。最后键人命令:mkfs.jffs2-o jffs2root.jffs2,生成JFFS2根文件系统。
上述工作完成后,将BootLoader、Linux内核、文件系统烧写到TMS320DM*6的Flash中,这样就能运行Linux系统了。
www.88dzw.com5设备驱动程序开发
5.1 Linux设备驱动程序开发步骤
Linux系统设备分为字符设备、块设备和网络设备3种。其设备驱动的开发主要包括:
a)在驱动程序源文件中定义file_opera-tions结构,并编写出设备需要的各个操作函数,对于设备不需要的操作函数用NULL初始化,这些操作函数将被注册到内核中。
b)定义一个初始化函数,在Linux初始化时会调用此函数。此函数包含:初始化驱动程序要用到的硬件寄存器;初始化与设备相关的参数;注册设备;注册设备使用的中断和函数;其他一些初始化工作。
c)对于驱动程序的使用,可以进行静态编译,也可以进行动态编译。静态编译是指将设备驱动程序添加到内核中,动态编译是指将设备驱动程序编译成驱动模块。
本嵌入式系统主要用于视频处理,涉及到的外设主要是显示设备和输入设备。这里采用的显示设备是LCD,而输入设备是通过USB接口与系统相连的。
5.2 LCD显示驱动程序开发
LCD的设备驱动程序属于字符设备的驱动,应按照字符设备的规则编写。在Linux下进行LCD显示用Framebuffer技术,这是提取图形的设备,是用户进入图形界面很好的接口。Linux内核根据硬件描述抽象出Framebuffer设备,供用户态的进程直接进行写屏。可以将 Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,写操作立即反应在屏幕上。 Framebuffer的设备文件一般存放在/dev这个目录下,对此设备文件进行操作即可实现图像的显示。
《面向嵌入式视频处理平台的Linux移植》相关文章
- › 面向嵌入式视频处理平台的Linux移植
- 在百度中搜索相关文章:面向嵌入式视频处理平台的Linux移植
- 在谷歌中搜索相关文章:面向嵌入式视频处理平台的Linux移植
- 在soso中搜索相关文章:面向嵌入式视频处理平台的Linux移植
- 在搜狗中搜索相关文章:面向嵌入式视频处理平台的Linux移植
编辑推荐
- · 自制教室照明节电控制器
- · 双色音乐彩灯的制作
- · 三相交流电机缺相保护器
- · 声光控节能灯的制作
- · 同线电话转呼及互通器电路
- · 超低频信号发生器的制作
- · 自制热转印电路板
- · 警笛发声生器电路
- · 一款节能电路
- · 利用太阳能充电的旅行充电器