Other Parts Discussed in Thread: SYSCONFIG
器件型号: AM263P4
主题中讨论的其他部件: sysconfig、、、
您好、
我最近不得不增加分配给我的程序.text 段的 RAM 容量。 因此、最初我进入了 SysConfig、将以前存在的 OCRAM 存储器区域从 0x40000 字节增加到 0x50000 字节。

但是、这会在 OSPI_LLD_phyBasicConfig (..) 中的第一次寄存器写入期间导致预取中止故障。 在 Board_flashOpen () 中,我在程序开始时调用。
我还意识到 OCRAM 组按以下间隔分离:
L2OCRAM_BANK0 --开始:0x7000 0000 --结束:0x7007 FFFF --大小:512KB
L2OCRAM_BANK1 --开始:0x7008 0000 --结束:0x700F FFFF --大小:512KB
L2OCRAM_Bank2 --开始:0x7010 0000 --结束:0x7017 FFFF --大小:512KB
L2OCRAM_BANK3 --开始:0x7018 0000 --结束:0x701F FFFF --大小:512KB
...
因此、我当前的 OCRAM 存储器区域从 0x70040000 开始、到 0x7008FFFF 结束、该区域在 SysConfig 中定义、在 L2OCRAM_BANK0 和 L2OCRAM_BANK1 之间重叠。
我认为这可能是一个问题、我为链接器创建了一个新的存储器区域、称为 OCRAM1 、仅在 L2OCRAM_BANK3 内部设置。 我还将我的第一个 OCRAM 存储器区域大小设置回仅 0x40000 字节、因此仅在 L2OCRAM_BANK1 中。 然后、我添加了 OCRAM1 作为用于需要更多空间的段的存储器区域。

进行这些更改后、我不再收到预取 中止故障、我的应用程序会按预期运行。
我的问题是:为链接器定义的存储器区域是否只允许位于单个 OCRAM 组内、即单个存储器区域不能与两个 OCRAM 组重叠?
谢谢你