前言
在STM32的SRAM不足时,我们第一时间会想到使用外部SRAM扩展SRAM。外部的SRAM读取速度显然会比内部SRAM低,但这一差别有多大呢?本文以F407ZGT6单片机为例,测试其内部SRAM读取速度和外部扩展的型号为IS62WV51216的SRAM读取速度。
测试方法
(1)TIM2和TIM5级联构成64位us时间基准,用于测量读取SRAM耗时
(1)中描述的级联方法可参考stm32定时器级联提供64位时间基准[HAL库]_Max_kevin的博客-CSDN博客_stm32 定时器级联
(2)分别以u8、u16、u32、u64为单位读取SRAM对比内部SRAM和外部SRAM速度差异
(3)每次读取测试执行的汇编指令均相同,不同的只是读取内部或外部SRAM
测试结果
1.以u8为单位读取SRAM
单位 | SRAM类型 | 耗时(us) | 速度(MB/s) |
u8 | 内部 | 61562 | 162.438 |
外部 | 498469 | 20.061 |
2.以u16为单位读取SRAM
单位 | SRAM类型 | 耗时(us) | 速度(MB/s) |
u16 | 内部 | 62659 | 319.188 |
外部 | 499567 | 40.035 |
3.以u32为单位读取SRAM
单位 | SRAM类型 | 耗时(us) | 速度(MB/s) |
u32 | 内部 | 62658 | 638.386 |
外部 | 1123718 | 35.596 |
4.以u64为单位读取SRAM
单位 | SRAM类型 | 耗时(us) | 速度(MB/s) |
u64 | 内部 | 499809 | 160.061 |
外部 | 2933516 | 27.271 |
内部SRAM和外部SRAM读取速度对比图: