从单片机到Linux系列博客之十九:如何高效的阅读Linux源码
如何阅读代码还要单独写一篇文章?难道不是随便用一个IDE就可以了吗?回到上一篇文章里介绍的那个问题,需要修改uboot里board_mmc_init函数里的writel(0x66666666,REG_MFP_GPD_L) ,对于初学者如何在uboot代码里找到这句话呢?因为Uboot和Kernel里有非常多数量的文件,另外为了支持多种芯片,在整个目录里存在大量的同名文件、同名函数。所以如果用一般的IDE把整个工程目录加载进去,然后阅读代码,会相当的不方便,你很难理清楚各个函数之间的调用关系。我曾经尝试过在Windows下用SourceInsight去看内核源码,实在看不下去,而且由于文件太多经常卡住。在网上也看到有人通过一些脚本去精简文件数量再配合SourceInsight的,我也尝试过,感觉也不是很好用。见到过几个高手是直接通过VIM阅读,效率很高,我经过几天的摸索,稍微入了一点门,在这里给初学者做个分享,希望对大家有所帮助。
完整文章见附件pdf:
学习学习,谢谢楼主 谢谢楼主分享! 谢谢楼主分享! 谢谢楼主! 学习一下,感谢 来借鉴一下~~ 楼主的教程解答了很多疑问啊,顶起 学习一下,感谢楼主 进来学习 谢谢楼主分享 学习一下,多谢楼主 很有用{:lol:} 楼主的的文章有没有在哪个网站上连载 谢谢分享。 下载学习下,感谢分享{:smile:} 趁还放假有时间多看下,这LINUX学了好多年,一直在门外徘徊进不了。
谢谢楼主分享! solojimes 发表于 2020-2-4 21:52
楼主的的文章有没有在哪个网站上连载
有 www.topsemic.com 个人博客 renpeng009672 发表于 2020-2-4 18:00
楼主的教程解答了很多疑问啊,顶起
我也是小白,只是把遇到的疑问解决办法总结了出来。 spark123 发表于 2020-2-4 23:08
趁还放假有时间多看下,这LINUX学了好多年,一直在门外徘徊进不了。
逐步深入 现在有空,学习,学习,谢谢楼主 谢谢楼主分享! 这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行 谢谢分享 用IDE的全部搜索也不错的呀 学习一下,谢谢楼主分享! a105 发表于 2020-2-5 12:42
用IDE的全部搜索也不错的呀
自己习惯了一种就好 ele-madman 发表于 2020-2-5 11:10
这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行
萝卜白菜 各有所爱。 学习一下,谢谢楼主分享 学习一下,写的很详细 插件很实用. 好东西啊。。不过有没有vscode的插件。。。在vscode里面看。。跳转也是头疼。。 学习了,谢谢 LZ应该大字标出:vim环境搭建。
网上大把的文章。纯学习不推荐,除非工作环境有需要可以学。学习成本1~2month(熟练到超过原来的IDE的代码速度)。
工具而已,不要看了别人火箭上天就要学,洛阳铲照样能发扬国粹。 本帖最后由 wangwenxue 于 2020-3-3 16:54 编辑
luobote55 发表于 2020-3-3 15:19
LZ应该大字标出:vim环境搭建。
网上大把的文章。纯学习不推荐,除非工作环境有需要可以学。学习成本1~2mo ...
LZ应该大字标出:vim环境搭建。
-----不仅仅只是vim,主要是配合其他的几个插件。
网上大把的文章。纯学习不推荐,除非工作环境有需要可以学。学习成本1~2month(熟练到超过原来的IDE的代码速度)。
------ 网上大把的文章没错,我没看到完整写的非常详细全的。
------ 不是为了学而学,是因为确实用的到,至少对我而言是这样,我是因为用sourceinsight IDE觉得不爽才学的这个。你说的IDE指什么,可以分享一下,用来阅读分析Linux源代码的。
工具而已,不要看了别人火箭上天就要学,洛阳铲照样能发扬国粹。
-------每个人都有自己的选择,对于我,如果我身边的人很优秀,他的火箭能上天,我的不行,我还真是想学习他的优点,{:biggrin:} 这个必须标记回去读一下……曾经读LINUX的摄像头驱动读的生不如死…… a105 发表于 2020-2-5 12:42
用IDE的全部搜索也不错的呀
全部搜索的问题在于,linux源码里有大量的同名函数,同名文件,你搜出来一大推,但是却不知道实际调用的是哪个 ele-madman 发表于 2020-2-5 11:10
这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行
不仅仅只是装逼,{:lol:}
任何事物都有存在的道理 kyq_linux 发表于 2020-3-3 14:59
好东西啊。。不过有没有vscode的插件。。。在vscode里面看。。跳转也是头疼。。 ...
VSCode 我用的不多,只是简单用过。 love0679 发表于 2020-3-3 16:54
这个必须标记回去读一下……曾经读LINUX的摄像头驱动读的生不如死……
一看你就是过来人,我体会你的痛苦,曾经我也痛苦。。。 感谢大佬的分享 wangwenxue 发表于 2020-3-3 16:52
LZ应该大字标出:vim环境搭建。
-----不仅仅只是vim,主要是配合其他的几个插件。
LZ应该大字标出:vim环境搭建。
-----不仅仅只是vim,主要是配合其他的几个插件。
+++vim环境搭建,没有插件还能怎么搭?
网上大把的文章。纯学习不推荐,除非工作环境有需要可以学。学习成本1~2month(熟练到超过原来的IDE的代码速度)。
------ 网上大把的文章没错,我没看到完整写的非常详细全的。
------ 不是为了学而学,是因为确实用的到,至少对我而言是这样,我是因为用sourceinsight IDE觉得不爽才学的这个。你说的IDE指什么,可以分享一下,用来阅读分析Linux源代码的。
+++很惭愧,手头毛德操的内核源码分析积灰多年。内核代码一般看看的话,sourceinsight最新版本的话应该也够了(几年不用了,印象中是)。
+++我的意思是:加入你本身sourceinsight很熟练的话,再去学VIM,快捷键熟练到效率超过你原来sourceinsight熟练度,学习成本太大。当然也是看你想要什么。
工具而已,不要看了别人火箭上天就要学,洛阳铲照样能发扬国粹。
-------每个人都有自己的选择,对于我,如果我身边的人很优秀,他的火箭能上天,我的不行,我还真是想学习他的优点,
++++ 工具,各有利弊,举的例子:VIM,quickfix好用,回车即定位,效率远超用鼠标的IDE。但是遇到批量小个单词复制粘贴,还是用notepad++、vs系列,竖列操作效率高。
分享点脚本吧:下述脚本我是放在.bash_rc里的,你也可以新建的脚本文件,用.bash_rc来调。
一个是快捷键,直接进到工程目录。
另一个SOURCEDIRS,是cscope的附加目录参数,其他还有些参数吧,用的。
GREP_OPTIONS,grep时略过.svn,提升效率。
#!/bin/sh
function cdv()
{
cd /home/UserName/Device/trunk/
}
function cdvu()
{
cd /home/UserName/Device/trunk/util_trunk
}
function cdd()
{
cd /home/UserName/Device/trunk
}
function cdt()
{
cd /home/UserName/tftpboot/tftp
}
export PATH=$PATH:/opt/CodeSourcery/Sourcery_G++_Lite/bin
export DVSDK_G6_TARGET_DIR=/home/UserName/Device/trunk
export G6_UTIL_LIB_DIR=/home/UserName/G6_util_lib/trunk
export SOURCEDIRS=$G6_UTIL_LIB_DIR/xxxxx:$G6_UTIL_LIB_DIR/cccccc
export LANG=zh_CN.UTF-8
export GREP_OPTIONS="--exclude-dir=\.svn"
luobote55 发表于 2020-3-3 22:23
LZ应该大字标出:vim环境搭建。
-----不仅仅只是vim,主要是配合其他的几个插件。
+++vim环境搭建,没有 ...
赞,取众工具之所长。关键还是自己用着舒服最重要。 谢谢楼主分享! 昨天刚接了个LINUX项目谢谢楼主分享 感谢楼主分享 感谢分享 谢谢分享 谢谢楼主分享!
页:
[1]