找回密码
 注册
关于网站域名变更的通知
查看: 532|回复: 1
打印 上一主题 下一主题

内核MAKE menuconfig 如何剪裁,如何添加新设备?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-21 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
内核[color=rgb(68, 68, 68) !important]MAKE menuconfig 如何剪裁,如何添加新设备?
3 `9 f" H4 L" M5 V7 U

该用户从未签到

2#
发表于 2019-8-21 17:43 | 只看该作者
如下讲如何配置内核及如何添加新设备。
6 U# s. U+ {4 t# \& k( P; G! a/ X
  • &nBSP; 内核的配置有三种方式:
    : S8 U, L$ ]% s8 r: I
1.make config 文本配置方式;
6 q" `( z+ U: U7 v3 `2.make menuconfig 菜单配置方式;
) c7 K/ U( d1 i2 L. y0 y3.make xconfig 图形界面配置方式(需安装qt)。1 e) p3 u# v2 d5 K7 n2 `
可以采用任何一个方式配置内核,一般推荐使用make menuconfig来配置内核。
" g! @" P" u  w3 V$ [: u终端输入命令:make menuconfig,打开内核配置界面。" F) a( D7 S9 V* e6 V, R5 o  E( R
" z* r* {0 H/ F0 P
  • 配置界面的操作方法及说明:3 g0 p9 s% {$ k$ I2 C# x, ?
1.按y包含进系统;) s6 j% }- R; ?' \- l
2.按n不包含进系统;& C% L& _1 i2 K  S
3.按m作为模块包含进系统;2 V" Z8 ~0 J) N* c$ `1 s5 f+ h
4.按Esc键返回上一级菜单;
. B$ H, k( k; q; O2 Y5.按方向键选择菜单;
. n/ L' ]! B* H3 o! }6.表示已包含;
/ q2 w; }; D( _: n7.[ ]表示未包含。
: I+ w% G0 v$ N, w; N. j内核裁剪需要根据项目需求,这里介绍一些必须包含的选项,其余根据个人需求包含或删除。General setup-->system V IPC (IPC:Inter Process Communication)是组系统调用及函数库,程序运行必备的,必须包含。
, z: L' u1 n0 @9 f/ S在所有需要的选项配置完毕之后,按Esc退出,选择Yes保存。
* c* ^: d) Y. M4 J设置好交叉编译器后,终端输入命令:make,然后就是漫长的等待,编译完成后在./arch/arm/boot/目录下生成zImage。
0 t- f1 F9 B% s: e( {; S
  • 内核添加新设备(LED驱动为例)
    4 R/ P: o% f9 Q3 ]3 J
在kernel\drivers\char\目录下创建一个led目录,之后编写的led驱动代码将放在这个目录中。
5 J1 ~' ~  Q( V/ k6 `$ C( P& C: [修改kernel\drivers\char\目录中的Makefile将led目录包含进去。
1 J6 ]& ]2 _7 F4 |% Q" u0 R即:在Makefile中添加   obj-y += led/  即可。
( w% A5 n3 Y; {9 G% O: s  _3 F
  • obj-y:表示由xx.c 或者 foo.s 文件编译得到foo.o 并连接进内核。
  • obj-m: 则表示该文件作为模块编译。
    # [# C' q7 U9 D; ?& ]8 z- c
除了y、m以外的obj-x 形式的目标都不会被编译。
  N" \& T( U% \在led目录中添加Makefile文件和Kconfig文件,并添加如下内容:' J/ I4 r- Z* A
Makefile文件:+ F, W. u: `  }+ U% U6 z. ^
obj-$(CONFIG_MY_LED_DRIVER) += my-led.o
( C; Z! o; j0 i' H/ ?Kconfig文件:
9 j6 O) j5 c6 x% @config MY_LED_DRIVER! ]: d$ C+ v) h7 `. a9 Y
bool "my led driver"- v3 a8 N1 q$ R
default y
% @: N; f5 w! l6 thelp" |! d; u% I  \
compile for leddriver,y for kernel,m for module.9 S/ c/ o9 C+ Z% Y( X
这部分内容远远不止这些, 更多资料建议网上查询或买本书9 r' N- X5 t( N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 00:17 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表