From e87658e3397a810211fd437f236ba1d14d6302b7 Mon Sep 17 00:00:00 2001 From: wsk Date: Mon, 14 Jul 2025 15:34:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IAR/IAR.md | 30 ++++++++++++++++++ Library/Library.md | 1 + Markdown/pictures/image-20250708133150206.png | Bin 9435 -> 0 bytes 3 files changed, 31 insertions(+) delete mode 100644 Markdown/pictures/image-20250708133150206.png diff --git a/IAR/IAR.md b/IAR/IAR.md index 65d46ec..089206a 100644 --- a/IAR/IAR.md +++ b/IAR/IAR.md @@ -94,6 +94,36 @@ ![image-20250709095718033](./pictures/image-20250709095718033.png) +**IAR ICF 文件(.icf)的了解及变量如何分配内存区域** + +ICF(**IAR Linker Configuration File**)用于定义程序的内存布局,包括代码、数据、堆栈等在内存中的分布。 + +**变量分配到特定内存区域的方法**: + +你可以通过修改 `.icf` 文件中的 `define block` 和 `place in` 语句来控制变量在内存中的分布。 + +**示例(将某段变量放到特定内存区域):** + +``` +icf复制编辑define region MY_RAM = mem:[from 0x20010000 to 0x20010FFF]; +define block my_section with alignment = 8 { section .mydata }; +place in MY_RAM { block my_section }; +``` + +然后在代码中定义变量时,使用 `__attribute__((section(".mydata")))` 或 IAR 的 `__section`: + +``` +c + + +复制编辑 +__no_init uint8_t my_buffer[1024] @ ".mydata"; // IAR语法 +``` + +------ + +## + ### 文件路径配置 ![image-20250709095759245](./pictures/image-20250709095759245.png) diff --git a/Library/Library.md b/Library/Library.md index 928cd87..2307652 100644 --- a/Library/Library.md +++ b/Library/Library.md @@ -101,6 +101,7 @@ 将`dll`文件复制到`dbug`下面,使用以下程序指令动态加载 ``` +#include HINSTANCE Dll = LoadLibrary(L"test.dll"); if (Dll == NULL) { std::cerr << "无法加载DLL! 错误码: " << GetLastError() << std::endl; diff --git a/Markdown/pictures/image-20250708133150206.png b/Markdown/pictures/image-20250708133150206.png deleted file mode 100644 index 09f6a5769a583d76e37ca14096718e0b7d2e4d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9435 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 PO8^BK6=;Q&Y3P3dU#&BQ