; ************************************************************* ; *** Scatter-Loading Description File (manual) *** ; *** IRAM1 = SRAM1+SRAM2 128KB continuous RAM (DMA-reachable)*** ; *** CCM = 64KB Core-Coupled Memory @0x10000000 (SRAM3) *** ; *** CCM 直连 M4 内核零等待,但 DMA1/DMA2 物理不可达! *** ; *** 本工程只把 FreeRTOS 堆(heap_4.o:任务栈/队列/暂存) *** ; *** 放入 CCM;全部 DMA 收发缓冲均为文件作用域静态(留在 *** ; *** SRAM),且 GD5F 驱动 DMA 阈值已提到 1024B——栈上小缓 *** ; *** 冲(dhara meta 132B / is_free 64B)走轮询不进 DMA。 *** ; *** 两条前提缺任何一条 = 静默数据损坏(2026-09-20 首轮 *** ; *** 扩容实验实证)。CCM 存在性本机 ST-LINK 实测可读写; *** ; *** 克隆片可能缺 SRAM3,换料必须重测! *** ; ************************************************************* LR_IROM1 0x08000000 0x00100000 { ; load region size_region ER_IROM1 0x08000000 0x00100000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x20000000 0x00020000 { ; SRAM1+SRAM2, 128KB (DMA-safe zone) .ANY (+RW +ZI) } RW_CCM 0x10000000 0x0000FF00 { ; CCM 64KB 减 256B 尾: FreeRTOS 堆 only (no DMA!) heap_4.o (+RW +ZI) ; ucHeap 48KB: 任务栈/队列/定时器 } UNINIT_CCM 0x1000FF00 UNINIT 0x00000100 { ; round 8 取证: 复位不丢"进段打点"槽 *(.noinit) ; IWDG/引脚复位不清 SRAM → 复位后仍可读 } }