Муравей 0 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба Здравствуйте. Переползаю потихоньку на встроенный Linux, естественно ожидаю от освоения этой ОСи увеличения скорости разработки :) Есть отладочная плата Beaglebone с процессором Cortex A8 Sitara AM3359, пользуюсь тулчейном от TI, но вместо CCS прикрутил Eclipse (CCS отказался корректно работать почему-то под Ubuntu). Но суть не в этом . Научился моргать светодиодом через mmap. Сейчас нужно запустить PWM. Впринципе, понятно, что через mmap из user space можно сконфигурить любую аппаратуру, но не для этого я ставил Linux :) Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alx2 0 6 июня, 2013 Опубликовано 6 июня, 2013 (изменено) · Жалоба Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах. Не совсем понятно, надо ли Вам обращаться к PWM из ядра или из юзерспейса. К содержимому sysfs обращаются точно так же как к любым другом файлам - через open(), read(), write(), close(). Это если Вам именно из юзерспейса надо. Что конкретно и куда писать - зависит от конкретного железа и драйвера. Вот тут linux/Documentation/pwm.txt, как я понял, что-то об обращении к pwm из ядра. Сам я с pwm никогда дела не имел, поэтому что-либо более конкретное вряд ли подскажу... Изменено 6 июня, 2013 пользователем alx2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 6 июня, 2013 Опубликовано 6 июня, 2013 · Жалоба Есть отладочная плата Beaglebone с процессором Cortex A8 Sitara AM3359, ... Сейчас нужно запустить PWM. С таким мощным PWM фичами как у AM3359, простой драйвер под линуксом не справится. Для этого там есть Programmable Real-Time Unit. Поэтому, думаю, никто и не пытался работать с их PWM через линукс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 6 июня, 2013 Опубликовано 6 июня, 2013 · Жалоба Это тот, под который кортекс на чипе,вся дока на который - NDA ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Муравей 0 7 июня, 2013 Опубликовано 7 июня, 2013 (изменено) · Жалоба Это тот, под который кортекс на чипе,вся дока на который - NDA ? Да вроде все доки на TI есть... Вы наверное другой имеете ввиду. alx2, спасибо за ответ! К сожалению прочитал его поздновато, как раз пошёл по тому пути, что Вы посоветовали. Теперь точно понял, что путь правильный. AlexandrY, а какие ограничения у драйвера, что он не справится со столь навороченным PWM? Мне от PWM нужно только выдавать разные частоты наружу... Изменено 7 июня, 2013 пользователем Муравей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба насколько я понял, в омапах и ситарах кроме основного ядра (или двух а9 кортексов) есть некоторое количество вспомогательных кортексов м3. В моем случае (омап4460) кортексы есть на Iva hd 2 engine, sgx 540 OpenGL аксель и на периферию. У 4460 эта часть точно НДА. Вот я и спрашиваю,что там у Ситары. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Муравей 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба насколько я понял, в омапах и ситарах кроме основного ядра (или двух а9 кортексов) есть некоторое количество вспомогательных кортексов м3. В моем случае (омап4460) кортексы есть на Iva hd 2 engine, sgx 540 OpenGL аксель и на периферию. У 4460 эта часть точно НДА. Вот я и спрашиваю,что там у Ситары. Cortex™-A8 is an ARMv7 compatible, dual-issue, in-order execution engine with integrated L1 and L2 caches with NEON™ SIMD Media Processing Unit. И есть в старших процах линейки Programmable Real-Time Unit: The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS) consists of dual 32-bit RISC cores (Programmable Real-Time Units, or PRUs), memories, interrupt controller, and internal peripherals that enable additional peripheral interfaces and protocols. The subsystem available on this device is the next-generation PRU (PRUSSv2) compared to the AM1x and OMAP-L13x. Вот про него инфы вроде нету в свободном доступе. Но мне он пока не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Да вроде все доки на TI есть... Вы наверное другой имеете ввиду. alx2, спасибо за ответ! К сожалению прочитал его поздновато, как раз пошёл по тому пути, что Вы посоветовали. Теперь точно понял, что путь правильный. AlexandrY, а какие ограничения у драйвера, что он не справится со столь навороченным PWM? Мне от PWM нужно только выдавать разные частоты наружу... Этот OMAP заточен под EtherCAT и частотные преобразователи. Рабочий цикл у частотного преобразователя с векторным управлением менее 50-20 мкс. Т.е. линукс рядом не лежал. На Programmable Real-Time Units инфа есть, но это не кортексы к сожалению, скорее нечто напоминающее PIC-и. Программируются на ассеблере. Компилятор есть, но примитив полный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 7 июня, 2013 Опубликовано 7 июня, 2013 · Жалоба Cortex™-A8 is an ARMv7 compatible, dual-issue, in-order execution engine with integrated L1 and L2 caches with NEON™ SIMD Media Processing Unit. И есть в старших процах линейки Programmable Real-Time Unit: The Programmable Real-Time Unit and Industrial Communication Subsystem (PRU-ICSS) consists of dual 32-bit RISC cores (Programmable Real-Time Units, or PRUs), memories, interrupt controller, and internal peripherals that enable additional peripheral interfaces and protocols. The subsystem available on this device is the next-generation PRU (PRUSSv2) compared to the AM1x and OMAP-L13x. Вот про него инфы вроде нету в свободном доступе. Но мне он пока не нужен. Ну так я понимаю все advanced с GPIO & PWM на нем и реализуется. Ну если просто ШИМ выдать просто так - то наверное и не нужен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба ... Рабочий цикл у частотного преобразователя с векторным управлением менее 50-20 мкс. Т.е. линукс рядом не лежал. А в чём тут проблема у линукса? Отработать прерывание за такое время на линуксе не составляет никакой сложности. Или подразумевается какая-то другая проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба А в чём тут проблема у линукса? Отработать прерывание за такое время на линуксе не составляет никакой сложности. Или подразумевается какая-то другая проблема? Прерывания ядра с такой частотой можно сделать в любой OS, это бесспорно. Но это потребует патча самого ядра. Тогда вы лишаетесь возможности автоматического апгрейда ядра. А это все равно, что начать делать проприетарную ОS. Т.е. от линукса остается только название. Хотя вот посмотрел https://linuxlink.timesys.com/dev_center/beagleboard даже с поддержкой примитивного набора периферии для каждой платы предлагается 2-3 версии ядра, чаще одна и нигде не увидел возможности свободного выбора версии ядра. Т.е. практика переделки ядра повсеместная и между платформами нет приемственности методов достижения быстродействия. А значит сложность все таки есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
winipuh 0 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба Оффтоп. Вопрос с гуру :) по поводу ситар Где может потребоваться наличие двух портов gigabit ethernet (и в конфигурации свитча, и в конфигурации двух раздельных интерфейсов)? Может кто-нибудь приведет примеры? И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 8 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба AM3359 не коммуникационное ядро! Роутить не очень и получиться. Прием данных только и немного обработки. gigabit ethernet там для прикола, с двумя гигабитными потоками ядро не справиться, по 100 еще более менее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба Где может потребоваться наличие двух портов gigabit ethernet (и в конфигурации свитча, и в конфигурации двух раздельных интерфейсов)? Может кто-нибудь приведет примеры? И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками... Так написал же - EtherCAT Т.е. кольцевой Ethernet работающий в реальном времени. И гигабит думаю спокойно выдержит в кольцевой топологии. Опять, конечно, не для линукса. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 11 июня, 2013 Опубликовано 11 июня, 2013 · Жалоба Прерывания ядра с такой частотой можно сделать в любой OS, это бесспорно. Но это потребует патча самого ядра. Тогда вы лишаетесь возможности автоматического апгрейда ядра. Чушь какая-то. У ядра есть такое понятие как загружаемый модуль. Его не обязательно монолитно включать в само ядро. Это отдельный файл. Обновляйте ядро на здоровье. А это все равно, что начать делать проприетарную ОS. Т.е. от линукса остается только название. см. выше. Хотя вот посмотрел https://linuxlink.timesys.com/dev_center/beagleboard даже с поддержкой примитивного набора периферии для каждой платы предлагается 2-3 версии ядра, чаще одна и нигде не увидел возможности свободного выбора версии ядра. Т.е. практика переделки ядра повсеместная и между платформами нет приемственности методов достижения быстродействия. А значит сложность все таки есть. Это ошибочное представление из-за отсутствия понимания принципов и возможностей linux. С опытом пройдёт. Но для опыта надо хотя бы пытаться работать с системой, а не бояться мифических и несуществующих проблем. ... И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками... Для примерной оценки требуемой производительности есть такое неформальное правило: для обработки одного мегабита ethernet необходим один мегагерц тактовой частоты процессора. т.е. для двух гигабитных портов надо 2 Гигацерцовый процессор. Если процессор имеет частоту 400 Мегагерц, то сетевая производительность получится примерно на 400 мегабит. Обращаю внимание, что это только метод для приближенной оценки производительности сети. ... Опять, конечно, не для линукса. :laughing: Опять необоснованные фобии... :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться