реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Sitara + Linux, Тупик
Муравей
сообщение Jun 5 2013, 13:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 30-11-11
Пользователь №: 68 593



Здравствуйте.
Переползаю потихоньку на встроенный Linux, естественно ожидаю от освоения этой ОСи увеличения скорости разработки :)
Есть отладочная плата Beaglebone с процессором Cortex A8 Sitara AM3359, пользуюсь тулчейном от TI, но вместо CCS прикрутил Eclipse (CCS отказался корректно работать почему-то под Ubuntu).
Но суть не в этом .
Научился моргать светодиодом через mmap. Сейчас нужно запустить PWM. Впринципе, понятно, что через mmap из user space можно сконфигурить любую аппаратуру, но не для этого я ставил Linux :)
Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
alx2
сообщение Jun 6 2013, 08:08
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(Муравей @ Jun 5 2013, 18:34) *
Прочитал про sysfs, понял , что в ней есть драйвера для нужного мне PWM, но в инете не смог найти примеров как к этим драйверам обратиться на C. Ткните носом в ссылку плз или расскажите в двух словах.

Не совсем понятно, надо ли Вам обращаться к PWM из ядра или из юзерспейса.
К содержимому sysfs обращаются точно так же как к любым другом файлам - через open(), read(), write(), close(). Это если Вам именно из юзерспейса надо.
Что конкретно и куда писать - зависит от конкретного железа и драйвера.
Вот тут linux/Documentation/pwm.txt, как я понял, что-то об обращении к pwm из ядра.
Сам я с pwm никогда дела не имел, поэтому что-либо более конкретное вряд ли подскажу...

Сообщение отредактировал alx2 - Jun 6 2013, 08:18


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 6 2013, 10:08
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Муравей @ Jun 5 2013, 16:34) *
Есть отладочная плата Beaglebone с процессором Cortex A8 Sitara AM3359, ... Сейчас нужно запустить PWM.


С таким мощным PWM фичами как у AM3359, простой драйвер под линуксом не справится.
Для этого там есть Programmable Real-Time Unit.
Поэтому, думаю, никто и не пытался работать с их PWM через линукс.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 6 2013, 10:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Это тот, под который кортекс на чипе,вся дока на который - NDA ?
Go to the top of the page
 
+Quote Post
Муравей
сообщение Jun 7 2013, 04:39
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 30-11-11
Пользователь №: 68 593



Цитата(DASM @ Jun 6 2013, 14:30) *
Это тот, под который кортекс на чипе,вся дока на который - NDA ?

Да вроде все доки на TI есть... Вы наверное другой имеете ввиду.

alx2, спасибо за ответ! К сожалению прочитал его поздновато, как раз пошёл по тому пути, что Вы посоветовали. Теперь точно понял, что путь правильный.

AlexandrY, а какие ограничения у драйвера, что он не справится со столь навороченным PWM?
Мне от PWM нужно только выдавать разные частоты наружу...

Сообщение отредактировал Муравей - Jun 7 2013, 04:42
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 7 2013, 04:46
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



насколько я понял, в омапах и ситарах кроме основного ядра (или двух а9 кортексов) есть некоторое количество вспомогательных кортексов м3. В моем случае (омап4460) кортексы есть на Iva hd 2 engine, sgx 540 OpenGL аксель и на периферию. У 4460 эта часть точно НДА. Вот я и спрашиваю,что там у Ситары.
Go to the top of the page
 
+Quote Post
Муравей
сообщение Jun 7 2013, 05:25
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 30-11-11
Пользователь №: 68 593



Цитата(DASM @ Jun 7 2013, 08:46) *
насколько я понял, в омапах и ситарах кроме основного ядра (или двух а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.

Вот про него инфы вроде нету в свободном доступе. Но мне он пока не нужен.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 7 2013, 06:10
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Муравей @ Jun 7 2013, 07:39) *
Да вроде все доки на TI есть... Вы наверное другой имеете ввиду.

alx2, спасибо за ответ! К сожалению прочитал его поздновато, как раз пошёл по тому пути, что Вы посоветовали. Теперь точно понял, что путь правильный.

AlexandrY, а какие ограничения у драйвера, что он не справится со столь навороченным PWM?
Мне от PWM нужно только выдавать разные частоты наружу...


Этот OMAP заточен под EtherCAT и частотные преобразователи.
Рабочий цикл у частотного преобразователя с векторным управлением менее 50-20 мкс.
Т.е. линукс рядом не лежал.

На Programmable Real-Time Units инфа есть, но это не кортексы к сожалению, скорее нечто напоминающее PIC-и.
Программируются на ассеблере. Компилятор есть, но примитив полный.
Go to the top of the page
 
