首页 > 解决方案 > 为什么ROM的闪存扇区在起始地址处较小?

问题描述

最近一直在使用闪存 ROM,我发现在芯片的内部闪存甚至外部 SPI 闪存设备中,扇区的大小通常如下所示:

STM32F405/415 的闪存布局

我很好奇为什么起始地址空间的扇区比后面的地址小。我怀疑使用引导加载程序之类的东西会更方便。由于引导加载程序通常小于 128k,这将允许引导加载程序写入前 2 或 3 个扇区。这使得主要的空间应用程序有更多的扩展空间,因为要对其进行编程,我们需要从一个新领域的开始开始。如果我们只有 128k 大小的扇区,那么我们基本上就是在浪费128k - bootloader_size空间。

我的怀疑正确吗?或者这样做有其他原因吗?真的很想知道这里的设计决策是什么。

标签: embeddedbootloaderfirmwareflash-memoryrom

解决方案


因为并非所有 STM32F40x/41x 器件都具有此表中描述的全部 1 MB 闪存。有些,如STM32F410C8,只有 64 KB ——也就是说,只有前四个 16 KB 扇区。在内存开始时减少扇区大小允许这些设备仍然有多个扇区可供使用,而不会导致较大设备上的扇区数量过多。它还使所有设备上的一些小扇区可用于EEPROM 仿真等应用程序,这需要分配两个不同的闪存扇区以供其专用。


推荐阅读