Я делаю некоторые оценки на STM32H7, на плате STM32H753I-EVAL2. Я использовал пример кода STMicro для настройки, записи и чтения QSPI Flash в режиме отображения памяти.
Меня удивили некоторые цифры относительно продолжительности обучения LDR:
Я измеряю количество циклов инструкций с помощью SysTick (подключен к тактовой частоте процессора). Насколько я понял: один цикл SysTick = один цикл CPU.
Я измерил две абсолютно идентичные инструкции ldrb.w Rn, [Rp, Rq]
за исключением того, что в одном случае Rp является адресом в DTC-RAM, а в другом - адресом
в QSPI Flash.
Результаты (код, выполненный из внутренней флэш-памяти): 15 циклов из DCTM-RAM, 12 циклов из QSPI.
Я удивлен результатами, я полагаю, что содержимое QSPI, если оно кэшировано, может объяснить цифры?
Также я считаю, что 15 циклов для одной инструкции LDR кажутся довольно значительными, как вы думаете? Что-то не так в моей процедуре?