Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
26 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
801576
Топик полностью
Дупкин
(12.12.2017 17:12, просмотров: 1)
ответил
SciFi
на
Из любопытства включил уровень оптимизации gcc -O3. Код для работы с SPI флешкой перестал работать. Понаставил кучу задержек в разных местах, пока не задышало. Причём убираю любую задержку - и снова глючит. Чудеса!
1. Добавить проверку
while ((DMA1->HISR & DMA_HISR_TCIF7) == 0) { /* wait for DMA TCIF */ } 2. Включать следом: DMA1_Stream0->CR |= DMA_SxCR_EN; // enable stream DMA1_Stream7->CR |= DMA_SxCR_EN; // enable stream 3. Убрать ненужную проверку while ((SPI3->SR & SPI_SR_TXE) == 0) { /* wait for TXE */ }