Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
компиляция программ и их перенос на плату
Valentinus
Добавлено 20.07.2010 22:30 Редактировалось 20.07.2010 22:37 Сообщение: 11
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
после запуска команды make получил следующее:
[root@armmaker my1]# make
Makefile:11: *** пропущен разделитель. Останов.
в чем может быть проблема?


там есть одна тонкость - команды должны быть предварены двойной табуляцией.
если в mc makefile открыть по F4, то отступы красным видно, например перед "$(CC) $(LDFLAGS) .....".
а когда сюда на форум копируешь , отступы не видны :)
Если отступ не делать, или вместо двух Tab нажать один, то будет ругаться "пропущен разделитель".

насчет tftp
в последних образах базибокс собран уже с ним.

загрузка командой
tftp -g -r myprog 192.168.0.2

где myprog- файл программы
192.168.0.2 - адрес виртуалки, где в /tftpboot лежит ваша прога


PS я когда кит изучал, читая форумы копировал нужное/интересное в вордовский файлик. почитайте, для новичка може все в кучу, но может многое станет понятней
http://www.starterkit.ru/html/uploads/forum/forum-vnCRVVlJrj-887.zip
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 20.07.2010 22:51 Редактировалось 20.07.2010 23:09 Сообщение: 12
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Цитата
Если отступ не делать, или вместо двух Tab нажать один, то будет ругаться "пропущен разделитель".

ясно...

итак: простейшая программа Hello World! скомпилирована без всяких мэйкфайлов компилятором arm-none-linux-gnueabi-gcc, получили бинарник my1.out

так как на плате не работал tftp, покопались в конфиге BusyBox, включили то что нужно, пересобрали его и файловую систему. Затем перекомпилили ядро и перезалили на плату. Итак tftp работает.

Далее загрузили по tftp наш бинарник my1.out из папки /tftpboot и попытались запустить, но получаем такую ошибку:
Код
[@SK-MAT91SAM9 /]$ls
my1.out etc lost+found proc sys usr
bin lib mnt root tmp var
dev linuxrc modules sbin usb
[@SK-MAT91SAM9 /]$./my1.out
-ash: ./a.out: not found
[@SK-MAT91SAM9 /]$

все делали опираясь на инструкцию http://starterkit.ru/html/index.php?name=forum&op=view&id=8110&num=2#8231
вопрос почему не удается запустить файл? права доступа выставляли все по максимуму

и вопрос номер два: после перезагрузки платы наш my1.out пропадает (как будто он лежал только в ОЗУ), следовательно вопрос, что делать чтобы сохранить прогу на плате?
Цитата
PS я когда кит изучал, читая форумы копировал нужное/интересное в вордовский файлик. почитайте, для новичка може все в кучу, но может многое станет понятней
]http://www.starterkit.ru/html/uploads/forum/forum-vnCRVVlJrj-887.zip

спасибо большое, обязательно почитаю
Цитата
загрузка командой
tftp -g -r myprog 192.168.0.2

мы делали также, только вместо -r писали -l , не знаю почему:)) хотя файл перекинулся, это принципиальная разница?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 22:59 Сообщение: 13
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
что-то-там.out - это файл для промежуточного вывода
если компилировали что-то-там.с, то ищите рядом файл что-то-там без расширения - если посмотреть его из MC кнопкой F3, то будет написано в начале ARM архитектура, статический и тыпы..

вот его и тащите на плату

чтобы файл не пропадал скопируйте его на внешний носитель типа SD/MMC или USB Flash. иначе он принимается программой tftp и попадает в ОЗУ, откуда при выключение благополучно пропадает..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 20.07.2010 23:04 Сообщение: 14
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
Цитата
вот его и тащите на плату

ок, завтра поищем :)

Цитата
чтобы файл не пропадал скопируйте его на внешний носитель типа SD/MMC или USB Flash.

