Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Запуск на плате первой программы
AlexeyEvt
Добавлено 19.06.2011 02:09
0
Сообщение: 1
AlexeyEvt
4

Пункты: 728
Регистрация: 18.05.2011
Всем доброго дня!

Есть в наличие плата. SK-AT91SAM9260-SIM508 и экранчик SK-WF43BTIBED0-Plug.
Linux в плате загружается, выводиться сообщение как на экранчике, так и терминале в Window. Все нормально.
Написал свою программку на С, а ля "Hello Word".
Т.к. в Linux и тем более встроенном, я новичок, никак не могу понять, как мне мою программку, скомпилированную например в Keil, на основном компе, загрузить в плату и заставить там выполниться.
Спуститься к концу Подняться к началу
Персональная информация
Hermes
Добавлено 19.06.2011 03:17 Редактировалось 19.06.2011 03:22 Сообщение: 2
Hermes
5

Пункты: 3383
Регистрация: 02.04.2010
что бы ваша программка заработала на плате, её нужно скомпилировать кросс-компилятором. Кросс-компилятором собирается ядро linux. Собственно с его помощью можно скомпилировать вашу программку. Путь к кросс-компилятору можно посмотреть в файле который запускает сборку ядра.
Почитайте на форуме. Вопрос уже поднимался и не раз
Спуститься к концу Подняться к началу
Персональная информация
AlexeyEvt
Добавлено 19.06.2011 10:52 Сообщение: 3
AlexeyEvt
4

Пункты: 728
Регистрация: 18.05.2011
Цитата
что бы ваша программка заработала на плате, её нужно скомпилировать кросс-компилятором.

За ответ спасибо, но я чуть о другом. как получить на компе скомпилированный файл я понимаю. Вопрос как этот файл передать на плату и заставить там выполниться. Я подозреваю что в терминальной программе нужно ввести какую-то команду ...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 19.06.2011 10:58 Сообщение: 4
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Т.к. в Linux и тем более встроенном, я новичок, никак не могу понять, как мне мою программку, скомпилированную например в Keil, на основном компе, загрузить в плату и заставить там выполниться.

а форум почитать? а поучиться работе в линуксе?
в общем случае свой бинарник можно скопировать на внешний носитель - SD карточка или USB-флешдиск и подмонтировать к киту. Можно также передать по сети - типа ftpget или tftpget
в клиническом случае на ББ бинарник положить в каталог рутовой для кита и перешить рутовую в нанде..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 20.06.2011 16:58 Сообщение: 5
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
И вроде в Keil для Linux нельзя программу скомпилировать. Вам нужен "большой" Linux - хотя бы под виртуальной машиной
Спуститься к концу Подняться к началу
Персональная информация
alexanib
Добавлено 20.06.2011 21:55 Сообщение: 6
alexanib
1

Пункты: 2343
Регистрация: 27.02.2011
А у меня такой вопрос - как можно скомпилировать программу прямо на плате ? Как я понимаю нужеен компилятор GNU С (GCC). Есть какие нибудь примеры по этой теме ?
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 22.06.2011 08:42 Сообщение: 7
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Можно и на плате - но это ИМХО мазохизм. Проще кросс-компилятором на большом.
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 22.06.2011 14:54 Редактировалось 22.06.2011 14:55 Сообщение: 8
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
alexanib, можно, я так делал ради интереса, но как выше уже сказали - это извращение.
И вообще, следует понимать одну простую вещь:
Linux - он и в африке Linux. Это полноценная операционная система, ни чем не хуже по возможностям той же винды (а даже ещё и мощнее). И возможности соответствующие, всё что может Linux на x86, тоже может и ARM. Единственное на что тут стоит обращать внимание, так это ограниченные ресурсы. Никто не мешает взгромоздить на плату полноценный Debian и с помощью apt-get поставить туда gcc. Особые извращенцы могут поставить qemu, включить в ядре поддержку bninfmt, взять бинарную сборку wine для i386, и вообще запускать "нативно" на ARM-е виндовые приложения. Под "нативно" подразумевается что будет достаточно выполнить любой exe файл. А есть ещё ARM-овый порт Wine, а там есть такая вещь как wine-gcc, позволяет собрать виндовые Сишные исходники в нативный исполняемый файл полинкованый на winelib.
Так всё это я к чему? А ктому, что возможности системы ограничены только вашим воображением и аппаратными ресурсами.
Спуститься к концу Подняться к началу
Персональная информация
AlexeyEvt
Добавлено 08.07.2011 20:15 Сообщение: 9
AlexeyEvt
4

Пункты: 728
Регистрация: 18.05.2011
Цитата
а форум почитать? а поучиться работе в линуксе?

Возможно я вас удивлю, но именно этим я и занимаюсь. :-)
Т.к. нормальной книжки по работе со встроенным Линуксом я не нашел, пытаюсь логику работы с настольным линуксом перенести на работу с платой.
Пошел по предложенному Вами варианту:
Цитата
можно скопировать на внешний носитель - SD карточка или USB-флешдиск и подмонтировать к киту

Вот такая проблема возникла. Насколько я понял, когда вставляешь карту памяти в плату, то в Линуксе в папке /mnt/ должно появиться новое устройство. Т.к. имени устройства я не знаю, то пытаюсь посмотреть что вообще лежит в этой папке с помощью команд:
cd /mnt
ls
но почему-то ls только очищает экран в программе-терминала и ничего не выводит. в чем ошибка, что не так делаю?
Спуститься к концу Подняться к началу
Персональная информация
alexanib
Добавлено 09.07.2011 13:37 Сообщение: 10
alexanib
1

Пункты: 2343
Регистрация: 27.02.2011
Во-первых разумнее делать так
Код

ls /mnt

Dj вторых туда лишь монитруется флешка. Для её монтирования можно набрать
Код
mount /dev/mmcblk0p1 /mnt

где mmcblk0 - имя вашей карточки в системе, а p1 - первый раздел. Имя можно узнать анализом команды
Код
ls /dev

Сначала наберите это без карточки, потом подключите карту и опять набурите эте команду. Должно быть видно новое устройство.
А когда уже подмонтируете карточку, можете в /mnt смотреть её содержимое.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux