@@ -0,0 +1,258 @@ | |||||
## IAR相关知识点 | |||||
### 1.工程操作 | |||||
#### 1.1各类型文件含义 | |||||
##### 1.1.1工程核心文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| :----: | :------------------: | :----------------------------------------------------------: | | |||||
| .ewp | IAR 工程文件 | 存储工程配置(编译器选项、链接器设置、包含路径等) | | |||||
| .ewt | 嵌入式工作台模板文件 | 用于存储工程或文件的模板配置,方便快速创建具有相同设置的新项目。 | | |||||
| .eww | IAR 工作空间文件 | 管理多个工程(.ewp)的集合,方便同时打开多个关联工程 | | |||||
| .dep | 依赖文件 | 自动生成,记录源文件的依赖关系(如头文件引用),用于增量编译 | | |||||
##### 1.1.2源代码文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| --------- | :-------: | :-------------------------------------------------: | | |||||
| .c | C源文件 | 主程序代码 | | |||||
| .cpp/.cxx | c++源文件 | c++程序代码 | | |||||
| .h | 头文件 | 函数声明、宏定义、类型声明 | | |||||
| .s/.asm | 汇编文件 | 底层硬件操作或高性能代码 | | |||||
| .icf | 链接脚本 | 控制内存分配(Flash/ROM、RAM 布局)关键硬件相关文件 | | |||||
##### 1.1.3编译输出文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| ------ | :--------------: | :---------------------------------------------------------: | | |||||
| .out | ELF 格式输出文件 | 包含调试信息的可执行文件(用于下载和调试) | | |||||
| .hex | Intel HEX 文件 | 烧录到芯片的标准十六进制格式 | | |||||
| .bin | 二进制镜像 | 裸机烧录文件(无地址信息,需配合烧录工具指定地址) | | |||||
| .map | 内存映射文件 | 详细展示代码/数据在内存中的分布(分析栈溢出、内存占用必看) | | |||||
| .lst | 列表文件 | 汇编与源码混合视图(用于优化和调试) | | |||||
##### 1.1.4调试相关文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| -------- | :--------------: | :----------------------------------------: | | |||||
| .cspybat | C-SPY 批处理文件 | 自动化调试脚本(初始化寄存器、批量设断点) | | |||||
| .ddf | 设备描述文件 | 定义芯片寄存器(用于调试器外设视图) | | |||||
| .board | 开发板描述文件 | 配置板级硬件(时钟、引脚复用等) | | |||||
| .mac | 调试宏文件 | 扩展调试器功能(如自定义内存填充检测) | | |||||
##### 1.1.5配置与中间文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| --------------- | :----------: | :----------------------------------: | | |||||
| .custom_argvars | 环境变量配置 | 存储用户自定义环境变量(如编译路径) | | |||||
| .settings | IDE 设置文件 | 保存编辑器偏好(字体、颜色方案等) | | |||||
| .o/.obj | 目标文件 | 单个源文件的编译结果(链接时合并) | | |||||
| .d | 依赖信息文件 | Makefile 使用的依赖规则 | | |||||
##### 1.1.6特殊工具文件 | |||||
| 扩展名 | 名称 | 作用 | | |||||
| ------ | :--------------: | :--------------------------------------: | | |||||
| .xcl | XLINK 链接器配置 | 高级链接控制(段重命名、优化选项) | | |||||
| .i | 预处理输出文件 | 展开宏和头文件后的源码(排查宏错误必备) | | |||||
| .sbr | 浏览信息文件 | 用于代码导航(函数调用关系) | | |||||
#### 1.2新建/打开工作区 | |||||
软件左上角File菜单内点击New workspace即可创建新的工作区,如需要打开选择Open即可。 | |||||
<img src=".\Pictures\image-20250708131909282.png" alt="image-20250708131909282" style="zoom:50%;" /> | |||||
#### 1.3新建/打开工程 | |||||
工作区新建/打开完成后,选择上方的Project,选择Create New project选择创建类型并命名和存档后完成新建工程。 | |||||
打开工程选择Add。 | |||||
<img src=".\Pictures\image-20250708131945592.png" alt="image-20250708131945592" style="zoom:50%;" /> | |||||
#### 1.4工作区中导入/添加工程 | |||||
选择上方的Project,点击Add Existing Project,便可以添加项目。 | |||||
<img src=".\Pictures\image-20250708132254972.png" alt="image-20250708132254972" style="zoom:50%;" /> | |||||
#### 1.5新建分组 | |||||
右键项目名称,选择Add Group,新建分组 | |||||
<img src=".\Pictures\image-20250708132546212.png" alt="image-20250708132546212" style="zoom:50%;" /> | |||||
#### 1.6新建/打开文件 | |||||
右键项目名称,选择Add File,新建文件。 | |||||
<img src=".\Pictures\image-20250708133238110.png" alt="image-20250708133238110" style="zoom:50%;" /> | |||||
#### 1.7工程目录与文件目录的关系 | |||||
工程目录是文件目录的容器,通过相对路径引用文件目录中的资源。 | |||||
工程目录主要负责项目配置和构建控制,而文件目录则是源代码的物理存储位置。两者通过工程文件中的引用关系连接起来,形成完整的开发环境结构。 | |||||
### 2.工程配置 | |||||
#### 2.1设备配置 | |||||
右键工程文件,选择Options,进入工程配置,选择需要的单片机设备型号。 | |||||
<img src=".\Pictures\image-20250708135420393.png" alt="image-20250708135420393" style="zoom:50%;" /> | |||||
### 3.编译配置 | |||||
#### 3.1优化等级 | |||||
右键Options,选择C/C++ --> Optimizations ,进行优化等级配置。 | |||||
<img src="./Pictures/image-20250709180547755.png" alt="image-20250709180547755" style="zoom:50%;" /> | |||||
#### 3.2硬件浮点 | |||||
General Options 界面,选择32bit或64bit,选择fpu功能是否开启。 | |||||
<img src=".\Pictures\image-20250708140541188.png" alt="image-20250708140541188" style="zoom:50%;" /> | |||||
#### 3.3预处理 | |||||
右键Options,选择C/C++ --> Preprocessor ,Defined symbols进行预处理。 | |||||
<img src="./Pictures/image-20250709180618391.png" alt="image-20250709180618391" style="zoom:50%;" /> | |||||
#### 3.4链接文件 | |||||
Linker页面设置链接文件。 | |||||
<img src=".\Pictures\image-20250708142245783.png" alt="image-20250708142245783" style="zoom:50%;" /> | |||||
#### 3.5文件路径位置 | |||||
在Option页面C/C++设置文件路径位置,包括头文件位置。 | |||||
<img src=".\Pictures\image-20250708142455122.png" alt="image-20250708142455122" style="zoom:50%;" /> | |||||
#### 3.6输出文件配置 | |||||
选择Output页面,然后设置输出文件位置。 | |||||
<img src=".\Pictures\image-20250708142616060.png" alt="image-20250708142616060" style="zoom:50%;" /> | |||||
#### 3.7输出文件路径 | |||||
打开Option,选择General,选择output进行配置。 | |||||
<img src=".\Pictures\image-20250708142932221.png" alt="image-20250708142932221" style="zoom:50%;" /> | |||||
### 4.调试器配置 | |||||
打开Option,选择Debug进行配置 | |||||
<img src=".\Pictures\image-20250708143112548.png" alt="image-20250708143112548" style="zoom:50%;" /> | |||||
### 5.库相关配置 | |||||
设置库文件相关位置,同时在程序内include头文件,使用库。 | |||||
<img src="./Pictures/image-20250710142954145.png" alt="image-20250710142954145" style="zoom:50%;" /> | |||||
### 6.静态库的封装和调用 | |||||
新建项目,同时设置.h和.c文件,进行内部程序的编写。注意减少外部依赖,能够直接移植调用。写完之后点击option进行设置,选择General,OutPut选择library,然后make编译生成.lib文件,使用时复制.lib文件到项目内,并在option内进行配置,然后选择Linker -- > Library,将静态库.lib文件添加,返回工程重新编译。 | |||||
<img src=".\Pictures\image-20250708144035699.png" alt="image-20250708144035699" style="zoom:50%;" /> | |||||
<img src="./Pictures/image-20250709181230566.png" alt="image-20250709181230566" style="zoom:50%;" /> | |||||
### 7.工程调试 | |||||
#### 7.1断点 | |||||
##### 7.1.1设置断点 | |||||
左侧标红设置断点 | |||||
<img src=".\Pictures\image-20250708150820220.png" alt="image-20250708150820220" style="zoom:50%;" /> | |||||
##### 7.1.2禁用断点 | |||||
鼠标右键点击,disable breakpoints。 | |||||
<img src=".\Pictures\image-20250708151057158.png" alt="image-20250708151057158" style="zoom:50%;" /> | |||||
##### 7.1.3启用断点 | |||||
鼠标右键点击,disable breakpoints。 | |||||
##### 7.1.4取消断点 | |||||
鼠标左键点击断点即可取消。 | |||||
##### 7.1.5条件断点 | |||||
鼠标右键想要断点处,选择Edit Breakpoint,将条件写入即可。 | |||||
<img src=".\Pictures\image-20250708152500923.png" alt="image-20250708152500923" style="zoom:50%;" /> | |||||
### 8.监控信息 | |||||
选择view,找到watch,找到想要监视的信息,将其拖到watch窗口即可。 | |||||
<img src=".\Pictures\image-20250708152756370.png" alt="image-20250708152756370" style="zoom:50%;" /> | |||||
### 9.寄存器信息 | |||||
打开view的registers窗口即可查看寄存器信息。 | |||||
<img src=".\Pictures\image-20250708152951214.png" alt="image-20250708152951214" style="zoom:50%;" /> | |||||
### 10.内存信息 | |||||
打开view的memory窗口即可查看寄存器信息 | |||||
 | |||||
