Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E
Запуск Hello, World! на плате
Serega
Добавлено 08.06.2011 17:24
0
Сообщение: 1
Serega
0

Пункты: 539
Регистрация: 08.06.2011
Из: Нижний Новгород
Купил плату SK-AT91SAM9XE512-S3E, на ней стоит штатный Linux.
Я ламер в ARM, на форуме ничего не нашел.
Хочу запустить на отладочной плате простейшее приложение:
main.c
#include <stdio.h>
int main( void )
{
printf("Hello, Serega!\r\n");
return 0;
}

В терминале VMware (SK-AT91SAM9XXXXX-S3E) компилирую:
/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-gcc main.c -c -o main.o
/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-gcc main.o -o hello

Закидываю, через ftp, hello на плату.
Подключаюсь через telnet к плате, набираю:
chmod 777 ./hello
./hello
Возвращается ошибка: /bin/sh: ./hello: not found
По команде ls, hello присутствует на плате.

Похоже что-то не так на этапе компиляции. Подскажите в чем моя ошибка.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.06.2011 18:20 Сообщение: 2
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-gcc main.c -c -o main.o
/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-gcc main.o -o hello


Попробуйте проще сделать:
/usr/local/cross-gcc/arm-2007q1/bin/arm-none-linux-gnueabi-gcc main.c -o hello

если не поможет - выложите где-нибуть получившийся бинарник чтобы посмотреть можно было на него.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2011 20:46 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Похоже что-то не так на этапе компиляции. Подскажите в чем моя ошибка.

10х10 раз обсуждалось..
Google->make static site:starterkit.ru
например тыц
добавьте ключ -static

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.06.2011 21:58 Сообщение: 4
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

добавьте ключ -static


Юра - это не выход, это сиюминутное решение - все подряд статически собирать не будешь.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2011 22:56 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Цитата

добавьте ключ -static


Юра - это не выход, это сиюминутное решение - все подряд статически собирать не будешь.

да, ты конечно прав

плодится бинарник 400-500 кил..
тогда надо разбираться в процессе компиляции и смотреть, как формируются зависимости от динамических библиотек. наверняка давно есть решение этого вопроса.. может нужен ключ или скрипт, результатом будет комплект библиотек для таргета
желающие могут изучить вопрос и возможные пути решения, ибо этот вопрос возникает чаще чем новый год..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 10.06.2011 10:53 Редактировалось 10.06.2011 10:55 Сообщение: 6
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Посмотрите вывод ldd для динамически собранного бинарника на плате.
Код
ldd ./hello

Прозреваю что залинковано оно не на ту версию сишной библиотеки.
Цитата
может нужен ключ или скрипт, результатом будет комплект библиотек для таргета

Банально указывается путь до библиотек таргета через ключик -L/path/to/target/std/c/libs
Можете почитать мой пост по динамической компиляции бинарников для Андроида: http://highscreen.org/forum/viewtopic.php?p=6885#p6885
Принцип примерно тот же. Только здесь, скорей всего не придётся так сильно извращаться
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 10.06.2011 11:05 Сообщение: 7
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
Посмотрел я на дефолтный rootfs, как и предполагалось там uclibc, а gcc из комплекта arm-2007q1 всё линкует на glibc из arm-2007q1/arm-none-linux-gnueabi/libc/lib.
Просто я таких проблем не имел в принципе, т.к. сразу вкатил на плату Debian с glibc.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E