leu Posted April 15, 2011 Share Posted April 15, 2011 Мое почтение! скачал, поставил тулчейн для UC-7101. Примеры hello, pthread, vfork - собираются, но стоит в hello допустим добавить #include <math.h> ... double x; x = sin(0.8); и ошибка. так же не удалось сбилдить пример Example 2 с использованием lmoxalib из UC-7101_7110_7112_SW_Users_Manual_v8.pdf стр. 5-6 прошу обновить toolchain для этой платформы. благодарю. Link to comment
Komantsev Posted April 15, 2011 Share Posted April 15, 2011 Добрый день, так же не удалось сбилдить пример Example 2 Уточните, пожалуйста, какие были выданы сообщения при компилляции. Link to comment
leu Posted April 18, 2011 Author Share Posted April 18, 2011 Итак, пример: #include <stdio.h> #include <math.h> int main(void) { double d; d = sin(0.7); printf("hello world!\n"); return 0; } : In function `main': : undefined reference to `sin' /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.text+0xc4): In function `__do_global_ctors': : undefined reference to `__CTOR_LIST__' /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.data+0x0): undefined reference to `__DTOR_LIST__' collect2: ld returned 1 exit status Link to comment
leu Posted April 19, 2011 Author Share Posted April 19, 2011 и еще, пробовал: пробовал на debian 2.6.18-4-k7 и на fedora10 2.6.27.5-117.fc10 сообщения наблюдаю одинаковые Link to comment
MuadDib Posted April 21, 2011 Share Posted April 21, 2011 Наблюдаю то же самое. Наличие в коде математической функции (sin) вызывает ошибку линковки. Пробовал подключить библиотеку libm.a следующими способами: 1. -L/usr/local/arm-elf/lib -lm 2. /usr/local/arm-elf/lib/libm.a Оба варианта ничего не изменяют: линковка не производится... Вывод nm указывает на наличие функции sin в библиотеке. Link to comment
Komantsev Posted April 21, 2011 Share Posted April 21, 2011 Попробуйте компилировать вот так: arm-elf-gcc –Wl,-elf2flt –o a.out main.c -lm Link to comment
leu Posted April 21, 2011 Author Share Posted April 21, 2011 Да, при таком порядке аргументов сработало. Спасибо Link to comment
MuadDib Posted April 21, 2011 Share Posted April 21, 2011 Спасибо, Komantsev. Помогло Действительно, порядок опций играет роль. Интересно, что в соответствии с документацией "стандартного" gcc опция -llibrary должна предшествовать файлу, который требует наличия library. По факту, получается наоборот. Вообще, есть ли какая-то документация по Moxa Linux Tool-Chain? Особенно интересуют параметры вызова elf2flt и документация по функциям из библиотеки libmxio.a Link to comment
leu Posted April 21, 2011 Author Share Posted April 21, 2011 Вынужден снова обратиться. Примеры и мои приложения собрались. Залил я их в UC7101 по фтп, chmod +x ..., запускаю, вижу всегда одно и тоже SIGSEGV, даже на примере "hello world". Почему? как же запустить? Link to comment
Komantsev Posted April 25, 2011 Share Posted April 25, 2011 Добрый день! Не удалось сэмулировать Вашу проблему на примере: #include <stdio.h> #include <math.h> int main(void) { double d; d = sin(0.7); printf("hello world!\n"); return 0; } Не могли бы Вы указать: 1) Какая версия Firmware установлена на UC 2) Как компилируете программу. Link to comment
leu Posted April 25, 2011 Author Share Posted April 25, 2011 #uname -a #Linux moxa.com.tw 2.6.19-uc1MoXaRt #1 Fri May 28 10:18:59 CST 2010 armv4tl ARM #kversion #The UC-7101 kernel version is 1.1 Вот сам пример из examples_2.0.zip hello.c #include <stdio.h> int main(void) { printf("hello world!\n"); return 0; } Makefile srcdir = . LDFLAGS = -Wl,-elf2flt LIBS = CFLAGS = # Change these if necessary CC = arm-elf-gcc CPP = arm-elf-gcc -E all: hello hello: $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(LIBS) $@.c clean: rm -f $(OBJS) hello core *.gdb Напомню, что все собирается, но при запуске на UC7101 - ошибка SIGSEGV Link to comment
Komantsev Posted April 27, 2011 Share Posted April 27, 2011 Добрый день! Возникла вот мысль - перевели ли Вы FTP-соединение в бинарный формат при передаче файла в UC? Не забыли строчку bin? Например: #ftp 192.168.3.127 ftp> cd /home ftp> bin ftp> put ./hello ftp> quit #telnet 192.168.3.127 Link to comment
leu Posted April 27, 2011 Author Share Posted April 27, 2011 добрый день! bin - я действительно не делал. Пользовался плагинчиком FTP-клиент для Far им и закидывал. сейчас попробовал со стороны контроллера забирать данные ftp>bin ftp>get hello пока реакция такая же. поиграю еще. Link to comment
leu Posted April 27, 2011 Author Share Posted April 27, 2011 Сейчас запаковал tar, потом передал, распаковал - работает. Для меня это выход. Благодарю. Link to comment
Komantsev Posted April 27, 2011 Share Posted April 27, 2011 Отлично! :-) Хотя странно, что FTP коверкает данные. Обычно в режиме BIN всё работает "на ура". Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now