使用 Source Insight 阅读 Linux 内核源码

在后面开发驱动程序时,驱动程序中用到的函数都是来自内核,所以可以先在 Windows 下创建内核的Source Insight 工程。

如果你不想学习驱动开发,那么可以不创建内核的工程。但是以后学习大型 APP 时,也可以使用 Source Insight 来阅读、编写代码,可以借鉴本节讲解的 Source Insight 用法。

7.4.1 Source Insight 简介

Source Insight 是 Source Dynamics 公司出品的源代码编辑器。Source Insight 提供语法突出显示,代码导航和可自定义的键盘快捷键。它不仅仅是一个编辑器,而是一个理解大型源代码库的工具,因此被称为“程序编辑器和分析器”。它灵活轻便,提供有用的功能,如关系,上下文和符号窗口。它在建源码工程时,构建了符号信息的内部数据库,所以还可以显示引用树,类继承图和调用树。它的最大好处是加快了对不熟悉项目的代码理解。

参考网址:

7.4.2 在 Windows 上解压内核源码

前面《7.2 使用 repo 下载内核及工具链等》里下载到内核后,在 Ubuntu 下压缩了内核,把压缩文件通过 FileZilla 传回 Windows,并解压。

在 Windows 解压内核时会提示一些错误,会提示是否覆盖文件,选择“覆盖”即可。这是因为 Linux 下的文件区分大小写,a.c 和 A.c 以不同的文件,但是 Windows 下不区分大小写,这 2 个文件是同一个。这些错误不会影响我们阅读源码。

7.4.3 建立工程示例

本节新建一个 linux kernel 的 source Insight 工程,你也可以为其他 APP 建立工程,方法是一样的。

  1. 新建工程
    运行 source Insight,点击菜单“Project->New Project”,如下图所示:
    使用 Source Insight 阅读 Linux 内核源码

  2. 设置工程名及工程数据目录
    在弹出的 New Project 对话框中设置“New project name”(项目的名称),然后设置 Where do you want to store the project data file? (项目文件保存位置),点击 Browse 按钮选择源码的目录即可。
    使用 Source Insight 阅读 Linux 内核源码

  3. 指定源码目录
    设置“Project Source Directory – the main location of your source files”(源码目录),点击红框左边“…”选择源码目录,点击 OK,如下图:
    使用 Source Insight 阅读 Linux 内核源码

  4. 添加源码
    在新弹出的对话框中,点击“Add”或“Add All”。“Add”是手动选择需要添加的文件,而“Add All”是添加所有文件。我们使用“Add All”,在弹出的提示框中选中“Recursively add lower subdirectories”(递归添加下级的子目录)并点击 OK。同样的 Remove File,Remove All 是移除单个文件或者移除所有文件,如下图:
    使用 Source Insight 阅读 Linux 内核源码
    添加文件完成后点击 Close,此时界面会返回到主界面,如下图,点击“Close”:
    使用 Source Insight 阅读 Linux 内核源码

  5. 同步文件
    同步文件的意思是让 Source Insight 去解析源码,生成数据库,这样有助于以后阅读源码。比如点击某个函数时就可以飞快地跳到它定义的地方。

先点击菜单“Project->Synchronize Files”,如下图所示:
使用 Source Insight 阅读 Linux 内核源码
在弹出的对话框中 选中“Force all files to be re-parsed”(强制解析所有文件),并点击“Start”按钮开始同步,如下图所示:
使用 Source Insight 阅读 Linux 内核源码

7.4.4 操作示例

  1. 打开工程
    前面建议工程后,就会自动打开了工程。如果下次你想打开工程,启动 Souce Insight 后,点击菜单“Project -> Open Porject”就可以在一个列表中选择以前建立的工程,如下图:
    使用 Source Insight 阅读 Linux 内核源码
  2. 在工程中打开文件
    点击"P"图标打开文件列表,双击文件打开文件,也可以输入文件名查找文件,如下图所示:
    使用 Source Insight 阅读 Linux 内核源码
  3. 在文件中查看函数或变量的定义
    打开文件后,按住 ctrl 键的同时,用鼠标点击函数、变量,就会跳到定义它的位置,如下图所示:
    使用 Source Insight 阅读 Linux 内核源码
  4. 查找函数或变量的引用
    双击函数,右键点击弹出对话框选择“Lookup Reference”;或者双击函数后,使用快捷键"ctrl+/"来查找引用,如下图:
    使用 Source Insight 阅读 Linux 内核源码
  5. 其他快捷键
快捷键 说明
Alt + , 后退
Alt + . 前进
F8 高亮选中的字符
Ctrl+F 查找
F3 或 Shift+F3 往前查找
F4 或 Shift+F4 往后查找

全文下载:嵌入式Linux系统开发完全手册 第二版

技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
QQ群:869222007