ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1308783 Топик полностью
Eddy_Em (11.05.2023 23:08, просмотров: 293) ответил Eddy_Em на -O3 - слишком круто. А -flto я только в release режиме включаю. В любом случае, волатильные переменные никуда не "убегут".
Жесть просто какая-то! 

Чего только ни перепробовал: при блокирующем чтении буфер опустошается, а при работе с DMA - нет.

В общем, как в интернете и рассказывали, единственным однозначным вариантом считать данные с SPI через DMA оказалось перезапускать SPI перед каждым чтением!

Хотя, конечно, возможно, здесь порылась собака где-то еще - ведь я перед чтением еще и команду пишу… Но почему тогда четырехкратное чтение SPI2->DR перед блокирующей операцией превращает чтение в детерминированное, а перед DMA - нет?

В еррате вообще ничего.

Я, кстати, пользуюсь-то F302. Он хоть де-факто и тот же 303, но мало ли. С точки зрения SPI полностью все одинаково. Еррата молчит на этот счет (у меня же не packing mode!).

eddy-em.livejournal.com github.com/eddyem