Jump to content

    

Sitara + Linux

Опять необоснованные фобии... :laughing:

 

 

Вообще я бы посоветовал поспорить с пацанами вроде этих - http://beagleboard.org/project/robot+cleaner/

Они то и не знают что dsPIC им совершенно не нужен если есть линукс. Или у них фобия? ;)

Share this post


Link to post
Share on other sites

Судя по описанию проекта у них мания понапихать всего, чего только возможно в одно устройство, при этом не особо вдаваясь в суть

Share this post


Link to post
Share on other sites
Вообще я бы посоветовал поспорить с пацанами вроде этих - http://beagleboard.org/project/robot+cleaner

/

А чего спорить с радиолюбителями? Пускай занимаются тем, что умеют, и что приносит им удовольствие. Пихать линукс в каждый утюг глупо. Но и бояться линукса в тех задачах, где ему место точно так же глупо.

Они то и не знают что dsPIC им совершенно не нужен если есть линукс. Или у них фобия? ;)

См выше.

P.S. Есть такой проект: управление станками с ЧПУ, называется "linux-cnc". Там есть требования по реалтайму. Для решения задачи они используют realtime-linux + софт для стандартной убунты. Там танцорам ничего не мешает.

Share this post


Link to post
Share on other sites
А чего спорить с радиолюбителями?

Но и бояться линукса ... так же глупо.

 

Есть такой проект: управление станками с ЧПУ, называется "linux-cnc". Там есть требования по реалтайму.

 

Вообще появление слова "бояться" в этом контексте, о многом говорит.

Да, похоже любителям линукса вполне знакомо чувство боязни.

Это постоянный страх, что вот щас сбойнет, а средств и шансов исправить ошибку никаких. :biggrin: (шутка, напрягаться не надо)

 

"linux-cnc" старый, долгоиграющий, по началу сильно глючный (не знаю как сейчас), обросший драйверными платами со своими микроконтроллерами проект.

Приплетать его сюда не стоит. Сколько сил туда угрохано никто не посчитает.

 

Мы же говорим о минимизации усилий в быстрых, малобюджетных и надежных проектах с интенсивным использованием специализированной периферии микроконтроллера в реальном времени с циклами в десятки микросекунд.

 

Дайте мне пример такого чисто на линуксе без дополнительных микроконтроллеров.

 

 

 

 

 

Share this post


Link to post
Share on other sites
Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах.

строка для гугля например "beaglebone pwm example"

 

техасское твики для юзерспейса:

http://processors.wiki.ti.com/index.php/AM...ver's_Guide

 

для поднятия pwm в ядре посмотрите содержимое файла борды, там все давно прописано..

если в "двух словах", то в конфиге ядра включаете/проверяете поддержку pwm. потом в файле платы в ветке инита периферии BB(ver>A3) прописываете вызов инита pwm, который интит нужный пин АРМа в заданный режим и регистрирует pwm в ядре.. тут важно понять соответствие физического пина и канала pwm - расписано в UG..

результатом хлопот будет появление ветки pwm в sysfs

 

далее стандартная работа, либо через echo либо из софта пользователя..

Share this post


Link to post
Share on other sites
....

Мы же говорим о минимизации усилий в быстрых, малобюджетных и надежных проектах с интенсивным использованием специализированной периферии микроконтроллера в реальном времени с циклами в десятки микросекунд.

 

Дайте мне пример такого чисто на линуксе без дополнительных микроконтроллеров.

Наш диалог вышел за пределы темы топика. Наверное стоит продолжить его в другом разделе форума.

Если придерживаться темы, то Sitara содержит MMU, что позиционирует данный чип для использования полноценных ОС, с разделением ПО на пользовательское и системное (ядерное). При таком подходе трудно из пользовательского контекста получить мгновенную реакцию на внешние события. Очевидно, для гарантии времени реакции (микросекунды) придётся писать модуль ядра. А настройки и управление этого модуля можно осуществлять из ПО верхнего (пользовательского) уровня. В такой парадигме всё равно какая ОС будет использована. Линукс просто дешевле, быстрее в адаптации к вашей плате и удобнее для программирования. Как плюс к линуксу - можно использовать проверенные стеки сети и USB, файловые системы, готовые программы высокого уровня и не изобретать велосипеды (ftp, telnet и т.д.).

Share this post


Link to post
Share on other sites

Да чего вы паретесь то, я вот задолбался считать, сколько в ОМАПе вообще Кортекс ядер. Ну два тех, что все считают просто ядрами. Но там на GPIO тоже кортекс есть, на ДМА по слухам, кортекс, еще на шинах висят.. сколько - не знаб - они не очень раскрываются. А кому надо открытость - делают так http://www.kickstarter.com/projects/435742...ny-single-board

И волки сыты и овцы целы. Мучать Линукс прерываниями имхо столь же неразумно, как и писать веб-сервер на Кортесе М3. Правда соединили они их совершенно странно - по ЮАРТУ =(.

Share this post


Link to post
Share on other sites
.... Мучать Линукс прерываниями имхо столь же неразумно, как и писать веб-сервер на Кортесе М3. Правда соединили они их совершенно странно - по ЮАРТУ =(.

А как же уарт в линуксе работает. Не через прерывания? :rolleyes:

Share this post


Link to post
Share on other sites

Обычно есть нехилое аппаратное ФИФО. Я же не говорю, что прерывания использовать не надо, я к тому, что их частота должна быть сопоставима с частотой работы планировщика задач имхо. Если много чаще - что-то в системе не так. К тому же, если вы про ту плату, на которую я дал ссылку - там же не элементарные команды "открой вентиль такой-то сейчас" идут, а "покрути мне вот тооот моторчик, чтобы было красиво"

Share this post


Link to post
Share on other sites

Потихоньку осваиваю премудрости embedded linux вообще и в частности на beaglebone.

Нужно повесить на MsASP несколько слэйвов в режиме TDM. Я так понимаю, что для этого нужно писать свой модуль ядра.

Почитав про модули .ko и способы их линковки вроде стало ясно, что они линкуются при наличии исходников ядра , так как потом работают в одном адресном пространстве с ядром. При первой попытке скомпилить тестовый модуль получил при загрузке сообщение типа неверный формат модуля. Ну ладно думаю, скорее всего ядро в образе не совпадает с исходниками в тулчейне ti-sdk-05.07.00.00... Начал пересобирать ядро, с ним и u-boot на всякий случай. Вообще сделал новый образ SD карты :) Всё вроде после долгих попыток даже стартануло, плата отвечает по minicom и по ssh, но ... пропали используемые мной PWM из /sys/class/pwm ! В конфиге ядра указываю что нужно разрешить PWM.

Перерыв половину инета понял, что в некоторых версиях линуха эта опция не поддержана, скачал предыдущую версию с ядром 3.2.0 - аналогично.

Сейчас пробую поставить тулчейн по инструкции http://beagleboard.org/linux/ , пока еле-еле качается решил поделиться изысканиями на форуме :) Если куда-то гребу не в ту сторону - просьба направить.

Заранее спасибо.

 

Share this post


Link to post
Share on other sites
С таким мощным PWM фичами как у AM3359, простой драйвер под линуксом не справится.

Для этого там есть Programmable Real-Time Unit.

Поэтому, думаю, никто и не пытался работать с их PWM через линукс.

 

Неправда, Я делал драйвер для управления подсветкой дисплея через ШИМ. На довольно близком процессоре АМ3715.

Правда я сделал доступ через procfs, но все работало как надо.

 

Периферийное устройство как раз и нужно для того, чтобы не процессор занимался работой, а устройство. Зачастую не критично насколько быстро процессор изменит duty cycle, а это как раз зависит от быстродействия ОС.

 

Не нашел кода драйвера, но еще не везде посмотрел.

 

Share this post


Link to post
Share on other sites

Пока не нашел кода, но вот здесь доступ к таймерам можно посмотреть.

arch/arm/plat-omap/dmtimer.c

 

Обычно есть нехилое аппаратное ФИФО.

 

Оно называется ПДП (DMA) и его надо в драйвере настраивать. Но в кернеле есть множество примеров его настройки и использования.

 

Что касается прерываний, я не вижу необходимости быстро реагировать, хотя и прервания несложно подключить.

 

Edited by Tarbal

Share this post


Link to post
Share on other sites

Прошу простить меня за дикий офтоп, стало интересно что это за МК где вы запускаете Linux.

Нагуглил что только процессорный модуль с AM3359 + RAM + Nand flash стоит почти 5000р. в розницу http://www.terraelectronica.ru/news_postup...CFXR7cAodThoAPg . Посему вопрос, а где такое чудо с такой ценой будет выгодно использовать? Явно не поморгать светодиодом, за такую цену нужно как минимум в космический спутник этот чип ставить :)

 

Хотя если это http://www.ebay.com/itm/Beaglebone-Black-/...=item20d49cbfe4 тоже оно, то мне самому уже интересно с таким поэкспереметнировать.

Edited by flopix

Share this post


Link to post
Share on other sites
Прошу простить меня за дикий офтоп, стало интересно что это за МК где вы запускаете Linux.

Нагуглил что только процессорный модуль с AM3359 + RAM + Nand flash стоит почти 5000р. в розницу http://www.terraelectronica.ru/news_postup...CFXR7cAodThoAPg . Посему вопрос, а где такое чудо с такой ценой будет выгодно использовать? Явно не поморгать светодиодом, за такую цену нужно как минимум в космический спутник этот чип ставить :)

 

Хотя если это http://www.ebay.com/itm/Beaglebone-Black-/...=item20d49cbfe4 тоже оно, то мне самому уже интересно с таким поэкспереметнировать.

 

 

http://www.raspberrypi.org/ ~$35

http://en.wikipedia.org/wiki/Raspberry_Pi

 

Begleboard ~$150

Beaglebone ~$150

iMX53 Quick Start Board ~$150

Edited by Tarbal

Share this post


Link to post
Share on other sites
Beaglebone ~$150

Любопытно. Обычно к таким "дровишкам" прилагают сцылку на источник.

 

Тем паче, что $40 плата на ситаре обсуждается куда ближе.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this