进行嵌入式Linux产品开发,往往需求对内核进行裁剪和定制,以满意嵌入式产品的功用和性能需求。本文介绍几种阅览Linux内核源码的东西和办法。
这儿所说的“Linux内核开发”仅仅是指嵌入式Linux产品开发中内核和驱动相关开发作业,与Linux所领导的内核开发团队的内核开发有很大不同。
俗话说“工欲善其事,必先利其器”,面临几百兆的Linux内核代码,要阅览、检查或许查找其间的代码,大部分初度接触到Linux内核代码的开发人员,都有无从下手的感觉。下面引荐几个源码阅览和索引东西,能为后续内核开发供给一些便当。
1、Source Insight
Source Insight是Windows渠道下一款盛行度极高的源码阅览和修改东西。不少Linux开发人员仍是习惯于在Windows下进行源码修改,乃至检查和修改Linux内核源码,仍然在Source Insight中完结。
阐明:Source Insight是一款版权软件,需求自行解决版权问题。
装置Source Insight软件后,新建一个工程,取名并指定数据寄存方位,如图 1.1所示。
图 1.1 新建工程
点击OK按钮,进入工程设置界面,如图 1.2所示。
图 1.2 工程设置
然后增加源码。阅览选中Linux内核源码文件夹后,点击“Add Tree”按钮,将内核源码树的悉数文件增加到工程中,如图 1.3所示。
图 1.3 增加内核源码
增加完结,即可在Source Insight中进行源码阅览和修改了,如图 1.4所示。
图 1.4 在Source Insight中阅览源码
2、Eclipse
Eclipse是一个跨渠道IDE,既能运转于Windows渠道,也能在Linux下运转。不少习惯于图形界面操作的开发人员,在Linux下则习惯于用Eclipse来检查和修改Linux源码。
假如仅仅是在Eclipse中检查Linux内核源码,则能够不用事前装置穿插编译器,不然则须事前装置好穿插编译器。
创立内核源码工程。点击FileàNewàProject,开端创立工程,在工程创立界面挑选创立C工程,如图 1.5所示。
图 1.5 创立C工程
点击Next,在C Project界面的Project name栏中填写工程称号,去掉“Use default location”的勾,点击Browse将Location设置为Linux内核源码目录,如图 1.6所示。假如不在Eclipse中编译内核,则运用Linux GCC即可,不然请运用装置好的Cross GCC。
图 1.6 导入Linux内核源码
然后点击Finish,完结Linux内核源码导入,在Eclipse中即可进行代码阅览和修改了,如图 1.7所示。
图 1.7 在Eclipse中阅览内核源码
在Eclipse中进行源码盯梢,只需挑选函数、变量或许宏界说后按F3即可。更多的操作可在Navigate中找到。
3、vim+ctags+cscope
Vi/Vim是一个文本修改器,在Vim中能高效的完成代码修改。但Vim的功用不仅仅是一个文本修改器,凭借ctags和cscope的合作,Vim能完成堪比图形IDE环境的源码修改和阅览功用,在某种程度上乃至比图形IDE更便利。
Vi/Vim的装置不再介绍了。假如不是经过长途登录在长途服务器上作业,而是在本地桌面体系操作,还能够用gvim发动Vi修改器。
Taglist
Taglist是Vim的一个源码阅览插件,可从http://www.vim.org网站取得。下载到压缩包后,在本地解压,然后将解压得到目录中的plugin目录复制到~/.vim目录。假如用户主目录下没有.vim目录,则树立一个这样的目录即可。
Ctags
Ctags是一个用于发生tags文件的软件,能够下载源码进行编译装置,在Ubuntu下,可经过apt-get进行装置:
sudo apt-get install exuberant-ctags
源码阅览和盯梢
进入预备检查的源码地点目录,首要生成tags文件:
ctags -R
履行时间长短取决于源码数量的多少,履行结束,在当时目录下可看到一个tags文件。源码越多,履行时间越长,发生的tags文件也越大。
留意:假如修改了源码,代码行号发生了改变,需求从头生成tags文件。
(1)检查函数等界说。用Vi/Vim翻开一个C文件。若想知道某个函数、变量、结构或许宏界说在什么当地界说,先将光标移动到函数(变量、结构或许宏界说)上,然后按CTRL+]即可。检查后,按CTRL+o可回到本来地点方位。
(2)检查文件函数列表。翻开C文件后,在Vi/Vim的指令状态下输入:TlistToggle(Vi/Vim的指令输入支撑补全),在Vi/Vim左面就会呈现函数列表侧栏,如图 1.8所示。按CTRL+ww(2次w),可在列表和代码检查区间切换。
图 1.8 Vi/Vim的函数列表侧栏
假如在本地桌面,用Gvim翻开C文件,运用起来比较挨近IDE集成环境。用鼠标双击函数即可跳转到函数界说的当地,CTRL+鼠标右键即可回退到本来地点方位。更多有用特性,还需求在实际操作中体会。
4、LXR
LXR是Linux Cross Referencer的缩写,是一个比较盛行的Linux源码检查东西,当然也不仅仅局限于检查Linux源码。LXR的下载地址为:http://lxr.sourceforge.net,参阅该网站的装置阐明,很简单在本机建立一个本地LXR用于源码检查。
假如不想建立本地LXR,能够直接阅览现已搭好的LXR网站,引荐两个网站:一个是开源我国网站供给的Linux源码在线阅览http://lxr.oss.org.cn,另一个是http://lxr.free-electrons.com网站,前者速度较快,可是供给的Linux内核版别较少,后者则供给的版别较多。网站供给了源码阅览、关键字查找和自在文本查找功用。两者的网页快照别离如图 1.9和图 1.10所示。
图 1.9 lxr.oss.org.cn网页快照
图 1.10 lxr.free-electrons.com网页快照