Size: a a a

2018 December 25

VS

Vovan Sidorovich in ELECTRONIX
stm32 RTX keil.
Общие принципы хотелось бы. черезпоток вывода там, и как это организовать?
источник

AC

Andrey Chufyrev in ELECTRONIX
на стм32 можно сделать через семихостинг (когда сам принтф по сути делает комп, а не МК), можно через nanolib
источник

AC

Andrey Chufyrev in ELECTRONIX
https://leanpub.com/mastering-stm32 в этой книге описано
источник

AC

Andrey Chufyrev in ELECTRONIX
Но это для HAL фреймворка
источник
2018 December 26

VS

Vovan Sidorovich in ELECTRONIX
Как вы далеки от народа!
Мне бы не как создать кольцевой буфер, а как разрулить это на уровне ОС. Ну шоб как на большом. print("blablabla") stdout/stderr.
И чтобы само забирало и передавало. А не дёргать биты управления UART из майн.
источник

AC

Andrey Chufyrev in ELECTRONIX
ну вроде это и не совсем низкоуровневые решения
источник

AC

Andrey Chufyrev in ELECTRONIX
а если средствами ОС, то это надо документацию на конкретную ОС и читать)
источник

VS

Vovan Sidorovich in ELECTRONIX
Та там обычный джентельменский набор.
Допустим передал printf в кольцевой буфер, семафором там, или как. А если буфер полон? может несколько потоков? Но даже в линуксе вывод както работает. Не говоря уже о нормальных осях.
источник

AZ

Aleksander Zholtkovskii in ELECTRONIX
Vovan Sidorovich
Та там обычный джентельменский набор.
Допустим передал printf в кольцевой буфер, семафором там, или как. А если буфер полон? может несколько потоков? Но даже в линуксе вывод както работает. Не говоря уже о нормальных осях.
как сделаешь так и будет. У меня при переполнении буфера новые сообщения просто отбрасываются
источник

VS

Vovan Sidorovich in ELECTRONIX
Aleksander Zholtkovskii
как сделаешь так и будет. У меня при переполнении буфера новые сообщения просто отбрасываются
Та не. Передал printf в кольцевой буфер, а дальше что?
источник

AZ

Aleksander Zholtkovskii in ELECTRONIX
Vovan Sidorovich
Та не. Передал printf в кольцевой буфер, а дальше что?
я немного по другому сделал. Формируется строка текста и в критической секции запихивается в fifo. Проверяется активность dma (который выгребает байтики из fifo) и если он ничего не делает, то стартует передача.
источник

VS

Vovan Sidorovich in ELECTRONIX
А как определить что строка уже вся в фифо и ничего другого непредвидится? Или фифо в ДМА не помещается?
источник

AZ

Aleksander Zholtkovskii in ELECTRONIX
Vovan Sidorovich
А как определить что строка уже вся в фифо и ничего другого непредвидится? Или фифо в ДМА не помещается?
в каком смысле как определить? На момент запихивания строки я точно знаю её размер, если в fifo достаточно места, то строка туда запихивается, если нет, то выбрасывается.
источник

AZ

Aleksander Zholtkovskii in ELECTRONIX
Моя система работает на cortex-m3 под управлением FreeRTOS.
источник

VS

Vovan Sidorovich in ELECTRONIX
точный размер известен, критические секции. А зачем Вам РТОС?
источник

AZ

Aleksander Zholtkovskii in ELECTRONIX
Vovan Sidorovich
точный размер известен, критические секции. А зачем Вам РТОС?
Эээ .... с RTOS программировать проще
источник

R

RusikOk in ELECTRONIX
источник

VS

Vovan Sidorovich in ELECTRONIX
сосдаётся впечатление что никто незнает как в РТОС разрулить передачу буфера в физический УАРТ.
Ключевые слова ещё раз. РТОС, УАРТ.
источник

BV

Bulat Valeev in ELECTRONIX
Ну сделайте queue, основанную на dma передачу в уарт в таске которая вызывается по прерыванию dma. А вместо printf сделайте обёртку функции которая отправляет данные в очередь. Правда я хз какой тут оверхкд будет. По моей памяти например в contiki os, подобное из коробки идет
источник

VS

Vovan Sidorovich in ELECTRONIX
Bulat Valeev
Ну сделайте queue, основанную на dma передачу в уарт в таске которая вызывается по прерыванию dma. А вместо printf сделайте обёртку функции которая отправляет данные в очередь. Правда я хз какой тут оверхкд будет. По моей памяти например в contiki os, подобное из коробки идет
Пока решил собирать в кольцевой и запустил таск который проверяет буфер на наличие.
А как в ДМА и очередь ещё непонял. В частности непонял как запускать ДМА после окончания вывода printf, как передавать если например printf-ов много и маленьких?
источник