|
Переносимость на embedded Linux, Насколько переносим код для embedded Linux? |
|
|
|
Sep 17 2013, 07:03
|
Участник

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

|
Доброго времени суток всем! Сейчас выпускается много плат на микроконтроллерах с поддержкой того или иного дистрибутива Linux. Насколько переносим код, например, для Linux Ubuntu при переходе к другой плате на таком же дистрибутиве? Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet? Для более специфических интерфейсов, таких как I2C, SPI, PWM? Как изменится ситуация, если придется переходить на другой дистрибутив?
|
|
|
|
|
Sep 17 2013, 07:24
|

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

|
Дистрибутив не причем (если и будут какие-то телодвижения, то они будут крайне минимальными). Придется пересобирать ядро GNU/Linux и может быть подправлять платформ файл ядра (файл в котором описано как и какая периферия подключена к вашему МК). Цитата Существуют ли в Linux (и Ubuntu в частности) стандартные драйверы для LCD, GPIO, UART, USB, Ethernet? Для более специфических интерфейсов, таких как I2C, SPI, PWM? Ну а как-же, только это не в дистрибутиве а в ядре
|
|
|
|
|
Sep 17 2013, 12:41
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 17 2013, 16:42
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(A. Fig Lee @ Sep 17 2013, 16:29)  представьте себе поле. Большое. И там везде грабли, грабли, грабли.. До самого горизонта.
Гдето так. "где-то так" бывает у всех новичков. Вы очевидно не исключение. Цитата ПыСы. Доходило до того, что сборка того же софта более новым gcc не работала. Казалось бы, да? А вот он новую секцию добавлял, а тулзы его непонимали и кернел неправильно компонавали.. Отсюда вывод - не собирйте чем попало.
|
|
|
|
|
Sep 17 2013, 18:12
|

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

|
Цитата(_Pasha @ Sep 17 2013, 13:16)  Причем тутта линкер-скрипт к "более новому" GCC ?  Вово.. И я так думал. Могу покопать конкретно "при чем". За пыво.  Просто так лень. Линкер брал секции и из них собирал, и была там секция, которую он непонимал, поэтому на эту секцию отводил чтото порядка несколько сотен мегабайт. Не помню подробностей. Можно ковырнуть современные тулзы. Секция чтото вроде build-id, введена по моему после 2.95. Там, кажется, и CodeSourcery свои инициалы сейчас держит. В общем, мне пришлось компилить objcopy с дебаг информацией, смотрел откуда он такой размер берет. То ли аддресс там был нулевой, не сросталось чтото. Ну что? Хайнекен?
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Sep 17 2013, 18:15
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Sep 17 2013, 20:02
|

Знающий
   
Группа: Участник
Сообщений: 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 на которые контроллер не сконфигурировать. "Вон оно как, Михалыч" (с).. Достал попкорн. Сейчас "гуру" будут "новичков учить"
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|