linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile

发布者:BoldDreamer最新更新时间:2024-07-29 来源: cnblogs关键字:linux  6  arm9  s3c2440  移植  Makefile 手机看文章 扫描二维码
随时随地手机看文章

在ubuntu上按照无数帖子无数文档搞了半天qt环境还有eclipse,最后才发现这些都是无关紧要的东西,首先能在ARM核心板上移植linux才是应该先实现的,自己瞎搞了半天移植,对着make menuconfig的复杂树型选项和添加代码迷糊不已,到了晚上下班才猛然醒悟一切都是因为自己kconfig和makefile的关系不明白,才在原地犯迷糊的。

 

自己的理解 + 网摘, 参考:

http://www.cnblogs.com/sirsunny/archive/2004/12/15/77506.html

http://blog.csdn.net/windriver_hf/archive/2010/04/16/5493622.aspx


 

Linux内核源码树的每个目录下都有一个Kconfig和Makefile, 分布到各目录的Kconfig构成了一个分布式的内核配置数据库, 每个Kconfig分别描述了所属目录源文档相关的内核配置菜单. 在linux目录执行内核配置make menuconfig时, 从Kconfig中读出菜单, 用户选择后保存到linux-2.6/.config的内核配置文档中. 在内核编译时, 主Makefile调用这个.config,
Kconfig就是对应着内核的每级配置菜单.

添加新的驱动时需要修改有两种(
 1如果添加的只是文件, 则只需修改当前层Kconfig和Makefile文件;
 2如果添加的是目录, 则需修改当前层和新添目录下的两个Kconfig, Makefile.
 
Kconfig文件中, 一个congfig的格式为:
config CONFIG_SYMBOL
        tristate 'string' 或者 bool 'string'
        default [y/n/m] if MACH_XXX2440
        depends on ARCH_ARM
        help
       
其中tristate/bool分别指两? ▂es, no)/三? ▂es, no, module)
BFIN_JTAG_COMM时此选项的标识,在于Kconfig的同目录的Makefile中,有如下:
    obj-$(CONFIG_SYMBOL) += config_symbol.o
   
整个Makefile树分为5个组成部分:
(1)Makefile       最顶层的Makefile
(2).config        内核的当前配置文档, 编译时成为顶层Makefile的一部分
(3)arch/$(ARCH)/Makefile    和体系结构相关的Makefile
(4)Makefile.* :  一些特定Makefile的规则
(5)kbuild级别Makefile :各级目录下的大概约500个Makefile, 编译时根据上层Makefile传下来的宏定义和其他编译规则参数, 将源代码编译成模块或编入内核. 顶层的Makefile文档读取.config文档的内容, 并总体上负责build内核和模块.
Arch Makefile则提供补充体系结构相关的信息. 其中.config的内容是在make menuconfig的 时候, 通过Kconfig文档配置的结果.

假设想把自己写的一个flash的驱动程式加载到工程中, 而且能够通过menuconfig配置内核时选择该驱动简单步骤:
(1)写的flashtest.c 文档添加到/driver/mtd/maps/ 目录下.
(2)修改/driver/mtd/maps目录下的kconfig文档, 增加如下:
      config MTD_flashtest
      tristate “ap71_flash'
    这样当make menuconfig时 , 将会出现 ap71 flash选项.
(3)修改同级目录下makefile文档. 添加如下内容:obj-$(CONFIG_MTD_flashtest)       += flashtest.o
这样, 当运行make menucofnig时, 在/driver/mtd/maps/对应的选项下会发现ap71_flash选项, 这里是tristate(三态). 退出menucofnig时, 该选择就会保存在/linux-2.6.32/.config文档中. 当make编译内核时, 将会读取顶层的Makefile和.config, 如果ap71_flash 选项为yes, make在调用/driver/mtd/maps/下的makefile时, 将会把 flashtest.o 加入到内核中.


