Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программирование в embedded linux 
:(
    Опции темы
daemonaz
Дата 28.10.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Имеется плата AT91SAM9263-EK, очень хочется научиться на нем программировать, но поскольку она построена на ARM9, естесно первая мысль это использовать ОС реал тайм или Линукс, имею опыт программмирования мелких контроллеров, там проше: написал прошивку, залил на МК и запустил, можно даже отлаживать. Покопался в интернете, не смог для себя уяснить следующее: как программировать под встриваемым Линуском? Я так понял, что Линукс устанавливается на плату, а на компе пишется программа допустим в среде Eclipse c gnu-toolchain и заливается в плату, только я не могу понять каким образом можно отлаживать на реальной железе? Или программируется конкретно на железе используя подключение COM-порта? Прошу извинить за ламерские вопросы, но очень хотелось бы понять.
PM MAIL   Вверх
bsa
Дата 28.10.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



никто тебе не запрещает делать программу, работающую без ОС. Даже есть уже готовые toolchain'ы для этого (поищи, toolchain arm9). Но поддерживать оборудование тоже придется самому. Что, имхо, не есть айс...
Лично я использовал buildroot (гугл знает о ней). Но я ее успел только настроить на базовую работу, как проект был задвинут... Писать свои программы надо на компе. а в плату загонять уже готовую прошивку (со всеми программами). Или настроить nfs и гонять файлы по сети...
PM   Вверх
tzirechnoy
Дата 28.10.2011, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: -1
Всего: 16



Короткий ответ: как хочешь, так и отлажываешься. 

По сути, это обычный компьютэр. Соответственно, все варианты, доступные для обычного компьютэра: подключить терминал к Serial-порту, и открыть там пользовательскую сэссию или вообще поднять framebuffer на его TFT-шнике, и подключить клавиатуру через USB, или через ssh по сети зайти, или вставить отладочные мигания в нужных точках на изменение состояния портов GPIO с подвешэнными LEDами на них... 

По сравнению с обычным компом только ещё вариант взять полноцэнный JTAG, и смотреть состояние процэссора и памяти через него добавляется.
PM MAIL   Вверх
daemonaz
Дата 29.10.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Спасибо!   smile 
Я так понял, что отлаживать можно на компе, к которому девелоп борд подключен через Com-порт или Ethernet, и отлаживать можно на терминальке (я имею ввиду в ОС Линукс) в режиме реального времени.
С помошью какой GUI-среды обычно программируют? EClipse или что-то дугое? Написал код, далее откомпилировав, получил бинарник, я его должен на плату скопировать и запустить чтобы отлаживать, так понял? Или среда разработки должна тоже находиться на плате? Где вообще можно почитать начинающему по шагам о программировании встраиваемых систем? Спасибо
,
PM MAIL   Вверх
tzirechnoy
Дата 30.10.2011, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: -1
Всего: 16



Цитата(daemonaz @ 29.10.2011,  13:57)
Спасибо!   smile 
С помошью какой GUI-среды обычно программируют? EClipse или что-то дугое? 


Я использую vim+zsh. С уважэнием отношусь к тем, кто использует emacs. Эклипсы, нетбинсы, мсвсы и другие нотепады считаю за тупое, тормозное и ненужное барахло. Но это тема не для этого форума, и вообще к вопросу не относится.

Цитата(daemonaz @ 29.10.2011,  13:57)

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


Как вариант. Ещё раз: обычный комп, ну, по сути сервер. Хочешь -- копируешь бинарник, хочешь -- монтируешь по nfs или ftpfs.

Цитата(daemonaz @ 29.10.2011,  13:57)

Или среда разработки должна тоже находиться на плате? 

 
Тожэ возможно. Хотя, в общем, 64Mb RAM сейчас маловато дажэ для некоторых компиляторов, да и тормозные эти процэссоры не в пример среднему десктопу.

Цитата(daemonaz @ 29.10.2011,  13:57)

Где вообще можно почитать начинающему по шагам о программировании встраиваемых систем? Спасибо
,


Ещё раз: по-настоящему особенные встраиваемые были когда у тебя было 1k RAM и десяток кб флэша. И ключевые особенности вроде необходимости наличия программатора ты ужэ на них, видимо, изучил. 64 метра и современное линукс-ядро на борту -- это вполне обычный юниксовый комп.

PM MAIL   Вверх
alexvs11
Дата 31.10.2011, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



из отладки - трассировка (аля syslog через minicom)
gdb client на плате + gdb хостовой машины

PM MAIL   Вверх
bsa
Дата 31.10.2011, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(alexvs11 @  31.10.2011,  01:12 Найти цитируемый пост)
gdb client на плате

может все-таки gdbserver?  smile 
PM   Вверх
alexvs11
Дата 31.10.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



да, конечно сервер
PM MAIL   Вверх
daemonaz
Дата 17.11.2011, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Не подскажите, на плате с МК AT91SAM9263 установлены только Dataflash и 400 Кб ПЛИсовской памяти, будут ли эти ресурсы хватать на Линукс? КАкие минимальные требования? Я начинающий, исходя из прочитанных мною интернет-источников, понял так, что требуется загрузчик uboot, linux-ядро и rootfs, и нужно дисковое пространство в виде Nandflash, вроде я так понял..  
PM MAIL   Вверх
bsa
Дата 17.11.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Скомпилированное ядро занимает пару мегабайт. Загрузчик не обязателен. Можешь сам написать. Это не сложно. Считываешь с носителя (мы использовали SD карту) ядро в определенную (не помню в какую, надо доки смотреть) область памяти (хотя это и не обязательно, достаточно просто в свободную память), формируешь строку инициализации (параметры ядра) и передаешь ядру управление. ВСЕ. Дальше ядро стартует, запускает драйверы, пытается примонтировать корневую ФС и выполнить /sbin/init. Если не удается - kernel panic.

Это сообщение отредактировал(а) bsa - 17.11.2011, 14:52
PM   Вверх
xvr
Дата 18.11.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(daemonaz @  17.11.2011,  14:36 Найти цитируемый пост)
400 Кб ПЛИсовской памяти

А это что?  smile 

Цитата(daemonaz @  17.11.2011,  14:36 Найти цитируемый пост)
будут ли эти ресурсы хватать на Линукс?

Как минимум еще нужно ОЗУ (встроенного в AT91SAM9263 на Linux не хватит)

PM MAIL   Вверх
daemonaz
Дата 19.11.2011, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Цитата(xvr @  18.11.2011,  10:51 Найти цитируемый пост)
Цитата(daemonaz @  17.11.2011,  14:36 )400 Кб ПЛИсовской памятиА это что?   


Короче, до меня кто-то развел плату с этим процессором, наверное была цель использовать как большой контроллер, но объем задач увеличился и появилась потребность в использовании РТОС, у ПЛИС есть встроенный SRAM, часть из них через EBI используется микроконтроллером как внешний sram. Заинтересовала сначала eCOS, но вот незадача - не смог найти порт под AT91sam9263, где бы его достать? Зашел на сайт ecospro, там предлагают 5 тысяч баксов и вышлют диск.. smile Поэтому заинтересовал вопрос применения Линукса, но оказалось ресурсов должно быть достаточно, а именно я так понял SDRAM 32 Мб, NANDFLASH где хранить bootstrap, ядро и rootf, ибо  SD-card не используем. Вот как это все поведет себя в режиме реального времени, пока под вопросом, ведь линукс - нереалтайм ос. Хотелось бы услышать мнения опытных.. Спасибо
PM MAIL   Вверх
xvr
Дата 19.11.2011, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(daemonaz @ 19.11.2011,  12:46)
у ПЛИС есть встроенный SRAM, часть из них через EBI используется микроконтроллером как внешний sram. 

SRAM в FPGA обычно меряется в килобитах, в 400 Kb - это капля в море 

Цитата

Заинтересовала сначала eCOS, 
Правильно заинтересовала

Цитата

но вот незадача - не смог найти порт под AT91sam9263, где бы его достать?
 Гм.

Цитата

Зашел на сайт ecospro, там предлагают 5 тысяч баксов и вышлют диск.. :
Куда то вы не туда зашли  smile  Идете сюда Потом ставите себе CVS клиента, и выкачиваете последний репозитарий (см сюда)
Под конкретно AT91sam9263 порта нет, есть под AT91sam7 и отдельно под ARM9 семейство. Придется доточить до вашей конфигурации самому  smile 

Цитата

Поэтому заинтересовал вопрос применения Линукса, но оказалось ресурсов должно быть достаточно, а именно я так понял SDRAM 32 Мб, 
Угу, и пока ее нет, об остальном говорить бесполезно  smile 

Цитата

Вот как это все поведет себя в режиме реального времени, пока под вопросом, ведь линукс - нереалтайм ос.
Плохо поведет. Хотя для Linux есть RT расширения, но они очень своеобразны. Лучше сразу брать RT OS, а не вытачивать ее из Linux'а

PM MAIL   Вверх
daemonaz
Дата 20.11.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



xvr, спасибо огромное! smile  А Вы случайно не занимались портированием eCOS на плату семейства at91sam9? может подкинете пару примерчиков конфигурации на ecos? smile 
PM MAIL   Вверх
xvr
Дата 20.11.2011, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



В последний раз я активно занимался с eCos лет 10 назад. На sam9 не портировал, и в планах не стоит (кстати, сам sam9 весьма и весьма могучая штука, на нем скорее какой нибудь КПК сделать можно). В планах стоят ARM'ы  поскромнее.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.