Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > [arm] Помогите разобраться с


Автор: OlegIT 7.7.2010, 11:30
Нужно сделать проект с библиотекой ffmpeg-0.5.1 для ARM.
Поставил Cyrwin. Прописал пути к компилятору arm-kgp-eabi-xxx (keil у меня ещё стоит). Сделал файл t.sh такого содержания
./configure --enable-cross-compile  --cc=arm-kgp-eabi-gcc --enable-bzlib --enable-libopencore-amrwb --enable-libamr-wb

Запускаю его в Cyrwin, получаю ответ
arm-kgp-eabi-gcc is unable to create an executable file.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.

Пробовал с разными компиляторами, результат один. Что-то я тут не понимаю. Какой  compiler ему(ей) нужно? Какие аргументы правильные? Честно говоря, в это теме я слаб.

И ещё. У меня так и не получилось соединить Eclipse с arm-kgp. Может с CodeBlocks проще? И вообще с ARM я первый раз работаю.

Помогите с первым шагом.

Автор: Alexeis 7.7.2010, 11:38
OlegIT, WinCE?
Многие компиляторы имеют bat файлы для настройки компилятора командной строки.

Автор: OlegIT 7.7.2010, 13:38
Цитата

OlegIT, WinCE?
Многие компиляторы имеют bat файлы для настройки компилятора командной строки.

Не знаю пока нужна там какая-либо ОС. Но уж точно не WinCE.

В этой библиотеке есть файл INSTALL. С таким текстом
Цитата

1) Type './configure' to create the configuration. A list of configure
options is printed by running 'configure --help'.

'configure' can be launched from a directory different from the FFmpeg
sources to build the objects out of tree. To do this, use an absolute
path when launching 'configure', e.g. '/ffmpegdir/ffmpeg/configure'.

2) Then type 'make' to build FFmpeg. GNU Make 3.81 or later is required.

3) Type 'make install' to install all binaries and libraries you built.


Как я понял, configure обрабатывается шелом, т.е. Cyrwin.

Результат выполнения configure –help в прилагаемом файле.

Автор: Alexeis 7.7.2010, 13:48
Цитата(OlegIT @  7.7.2010,  12:38 Найти цитируемый пост)
Не знаю пока нужна там какая-либо ОС. Но уж точно не WinCE.

  От выбор ОС зависит выбор компилятора. Как вы себе представляете, что вам помогут выбрать правильные настройки абстрактного компилятора. Если предварительно это компилятор gcc, то следует отфутболить эту тему к линукойдам. Они лучше посоветуют как его настроить.

Автор: OlegIT 7.7.2010, 15:02
У меня платформа ARM (512кб максимум)!!! Какая там ОС. RunTime там есть, но и только. Ни каких Win, Linux быть там не может.
Примечание. В этой библиотеке есть код для ARM.

Автор: Alexeis 7.7.2010, 15:21
OlegIT, тогда по всей видимости это микроконтроллер или сигнальный процессор. 

Автор: OlegIT 7.7.2010, 20:05
Да, именно микроконтроллер ARM, от Atmel, NXP или ещё от кого.
Компиляторы или Keil или arm-kgp.. Может ещё какой бесплатный найду. Сейчас хоть на каком-нибудь разобраться что и как делать нужно. Новичок я в этих вопросах.

Автор: xvr 8.7.2010, 10:20
Похоже у вас gcc не работает. Запустите с командной строки cygwin'а
Код

arm-kgp-eabi-gcc -v
посмотрите, что скажет

Автор: smalcom 9.7.2010, 00:08
Цитата

Include the log file "config.err"

И?

Цитата

У меня платформа ARM (512кб максимум)!!!

Не надо орать. ОС там может быть. В том что ты не понимаешь ни что такое ARM, ни что такое ОС никто кроме тебя не виноват.

Цитата

Компиляторы или Keil или arm-kgp

И еще их целая куча. Keil совсем не бесплатен.

Цитата

Новичок я в этих вопросах. 

Ну так и начинать надо с начала, а не с кросскомпиляции. Как будешь заливать ffmpeg на контроллер? Как воспроизводить/конвертить? Начни с хеловорда, вобщем.

Автор: OlegIT 9.7.2010, 08:57
arm-kgp-eabi-ld –v
arm-kgp-eabi-gcc –v
arm-kgp-eabi-gdb –v

Выдают свои версии. Cerwin их видит.

Автор: xvr 9.7.2010, 09:13
Цитата(OlegIT @  9.7.2010,  08:57 Найти цитируемый пост)
Выдают свои версии. Cerwin их видит.
Тогда сделайте тестовый проект и попробуйте откомпилить:
Файл test.c
Код