linux源码各级目录说明:
/arch:   包括所有和体系结构相关的核心代码. 它下面的每一个子目录都代表一种Linux支持的体系结构, 例如i386就是Intel CPU及与之相兼容体系结构的子目录. PC机一般都基于此目录. 
/block:  部分块设备驱动程序.
/crypto: 常用加密和散列算法(如AES、SHA等), 还有一些压缩和CRC校验算法.
/drivers:系统中所有的设备驱动程序. 它又进一步划分成几类设备驱动, 每一种有对应的子目录, 如声卡的驱动对应于drivers/sound. 
/fs:     包括Linux支持的文件系统代码. 不同的文件系统有不同的子目录对应, 如ext3文件系统对应的就是ext3子目录.
/ipc:    包括核心进程间的通信代码. 
/include:包括编译核心所需要的大部分头文件, 例如与平台无关的头文件在include/linux子目录下. 
/init:   包含核心的初始化代码(不是系统的引导代码), 有main.c和Version.c两个文件. 这是研究核心如何工作的好起点. 
/modules:存放已建好的、可动态加载的模块. 
/mm:     包括所有的内存管理代码. 与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下.
/Kernel: 内核管理的核心代码. 同时与处理器结构相关代码都放在arch/*/kernel目录下. 
/net:    核心的网络部分代码, 其每个子目录对应于网络的一个方面. 
/lib:    包含了核心的库代码, 不过与处理器结构相关的库代码被放在arch/*/lib/目录下. 
/sound: 常用音频设备的驱动程序等.
/scripts:包含用于配置核心的脚本文件. 
/usr:   实现了一个cpio.


关键字:linux  6  arm9  s3c2440  移植  Makefile 引用地址:linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile

上一篇:linux 2.6.32 在arm9(s3c2440)平台的移植 - 标题要长(2)
下一篇:嵌入式linux平台上Eclipse C++开发环境的建立

推荐阅读最新更新时间:2024-11-17 15:21

基于STM32和WH-NB73连接有人透传云
STM32L系列的MCU具有丰富的外设、强大的性能并拥有极致的低功耗模式,在低功耗的场景中被广泛运用。但STM32L的通信外设必须经过物理连接,这无疑会增加布网成本,而在分散式的物联网领域中尤为突出。 LPWAN(低功耗广域网)技术的兴起恰好为其提供了合适的解决方案,NB-IoT作为LPWAN的新秀具有四大特点: 一、广覆盖,将提供改进的室内覆盖,在同样的频段下,NB-IoT比现有的网络增益20dB,相当于提升了100倍覆盖区域的能力; 二、具备支撑海量连接的能力,NB-IoT一个扇区能够支持10万个连接,支持低延时敏感度、超低的设备成本、低设备功耗和优化的网络架构; 三、更低功耗,NB-IoT终端模块的待机时间可长达10年;
[单片机]
利用FPGA解决TMS320C54x与SDRAM的接口问题
  在DSP应用系统中,需要大量外扩存储器的情况经常遇到。例如,在数码相机和摄像机中,为了将现场拍摄的诸多图片或图像暂存下来,需要将DSP处理后的数据转移到外存中以备后用。从目前的存储器市场看,SDRAM由于其性能价格比的优势,而被DSP开发者所青睐。DSP与SDRAM直接接口是不可能的。   FPGA(现场可编程门阵列)由于其具有使用灵活、执行速度快、开发工具丰富的特点而越来越多地出现在现场电路设计中。本文用FPGA作为接口芯片,提供控制信号和定时信号,来实现DSP到SDRAM的数据存取。    1 SDRAM介绍   本文采用的SDRAM为TMS626812A,图1为其功能框图。它内部分为两条,每条1M字节,数据宽度为8
[模拟电子]
低至20美分!兆易创新发布GD32E230系列MCU,开启Cortex®-M23内核
集微网消息,2018年11月1日,业界领先的半导体供应商兆易创新(GigaDevice)正式推出主频高达72MHz的GD32E230系列超值型微控制器新品,并宣布开启Arm® Cortex®-M23内核普及应用的全新世代。 作为GD32 MCU家族基于Cortex®-M23内核的首个产品系列,GD32E230系列MCU采用了业界领先的55nm低功耗工艺制程,着眼于超低开发预算需求,为取代及提升传统的8位和16位产品解决方案,并跨越Cortex-M0/M0+门槛,直接进入32位Cortex®-M23内核的开发新世代带来一步到位的入门使用体验。GD32E230系列基本型号的批量订货价格更低至20美分,从而以无与伦比的超值特性在业界
[手机便携]
工信部发改委发文 要求4G网络支持IPV6
   工信部办公厅和发展改革委办公厅2日发布《关于全面推进IPv6在LTE网络中部署应用的实施意见》,启动“中国LTEv6工程”,全面推进IPv6在LTE网络中的应用,强化我国自主的LTE4G移动终端支持IPv6,加快基于IPv6的下一代互联网建设,提升宽带网络基础水平。 网民在访问任何一个网站时,看上去输入的是网站域名,实际连接到目标网站的是IP地址。随着我国步入互联网高速发展阶段,对IP地址需求总量不断攀升,现有的IPv4供需缺口形势严峻,发展能承载大量IP地址、接入网速更快更安全的IPv6技术成为当务之急。 意见提出,在新建的LTE网络中,全面支持并开启IPv6,并提升国产LTE基带芯片、自主操作系统和移动终端支持IPv
