基于嵌入式Linux的PMP系统设计与实现
最后,就是要把内核配置选项中对DM320开发有用的项选进来。比如:
source "drivers/char/Kconfig"
if (!ARCH_DM320_20)
source "sound/Kconfig"
endif file://选择开发字符设备的驱动,而不需要声音的支持。
因为要把CODEC编入内核,所以我们还要加入支持CODEC的配置选项:
source "codecs/modules/Kconfig"
同时,如果我们要加入一个新外围设备,也需要在Kconfig文件中加入对应的内容。比如说,要加入一个三星的4英寸TFT LCD的驱动,我们可以修改./drivers/char/Kconfig文件,并加入以下内容:
config DM320_SAMSUNG_ 4_LCD
tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"
depends on ARCH_DM320_20 && BOARD_400H
default y
help
This driver provides support for SAMSUNG 4.0‘ 16:9 TFT LCD for DM320.
其中,config DM320_SAMSUNG_4_LCD表示增加一个新的配置入口。一旦这个配置选项被选中就会在./include/linux/autoconf.h:有:#define CONFIG_DM320_SAMSUNG_4_LCD 1的定义。
这样的话,我们在整个内核源码树中都可以使用CONFIG_DM320_SAMSUNG_4_LCD来进行特定的选择。
在tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"中,引号里的内容为出现在配置选项中的提示文字。tristate表示三态,意思是除了可以选择[*]、[ ]外,还可以选择[M],表示把当前内容当成模块编译。
depends on ARCH_DM320_20 && BOARD_400H表示如果前面配置平台框架时选择了ARCH_DM320_20,并在选择型号时选择了BOARD_400H,我们就可以看到这个对于三星4英寸TFT LCD的配置选项。
default y表示默认把此驱动编入内核。help的内容为当我们对内核进行配置时,选帮助所看到的内容。
Makefile文件
简单地说,Makefile是用来进行项目配置和管理的。我们要把Linux编译、链接最后生成可执行的内核映像,Makefile文件是必不可少的。
在该PMP设计开发中,只需要把外设驱动模块加入相应的内核源码树就可以完成对Makefile文件的修改。以加入三星4英寸TFT LCD驱动为例,只需要在./drivers/char/Makefile加入如下内容即可:
obj-$(CONFIG_DM320_ SAMSUNG_4_LCD) += dm320_lcd_samsung4.o
PMP系统设计中两个必须的驱动以及要注意的问题
LCD驱动程序
在一个PMP设备中,LCD显示屏是必备的。在LCD驱动程序的设计过程中,主要是要选好时钟源、分频系数以及时钟极性。比如在DM320中,时钟控制器有以下几个外部输入:PCLK、SYSCLK、MXI、M48XI,其中除了M48XI外其余均选择27M外部晶振。LCD的时钟频率DCLK在本系统中是由VENC(Video Encoder Clock)确定,而VENC又可以通过系统的PLL分频而确定,所以说首先要选好时钟源和恰当的分频系数,然后通过设置VENC的寄存器就可以设置时钟的极性。
FrameBuffer驱动
FrameBuffer是把显存抽象成一个设备,通过对这个设备的读写就等同于直接对显存进行操作。这种操作是抽象的、统一的。用户不必关心显存的物理位置、换页机制等具体细节,这些都是由FrameBuffer设备驱动程序来完成的。 FrameBuffer对应的源文件在linux/drivers/video/目录下。全部的抽象设备文件作为fbcon.c与各种显卡驱动程序相关的源文件放在该目录下,如笔者所进行的针对DM320的FrameBuffer源文件dm320fb.c。在源文件我们要设置相应屏幕的长、宽以及每一个像素点的位数等等,还有一些与DM320 OSD(On-Screen Display)相关的寄存器的设置。因为涉及内容较多,在此不再赘述。
结语
本PMP方案设计的产品已经进入量产阶段,经过大量的用户测试,证实了整个设计是切实可行的。同时,其设计思路对于其他类似产品如车载GPS,都有一定的参考价值。
便携式多媒体播放器 PMP 视频编解码 Linux 相关文章:
- DSP的视频编解码系统的工作理念介绍(07-27)
- Linux操作系统在定制PMP DM320的应用(11-01)
- SPMP8000系列多媒体处理芯片介绍及其应用(03-25)
- Blackfin处理器平台为多媒体播放器应用提供高性能技术保(04-26)
- 基于SPMP8000系列设计的多媒体播放器解决方案(12-09)
- 嵌入式DSP上的视频编解码分析(06-14)