From c7833ecc1343ecd6ff1c465980b5aac28c7bc681 Mon Sep 17 00:00:00 2001
From: "DESKTOP-J5JP3RN\\kanxingyu" <1764726953@qq.com>
Date: Sat, 12 Jul 2025 12:35:51 +0800
Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IAR/IAR.md | 12 ++++++++++++
Library/Library.md | 30 ++++--------------------------
Source Insight/Source Insight.md | 2 ++
Sourcetree/Sourcetree.md | 6 ++++++
UintTest/UnitTest.md | 2 ++
VisualStudio/VisualStudio.md | 7 +++++++
6 files changed, 33 insertions(+), 26 deletions(-)
diff --git a/IAR/IAR.md b/IAR/IAR.md
index b700d53..60da620 100644
--- a/IAR/IAR.md
+++ b/IAR/IAR.md
@@ -163,6 +163,14 @@ Linker页面设置链接文件。
设置库文件相关位置,同时在程序内include头文件,使用库。
+| 选项 | 功能描述 |
+| ------ | ------------------------------------------------------------ |
+| none | 不链接任何标准库,适合资源受限的环境。 |
+| normal | 链接标准 C 库的常规版本,平衡了代码大小和运行速度。 |
+| full | 链接标准 C 库的完整版本,包含所有功能和调试信息,适合调试阶段。 |
+| custom | 允许用户自定义库配置,可选择性地包含或排除某些库功能,用于优化代码大小。 |
+| libc++ | 链接 C++ 标准库,适用于 C++ 开发。 |
+

### 6.静态库的封装和调用
@@ -215,6 +223,10 @@ Linker页面设置链接文件。
+ r0~r3 主要用于子程序间传递参数, r4~r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用 r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。
+
+CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。s
+
### 10.内存信息
打开view的memory窗口即可查看寄存器信息
diff --git a/Library/Library.md b/Library/Library.md
index f64c549..b0f6d15 100644
--- a/Library/Library.md
+++ b/Library/Library.md
@@ -13,21 +13,11 @@
**优点**
-独立性:可执行文件包含所有依赖,无需外部库文件,部署简单。
-
-性能:函数调用无额外开销(无动态链接加载过程)。
-
-兼容性:避免版本冲突(如“DLL Hell”问题)。
-
-代码优化:编译器可进行全程序优化(LTO)。
+代码合并到模块中,无零散文件。
**缺点:**
-体积大:相同库代码被多次复制到不同程序,占用磁盘/内存。
-
-更新困难:库更新需重新编译所有依赖它的程序。
-
-内存浪费:多个进程无法共享同一库的物理内存。
+程序体积变大,当多个模块使用时,内存中有多份代码。
#### 1.2静态库的生成
@@ -69,23 +59,11 @@
**优点:**
-节省资源:多个进程共享同一库,减少内存/磁盘占用。
-
-更新灵活:更新库文件后,所有程序自动使用新版本(需兼容)。
-
-模块化:支持插件机制(运行时加载)。
-
-热修复:可替换库文件修复问题(无需重编译程序)。
+模块体积几乎不变,当多个模块调用是,只有一份代码。
**缺点:**
-部署复杂:需确保目标系统存在正确版本的库(依赖管理)。
-
-版本冲突:不同程序依赖同一库的不兼容版本(如DLL Hell)。
-
-性能损耗:首次加载需地址重定位,轻微运行时开销。
-
-安全性:恶意替换库文件可能导致安全隐患。
+代码在单独文件中,有零散文件。
#### 2.2动态库的生成
diff --git a/Source Insight/Source Insight.md b/Source Insight/Source Insight.md
index 73e34f9..dd7826f 100644
--- a/Source Insight/Source Insight.md
+++ b/Source Insight/Source Insight.md
@@ -22,6 +22,8 @@
选择上方菜单栏的Project,并选择其中的Synchronize Files进行代码的同步。
+选项功能是选择同步本地文件。
+
#### 1.4视图切换
diff --git a/Sourcetree/Sourcetree.md b/Sourcetree/Sourcetree.md
index 89bb43f..f87f51f 100644
--- a/Sourcetree/Sourcetree.md
+++ b/Sourcetree/Sourcetree.md
@@ -140,6 +140,12 @@ Sourcetree 是一款由 Atlassian 开发的免费图形化版本控制客户端
合并分为平行合并和变基合并,平行合并会将分支的内容一次性挪到主干,变基合并会将分支的提交一个一个合并到主干。
+**软合并**:将问题放到暂存区。
+
+**混合合并**:若是分支领先,则直接提交,如果出现分叉,则会进行合并提交。
+
+**强制合并**:强制生成合并提交。
+
#### 3.3删除分支
diff --git a/UintTest/UnitTest.md b/UintTest/UnitTest.md
index 247a4d8..6bb2487 100644
--- a/UintTest/UnitTest.md
+++ b/UintTest/UnitTest.md
@@ -26,6 +26,8 @@
+
+
#### 2.2代码覆盖度
概念:**单元测试覆盖度**是衡量测试用例对代码逻辑覆盖程度的重要指标,通常包括行覆盖、分支覆盖、条件覆盖和路径覆盖等类型。它帮助开发者评估测试的全面性,确保代码的质量和稳定性。
diff --git a/VisualStudio/VisualStudio.md b/VisualStudio/VisualStudio.md
index 9c676ff..6bf94c1 100644
--- a/VisualStudio/VisualStudio.md
+++ b/VisualStudio/VisualStudio.md
@@ -104,6 +104,13 @@
右键项目名称,打开项目属性页,选择“配置属性”->“C/C++”->“代码生成”->“运行库”。
+| **选项** | **链接方式** | **依赖项** | **程序体积** | **调试信息** | **适用场景** |
+| -------- | ------------ | ------------------------ | ------------ | ------------ | -------------------------- |
+| /MT | 静态链接 | 无(独立部署) | 较大 | 无 | 独立应用、嵌入式系统 |
+| /MTd | 静态链接 | 无(包含调试符号) | 最大 | 有 | 调试独立应用 |
+| /MD | 动态链接 | msvcrt.dll(或更高版本) | 较小 | 无 | 常规应用程序(共享运行库) |
+| /MDd | 动态链接 | msvcrtd.dll(调试版) | 中等 | 有 | 调试依赖 DLL 的应用程序 |
+
#### 2.7调用库配置