|
choice
prompt "ARM system type"
default ARCH_DM320_20 file://在配置ARM系统时,默认的就是DM320框架。
source "arch/arm/mach-dm320-20/Kconfig"把DM320框架下的配置选项也引入。
|
同时,去掉其他CPU框架。如:
#source "arch/arm/mach-clps711x/Kconfig"
#source "arch/arm/mach-integrator/Kconfig"
|
其中,“#”表示此行内容为注释内容。
最后,就是要把内核配置选项中对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外其余均选择27MB外部晶振。LCD的时钟频率DCLK在本系统中是由VENC(Video Encoder Clock)确定,而VENC又可以通过系统的PLL分频而确定,所以说首先要选好时钟源和恰当的分频系数,然后通过设置VENC的寄存器就可以设置时钟的极性。
共3页: 上一页 [1] 2 [3] 下一页
|