мде... мы вроде пока не планировали закупать флешку, но похоже придется ((
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 23:15 Редактировалось 20.07.2010 23:16 Сообщение: 15
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
на стандартной плате кита при отсутствие внешних накопителей существует единственный вариант - Serial Flash или Nand, на чипе любого из них можно организовать долговременное энергонезависимое хранилище файлов..
но на первое время лучше купить наидешевейшую SD или USB флешку. ибо по незнанию вполне можно "запилить" (испортить) набортные флеши..

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

Пункты: 36
Регистрация: 08.07.2010
дело в том, что на нашей плате только один разъем USB 2.0 и он используется для питания платы от ПК, следовательно нет возможности подключить USB Flash, поэтому придется покупать SD
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 20.07.2010 23:42 Сообщение: 17
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
плохая идея - питать плату от порта. я бы посоветовал нормальный блок питания
а USB использовать по назначению
вместо покупки SD можно обойтись бюджетно гоняя файлы по сети Ethernet..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 21.07.2010 09:10 Редактировалось 21.07.2010 21:27 Сообщение: 18
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
итак: простейшая программа Hello World! скомпилирована без всяких мэйкфайлов компилятором arm-none-linux-gnueabi-gcc, получили бинарник my1.out

так как на плате не работал tftp, покопались в конфиге BusyBox, включили то что нужно, пересобрали его и файловую систему. Затем перекомпилили ядро и перезалили на плату. Итак tftp работает.

Далее загрузили по tftp наш бинарник my1.out из папки /tftpboot и попытались запустить, но получаем такую ошибку:
все делали опираясь на инструкцию http://starterkit.ru/html/index.php?name=forum&op=view&id=8110&num=2#8231
вопрос почему не удается запустить файл? права доступа выставляли все по максимуму

и вопрос номер два: после перезагрузки платы наш my1.out пропадает (как будто он лежал только в ОЗУ), следовательно вопрос, что делать чтобы сохранить прогу на плате?



вы брали не тот файл. исполняемый файл - без расширения (в отличии от винды), его и нужно переносить на кит и запускать.

Во вложении к посту выкладываю простейший пример (hello world).
Attachment file: uploads/forum/forum-hZeirxawA3-887.zip



в файле make проверьте пути к исходникам ядра (там еще остались кое-какие лишние вам опции, но они вам не помешают)
компилируете командой make (все-таки удобней, чем вручную компилятор вызывать)
потом копируете hello в /tftpboot
дальше в консоли кита:
Цитата
# tftp -g -r hello 192.168.0.2
# chmod +x hello
# ./hello
Hello ARM-world!



после загрузки файловая система распаковывается в ОЗУ, и чтобы вы в ней не делали, после перезагрузки ничего не сохранится.
чтобы программу сохранить, перед ее загрузкой перейдите на NAND, котрая при загрузке монтируется как раздел диска (cd /mnt/nand), если она есть на вашем ките, или на MMC(SD).
Спуститься к концу Подняться к началу
Персональная информация
Novichok
Добавлено 21.07.2010 10:23 Редактировалось 21.07.2010 11:25 Сообщение: 19
Novichok
5

Пункты: 36
Регистрация: 08.07.2010
благодарствую:)
т.е. как я понимаю этот мэйкфайл можно использовать и для написания других приложений на этом же языке?
да, кстати, не подскажете, в какой среде писать проги? может есть специальная среда под ARM чтобы писать на С++ ? потому что я смотрю, в вашей проге какие то странные библиотеки :)

ага, опять траблы... взял ваш Мэйк, изменил путь до библиотек на свой (но причина не в этом точно) и получили такую ошибку при сборке:
make: *** Нет правила для сборки цели 'hello.o', требуемой для 'hello'. Останов.

версия make 3.80
такое подозрение, что все дело в make...
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 21.07.2010 11:17 Сообщение: 20
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
благодарствую:)
т.е. как я понимаю этот мэйкфайл можно использовать и для написания других приложений на этом же языке?
да, кстати, не подскажете, в какой среде писать проги? может есть специальная среда под ARM чтобы писать на С++ ? потому что я смотрю, в вашей проге какие то странные библиотеки :)


конечно можно.
да, там в мейкфайле и сишнике немного "лишнего" осталось. Это я экспериментировал, и забыл убрать когда вам делал hello world.

насчет среды - посмотрите эту тему:
http://starterkit.ru/html/index.php?name=forum&op=view&id=7832&num=1
тут описание как использовать среду разработки (IDE) Eclipse
я правда сам еще по этому описанию ее не ставил.

можно даже MS VisualStudio использовать - в том файле ссылку на который давал вчера есть мессадж про настройку (там исходных скриптов нет, но их уж на форуме сами найдете, по тексту мессаджа)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux