From b35e888cddbdf382444e598c791c5322deffd4b9 Mon Sep 17 00:00:00 2001 From: SummerGift Date: Mon, 17 Dec 2018 10:35:19 +0800 Subject: [PATCH] [bsp][stm32] optimize docs --- bsp/stm32/docs/STM32系列BSP添加教程.md | 2 ++ bsp/stm32/docs/figures/linker_scripts.png | Bin 10911 -> 11023 bytes 2 files changed, 2 insertions(+) diff --git a/bsp/stm32/docs/STM32系列BSP添加教程.md b/bsp/stm32/docs/STM32系列BSP添加教程.md index 2ac0f6b48e..4d6f25dc71 100644 --- a/bsp/stm32/docs/STM32系列BSP添加教程.md +++ b/bsp/stm32/docs/STM32系列BSP添加教程.md @@ -129,6 +129,8 @@ STM32 BSP 由三部分组成,分别是 (1) 通用库、(2) BSP 模板和 (3) ![修改启动文件和芯片型号](./figures/SConscript.png) +注意:如果在文件夹中找不到相应系列的 .s 文件,可能是多个系列的芯片重用了相同的启动文件,此时可以在 CubeMX 中生成目标芯片的工程,查看使用了哪个启动文件,然后再修改启动文件名。 + #### 修改工程模板 **template** 文件是生成 MDK/IAR 工程的模板文件,通过修改该文件可以设置工程中使用的芯片型号以及下载方式。MDK4/MDK5/IAR 的工程模板文件,如下图所示: diff --git a/bsp/stm32/docs/figures/linker_scripts.png b/bsp/stm32/docs/figures/linker_scripts.png index 38087b18aca02d65137a053dabdcf7e0975a275e..32e36e23397738e285e0ed714b488819b91724b3 100644 GIT binary patch literal 11023 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