Первым делом решил подергать выводом с максимальной скоростью.
Смотрю в даташит: GPIO подключены к шине AHB1, макс. скорость шины - 168 МГц.
При этом нигде не сказано, что выводами можно дергать с такой частотой. Везде речь идет о 84 МГц.
Написал код, при включенной оптимизации он скомпилировался в 3 инструкции.
Код
while (1)
{
GPIOA->BSRRL = 2;
GPIOA->BSRRH = 2;
}
{
GPIOA->BSRRL = 2;
GPIOA->BSRRH = 2;
}
Что и подтвердилось на осциллографе. На одном канале системная частота, на другом - вывод, которым дергаю.
Так вот, кто-нибудь может объяснить, как так:
GPIO висят на AHB1, частота которой 168 МГц, а фактическая скорость работы оказывается 84 МГц, что больше похоже на шину APB2 ??