int main()
{
 return 0;
}

И запустите
Код

arm-kgp-eabi-gcc test.c


Добавлено через 6 минут и 13 секунд
Еще - попробуйте вместо --cc=arm-kgp-eabi-gcc в configure подать --cross-prefix=arm-kgp-eabi-

Автор: OlegIT 9.7.2010, 12:33
Цитата

И запустите

1:    arm-kgp-eabi-gcc test.c


Результат работы - бинарный файл a.out

Цитата

Еще - попробуйте вместо --cc=arm-kgp-eabi-gcc в configure подать --cross-prefix=arm-kgp-eabi- 

Текст файла t.sh
./configure  --cross-prefix=arm-kgp-eabi-
Результат тот же.
------------------------------------
NOTE: Object files are built at the place where configure is launched.
arm-kgp-eabi-gcc is unable to create an executable file.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.


В приложении config.err 

Автор: xvr 9.7.2010, 23:20
Судя по config.err оно не смогло создать файл в /tmp. Попробуйте из bash'а набрать
Код

echo Test >/tmp/test.txt
ls -l /tmp
cat /tmp/test.txt


Добавлено через 1 минуту и 24 секунды
Еще наберите mount, и напишите, что он сказал

Автор: OlegIT 12.7.2010, 10:26
$ ./configure
At the moment vhooks don't work on Cygwin or MinGW static builds.
Patches welcome.

install prefix            /usr/local
source path               /cygdrive/d/R/TMP/ffmpeg-0.5.1
C compiler                gcc
………………………………………
В процессе работы ./configure директория C:\cygwin\tmp\ имеет такое содержание
ffmpeg-conf-28359-1988-27975.c
ffmpeg-conf-30268-1988-12622.exe
ffmpeg-conf-21405-1988-17404.o
ffmpeg-conf-30958-1988-8388.S
ffmpeg-conf-15071-1988-29647.ver


Содержание файла ffmpeg-conf-28359-1988-27975.c
void foo(void){ __asm__ volatile(".align 3"); }
Содержание файла ffmpeg-conf-30958-1988-8388.S
pabsw xmm0, xmm0
Содержание файла ffmpeg-conf-15071-1988-29647.ver
X{};
После того как обработка закончилась в директории C:\cygwin\tmp\ остался только один файл ffmpeg-conf-15071-1988-29647.ver



/////////////////////////
$ echo Test >/tmp/test.txt
Oleg_IT@olegit /cygdrive/d/R/TMP/ffmpeg-0.5.1
$ ls -l /tmp
total 4
-rw-r--r-- 1 Oleg_IT Отсутствует 5 2010-07-12 11:03 ffmpeg-conf-11184-3932-5519.
ver
-rw-r--r-- 1 Oleg_IT Отсутствует 5 2010-07-12 10:56 ffmpeg-conf-14341-3488-24268
.ver
-rw-r--r-- 1 Oleg_IT Отсутствует 5 2010-07-12 10:58 ffmpeg-conf-23177-2848-30009
.ver
-rw-r--r-- 1 Oleg_IT Отсутствует 5 2010-07-12 11:08 test.txt

Oleg_IT@olegit /cygdrive/d/R/TMP/ffmpeg-0.5.1
$ cat /tmp/test.txt
Test

/////////////////////////
$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
F: on /cygdrive/f type vfat (binary,posix=0,user,noumount,auto)
G: on /cygdrive/g type vfat (binary,posix=0,user,noumount,auto)



Автор: xvr 12.7.2010, 18:31
У вас проблема с несоответствием путей в cygwin'е и самом arm-kgp-eabi-gcc. У cygwin'а свое дерево (которое строится через его mount), а arm-kgp-eabi-gcc использует родные пути Windows
Вам нужно их свести  smile Как минимум диру /tmp из cygwin'а

В корне диска, откуда вы запускаете configure (например D) сделайте папку \tmp а в cygwin'е сделайте mount \tmp D:/tmp



Автор: OlegIT 11.3.2011, 16:11
Возобновил работу над темой

Работаю с ARM в Keil
При запуске конфигуратора даёт ошибку
Must specify target arch and OS when cross-compiling

Командная строка конфигуратора
./configure --arch=arm --cpu=am1808 --cc=C:\Keil\UV4\Uv4.exe --enable-cross-compile

Архитектуру я задал, а с OS очень бы не хотелось связываться. Как всё-таки правильно сконфигурить библиотеку? 
Хорошо бы иметь только Сишный код, не привязанный к конкретной архитектуре.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)