summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2019-09-26 08:01:04 +0800
committerGitHub <[email protected]>2019-09-26 08:01:04 +0800
commit2a39e590244cc0a8501669e409c5b07fa4d33176 (patch)
treef672ec2b1876ba1ed7602f052021a466d323f167
parent676279421feba8832f926a2e96b5e7dc7fdb0652 (diff)
parentb4347c2025b1acdce8cc12714100572ca24cd1e9 (diff)
Merge pull request #3101 from SummerGGift/optimize_stm32_docs
[stm32][docs] optimize BSP production tutorial
-rw-r--r--bsp/stm32/docs/STM32系列BSP制作教程.md10
-rw-r--r--bsp/stm32/docs/figures/heap_config.pngbin0 -> 49178 bytes
2 files changed, 9 insertions, 1 deletions
diff --git a/bsp/stm32/docs/STM32系列BSP制作教程.md b/bsp/stm32/docs/STM32系列BSP制作教程.md
index a23c77bcc7..117a8804e9 100644
--- a/bsp/stm32/docs/STM32系列BSP制作教程.md
+++ b/bsp/stm32/docs/STM32系列BSP制作教程.md
@@ -133,6 +133,14 @@ BSP 的制作过程分为如下五个步骤:
![修改 board.h](./figures/board_h.png)
+#### 3.2.3 堆内存配置讲解
+
+通常情况下,系统 RAM 中的一部分内存空间会被用作堆内存。下面代码的作用是,在不同编译器下规定堆内存的起始地址 **HEAP_BEGIN** 和结束地址 **HEAP_END**。这里 **HEAP_BEGIN** 和 **HEAP_END** 的值需要和后面 [3.4.1 修改链接脚本](# 3.4.1 修改链接脚本) 章节所修改的配置相一致。
+
+在某些系列的芯片中,芯片 RAM 可能分布在不连续的多块内存区域上。此时堆内存的位置可以和系统内存在同一片连续的内存区域,也可以存放在一片独立的内存区域中。例如在 L4 系列的芯片上,就可以将堆内存配置在起始地址为 `0x20000000` 的大小为 96k 的内存空间,而将 `0x10000000` 开始的 32k 内存空间用作系统运行内存。
+
+![heap_config](figures/heap_config.png)
+
### 3.3 修改 Kconfig 选项
在本小节中修改 `board/Kconfig` 文件的内容有如下两点:
@@ -163,7 +171,7 @@ BSP 的制作过程分为如下五个步骤:
![linkscripts_change](figures/linkscripts_change.png)
-本次制作 BSP 使用的芯片为 STM32F103RB,FLASH 为 128k,因此修改 LR_IROM1 和 ER_IROM1 的参数为 0x00020000。RAM 的大小为20k, 因此修改 RW_IRAM1 的参数为 0x00005000。这样的修改方式在一般的应用下就够用了,后续如果有特殊要求,则需要按照链接脚本的语法来根据需求修改。
+本次制作 BSP 使用的芯片为 STM32F103RB,FLASH 为 128k,因此修改 LR_IROM1 和 ER_IROM1 的参数为 0x00020000。RAM 的大小为20k, 因此修改 RW_IRAM1 的参数为 0x00005000。这样的修改方式在一般的应用下就够用了,后续如果有特殊要求,则需要按照链接脚本的语法来根据需求修改。修改链接脚本时,可以参考 [**3.2.3 堆内存配置讲解**](# 3.2.3 堆内存配置讲解) 章节来确定 BSP 的内存分配。
其他两个链接脚本的文件分别为 iar 使用的 link.icf 和 gcc 编译器使用的 link.lds,修改的方式也是类似的,如下图所示:
diff --git a/bsp/stm32/docs/figures/heap_config.png b/bsp/stm32/docs/figures/heap_config.png
new file mode 100644
index 0000000000..2c4e88022a
--- /dev/null
+++ b/bsp/stm32/docs/figures/heap_config.png
Binary files differ