嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码

简介: 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(五)使用Source insight处理代码

安装source Insight 参考 请点击

教程:教程点击


1 使用Source Insight阅读Linux内核源码


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

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


1.1 Source Insight简介


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

参考网址

 官网主页 请点击

 软件下载页面 请点击

 用户使用教程 请点击


1.2 在Windows上解压内核源码


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

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


1.3 建立工程示例


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

新建工程


运行source Insight,点击菜单“Project->New Project”,如下图所示:

1670849628699.jpg

设置工程名及工程数据目录


在弹出的New Project对话框中设置“New project name”(项目的名称),然后设置Where do you want to store the project data file? (项目文件保存位置),点击Browse按钮选择源码的目录即可。

1670849637794.jpg目录


设置“Project Source Directory – the main location of your source files”(源码目录),

点击红框左边“…”选择源码目录,点击OK,如下图:

1670849645541.jpg

添加源码


在新弹出的对话框中,点击“Add”或“Add All”。“Add”是手动选择需要添加的文件,而“Add All”是添加所有文件。我们使用“Add All”,在弹出的提示框中选中“Recursively add lower sub-directories”(递归添加下级的子目录)并点击OK。同样的Remove File,Remove All是移除单个文件或者移除所有文件,如下图:


1670849654083.jpg

添加文件完成后点击Close,此时界面会返回到主界面,如下图,点击“Close”:

1670849666233.jpg

同步文件


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

先点击菜单“Project->Synchronize Files”,如下图所示:

1670849673796.jpg

在弹出的对话框中 选中“Force all files to be re-parsed”(强制解析所有文件),并点击“Start”按钮开始同步,如下图所示:

1670849681849.jpg

1.4 操作示例


打开工程


前面建议工程后,就会自动打开了工程。如果下次你想打开工程,启动Souce Insight后,点击菜单“Project -> Open Porject”就可以在一个列表中选择以前建立的工程,如下图:

1670849693064.jpg

在工程中打开文件


点击"P"图标打开文件列表,双击文件打开文件,也可以输入文件名查找文件,如下图所示:

1670849701700.jpg

在文件中查看函数或变量的定义


打开文件后,按住ctrl键的同时,用鼠标点击函数、变量,就会跳到定义它的位置,如下图所示:

1670849708917.jpg

查找函数或变量的引用


双击函数,右键点击弹出对话框选择“Lookup Reference”;或者双击函数后,使用快捷键"ctrl+/"来查找引用,如下图:

1670849716939.jpg

其他快捷键


快捷键 说明

Alt + , 后退

Alt + . 前进

F8 高亮选中的字符

Ctrl+F 查找

F3或Shift+F3 往前查找

F4或Shift+F4 往后查找

相关文章
|
5天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
5天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
10天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
38 8
|
10天前
|
API 内存技术
鸿蒙next版开发:相机开发-拍照(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文详细介绍如何在ArkTS中实现拍照功能,包括导入接口、创建会话、配置会话、触发拍照及监听拍照输出流状态,并提供代码示例进行详细解读。通过本文,你将掌握如何在HarmonyOS 5.0中使用ArkTS实现高效的拍照功能。
30 7
|
10天前
|
前端开发 API
鸿蒙next版开发:相机开发-预览(ArkTS)
在HarmonyOS 5.0中,使用ArkTS进行相机预览是核心功能之一。本文详细介绍了如何使用ArkTS实现相机预览,包括导入相机接口、创建Surface、获取相机输出能力、创建会话并开始预览,以及监听预览输出状态等步骤,并提供了代码示例。通过本文,读者可以掌握在HarmonyOS 5.0中使用ArkTS进行相机预览的基本方法。
31 6
|
10天前
|
编解码 开发工具 计算机视觉
鸿蒙5.0版开发:命令行工具(mediatool工具)
在HarmonyOS 5.0的开发中,命令行工具mediatool基于FFmpeg库,提供了丰富的媒体处理功能,如视频和音频的转码、封装格式转换、提取媒体信息等。本文详细介绍mediatool的功能和使用方法,并提供代码示例。
30 6
|
10天前
|
前端开发 开发者
鸿蒙next版开发:相机开发-元数据(ArkTS)
在HarmonyOS 5.0中,ArkTS新增了对相机元数据的访问能力,帮助开发者获取图像的详细信息。本文介绍了如何在ArkTS中获取和使用相机元数据,包括导入接口、创建元数据输出流、开启和停止元数据输出、监听元数据对象可用事件等步骤,并提供了详细的代码示例。
32 5
|
10天前
|
前端开发 API 开发者
鸿蒙next版开发:相机开发-录像(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机录像功能。本文详细介绍了如何在ArkTS中实现录像功能,包括导入接口、创建Surface、获取相机输出能力、创建会话并开始录像以及监听录像输出流状态,并提供了代码示例进行解读。希望本文能帮助开发者更好地利用ArkTS的相机录像功能。
28 5
|
10天前
|
API 开发者 内存技术
鸿蒙next版开发:相机开发-会话管理(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了完整的API来管理相机会话,包括创建相机输入流、预览输出流、拍照输出流,配置和管理会话。本文详细介绍了相机会话管理的基础步骤和代码示例,涵盖会话创建、闪光灯和焦距配置及错误处理等内容,帮助开发者更好地利用ArkTS开发相机应用。
30 4
|
10天前
|
UED
鸿蒙next版开发:音频并发策略扩展(ArkTS)
在HarmonyOS 5.0中,音频并发策略通过ArkTS的AudioSessionManager接口管理多个音频流的交互和优先级。本文介绍了如何自定义音频焦点策略,包括激活、停用音频会话及注册回调函数,并提供了示例代码。适用于多媒体、通信和游戏应用。
34 4