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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Переносимость на embedded Linux, Насколько переносим код для embedded Linux?
РРоман
сообщение Sep 17 2013, 07:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374



Доброго времени суток всем!
Сейчас выпускается много плат на микроконтроллерах с поддержкой того или иного дистрибутива Linux. Насколько переносим код, например, для Linux Ubuntu при переходе к другой плате на таком же дистрибутиве? Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet? Для более специфических интерфейсов, таких как I2C, SPI, PWM? Как изменится ситуация, если придется переходить на другой дистрибутив?
Go to the top of the page
 
+Quote Post
xor.kruger
сообщение Sep 17 2013, 07:24
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Дистрибутив не причем (если и будут какие-то телодвижения, то они будут крайне минимальными).
Придется пересобирать ядро GNU/Linux и может быть подправлять платформ файл ядра (файл в котором описано как и какая периферия подключена к вашему МК).

Цитата
Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet? Для более специфических интерфейсов, таких как I2C, SPI, PWM?

Ну а как-же, только это не в дистрибутиве а в ядре sm.gif
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 17 2013, 12:29
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Отвечу так:
представьте себе поле. Большое. И там везде грабли, грабли, грабли..
До самого горизонта.

Гдето так.

ПыСы. Доходило до того, что сборка того же софта более новым gcc не работала. Казалось бы, да?
А вот он новую секцию добавлял, а тулзы его непонимали и кернел неправильно компонавали..


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 17 2013, 12:41
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(РРоман @ Sep 17 2013, 11:03) *
Насколько переносим код, например, для Linux Ubuntu при переходе к другой плате на таком же дистрибутиве?

Тут нужно в первую очередь рассматривать ресурсы чипа и реализацию BSP а не тип дистритутива.

Цитата
Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet?

В порядке убывания стандартизированности:
Ethernet
USB
LCD
GPIO

Цитата
Для более специфических интерфейсов, таких как I2C, SPI, PWM? Как изменится ситуация, если придется переходить на другой дистрибутив?


Цитата(A. Fig Lee @ Sep 17 2013, 16:29) *
представьте себе поле. Большое. И там везде грабли, грабли, грабли..
До самого горизонта.
Гдето так.

+100500
Go to the top of the page
 
+Quote Post
Lagman
сообщение Sep 17 2013, 15:10
Сообщение #5


Знающий
****

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



Цитата(A. Fig Lee @ Sep 17 2013, 16:29) *
ПыСы. Доходило до того, что сборка того же софта более новым gcc не работала. Казалось бы, да?
А вот он новую секцию добавлял, а тулзы его непонимали и кернел неправильно компонавали..

Даже кернел с Торвальдсом пару раз доходил до этого.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2013, 16:42
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(A. Fig Lee @ Sep 17 2013, 16:29) *
представьте себе поле. Большое. И там везде грабли, грабли, грабли..
До самого горизонта.

Гдето так.


"где-то так" бывает у всех новичков. Вы очевидно не исключение.

Цитата
ПыСы. Доходило до того, что сборка того же софта более новым gcc не работала. Казалось бы, да?
А вот он новую секцию добавлял, а тулзы его непонимали и кернел неправильно компонавали..


Отсюда вывод - не собирйте чем попало.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 17 2013, 17:16
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(A. Fig Lee @ Sep 17 2013, 15:29) *
ПыСы. Доходило до того, что сборка того же софта более новым gcc не работала. Казалось бы, да?
А вот он новую секцию добавлял, а тулзы его непонимали и кернел неправильно компонавали..

Причем тутта линкер-скрипт к "более новому" GCC ? wacko.gif
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 17 2013, 18:12
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(_Pasha @ Sep 17 2013, 13:16) *
Причем тутта линкер-скрипт к "более новому" GCC ? wacko.gif

Вово.. И я так думал.

Могу покопать конкретно "при чем".
За пыво. sm.gif
Просто так лень.

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

Можно ковырнуть современные тулзы. Секция чтото вроде build-id, введена по моему после 2.95.
Там, кажется, и CodeSourcery свои инициалы сейчас держит.
В общем, мне пришлось компилить objcopy с дебаг информацией, смотрел откуда он такой размер берет.
То ли аддресс там был нулевой, не сросталось чтото.

Ну что? Хайнекен?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 17 2013, 18:15
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(sasamy @ Sep 17 2013, 20:42) *
"где-то так" бывает у всех новичков. Вы очевидно не исключение.