[手机便携]
NI S.E.A. C-V2X开环测试系统 助力开发更安全的汽车
美国国家仪器(National Instruments,简称“NI”)是一家提供软件定义的测试测量平台的提供商,该平台有助于加速自动化测试和自动化测量系统的开发和性能提升,今日发布了S.E.A. C-V2X开环测试系统,利用4G无线蜂窝技术为车辆到车辆(V2V)和车辆到基础设施(V2I)通信提供高带宽和低延迟通信。 NI正在与NI联盟合作伙伴*(S.E.A.)合作,通过提供软件定义的测试设备帮助主机厂和零部件供应商验证汽车的安全和效率,从而最大限度地发挥智联汽车的全部潜力。随着3GPP标准的演进,包括计划于2020年推出的3GPP Release 16的5G NR功能,软件定义的测试测量平台为OEM和零部件供应商提供了高灵活性
[汽车电子]
NI S.E.A. C-V<font color='red'>2</font>X开环测试系统 助力开发更安全的汽车
基于PICl6C711的燃气灶脉冲点火控制器设计
  1 引言   目前我国约有1 000家燃气灶具生产企业。年产量约3 000万台。其中规模较大、产品质量和管理水平好的企业只有100家左右,其余大部分则是简单组装型企业。由于这些组装型企业的产品质量和技术普遍较低。随着国家燃气灶具产品生产许可证换(发)证制度的实施,超过600家的企业将被强制淘汰。如何降低成本,生产性能稳定,节省能源的燃气灶是各燃气灶具生产企业取胜的关键,而脉冲点火控制器则是燃气灶中核心部分。本文介绍了一种高性价比的燃气脉冲点火控制器设计,采用Microchip公司生产的PICl6C7ll单片机作为主控器,实现了点火的智能化和火焰检测的无传感器设计,同时使能源的消耗降到最低。   2 脉冲点火控制系统
[单片机]
基于PICl<font color='red'>6</font>C711的燃气灶脉冲点火控制器设计
基于STM32F407的FreeRTOS学习笔记(12)
在上一期内容中我们简单的介绍了任务通知的几个函数以及简单的使用了任务通知来实现两个信号之间的通信。 本期我们将利用任务通知来模拟三种方式的任务间通信。 信号量 在我们介绍信号量的文章中介绍过,信号分为二进制信号量和计数信号量。 接着我们使用任务通知来模拟这两项功能。 二进制信号量可以看作长度为1的队列,我们不关心其值为多少,只关心它的状态。 在直达任务通知中我们可以用xTaskNotifyGive来模拟二进制信号量的释放以及ulTaskNotifyTake()来模拟二进制信号量的读取。 在ulTaskNotifyTake()中需要注意的是,我们需要设置一个参数用来确定我们模拟的是二进制信号量还是计数信号量。 代
[单片机]
基于STM<font color='red'>32</font>F407的FreeRTOS学习笔记(12)
基于ARM9Linux 的嵌入式视觉系统设计方案
1 引言 视觉系统在现代工业生产自动化系统中应用非常广泛,主要集中于药品检测分装、印刷色彩检测、集成电路生产、精密电子产品装配、智能机器人识别导航等领域。随着Internet 的普及,现代社会已进入后PC 时代,嵌入式技术越来越与人们的生活紧密结合。 嵌入式视觉系统可通过USB 总线等将图像的获取、图像处理、显示设备集成于一体,成本相对较低,体积小巧,可以方便地安装在载体身上,故研究嵌入式的视觉系统具有一定的实际意义。 2 嵌入式视觉系统总体方案设计 嵌入式视觉系统由嵌入式硬件平台、操作系统、图像采集和图像显示四大部分组成,原理框图如下图1 所示。 图1 视觉系统原理框图 S3C2410X 芯片是韩
[单片机]
基于<font color='red'>ARM9</font> 和<font color='red'>Linux</font> 的嵌入式视觉系统设计方案
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved