当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

.pld文件如何打开看这里!Linux内核kernel配置2—教你将自己开发的代码加入linux内核中

上一节介绍了makefile、menuconfig和xConfig。本节详细介绍了示例(如果您从未见过上一章建议的高级主页学习)。

说明:

请在评论区告诉我哪个朋友需要完整的电子文件。如果我有时间,我会一个一个私下发给你。O (_ _ _ _ _ _) O

本人近期可以陆续上传这些资料和视频教程,集中在相互交流上:C Java Python Linux ARM嵌入式物联网等。

4. 实例讲解

对于一个开发者来说,将自己开发的内核代码加入到 Linux 内核中,需要有三个步骤。首先确定把

自己开发代码放入到内核的位置;其次,把自己开发的功能增加到 Linux 内核的配置选项中,使用

户能够选择此功能;最后,构建子目录 Makefile,根据用户的选择,将相应的代码编译到最终生成

的 Linux 内核中去。下面,我们就通过一个简单的例子--test driver,结合前面学到的知识,来说明

如何向 Linux 内核中增加新的功能。

4.1 目录结构

test driver 放置在 drivers/test/ 目录下:

$cd drivers/test

$tree

.

|-- Con

|-- Makefile

|-- cpu

| |-- Makefile

| `-- c

|--

|--

|--

|--

|--

`-- test

|-- Makefile

`--

4.2 配置文件

1) drivers/test/Con

#

# TEST driver configuration

#

mainmenu_option next_comment

comment 'TEST Driver'

bool 'TEST support' CONFIG_TEST

if [ "$CONFIG_TEST" = "y" ]; then

tristate 'TEST user-space interface' CONFIG_TEST_USER

bool 'TEST CPU ' CONFIG_TEST_CPU

fi

endmenu

由于 test driver 对于内核来说是新的功能,所以首先 创建一个菜单 TEST Driver。然后,显示

"TEST support",等待用户选择;接下来判断用户是否选择了 TEST Driver,如果是

(CONFIG_TEST=y),则进一步显示子功能:用户接口与 CPU 功能支持;由于用户接口功能可

以被编译成内核模块,所以这里的询问语句使用了 tristate(因为 tristate 的取值范围包括 y、n 和

m,m 就是对应着模块)。

2) arch/arm/con

在文件的最后加入:source drivers/test/Con,将 TEST Driver 子功能的配置纳入到 Linux 内

核的配置中。

4.3 Makefile

1)drivers/test/Makefile

# drivers/test/Makefile

#

# Makefile for the TEST.

#

SUB_DIRS :=

MOD_SUB_DIRS := $(SUB_DIRS)

ALL_SUB_DIRS := $(SUB_DIRS) cpu

L_TARGET :=

export-objs :=

obj-$(CONFIG_TEST) +=

obj-$(CONFIG_TEST_USER) +=

obj-$(CONFIG_PROC_FS) +=

subdir-$(CONFIG_TEST_CPU) += cpu

include $(TOPDIR

clean:

for dir in $(ALL_SUB_DIRS); do make -C $$dir clean; done

rm -f *.[oa] .*.flags

drivers/test 目录下最终生成的目标文件是 。在 和 中使用了

EXPORT_SYMBOL 输出符号,所以 和 位于 export-objs 列表中。然后,根据

用户的选择(具体来说,就是配置变量的取值),构建各自对应的 obj-* 列表。由于 TEST Driver

中包一个子目录 cpu,当 CONFIG_TEST_CPU=y(即用户选择了此功能)时,需要将 cpu 目录

加入到 subdir-y 列表中。

2)drivers/test/cpu/Makefile

# drivers/test/test/Makefile

#

# Makefile for the TEST CPU

#

SUB_DIRS :=

MOD_SUB_DIRS := $(SUB_DIRS)

ALL_SUB_DIRS := $(SUB_DIRS)

linux内核配置系统浅析

页码,10/12

...

2004-7-17L_TARGET :=

obj-$(CONFIG_test_CPU) += c

include $(TOPDIR

clean:

rm -f *.[oa] .*.flags

3)drivers/Makefile

……

subdir-$(CONFIG_TEST)

+= test

……

include $(TOPDIR

在 drivers/Makefile 中加入 subdir-$(CONFIG_TEST)+= test,使得在用户选择 TEST Driver 功能

后,内核编译时能够进入 test 目录。

4)Makefile

……

DRIVERS-$(CONFIG_PLD) += drivers/pld

DRIVERS-$(CONFIG_TEST) += drivers/test/

DRIVERS-$(CONFIG_TEST_CPU) += drivers/test/cpu/

DRIVERS := $(DRIVERS-y)

……

在顶层 Makefile 中加入 DRIVERS-$(CONFIG_TEST) += drivers/test/ 和 DRIVERS-

$(CONFIG_TEST_CPU) += drivers/test/cpu/。如何用户选择了 TEST Driver,那么

CONFIG_TEST 和 CONFIG_TEST_CPU 都是 y, 和 就都位于 DRIVERS-y 列

表中,然后又被放置在 DRIVERS 列表中。在前面曾经提到过,Linux 内核文件 vmlinux 的组成中

包括 DRIVERS,所以 和 最终可被链接到 vmlinux 中。

1.《.pld文件如何打开看这里!Linux内核kernel配置2—教你将自己开发的代码加入linux内核中》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《.pld文件如何打开看这里!Linux内核kernel配置2—教你将自己开发的代码加入linux内核中》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2212190.html

上一篇

0pp0r7什么时候上市的?我来告诉你答案让超薄设计也能兼顾体验,OPPO R7 & R7 Plus 发布

下一篇

如何处理偶发的Bug看这里!解Bug之路-记一次线上请求偶尔变慢的排查

.pld文件如何打开?我来告诉你答案Linux内核kernel配置2—教你将自己开发的代码加入linux内核中

.pld文件如何打开?我来告诉你答案Linux内核kernel配置2—教你将自己开发的代码加入linux内核中

.pld文件如何打开相关介绍,上一节介绍了makefile、menuconfig和xConfig。本节详细介绍了示例(如果您从未见过上一章建议的高级主页学习)。 说明: 请在评论区告诉我哪个朋友需要完整的电子文件。如果我有时间,我...

关于.pld文件如何打开,你需要知道这些深度:嵌入式系统的软件架构设计

关于.pld文件如何打开,你需要知道这些深度:嵌入式系统的软件架构设计

.pld文件如何打开相关介绍,1. 前言 嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。 提起嵌入式软件设计,传统的印象是单片机,汇编,高度依赖硬...

.pld文件如何打开?总结很全面速看!Linux内核kernel配置2—教你将自己开发的代码加入linux内核中

.pld文件如何打开?总结很全面速看!Linux内核kernel配置2—教你将自己开发的代码加入linux内核中

.pld文件如何打开相关介绍,上一节介绍了makefile、menuconfig和xConfig。本节详细介绍了示例(如果您从未见过上一章建议的高级主页学习)。 说明: 请在评论区告诉我哪个朋友需要完整的电子文件。如果我有时间,我...

关于.pld文件如何打开,你需要知道这些Quartus II 18.0 PLD-FPGA开发软件

关于.pld文件如何打开,你需要知道这些Quartus II 18.0 PLD-FPGA开发软件

.pld文件如何打开相关介绍,Quartus II是Altera提供的专业PLD/FPGA开发软件,不仅使用Spectra-Q引擎,还使用新算法更新了TimeQuest计时分析器,使时间分析速度提高了一倍,并引入了新的Spectr...

.pld文件如何打开?我来告诉你答案一起没有谈到飞行员作风问题的重着陆事件

.pld文件如何打开?我来告诉你答案一起没有谈到飞行员作风问题的重着陆事件

.pld文件如何打开相关介绍,(9500.163.com) 航空维修专业者,每天和你分享不一样的飞机新鲜事! 来源:飞行GO 报告速读 2009年8月4日,SATA国际航空公司的空客A320-214,注册号CS-TKO的客机,执行...

.pld文件如何打开?总结很全面速看!Quartus II 18.0 PLD-FPGA开发软件

.pld文件如何打开?总结很全面速看!Quartus II 18.0 PLD-FPGA开发软件

.pld文件如何打开相关介绍,Quartus II 是Altera公司带来的专业的PLD/FPGA开发软件,该版本不仅增加了Spectra-Q引擎,还带了新的算法更新了TimeQuest时序分析器,时序分析速度提高了2倍,新的Sp...

关于.pld文件如何打开,你需要知道这些一起没有谈到飞行员作风问题的重着陆事件

关于.pld文件如何打开,你需要知道这些一起没有谈到飞行员作风问题的重着陆事件

.pld文件如何打开相关介绍,(9500.163.com) 航空维修专业者,每天和你分享不一样的飞机新鲜事! 来源:飞行GO 报告速读 2009年8月4日,SATA国际航空公司的空客A320-214,注册号CS-TKO的客机,执行...

.pld文件如何打开?我来告诉你答案Quartus II 18.0 PLD-FPGA开发软件

.pld文件如何打开?我来告诉你答案Quartus II 18.0 PLD-FPGA开发软件

.pld文件如何打开相关介绍,Quartus II 是Altera公司带来的专业的PLD/FPGA开发软件,该版本不仅增加了Spectra-Q引擎,还带了新的算法更新了TimeQuest时序分析器,时序分析速度提高了2倍,新的Sp...