Merge pull request #3101 from SummerGGift/optimize_stm32_docs

[stm32][docs] optimize BSP production tutorial
This commit is contained in:
Bernard Xiong 2019-09-26 08:01:04 +08:00 committed by GitHub
commit 2a39e59024
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -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 使用的芯片为 STM32F103RBFLASH 为 128k因此修改 LR_IROM1 和 ER_IROM1 的参数为 0x00020000。RAM 的大小为20k 因此修改 RW_IRAM1 的参数为 0x00005000。这样的修改方式在一般的应用下就够用了后续如果有特殊要求则需要按照链接脚本的语法来根据需求修改。
本次制作 BSP 使用的芯片为 STM32F103RBFLASH 为 128k因此修改 LR_IROM1 和 ER_IROM1 的参数为 0x00020000。RAM 的大小为20k 因此修改 RW_IRAM1 的参数为 0x00005000。这样的修改方式在一般的应用下就够用了后续如果有特殊要求则需要按照链接脚本的语法来根据需求修改。修改链接脚本时,可以参考 [**3.2.3 堆内存配置讲解**](# 3.2.3 堆内存配置讲解) 章节来确定 BSP 的内存分配。
其他两个链接脚本的文件分别为 iar 使用的 link.icf 和 gcc 编译器使用的 link.lds修改的方式也是类似的如下图所示

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB