Перейти к содержанию
    

Экономичный и быстрый протокол для обмена между микроконтроллерами с RTOS

Новелла увы, превратилась в устареллу, но попохвалятся хочется. Было нужно организовать

общение ARM и DSP на одном кристалле
- девайс DM6446/DM6467. Сначала попытался сделать попроще, но в итоге пришёл к необходимости сделать синхронный мини-драйвер, на 4 I/O канала

 

[...] никаких линуксов и стандартных API типа POSIX
естественно, в ОС, но не Linux, не DSP/BIOS и не SYS/BIOS.

 

разумно ли драйвер нагружать функцией менеджера сообщений?

Соответственно, вся логика такого мини-драйвера указывает (вопиёт) на то, что именно драйвер и должен быть менеджером сообщений и процессов, ожидающих I/O по каналу. Естественно, не имеет значения, какой процесс инициирует передачу, ресивер или трансмиттер и на каком из двух ЦПУ (понятно, что транзакция должна начатся в тот момент, когда на концах канала есть оба процесса, передатчик и приёмник). Приоритеты в очередях не учитываются, очереди - обычные FIFO, но каналов-то несколько, они могут быть поделены для разных приоритетов. И небольшой протокольчик тоже необходим, что бы, по крайней мере, передать ресиверу признак завершения транзакции трансмиттером.

 

Наибольшее затруднение в этих девайсах - аппратное средство обмена между процессорами, межпроцессорные прерывания не ставятся в очередь, и приходится спинлоком опрашивать состояние флага в регистре. Это единственное некрасивое место...

 

В общем, мучился в одиночку, сюда не смотрел, а вы тут уже без меня всё сделали...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...