Я ожидаю увидеть на своем осциллографе тактовую частоту 80 МГц, но я вижу только 10 МГц.
Почему вы ожидаете, что эти два оператора C будут выполняться в одном процессоре Часы? Как вы думаете, это возможно? Конечно это не
это переведено на
str r2, [r3]
str r2, [r3, #4]
str
инструкция занимает 2 такта. два из них по 4 часа. Если вы запускаете FLA SH, вам нужно добавить состояния ожидания. Это займет около 8 часов - и вы увидите 10 МГц. Вы можете попробовать запустить из SRAM, это будет быстрее.
конечно, это действительно только если у вас есть эти инструкции одна за другой
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
/*...*/
Когда у вас есть это в l oop l oop добавит дополнительные накладные расходы.