Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15261
  • 博文数量: 7
  • 博客积分: 150
  • 博客等级: 入伍新兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-07 14:17
文章分类
文章存档

2011年(7)

我的朋友

分类: LINUX

2011-08-07 14:47:59

作者:liukun321(咕唧咕唧)

原文出处:http://blog.csdn.net/liukun321 & liukun321.blog.chinaunix.net

不知道大家是否遇到过找不到MACH_FRIENDLY_ARM定义的问题,反正我遇到了,在我前两次移植linux内核时我都碰到了这个问题,而且迟迟到今天才把这个问题解决。

老样子首先分析为什么找不到MACH_FRIENDLY_ARM。原因:还是我功底太薄,对kconfig文件和Makefile文件理解的不够深刻。否则,在配置文件找个定义也就是几分钟甚至一分钟的问题。

第一次移植内核是仿照友善提供的源码。第一次见到对MACH_FRIENDLY_ARM的使用是在arch/arm/mach-s3c2440/kconfig 中

config MACH_FRIENDLY_ARM_MINI2440
 bool "FriendlyARM Mini2440/QQ2440 development board"
 select CPU_S3C2440
 select MACH_FRIENDLY_ARM
 help
   Say Y here if you are using the FriendlyARM Mini2440/QQ2440 development board.

可见只要我们在配置内核时选择了FriendlyARM Mini2440/QQ2440 development board选项MACH_FRIENDLY_ARM就会被立即选上。可是MACH_FRIENDLY_ARM定义在哪呢?当前目录是没有它的定义的

想快速找到它,首先要猜测它的作用,MACH_FRIENDLY_ARM选项是体系结构相关的定义,因此不会逃出arch/arm/这个目录,在这个目录中除了/mach-s3c2440这个目录和2440有关,还有那个目录会和2440有关系呢?我想你会很容易找到plat-24xx这个目录,没错就是它,你会在此目录下的kconfig中找到有关定义如下:

config MACH_FRIENDLY_ARM
 bool
 help
   Common machine code for FriendlyARM boards i.e. Mini2440, QQ2440, etc

找到定义,下一步我们需要看它的作用。作用在当前目录下的Makefile中清晰可见

obj-$(CONFIG_MACH_FRIENDLY_ARM) += common-friendly-arm.o

决定了是否编译本目录下的common-friendly-arm.c文件。

好了,问题解决。

阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~