wangwenxue 发表于 2020-2-4 11:52:51

从单片机到Linux系列博客之十九:如何高效的阅读Linux源码

如何阅读代码还要单独写一篇文章?难道不是随便用一个IDE就可以了吗?回到上一篇文章里介绍的那个问题,需要修改uboot里board_mmc_init函数里的writel(0x66666666,REG_MFP_GPD_L) ,对于初学者如何在uboot代码里找到这句话呢?
因为Uboot和Kernel里有非常多数量的文件,另外为了支持多种芯片,在整个目录里存在大量的同名文件、同名函数。所以如果用一般的IDE把整个工程目录加载进去,然后阅读代码,会相当的不方便,你很难理清楚各个函数之间的调用关系。我曾经尝试过在Windows下用SourceInsight去看内核源码,实在看不下去,而且由于文件太多经常卡住。在网上也看到有人通过一些脚本去精简文件数量再配合SourceInsight的,我也尝试过,感觉也不是很好用。见到过几个高手是直接通过VIM阅读,效率很高,我经过几天的摸索,稍微入了一点门,在这里给初学者做个分享,希望对大家有所帮助。         
完整文章见附件pdf:

roy2002 发表于 2020-2-4 12:54:27

学习学习,谢谢楼主

luohui5003 发表于 2020-2-4 13:15:52

谢谢楼主分享!

t35720864 发表于 2020-2-4 13:44:41

谢谢楼主分享!

721zjr 发表于 2020-2-4 14:34:16

谢谢楼主!

shwind 发表于 2020-2-4 17:27:05

学习一下,感谢

gsnDragon 发表于 2020-2-4 17:39:48

来借鉴一下~~

renpeng009672 发表于 2020-2-4 18:00:10

楼主的教程解答了很多疑问啊,顶起

nnmnnm 发表于 2020-2-4 18:26:55

学习一下,感谢楼主

cjxu 发表于 2020-2-4 18:58:05

进来学习

我是一个大白菜 发表于 2020-2-4 19:20:06

谢谢楼主分享

gzwirelesss 发表于 2020-2-4 19:20:14

学习一下,多谢楼主

机器人天空 发表于 2020-2-4 21:47:01

很有用{:lol:}

solojimes 发表于 2020-2-4 21:52:12

楼主的的文章有没有在哪个网站上连载

cumthe 发表于 2020-2-4 22:08:58

谢谢分享。

zx310500 发表于 2020-2-4 22:13:09

下载学习下,感谢分享{:smile:}

spark123 发表于 2020-2-4 23:08:46

趁还放假有时间多看下,这LINUX学了好多年,一直在门外徘徊进不了。

Feco 发表于 2020-2-4 23:48:02


谢谢楼主分享!

wangwenxue 发表于 2020-2-5 08:25:28

solojimes 发表于 2020-2-4 21:52
楼主的的文章有没有在哪个网站上连载

有 www.topsemic.com 个人博客

wangwenxue 发表于 2020-2-5 08:28:27

renpeng009672 发表于 2020-2-4 18:00
楼主的教程解答了很多疑问啊,顶起

我也是小白,只是把遇到的疑问解决办法总结了出来。

wangwenxue 发表于 2020-2-5 08:28:50

spark123 发表于 2020-2-4 23:08
趁还放假有时间多看下,这LINUX学了好多年,一直在门外徘徊进不了。

逐步深入

smaret 发表于 2020-2-5 09:36:20

现在有空,学习,学习,谢谢楼主

zwc58 发表于 2020-2-5 09:52:00

谢谢楼主分享!

ele-madman 发表于 2020-2-5 11:10:57

这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行

fdcnuaa 发表于 2020-2-5 12:00:25

谢谢分享

a105 发表于 2020-2-5 12:42:27

用IDE的全部搜索也不错的呀

hricchaya 发表于 2020-2-5 12:57:18

学习一下,谢谢楼主分享!

wangwenxue 发表于 2020-2-5 16:02:26

a105 发表于 2020-2-5 12:42
用IDE的全部搜索也不错的呀

自己习惯了一种就好

wangwenxue 发表于 2020-2-5 16:03:36

ele-madman 发表于 2020-2-5 11:10
这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行

萝卜白菜 各有所爱。

wahaha 发表于 2020-2-5 16:25:15

学习一下,谢谢楼主分享

yutianyiren 发表于 2020-2-5 16:55:56

学习一下,写的很详细

formatme 发表于 2020-2-5 17:59:02

插件很实用.

kyq_linux 发表于 2020-3-3 14:59:06

好东西啊。。不过有没有vscode的插件。。。在vscode里面看。。跳转也是头疼。。

zhongsandaoren 发表于 2020-3-3 15:09:03

学习了,谢谢

luobote55 发表于 2020-3-3 15:19:19

LZ应该大字标出:vim环境搭建。

网上大把的文章。纯学习不推荐,除非工作环境有需要可以学。学习成本1~2month(熟练到超过原来的IDE的代码速度)。

工具而已,不要看了别人火箭上天就要学,洛阳铲照样能发扬国粹。

wangwenxue 发表于 2020-3-3 16:52:58

本帖最后由 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:}

love0679 发表于 2020-3-3 16:54:57

这个必须标记回去读一下……曾经读LINUX的摄像头驱动读的生不如死……

wangwenxue 发表于 2020-3-3 17:04:34

a105 发表于 2020-2-5 12:42
用IDE的全部搜索也不错的呀

全部搜索的问题在于,linux源码里有大量的同名函数,同名文件,你搜出来一大推,但是却不知道实际调用的是哪个

wangwenxue 发表于 2020-3-3 17:05:32

ele-madman 发表于 2020-2-5 11:10
这个我还在大三时候就搞过,个人感受除了装逼没卵用,用eclipse 看还行

不仅仅只是装逼,{:lol:}
任何事物都有存在的道理

wangwenxue 发表于 2020-3-3 17:06:31

kyq_linux 发表于 2020-3-3 14:59
好东西啊。。不过有没有vscode的插件。。。在vscode里面看。。跳转也是头疼。。 ...

VSCode 我用的不多,只是简单用过。

wangwenxue 发表于 2020-3-3 17:07:48

love0679 发表于 2020-3-3 16:54
这个必须标记回去读一下……曾经读LINUX的摄像头驱动读的生不如死……

一看你就是过来人,我体会你的痛苦,曾经我也痛苦。。。

jeasonb 发表于 2020-3-3 22:12:45

感谢大佬的分享

luobote55 发表于 2020-3-3 22:23:22

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系列,竖列操作效率高。

luobote55 发表于 2020-3-3 22:28:30

分享点脚本吧:下述脚本我是放在.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"

wangwenxue 发表于 2020-3-3 22:46:13

luobote55 发表于 2020-3-3 22:23
LZ应该大字标出:vim环境搭建。
-----不仅仅只是vim,主要是配合其他的几个插件。
+++vim环境搭建,没有 ...

赞,取众工具之所长。关键还是自己用着舒服最重要。

lqs123 发表于 2020-3-4 10:01:47

谢谢楼主分享!

LayLai 发表于 2020-3-4 10:36:39

昨天刚接了个LINUX项目谢谢楼主分享

memory4597 发表于 2020-3-4 10:52:46

感谢楼主分享

在途中 发表于 2020-3-4 11:39:55

感谢分享

shuhao 发表于 2020-9-14 10:08:37

谢谢分享

feibagezib 发表于 2020-9-16 11:01:47

谢谢楼主分享!
页: [1]
查看完整版本: 从单片机到Linux系列博客之十九:如何高效的阅读Linux源码