Jump to content
Форум по продукции MOXA

Recommended Posts

Мое почтение!

 

скачал, поставил тулчейн для 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

Добрый день,

так же не удалось сбилдить пример Example 2

Уточните, пожалуйста, какие были выданы сообщения при компилляции.

Link to comment

Итак, пример:

 

#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

Наблюдаю то же самое. Наличие в коде математической функции (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. Помогло

 

Действительно, порядок опций играет роль. Интересно, что в соответствии с документацией "стандартного" gcc опция -llibrary должна предшествовать файлу, который требует наличия library. По факту, получается наоборот.

 

Вообще, есть ли какая-то документация по Moxa Linux Tool-Chain? Особенно интересуют параметры вызова elf2flt и документация по функциям из библиотеки libmxio.a

Link to comment

Вынужден снова обратиться. Примеры и мои приложения собрались. Залил я их в UC7101 по фтп, chmod +x ..., запускаю, вижу всегда одно и тоже SIGSEGV, даже на примере "hello world". Почему? как же запустить?

Link to comment

Добрый день!

 

Не удалось сэмулировать Вашу проблему на примере:

#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

#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

Добрый день!

Возникла вот мысль - перевели ли Вы 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

добрый день!

bin - я действительно не делал. Пользовался плагинчиком FTP-клиент для Far им и закидывал.

сейчас попробовал со стороны контроллера забирать данные

ftp>bin

ftp>get hello

пока реакция такая же.

поиграю еще.

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...