本帖最后由 zhdx 于 2019-3-13 14:55 编辑 & n& x% e$ B9 F5 J( g5 W+ N 环境, Keil 编译器 gnu v6.11, 编译选项-Os balanced , LTO 启用ICache, DCache, MPU对SDRAM区域的策略是 MPU_ACCESS_CACHEABLE+ @) R) M0 b; v CPU频率400Mhz , FMC时钟200Mhz (CubeMX配置是这么显示的) 4 c& V9 q9 u; q" o! \ 测试方法是, 在固定的一个位置, 要么是SRAM区域, 要么是SDRAM内 (未测DTCM) 9 a0 g, [0 [7 m/ z 生成一块 2K, 16K, 256K 的src数据, 往SDRAM里连续而不同的地址区域复制多次达到24MB的写入量+ H/ g+ J' m8 b 然后再对写入的内容进行检查 结果如下:7 T* N' q9 E- E& v; s$ C src数据放在 SRAM 6 m7 O" r4 b3 h1 v 2K 复制 45MB/s 3 f2 X' g% D$ K) q+ C- J 16K 复制 133MB/s ' l- x5 ?! L) O. d 256K 复制 177MB/s5 f0 f6 u' |" z* Q' a D* m src数据放在 SDRAM " k5 h5 q5 T* C; F4 B 2K 复制 24MB/s 16K 复制 37MB/s# f" W$ J* H6 y3 s- `/ ?0 j& V 256K 复制 40MB/s 1 U/ y# Y( _; @* U, o# V z 7 j0 j0 C% k; X 写SDRAM要比读SDRAM快很多. 暂时未作严谨的读测试. |