### 11.栈信息 | |||||
打开view的stack窗口即可查看栈信息 | |||||
<img src=".\Pictures\image-20250708153204889.png" alt="image-20250708153204889" style="zoom:50%;" /> | |||||
### 12.汇编信息 | |||||
打开view的disassembly窗口可以查看汇编信息 | |||||
<img src=".\Pictures\image-20250708153257586.png" alt="image-20250708153257586" style="zoom:50%;" /> | |||||
### 13.调用堆栈信息 | |||||
打开view的call Stack窗口可以查看堆栈信息 | |||||
<img src=".\Pictures\image-20250708153531949.png" alt="image-20250708153531949" style="zoom:50%;" /> | |||||
### 14.单步调试 | |||||
#### 14.1逐过程调试 | |||||
菜单栏Step over。 | |||||
<img src=".\Pictures\image-20250708153851629.png" alt="image-20250708153851629" style="zoom:50%;" /> | |||||
#### 14.2逐语句调试 | |||||
菜单栏Step into。 | |||||
#### 14.3 复位 | |||||
菜单栏Restart。 | |||||
#### 14.4跳出 | |||||
菜单栏step out。 |
@@ -0,0 +1,105 @@ | |||||
## Library相关知识点 | |||||
### 1.静态库 | |||||
#### 1.1静态库的基本概念 | |||||
静态库是**编译期绑定**的代码复用方案,适合: | |||||
- 追求**部署简单性**的场景 | |||||
- 对**运行时环境控制严格**的系统 | |||||
- **性能敏感**且**无需热更新**的模块 | |||||
#### 1.2静态库的生成 | |||||
第一,创建新项目,选择静态库。 | |||||
第二,添加.c文件,同时编写.h和.c文件进行编写,编写完成后进行编译,生成.lib格式的静态库文件。 | |||||
#### 1.3静态库的调用 | |||||
##### 1.3.1在工程配置中调用 | |||||
**静态库调用有三种方式**: | |||||
**第一**,在工程中调用静态库需要静态库路径,首先include,“内填写路径,并最后写.h文件名”,其次需要 | |||||
#pragma comment进行静态库声明,然后就可以在函数内使用静态库。 | |||||
<img src="./Pictures/image-20250708195734251.png" alt="image-20250708195734251" style="zoom:50%;" /> | |||||
<img src="./Pictures/image-20250708195750876.png" alt="image-20250708195750876" style="zoom:50%;" /> | |||||
**第二**,在项目属性 -- > 链接器 --> 常规 --> 附加库中添加静态库.lib文件的地址,并在输入页面附加依赖项中添加.lib文件。 | |||||
**第三**,直接将lib文件添加到项目中。 | |||||
以上三种方法都需要添加.h文件到项目。 | |||||
##### 1.3.2在代码中语句加载lib调用 | |||||
程序内可以使用相对路径也可以使用绝对路径,相对路径时需要将静态库文件复制到工程文件内。 | |||||
参考上一项。 | |||||
### 2.动态库 | |||||
#### 2.1动态库的基本概念 | |||||
动态库(Dynamic Link Library, DLL / Shared Object, SO)是一种**在程序运行时才被加载的代码库**,允许多个程序共享同一份内存中的库副本 | |||||
#### 2.2动态库的生成 | |||||
##### 2.2.1通过导出语句生成 | |||||
通过dllimport与dllexport导出语句生成动态库,新建空白项目,添加头文件源文件进行编写,在头文件中添加导出语句即可,然后将方案属性选择动态库,生成解决方案即可导出动态库。如图所示。 | |||||
<img src="./../VisualStudio/Pictures/image-20250709103933102.png" alt="image-20250709103933102" style="zoom:50%;" /> | |||||
下图是动态库导出的文件夹状态。 | |||||
 | |||||