+Quote Post
DASM
сообщение Jun 7 2013, 06:12
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Муравей @ Jun 7 2013, 09:25) *
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 на нем и реализуется. Ну если просто ШИМ выдать просто так - то наверное и не нужен
Go to the top of the page
 
+Quote Post
Petka
сообщение Jun 11 2013, 08:33
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(AlexandrY @ Jun 7 2013, 10:10) *
...
Рабочий цикл у частотного преобразователя с векторным управлением менее 50-20 мкс.
Т.е. линукс рядом не лежал.

А в чём тут проблема у линукса? Отработать прерывание за такое время на линуксе не составляет никакой сложности. Или подразумевается какая-то другая проблема?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 11 2013, 09:32
Сообщение #11


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Petka @ Jun 11 2013, 11:33) *
А в чём тут проблема у линукса? Отработать прерывание за такое время на линуксе не составляет никакой сложности. Или подразумевается какая-то другая проблема?


Прерывания ядра с такой частотой можно сделать в любой OS, это бесспорно.
Но это потребует патча самого ядра. Тогда вы лишаетесь возможности автоматического апгрейда ядра.
А это все равно, что начать делать проприетарную ОS. Т.е. от линукса остается только название.

Хотя вот посмотрел https://linuxlink.timesys.com/dev_center/beagleboard даже с поддержкой примитивного набора периферии для каждой платы предлагается 2-3 версии ядра, чаще одна и нигде не увидел возможности свободного выбора версии ядра.
Т.е. практика переделки ядра повсеместная и между платформами нет приемственности методов достижения быстродействия.
А значит сложность все таки есть.
Go to the top of the page
 
+Quote Post
winipuh
сообщение Jun 11 2013, 11:54
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 31-10-12
Пользователь №: 74 189



Оффтоп.

Вопрос с гуру sm.gif по поводу ситар
Где может потребоваться наличие двух портов gigabit ethernet (и в конфигурации свитча, и в конфигурации двух раздельных интерфейсов)? Может кто-нибудь приведет примеры?
И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками...
Go to the top of the page
 
+Quote Post
Aner
сообщение Jun 11 2013, 12:03
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



AM3359 не коммуникационное ядро! Роутить не очень и получиться. Прием данных только и немного обработки. gigabit ethernet там для прикола, с двумя гигабитными потоками ядро не справиться, по 100 еще более менее.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 11 2013, 12:19
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(winipuh @ Jun 11 2013, 14:54) *
Где может потребоваться наличие двух портов gigabit ethernet (и в конфигурации свитча, и в конфигурации двух раздельных интерфейсов)? Может кто-нибудь приведет примеры?
И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками...


Так написал же - EtherCAT
Т.е. кольцевой Ethernet работающий в реальном времени. И гигабит думаю спокойно выдержит в кольцевой топологии.
Опять, конечно, не для линукса. laughing.gif
Go to the top of the page
 
+Quote Post
Petka
сообщение Jun 11 2013, 12:46
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(AlexandrY @ Jun 11 2013, 13:32) *
Прерывания ядра с такой частотой можно сделать в любой OS, это бесспорно.
Но это потребует патча самого ядра. Тогда вы лишаетесь возможности автоматического апгрейда ядра.

Чушь какая-то.
У ядра есть такое понятие как загружаемый модуль. Его не обязательно монолитно включать в само ядро. Это отдельный файл. Обновляйте ядро на здоровье.
Цитата
А это все равно, что начать делать проприетарную ОS. Т.е. от линукса остается только название.

см. выше.
Цитата
Хотя вот посмотрел https://linuxlink.timesys.com/dev_center/beagleboard даже с поддержкой примитивного набора периферии для каждой платы предлагается 2-3 версии ядра, чаще одна и нигде не увидел возможности свободного выбора версии ядра.
Т.е. практика переделки ядра повсеместная и между платформами нет приемственности методов достижения быстродействия.
А значит сложность все таки есть.

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

Цитата(winipuh @ Jun 11 2013, 15:54) *
...
И кстати, а сколько реально AM3359 сможет вытянуть по сети? Я что-то в сомнениях, что его реально можно нагрузить двумя гигабитными потоками...

Для примерной оценки требуемой производительности есть такое неформальное правило: для обработки одного мегабита ethernet необходим один мегагерц тактовой частоты процессора. т.е. для двух гигабитных портов надо 2 Гигацерцовый процессор. Если процессор имеет частоту 400 Мегагерц, то сетевая производительность получится примерно на 400 мегабит. Обращаю внимание, что это только метод для приближенной оценки производительности сети.

Цитата(AlexandrY @ Jun 11 2013, 16:19) *
...
Опять, конечно, не для линукса. laughing.gif

Опять необоснованные фобии... laughing.gif
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 11:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016