|
SPI bus в виде задачи в RTOSe |
|
|
|
Feb 5 2010, 13:50
|
Частый гость
 
Группа: Свой
Сообщений: 184
Регистрация: 6-12-06
Пользователь №: 23 196

|
здрасьте народ. недавно начал изучать freertos. кое как слабал usb устройство из примеров  . дошел в данный момент до описания обмена данными по SPI. по SPI данные и читаются и записываются, микросхем куча и все разные. по сути: начинаю обмозговывать как бы описать обмен по SPI в виде отдельной задачи (или двух одна на чтение другая на запись). вроде если переписать пример serial и comtest, то должно работать, только еще добавить обращение непосредственно к отдельной взятой микросхеме. у кого какие мысли? может у кого то есть уже реализованные варианты?  ЕСЛИ ТЕМА БРЕД -> ГРОХНИТЕ ЕЕ
|
|
|
|
|
Feb 7 2010, 10:43
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Feb 7 2010, 12:42)  Когда ресурс занимается минимальным действием по "байт переслать" в симплексе, то можно и mutex. Для SPI это, пожалуй, и составляет большинство применений. Цитата(zltigo @ Feb 7 2010, 12:42)  Если за работой с SPI стоит протокол, то отдельная задача занимающаяся обслуживанием SPI совершенно естественна. Протокол обычно стоит за чем-то, висящим на SPI. Тогда работу с этим "чем-то" логично вынести в отдельную задачу, оставив сам SPI на более низком уровне. Цитата(zltigo @ Feb 7 2010, 12:42)  Кроме прикрытия SPI mutex-ами, во многих случаях естественнее смотрится очередь сообщений/указателей на сообщения. И критические секции имеют право на жизнь тоже. Варианты..... Очередь поможет в тех нечастых случаях, что упоминались мной в предыдущем посте. Во многих других - просто усложнит программу, без какой либо выгоды.
|
|
|
|
|
Feb 7 2010, 14:05
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Feb 7 2010, 13:43)  Для SPI это, пожалуй, и составляет большинство применений. Или нет. У меня за SPI "микросхемы" редко, все больше FPGA, да другие контроллеры. Цитата Протокол обычно стоит за чем-то, висящим на SPI. Тогда работу с этим "чем-то" логично вынести в отдельную задачу, оставив сам SPI на более низком уровне. Поскольку это единственная задача, то и всякие дробления и мютексы ей никчему. Цитата Очередь поможет в тех нечастых случаях, что упоминались мной в предыдущем посте. Во многих других - просто усложнит программу, без какой либо выгоды. Очередь по сложности нефатально отличается от мютекса, а в конкретно поминаемом случае FreeRTOS вообще не отличается.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 7 2010, 14:11
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Feb 7 2010, 17:05)  Или нет. У меня за SPI "микросхемы" редко, все больше FPGA, да другие контроллеры.
Поскольку это единственная задача, то и всякие дробления и мютексы ей никчему. Хочу только заметить, что у топикстартера "микросхем куча и все разные". Цитата(zltigo @ Feb 7 2010, 17:05)  Очередь по сложности нефатально отличается от мютекса, а в конкретно поминаемом случае FreeRTOS вообще не отличается. Разница в том, что очередь должен кто-то обслуживать.
|
|
|
|
|
Feb 7 2010, 14:46
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Feb 7 2010, 17:11)  Хочу только заметить, что у топикстартера "микросхем куча и все разные". Для кидания "байта" в непойми чего ни система, ни мютексы не нужны - кидающий просто смотрит на SPI - свободен или нет. И ждет освобождения. Цитата Разница в том, что очередь должен кто-то обслуживать. Вызывающая передачу задача и обработчик события завершения передачи.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 7 2010, 15:38
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(aaarrr @ Feb 7 2010, 17:53)  Или у вас на SPI единственная FPGA с разлапистым протоколом, или "непойми чего". Другие варианты не рассматриваете? Рассматриваю - кучка контроллеров с похожими, или одинаковыми протоколами. Цитата В общем случае работа с SPI сводится к передаче и приему N байт с предварительной установкой и последующим снятием CS, мьютекс тут как раз на месте. Для такого вырожденного случая софтовый мютекс совсем не нужен - уже писал - работают флаги в железе. Никакого абсурда.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 7 2010, 15:50
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(zltigo @ Feb 7 2010, 18:38)  Рассматриваю - кучка контроллеров с похожими, или одинаковыми протоколами. Хорошо, давайте рассмотрим случай, когда на шине одновременно присутствуют устройство с протоколом (например, SD/MMC карта в SPI-режиме) и без (например, 25-я еепромка для хранения каких-нибудь мелочей). Что будем делать? Цитата(zltigo @ Feb 7 2010, 18:38)  Для такого вырожденного случая софтовый мютекс совсем не нужен - уже писал - работают флаги в железе. Да имейте же меру в упрощениях и вырождениях! Это верно, только если слейв один и достучатся до него пытается только одна задача.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|