Chinaunix首页 | 论坛 | 博客
  • 博客访问: 386298
  • 博文数量: 73
  • 博客积分: 2620
  • 博客等级: 少校
  • 技术积分: 1212
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 10:47
文章分类
文章存档

2011年(18)

2010年(50)

2009年(5)

我的朋友

分类: 嵌入式

2010-08-25 20:17:09

   经常在一些大些工程软件中看到很多CONFIG_打头的编译选项,以及使用make menuconfig后出现的光标选择界面,尤其是这些编译选项在Makefile中决定了对某些文件是否编译,下面简单介绍一下配合Makefile一起使用的Kconfig文件的语法。Kconfig针对2.6内核所有。
   make menuconfig后首先调用的linux-2.6.x/arch/${ARCH}/Kconfig文件,默认的是i386的Kconfig,所以编译内核时最好在命令行指定ARCH=和CROSS_COMPILE=。
   接着Kconfig通过source 语句逐层调用个子目录的Kconfig文件,最终将编译选择的结果保存到顶层目录的.config文件中。有些不同的是uclinux编译时,首先调用的是vendors/NXP/LCP2468目录下的各种config文件,这些文件作为默认值最先出现,选择之后再保存到linux-2.6.x/下的.config文件中。
  Kconfig语法用到的关键字有:详见华清嵌入式培训教材《linux设备驱动开发详解》
1 menu
  ...
  endmenu
2 choice
  ...
  endchoice
3 config
4 boot,tristate,string,hex,int
5 depends on 或 if [expr..] 限定symbol的上限
6 default y[n]
7 prompt
8 help或--help--
9 select 限定symbol的下限,与depends相反
10 range 用于规定hex和int的范围
11 comment ""
 
1 编译内核模块时必须在makefile中指定ARCH和CROSS_COMPILE;
2 同时需要用-C {kernelsource_dir}指定内核源代码目录,目的是在编译内核模块时提供所需要的内核头文件;
阅读(2622) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~