本帖最后由 zhdx 于 2019-3-13 14:55 编辑 R6 `3 R! W0 ] 环境, Keil 编译器 gnu v6.11, 编译选项-Os balanced , LTO 9 D) @4 G/ z& j: o: E- B: U 启用ICache, DCache, MPU对SDRAM区域的策略是 MPU_ACCESS_CACHEABLE4 X5 P' |3 D. K) @* r0 N- A P , E9 O) o3 U6 l/ k CPU频率400Mhz , FMC时钟200Mhz (CubeMX配置是这么显示的)* G$ x& j" T6 g, n( c, f% @ 2 N0 E* l9 X3 Y' u" O- X* C 测试方法是, 在固定的一个位置, 要么是SRAM区域, 要么是SDRAM内 (未测DTCM) 生成一块 2K, 16K, 256K 的src数据, 往SDRAM里连续而不同的地址区域复制多次达到24MB的写入量 然后再对写入的内容进行检查 . O* t. b0 Y$ q2 y5 v. A 结果如下: - A- ]) l Z b/ h9 { src数据放在 SRAM 2K 复制 45MB/s 6 w* A0 T6 F U9 ]( ?; V 16K 复制 133MB/s 256K 复制 177MB/s ; g* E6 Z4 s1 x) P9 o; p src数据放在 SDRAM 2K 复制 24MB/s9 o+ Q4 H0 W; Q$ c+ K% D, r 16K 复制 37MB/s 256K 复制 40MB/s 0 R ?% ]& R/ x' o# C4 o 写SDRAM要比读SDRAM快很多. 暂时未作严谨的读测试.9 Z* _+ `# g# m+ p , w; c6 s9 k& {8 k7 b |