STM32 闪存内存管理与启动流程详解
1. 闪存内存管理
1.1 通过 TCM 接口访问闪存内存
对于 STM32F7 平台的新手来说,如何利用 TCM 接口是一个常见问题。这主要通过链接脚本实现,需要使用特定表格中的基地址重新映射 .text 、 .bss 和 .data 区域的地址。
不过,直接在链接脚本中更改 FLASH 区域的起始地址并不可行,因为通过 ITCM 接口进行写模式访问是不允许的,这会导致调试器无法使用 0x0020 0000 - 0x002F FFFF 地址范围加载程序代码。为解决此问题,需要像处理 .data 区域一样,将 VMA 地址范围与 LMA 地址范围分开。以下是实现该操作的链接脚本片段:
/* Specify the memory areas */
MEMORY {
ITCM_FLASH (rx): ORIGIN = 0x00200000, LENGTH = 1024K
AXI_FLASH (rx): ORIGIN = 0x08000000, LENGTH = 1024K
RAM (xrw): ORIGIN = 0x20000000, LENGTH = 320K
}
/* Define output sections */
SECTIONS
{
/* The startup code goes first into FLASH */
.
超级会员免费看
订阅专栏 解锁全文

471

被折叠的 条评论
为什么被折叠?



