Большую часть времени съедает вычитывание команд:
Код
FLASH_SetLatency(FLASH_Latency_2);
На каждое обращение к флешу тратится два лишних такта. Или разместите код в озу или снизте частоту процессора так что бы работать без дополнительных циклов ожидания.