##### 2.2.2通过模块文件生成 | |||||
通过def文件进行生成动态库。生成前需要添加def文件,然后添加代码进行生成操作。 | |||||
<img src="./Pictures/image-20250710125750078.png" alt="image-20250710125750078" style="zoom:50%;" /> | |||||
<img src="./Pictures/image-20250710125826600.png" alt="image-20250710125826600" style="zoom:50%;" /> | |||||
#### 2.3动态库的调用 | |||||
##### 2.3.1在工程配置中调用 | |||||
动态库的调用分为隐性和显性调用两种。 | |||||
第一,隐性调用,需要将动态库生成的.lib、.h和.dll文件添加到项目文件下,其次在项目工程中,通过属性-->链接器-->输入-->添加依赖项.lib文件,同时工程内添加.h头文件,然后可以进行调用了。 | |||||
<img src="./../VisualStudio/Pictures/image-20250709104635329.png" alt="image-20250709104635329" style="zoom:50%;" /> | |||||
<img src="./../VisualStudio/Pictures/image-20250709104647954.png" alt="image-20250709104647954" style="zoom:50%;" /> | |||||
第二,显性调用 | |||||
定义函数指针,并声明函数指针变量,然后通过程序动态加载dll文件到内存中(HINSTANCE hModule = LoadLibrary("TestDll.dll");),并获取指针地址,最后调用函数。 | |||||
<img src="./../VisualStudio/Pictures/image-20250709104909662.png" alt="image-20250709104909662" style="zoom:50%;" /> | |||||
<img src="./../VisualStudio/Pictures/image-20250709104930529.png" alt="image-20250709104930529" style="zoom:50%;" /> | |||||
##### 2.3.2在代码中语句加载lib调用 | |||||
#pragma comment (lib,地址),地址可以选择绝对地址或者相对地址。 | |||||
<img src="./Pictures/image-20250708195734251.png" alt="image-20250708195734251" style="zoom:50%;" /> | |||||
##### 2.3.3在代码中语句加载dll调用 | |||||
HINSTANCE hDll = LoadLibrary(TEXT("DLLTest.dll")); | |||||
<img src="./../IAR/Pictures/image-20250710153852360.png" alt="image-20250710153852360" style="zoom:50%;" /> | |||||
<img src="./../IAR/Pictures/image-20250710153915835.png" alt="image-20250710153915835" style="zoom:50%;" /> | |||||
@@ -0,0 +1,189 @@ | |||||
# MarkDown相关知识点 | |||||
### 1.标题相关 | |||||
要创建标题,请在单词或短语前面添加井号 (#) 。# 的数量代表了标题的级别。例如,添加三个 # 表示创建一个三级标题 (<h3>) (例如:### My Header)。 | |||||
### 三级标题My Header | |||||
## 二级标题My Header | |||||
# 一级标题My Header | |||||
<img src="./Pictures/image-20250708155340635.png" alt="image-20250708155340635" style="zoom:50%;" /> | |||||
### 2.标号相关 | |||||
#### 2.1有序标号 | |||||
要创建有序列表,请在每个列表项前添加数字并紧跟一个英文句点。数字不必按数学顺序排列,但是列表应当以数字 1 起始。 | |||||
1. nihao | |||||
2. queshi | |||||
> 要创建块引用 | |||||
<img src="./../IAR/Pictures/image-20250710155713655.png" alt="image-20250710155713655" style="zoom:50%;" /> | |||||
#### 2.2无序标号 | |||||
要创建无序列表,请在每个列表项前面添加破折号 (-)、星号 (*) 或加号 (+) 。缩进一个或多个列表项可创建嵌套列表。 | |||||
* 你好 | |||||
<a id="section1"></a> | |||||
* 对的 | |||||
<img src="./../IAR/Pictures/image-20250710155750585.png" alt="image-20250710155750585" style="zoom:50%;" /> | |||||
#### 2.3段落 | |||||
要创建段落,请使用空白行将一行或多行文本进行分隔。 | |||||
比如这样 | |||||
分开了 | |||||
<img src="./Pictures/image-20250708155510443.png" alt="image-20250708155510443" style="zoom: 80%;" /> | |||||
### 3.文字相关 | |||||
#### 3.1粗体(Bold) | |||||
要加粗文本,请在单词或短语的前后各添加两个星号(asterisks)或下划线(underscores)。如需加粗一个单词或短语的中间部分用以表示强调的话,请在要加粗部分的两侧各添加两个星号(asterisks)。 | |||||
**星号加粗** | |||||
__下划线加粗__ | |||||
<img src="./Pictures/image-20250708155536014.png" alt="image-20250708155536014" style="zoom:50%;" /> | |||||
#### 3.2斜体 | |||||
要用斜体显示文本,请在单词或短语前后添加一个星号(asterisk)或下划线(underscore)。要斜体突出单词的中间部分,请在字母前后各添加一个星号,中间不要带空格。 | |||||
*型号斜体 | |||||
_下划线斜体 | |||||
<img src="./Pictures/image-20250708155601355.png" alt="image-20250708155601355" style="zoom:50%;" /> | |||||
#### 3.3加粗倾斜 | |||||
要同时用粗体和斜体突出显示文本,请在单词或短语的前后各添加三个星号或下划线。要加粗并用斜体显示单词或短语的中间部分,请在要突出显示的部分前后各添加三个星号,中间不要带空格。 | |||||
***型号 | |||||
___下划线 | |||||
**_混用 | |||||
<img src="./Pictures/image-20250708155614646.png" alt="image-20250708155614646" style="zoom:50%;" /> | |||||
#### 3.4删除线 | |||||
前后加两个~ ~ ~ ~ | |||||
~~比如这样~~ | |||||
~~也可以只在前面加,但是会删除整行 | |||||
<img src="./Pictures/image-20250708155628100.png" alt="image-20250708155628100" style="zoom:50%;" /> | |||||
### 4.代码块 | |||||
#### 4.1单行代码块 | |||||
代码块的每一行缩进至少四个空格或一个制表符。 | |||||
int a; | |||||
float b; | |||||
<img src="./Pictures/image-20250708155650658.png" alt="image-20250708155650658" style="zoom:50%;" /> | |||||
#### 4.3多行代码块 | |||||
根据Markdown处理器或编辑器的不同,您将在代码块之前和之后的行上使用三个反引号((```)或三个波浪号(~~~)。 | |||||
~~~ | |||||
#include <stdio.h> | |||||
int a; | |||||
int b; | |||||
~~~ | |||||
<img src="./Pictures/image-20250708155714755.png" alt="image-20250708155714755" style="zoom:33%;" /> | |||||
### 5.超链接 | |||||
#### 5.1文字超链接 | |||||
链接文本放在中括号内,链接地址放在后面的括号中,链接title可选。 | |||||
超链接Markdown语法代码:[超链接显示名](超链接地址 "超链接title") | |||||
这是个编译器 [点击进入在线编辑器](https://markdown.com.cn/editor/ "这个是MarkDown的在线编译器") | |||||
<img src="./Pictures/image-20250708155739721.png" alt="image-20250708155739721" style="zoom:50%;" /> | |||||
#### 5.2图片超链接 | |||||
\[](https://markdown.com.cn) | |||||
[]( https://ts1.tc.mm.bing.net/th/id/R-C.6e8bf84d4d9c57813ca595b36e48bf3b?rik=Zp6MkbBADpgABg&riu=http%3a%2f%2fpic.qianye88.com%2f4kaijic5331ea4-e35d-3baf-8b09-c37769139446.jpeg&ehk=QAtk9bDA1oBGfXSWW8tNWbRuG6jc%2bdegUz0c3BQhdf4%3d&risl=&pid=ImgRaw&r=0 ) | |||||
<img src="./Pictures/image-20250708155800582.png" alt="image-20250708155800582" style="zoom:50%;" /> | |||||
#### 5.3页面内跳转 | |||||
[跳转到第一节](#MarkDown相关知识点) | |||||
[cc](#section1) | |||||
### 6.其他 | |||||
#### 6.1分割线 | |||||
要创建分隔线,请在单独一行上使用三个或多个星号 (***)、破折号 (---) 或下划线 (___) ,并且不能包含其他内容。 | |||||
*** | |||||
--- | |||||
___ | |||||
<img src="./Pictures/image-20250708155842847.png" alt="image-20250708155842847" style="zoom:50%;" /> | |||||
#### 6.2图片 | |||||
要添加图像,请使用感叹号 (!), 然后在方括号增加替代文本,图片链接放在圆括号里,括号里的链接后可以增加一个可选的图片标题文本。 | |||||
 | |||||
#### 6.3表格 | |||||
要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。 | |||||
| 首先|然后|其次| | |||||
|:---:|:---|---:| | |||||
|nihao|你好|hello| | |||||
<img src="./Pictures/image-20250708155916615.png" alt="image-20250708155916615" style="zoom:50%;" /> | |||||
#### 6.4引用 | |||||
要创建块引用,请在段落前添加一个 > 符号。 | |||||
块引用可以包含多个段落。为段落之间的空白行添加一个 > 符号。 | |||||
块引用可以嵌套。在要嵌套的段落前添加一个 >> 符号。 | |||||
>有点重复了好像 | |||||
> > 确实是这样,不过应该没事吧 | |||||
> > >只好这样了 | |||||
<img src="./Pictures/image-20250708155941980.png" alt="image-20250708155941980" style="zoom:50%;" /> | |||||
@@ -0,0 +1,65 @@ | |||||
## Source Insight相关知识点 | |||||
### 1.常规操作 | |||||
#### 1.1工程新建/添加 | |||||
点击上方Project,选择New Project进行项目创建,或选择Open Project进行项目添加。 | |||||
 | |||||
#### 1.2文件新建/添加 | |||||
项目新建后,会弹出窗口提示文件添加,根据想要添加的文件位置进行查找并添加即可。 | |||||
新建文件可以选择左侧的File,选择New即可添加新文件并进行编写。 | |||||
 | |||||
#### 1.3符号表同步 | |||||
选择上方菜单栏的Project,并选择其中的Synchronize Files进行代码的同步。 | |||||
<img src="./Pictures/image-20250708160555697.png" alt="image-20250708160555697" style="zoom:50%;" /> | |||||
#### 1.4视图切换 | |||||
右侧Panel view窗口内选择想要查看的程序。 | |||||
<img src="./Pictures/image-20250708160619344.png" alt="image-20250708160619344" style="zoom:50%;" /> | |||||
选择windows,选择Arrange,选择多视图排版,可以进行使徒的切换。 | |||||
<img src="./../IAR/Pictures/image-20250710161708689.png" alt="image-20250710161708689" style="zoom:50%;" /> | |||||
高亮选中符号:F8 | |||||
替换:Ctrl + h | |||||
查找:Ctrl + f | |||||
全局查找:Ctrl + / | |||||
向上搜索 Ctrl + F3 | |||||
向下搜索 Ctrl + F4 | |||||
跳转到行:F5 | |||||
跳转到定义:Ctrl + 鼠标左键 | |||||
#### 1.5常用窗口打开或关闭 | |||||
在VIew菜单进行想要的窗口打开或关闭即可。 | |||||
<img src="./Pictures/image-20250708160639717.png" alt="image-20250708160639717" style="zoom:200%;" /> | |||||
#### 1.6搜索引用 | |||||
可以在想要搜索的函数上右键鼠标,选择Look up,或者在软件的右上角R图标进行搜索即可。若要跳转至函数页面,可以Ctrl加鼠标左键即可。 | |||||
上方选择search也可以进行搜索引用。 | |||||
<img src="./Pictures/image-20250708160654871.png" alt="image-20250708160654871" style="zoom:50%;" /> |
@@ -0,0 +1,221 @@ | |||||
# 代码管理相关技术点 | |||||
## Git | |||||
### 1.Git的概念 | |||||
**Git** 是**分布式版本控制系统**的核心工具,用于**追踪文件变更、协调多人协作、保存代码历史快照**。 | |||||
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。 | |||||
作为一个分布式版本控制系统来说,Git是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目等,写好之后还可以比对之前的版本,本地项目写好之后上传至远程仓库,出现错误还可以版本回退等等。 | |||||
### 2.三个区域的概念 | |||||
在 Git 中,**三个核心区域**构成了版本控制的核心框架,它们协同工作以实现精确的变更管理。 | |||||
#### 2.1工作区 | |||||
**定位**:本地磁盘可见的代码目录。 | |||||
**本质**:开发者的实施编辑沙盒。 | |||||
**特点**:所有的文件修改都在此处,状态通过git status查看。 | |||||
#### 2.2暂存区 | |||||
**定位**:git目录下的二进制索引文件。 | |||||
**本质**:提交前的精准快速缓存区。 | |||||
**特点**:解决了提交半成品代码的痛点。 | |||||
#### 2.3本地仓库 | |||||
**定位**:项目根目录下的.git隐藏文件夹。 | |||||
**本质**:版本数据库,用来存储提交历史。 | |||||
### 3.仓库的概念 | |||||
Git 仓库(Repository)是 Git 版本控制系统的核心概念,用于存储项目文件及其完整版本历史。 | |||||
仓库类型包括了本地仓库和远程仓库两种。 | |||||
### 4.节点的概念 | |||||
Git中的**节点**是版本控制的基础,通过提交对象记录项目状态,结合分支和HEAD指针实现高效的代码管理与协作。 | |||||
节点的本质是**提交对象**,是版本的核心**控制单元**。 | |||||
节点的组成有以下几部分: | |||||
1.**树对象**:指向当前快照的目录结构,记录文件的名称、权限和内容。 | |||||
2.**父节点**:首次提交没有父节点,普通提交有一个,合并提交会有多个。 | |||||
3.**元数据**:主要用来记录作者、提交者、时间戳和内容。 | |||||
### 5.分支的概念 | |||||
在Git中,**分支(Branch)** 是 **指向提交节点(Commit)的轻量级指针**,用于标记和管理不同的开发线路。其核心作用是允许开发者在并行线程中工作,而不会相互干扰。 | |||||
## Source tree | |||||
### 1.Source tree的概念 | |||||
Sourcetree 是一款由 Atlassian 开发的免费图形化版本控制客户端,主要用于管理 Git 和 Mercurial(Hg) 代码仓库。它通过直观的界面简化了版本控制操作。 | |||||
### 1.仓库相关操作 | |||||
#### 1.1创建本地仓库 | |||||
首先,在电脑上建立一个文件夹,然后在软件内建立本地仓库,目标路径选择需要管理的文件夹路径,创建成功后,就可以对本地仓库进行管理。 | |||||
<img src="./Pictures/image-20250708160913942.png" alt="image-20250708160913942" style="zoom:50%;" /> | |||||
#### 1.2打开本地仓库 | |||||
仓库创建完成后,在软件上方即可选择刚刚创建的仓库,打开之后,就可以对本地仓库进行管理了。 | |||||
<img src="./Pictures/image-20250708160925365.png" alt="image-20250708160925365" style="zoom:50%;" /> | |||||
#### 1.3克隆远程仓库 | |||||
软件新建仓库时选择克隆,将需要克隆的远程仓库链接填入进来,同时选择克隆的路径,确定之后即可将远程仓库克隆到本地。 | |||||
<img src="./Pictures/image-20250708160944832.png" alt="image-20250708160944832" style="zoom:50%;" /> | |||||
#### 1.4获取 | |||||
在软件内找到和远程仓库关联的仓库,选择上方的获取可以获得远程仓库。 | |||||
从远程仓库复制到本地文件,但不会合并。 | |||||
<img src="./Pictures/image-20250708161000682.png" alt="image-20250708161000682" style="zoom:50%;" /> | |||||
#### 1.5关联远程仓库 | |||||
软件内找到设置功能,添加远程仓库,进行关联。 | |||||
<img src="./Pictures/image-20250708161023565.png" alt="image-20250708161023565" style="zoom:50%;" /> | |||||
### 2.节点相关操作 | |||||
#### 2.1提交 | |||||
当本地仓库变动时,文件状态部分会显示需要提交,提交时应当补充变动内容或者能让自己看懂的语句,提交后,可在提交历史查看。 | |||||
<img src="./Pictures/image-20250708161149061.png" alt="image-20250708161149061" style="zoom:50%;" /> | |||||
#### 2.2 重置 | |||||
重置是将本此更改内容取消的操作,本地修改过后,如果在软件的本地仓库内选择重置,则会对本地文件进行版本回退,回到修改前的版本。 | |||||
<img src="./Pictures/image-20250708161204838.png" alt="image-20250708161204838" style="zoom:50%;" /> | |||||
#### 2.3回滚提交 | |||||
在提交历史中选择需要回退到的版本,选择回滚提交,则会将版本回退到想要返回的版本。 | |||||
<img src="./Pictures/image-20250708161218765.png" alt="image-20250708161218765" style="zoom:50%;" /> | |||||
### 3.分支相关操作 | |||||
#### 3.1新建分支 | |||||
对当前仓库想要进行其他操作,经常采用新建分支,新建分支可以在软件上面菜单栏点击创建,可以选择工作副本或者是新文件进行管理。 | |||||
<img src="./Pictures/image-20250708161231708.png" alt="image-20250708161231708" style="zoom:50%;" /> | |||||
#### 3.2合并分支 | |||||
合并分支指将多个分支进行统一,或者将分支的内容同步至其他分支。 | |||||
合并分为平行合并和变基合并,平行合并会将分支的内容一次性挪到主干,变基合并会将分支的提交一个一个合并到主干。 | |||||
<img src="./Pictures/image-20250708161247753.png" alt="image-20250708161247753" style="zoom:50%;" /> | |||||
#### 3.3删除分支 | |||||
右键选择分支,直接删除即可。 | |||||
<img src="./Pictures/image-20250708161301912.png" alt="image-20250708161301912" style="zoom:50%;" /> | |||||
#### 3.4切换分支 | |||||
直接左侧分支双击即可 | |||||
<img src="./Pictures/image-20250708161314068.png" alt="image-20250708161314068" style="zoom:50%;" /> | |||||
#### 3.5制造冲突 | |||||
多个分支修改同一文件,同时将分支全部挪到主干时,会显示冲突。 | |||||
#### 3.6解决冲突 | |||||
1. 可以手动确认选择,同时在提交时右键标记为已解决即可。 | |||||
2. 选择忽略。 | |||||
#### 3.7拉取 | |||||
可以将他人传送到云端的内容拉取到自己的设备上面并合并。 | |||||
<img src="./Pictures/image-20250708161333241.png" alt="image-20250708161333241" style="zoom:50%;" /> | |||||
#### 3.8推送 | |||||
将本地内容推送到云端。 | |||||
<img src="./Pictures/image-20250708161414737.png" alt="image-20250708161414737" style="zoom:50%;" /> | |||||
### 4.其他 | |||||
#### 4.1书写忽略文件 | |||||
添加.gitignore 文件,可以将不想让仓库获取的文件写入里面。 | |||||
#### 4.2停止跟踪 | |||||
停止跟踪(Stop Tracking)是指将文件从 Git 仓库的版本控制中移除,但不会删除本地文件。这意味着这些文件将不再被 Git 跟踪和管理,但它们仍然保留在你的本地文件系统中。 | |||||
#### 4.3创建补丁 | |||||
提交列表中找到想要创建补丁的提交,右键即可创建补丁。 | |||||
补丁(Patch)在软件开发中是一个记录代码变更的文本文件,它本质上是两个代码版本之间的差异(diff)。它的核心作用是精确、轻量地传递代码变更。 | |||||
<img src="./Pictures/image-20250708161435985.png" alt="image-20250708161435985" style="zoom:50%;" /> | |||||
#### 4.4删除补丁 | |||||
直接右键删除即可。 | |||||
#### 4.5贮藏 | |||||
临时保存未提交的本地修改,让工作区恢复干净。但注意,应添加描述。 | |||||
 | |||||
#### 4.6丢弃 | |||||
删除未提交的本地修改。 | |||||
<img src="./../IAR/Pictures/image-20250711130039902.png" alt="image-20250711130039902" style="zoom:67%;" /> | |||||
#### 4.7创建标签 | |||||
标记提交。 | |||||
<img src="./Pictures/image-20250708161540040.png" alt="image-20250708161540040" style="zoom:50%;" /> | |||||
#### 4.8删除标签 | |||||
右键删除标签即可。 | |||||