Size: a a a

2021 March 21

A

Alexander in Embedded Group
Ком 123
The PolarFire SoC Icicle kit is a low-cost development platform that enables evaluation of the five-core Linux capable RISC-V microprocessor subsystem, innovative Linux, and real-time execution. И там RCIe на борту. Для отладки внешней видяхи самое то, думаю. Корка ж должна быть в свободном доступе для ядра, я полагаю?
Да, должна.
И по деньгам оно более-менее норм. вроде было.
источник

LZ

Leonid Zaliubovskii in Embedded Group
Denis Barinov
Ну лет 7 назад были. Не могу цитировать, новый закон
А ты пиши так:
Что за #####, ничего не работает. Какого @@@ портятся данных. 😁

Если ты о запрете мата
источник

Е

Егор in Embedded Group
Ком 123
попробуй вот это убрать из прерывания

else
                   __HAL_UART_DISABLE_IT(m_UartHandle, UART_IT_TXE);
и вот это: __HAL_UART_ENABLE_IT(m_UartHandle, UART_IT_TXE);
из WriteChar.
Просто один раз включи прерывание и дальше делай что тебе нужно.
В принципе, скорее всего, в этом и проблема.
не, проблема остается
источник

DB

Denis Barinov in Embedded Group
Leonid Zaliubovskii
А ты пиши так:
Что за #####, ничего не работает. Какого @@@ портятся данных. 😁

Если ты о запрете мата
Ну там в последнем посте было много ##### @@@@*** без вас разобрался ***
источник

A

Alexander in Embedded Group
Егор
не, проблема остается
1. Попробуй слать через DMA.
2. Убедись в корректности мониторинга TX Busy флажка.
источник

К1

Ком 123 in Embedded Group
Егор
не, проблема остается
добавь проверку на пустой буфер в прерывании. Данные корраптиться сами не могут=) Либо у тебя по каким-то ещё прерываниям выполняется код записи, либо ты где-то ещё их насильно пишешь в регистр.
источник

LZ

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

К1

Ком 123 in Embedded Group
Егор
не, проблема остается
А места эти таки убери, так делать нехорошо.
источник

Е

Егор in Embedded Group
Ком 123
А места эти таки убери, так делать нехорошо.
почему
источник

LZ

Leonid Zaliubovskii in Embedded Group
Хотя не, показалось похоже
источник

LZ

Leonid Zaliubovskii in Embedded Group
С телефона не оч смотреть
источник

К1

Ком 123 in Embedded Group
Егор
почему
Потому что ты спорадически включаешь и выключаешь прерывание в разных местах без всякой синхронизации. Либо мьютексом развяжи(что дикий оверкилл), либо включи один раз и просто пиши в дата регистр да следи, чтобы данные уходили.
источник

К1

Ком 123 in Embedded Group
Егор
почему
Писать второй HAL смысла нет=)
источник

LZ

Leonid Zaliubovskii in Embedded Group
Ком 123
Потому что ты спорадически включаешь и выключаешь прерывание в разных местах без всякой синхронизации. Либо мьютексом развяжи(что дикий оверкилл), либо включи один раз и просто пиши в дата регистр да следи, чтобы данные уходили.
Или просто кормить дма, особенно если пакет фиксированной длинны
источник

Е

Егор in Embedded Group
Ком 123
Писать второй HAL смысла нет=)
блин я код HAL глянул там и правда тоже самое
источник

К1

Ком 123 in Embedded Group
Leonid Zaliubovskii
Или просто кормить дма, особенно если пакет фиксированной длинны
Это для тех, кто знает про дма и его режимы, тут же пока с интерраптами разобраться не удалось=)
источник

Е

Егор in Embedded Group
Ком 123
Это для тех, кто знает про дма и его режимы, тут же пока с интерраптами разобраться не удалось=)
+
с ДМА еще не работал
источник

DB

Denis Barinov in Embedded Group
Leonid Zaliubovskii
Или просто кормить дма, особенно если пакет фиксированной длинны
Дма вроде и не фиксированной можно кормить. И принимать можно дма и idle
источник

К1

Ком 123 in Embedded Group
Егор
блин я код HAL глянул там и правда тоже самое
Естественно. Только ещё плюсом куча проверок на все случаи жизни. В крайнем случае, можешь просто сам хэндлер вызвать вместо энэйбла/дисэйбла интеррапта после записи в вектор, он сам отработает по флагам.
источник

К1

Ком 123 in Embedded Group
Denis Barinov
Дма вроде и не фиксированной можно кормить. И принимать можно дма и idle
Делал такое. Ничего особо сложного, в принципе. Только смысла мало=)
источник