Size: a a a

2021 February 08

VK

Viacheslav Kaloshin in Embedded Group
Leonid Zaliubovskii
Не используйте хал и проблема автоматом решится. 😁
Не решится
источник

VK

Viacheslav Kaloshin in Embedded Group
Stas Koynov
имеется ввиду двухядерное испольнение M4+M7 или что? на моем H7 нет гипертриденга..., да есть кэши, есть тессно связанная память и все такое, но гипертриденга нет есть камни с гипертриденгом? вах... можно сылку я бы почитал.
источник

VK

Viacheslav Kaloshin in Embedded Group
Вот, на 5й странице картинка
источник

LZ

Leonid Zaliubovskii in Embedded Group
источник

LZ

Leonid Zaliubovskii in Embedded Group
Наверное про это речь. Про две инструкции. Но это не совсем две инструкции в параллель то
источник

VK

Viacheslav Kaloshin in Embedded Group
Ну я вон выше картинку кидал, когда инструкции по работе с портами и задержкой в один поток ушли, а с спи в другой
источник

A

Alexander in Embedded Group
SIMD обычный.
источник

VK

Viacheslav Kaloshin in Embedded Group
Alexander
SIMD обычный.
Нифига, в том-то и боль
источник

LZ

Leonid Zaliubovskii in Embedded Group
Alexander
SIMD обычный.
Ну и немного спекулятивного исполнения в силу btac

Ну и загрузка двух данных, наподобие как у xtensa LX7
источник

A

Alexander in Embedded Group
Viacheslav Kaloshin
Ну я вон выше картинку кидал, когда инструкции по работе с портами и задержкой в один поток ушли, а с спи в другой
Это не так, ты ошибаешься.
Там просто криво transceve написан и скорее всего нужно дождаться флажка RXNE, например, после выполнения функции
источник

VK

Viacheslav Kaloshin in Embedded Group
Alexander
Это не так, ты ошибаешься.
Там просто криво transceve написан и скорее всего нужно дождаться флажка RXNE, например, после выполнения функции
источник

VK

Viacheslav Kaloshin in Embedded Group
где тут ошибиться? 🙂
источник

LZ

Leonid Zaliubovskii in Embedded Group
И что мы на скриншоте должны увидеть?
источник

VK

Viacheslav Kaloshin in Embedded Group
тут и потом в других местах я четко вижу классический race condition, когда однопоточный код начинает выполняться в более чем одном потоке. в результате на выходе херня.
источник

A

Alexander in Embedded Group
Имплементацию функции посмотри.
Если они используют DMA - то был глюк, когда транзакция DMA считалась завершенной по передаче из памяти в периферию, а не когда фактически данные в порт ушли.
источник

VK

Viacheslav Kaloshin in Embedded Group
Но вообще мы начали с того, что HAL тут воду мутит и LL и прочие не стали бы так косячить :
источник

VB

Vlad Baida in Embedded Group
Alexander
Имплементацию функции посмотри.
Если они используют DMA - то был глюк, когда транзакция DMA считалась завершенной по передаче из памяти в периферию, а не когда фактически данные в порт ушли.
У меня у ДМА вообще прерывание не вызывалось)
источник

LZ

Leonid Zaliubovskii in Embedded Group
Скорее что самописная либа, при достаточной квалификации - явно стабильнее иэтого поделись индусов
источник

SK

Stas Koynov in Embedded Group
Viacheslav Kaloshin
тут и потом в других местах я четко вижу классический race condition, когда однопоточный код начинает выполняться в более чем одном потоке. в результате на выходе херня.
да какая многопотоковость. у вас просто конвеер за раз может выполнять две инструкции и все. две которые идут подрят. если вам нужны гарантии между записью в одну железку и другую ставте барьеры
источник

A

Alexander in Embedded Group
Viacheslav Kaloshin
тут и потом в других местах я четко вижу классический race condition, когда однопоточный код начинает выполняться в более чем одном потоке. в результате на выходе херня.
Это нюансы работы с периферией, а не "многопоточность"

Код исполняется инструкция за инструкцией на одном ядре.
источник