Где-то так бывает когда начинаешь работать глубже чем Hello world. Например общаться с внешними устройствами. В драйверах ТАКОЕ обнаруживается что приходится кушать кактус.
Примеры:
imx28 linux2.6.35 от фрискейла. Драйвер i2c не поддеррживает Repeated Start (железо умеет). Ну и хрен бы с ним только мне надо подключить чип который в принципе не функционирует без Repeated Start. Ну в AD такие выдумщики. Хорошо хоть патч от коммюнити нашелся, он даже кое-как работает.
imx25 dma не поддерживается хотя в железе есть и работает. Ну кому такая фигня как dma может потребоваться. Коммюнити ниасилило потому как sdma там шибко накрученный.
imx6 на spi интерфейсе dma не поддерживается, ss программный. В железе dma поддерживается, ss аппаратный. Ну надо же чем то загрузить 1ГГц процессор.
Подобных косяков я могу нарыть сколько угодно

Сообщение отредактировал _3m - Sep 17 2013, 18:18
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 17 2013, 18:41
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



_Pasha,
нашел свой старый пост по теме:

Кийворд .note.gnu.build-id
В 2007 один хороший человек добавил эту секцию в бинарник,
"юникли айдентифиед билд".
В линкер скриптах про нее ничего нет, куда ложить.
Стрипать ее не стрипают.
В результате она в vmlinux ложится в секцию с аддресом 0х00000
Занимает 36 байт.
Все остальные секции располагаются там вверху гдето с 0хC000000..

В команде objcopy када из vmlinux делается бинарный образ мемори
секция не стрипается.
Он тупо находит секцию с самым маленьким стартовым адрессом, копирует,
затем берет следующую секцию, делает SEEK на 0хС000000 и получаем афигенный файл..


Референсес:
http://lists.linaro.org/pipermail/linaro-k...ary/000052.html
https://lkml.org/lkml/2011/12/15/162


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2013, 19:37
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(_3m @ Sep 17 2013, 22:15) *
Подобных косяков я могу нарыть сколько угодно


Подобные "косяки" - это фигня полная. i2c, spi не ипользуются как скоростные интерфейсы - чисто сконфигурировать что-то или там тачскрины всякие где надо пару десятков байт передать/принять, на том же imx6 у SPI аппаратный FIFO - 64 байта, какой смысл для такой ерунды DMA заряжать если вся передача в FIFO целиком помещается ? GPIO в качестве SS - это очень распространенное явление чтобы реализовать все возможные варианты флагов у spi_message и spi_transfer на которые контроллер не сконфигурировать.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Sep 17 2013, 20:02
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(sasamy @ Sep 17 2013, 15:37) *
Подобные "косяки" - это фигня полная. i2c, spi не ипользуются как скоростные интерфейсы - чисто сконфигурировать что-то или там тачскрины всякие где надо пару десятков байт передать/принять, на том же imx6 у SPI аппаратный FIFO - 64 байта, какой смысл для такой ерунды DMA заряжать если вся передача в FIFO целиком помещается ? GPIO в качестве SS - это очень распространенное явление чтобы реализовать все возможные варианты флагов у spi_message и spi_transfer на которые контроллер не сконфигурировать.

"Вон оно как, Михалыч" (с)..
Достал попкорн.
Сейчас "гуру" будут "новичков учить"

rolleyes.gif


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 17 2013, 20:07
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(A. Fig Lee @ Sep 18 2013, 00:02) *
Достал попкорн.
Сейчас "гуру" будут "новичков учить"

rolleyes.gif


Для таких гуру как вы видимо трудно подправить драйвер и настрить так как нужно в конкретном случае ? Кушайте свой попкорн дальше.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Sep 17 2013, 21:57
Сообщение #14


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(sasamy @ Sep 18 2013, 00:07) *
Для таких гуру как вы видимо трудно подправить драйвер и настрить так как нужно в конкретном случае ? Кушайте свой попкорн дальше.


Могу подтвердить, что он докопался до причин и устранил их.
Go to the top of the page
 
+Quote Post
DASM
сообщение Sep 18 2013, 04:06
Сообщение #15


Гуру
******

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



Полгодика помучав драйвера Линя могу подтвердить, что писаны они левой ногой абы как.В оправдание — я буду писать с нуля дольше, хуже и дороже.
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 Текстовая версия Сейчас: 20th June 2025 - 15:15
Рейтинг@Mail.ru


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