Компилятор для MIPS архитектуры
Модератор: Модераторы
Компилятор для MIPS архитектуры
Привет,
Не подскажите, существует ли FPC кросс-компилятор для MIPS-архитектуры? В частности интересует программирование процессоров на подобии Broadcom BCM94704 (роутеры серии asus Wl500gP), Infineon PSB7200 (бывш TNEDT7200A) - adsl модемы...
В sourceforge нашел вроде как порт FPC для MIPS, но он соответственно и запускается только на живом MIPS или через QEMU. На самом роутере или модеме девелопить я считаю совсем уж не гигиенично, насчет QEMU пока не пробовал... Высшем же благом было-бы использовать кросс-компилятор Win -> MIPS. Подскажите, может быть существует такое?
Пробовал на абум собрать MIPS версию виндовым FPC, но сыплет ессно ошибками.
Заранее спасибо..
Не подскажите, существует ли FPC кросс-компилятор для MIPS-архитектуры? В частности интересует программирование процессоров на подобии Broadcom BCM94704 (роутеры серии asus Wl500gP), Infineon PSB7200 (бывш TNEDT7200A) - adsl модемы...
В sourceforge нашел вроде как порт FPC для MIPS, но он соответственно и запускается только на живом MIPS или через QEMU. На самом роутере или модеме девелопить я считаю совсем уж не гигиенично, насчет QEMU пока не пробовал... Высшем же благом было-бы использовать кросс-компилятор Win -> MIPS. Подскажите, может быть существует такое?
Пробовал на абум собрать MIPS версию виндовым FPC, но сыплет ессно ошибками.
Заранее спасибо..
Почитайте в Wiki правда процесс описан очень скудно.
p.s. Данный проект давно не развивается...
p.s. Данный проект давно не развивается...
Спасибо за быстрый ответ.
WIKI читал конечно, да. Пробовал собрать, как там описано (описано действительно скудно).
e:\fpc\2.4.0 - сам вин-компилятор
e:\fpc\fpcbuild-2.4.0 - исходники компилятора.
Подредактировал bat-файл:
При запуске выдает:
Попробовал fpcmake -Tmipsel-linux, но говорит что такого не знает.
Посмотрел Makefile'ы, а там даже намека на таргет mipsel-linux нету. Причем я качал исходники именно 2.4.0 и взял еще на всякий случай из SVN глянул - тоже в мейкфайлах отсутствует такой таргет.
Выходит без вариантов? Или все-таки что-то не так делаю?
Спасибо.
WIKI читал конечно, да. Пробовал собрать, как там описано (описано действительно скудно).
e:\fpc\2.4.0 - сам вин-компилятор
e:\fpc\fpcbuild-2.4.0 - исходники компилятора.
Подредактировал bat-файл:
Код: Выделить всё
cd E:\FPC\fpcbuild-2.4.0\
PATH=e:\fpc\2.4.0\bin\i386-win32;E:\FPC\fpcbuild-2.4.0\fpcsrc\compiler\arm;E:\FPC\fpcbuild-2.4.0\fpcsrc\rtl\arm
make cycle CPU_TARGET=mipsel OS_TARGET=linux
pause
При запуске выдает:
Код: Выделить всё
E:\FPC\fpcbuild-2.4.0>make cycle CPU_TARGET=mipsel OS_TARGET=linux
makefile:199: *** The Makefile doesn't support target mipsel-linux, please run fpcmake first. Stop.
Попробовал fpcmake -Tmipsel-linux, но говорит что такого не знает.
Посмотрел Makefile'ы, а там даже намека на таргет mipsel-linux нету. Причем я качал исходники именно 2.4.0 и взял еще на всякий случай из SVN глянул - тоже в мейкфайлах отсутствует такой таргет.
Выходит без вариантов? Или все-таки что-то не так делаю?
Спасибо.
Нужно начать со сборки GNU tools для кросс компиляции из win в Mips.
и только после этого переходить в кросскомпиляции компилятора.
и только после этого переходить в кросскомпиляции компилятора.
скалогрыз писал(а):Нужно начать со сборки GNU tools для кросс компиляции из win в Mips.
и только после этого переходить в кросскомпиляции компилятора.
Мммм. А можно по-подробнее? Не совсем понятно что имеется в виду под GNU tools. Например в папки с компилятором \bin\ лежат программы make, as, ar, ld, strip и прочие. Не они? И не совсем понятно, чем мне все-таки поможет GNU Tools, когда выше я говорил, что в файле Makefile физически нету TARGET = "mips-linux" ?
Я бы советовал вам использовать для данных (и не только) контроллеров именно те компиляторы, которые даёт сам производитель 
Добавлено спустя 1 минуту 27 секунд:
Тем белее выбранные вами контроллеры очень специфичны...
Добавлено спустя 1 минуту 27 секунд:
Тем белее выбранные вами контроллеры очень специфичны...
-
Павел Ишенин
- постоялец
- Сообщения: 475
- Зарегистрирован: 24.03.2007 09:16:52
В fpc есть поддержка mips, но только в trunk.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
апну тему. Есть кто-нибудь успешно написавший приложение для *wrt прошивок на MIPS'овские роутеры?
И снова MIPS.
fpc 2.7.1 - собрался.
Lazarus 1.3 - обрабатывает компиляцию.
Прграмка крайне простая:
Бинарный файл 32 создается кросскомпилятором, но не запускается. Выдает странную ошибку:
Куда дальше рыть, - понятия уже не имею, у кого-то, что-то есть положительное?
fpc 2.7.1 - собрался.
Lazarus 1.3 - обрабатывает компиляцию.
Прграмка крайне простая:
Код: Выделить всё
program test_mips;
begin
writeln('Hello mips!!!');
end.
Бинарный файл 32 создается кросскомпилятором, но не запускается. Выдает странную ошибку:
Код: Выделить всё
root@OpenWrt:/etc# ./test_mips
./test_mips: line 1: syntax error: unexpected "("
root@OpenWrt:/etc#
Куда дальше рыть, - понятия уже не имею, у кого-то, что-то есть положительное?
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Такая странная ошибка говорит о том, что файл собран для не той архитектуры (openwrt пытается исполнить его как скрипт).
Посмотри, что выдает команда "file" для твоего бинарника и для любого бинарника с целевой системы.
Возможно, нужно собирать для mipsel-linux вместо mips-linux или наоборот.
Посмотри, что выдает команда "file" для твоего бинарника и для любого бинарника с целевой системы.
Возможно, нужно собирать для mipsel-linux вместо mips-linux или наоборот.
Sergei I. Gorelkin писал(а):Такая странная ошибка говорит о том, что файл собран для не той архитектуры (openwrt пытается исполнить его как скрипт).
Посмотри, что выдает команда "file" для твоего бинарника и для любого бинарника с целевой системы.
Возможно, нужно собирать для mipsel-linux вместо mips-linux или наоборот.
Спасибо за внимание.
Вот родной файл:
mc: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), corrupted section header size
А это собранный FPC:
test_mips: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, stripped
Хмм, почему же он делает LSB ? Видимо в этом причина.
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
LSB делает потому, что собран для mipsel-linux. Нужно пересобрать все, включая компилятор, для mips-linux.
Sergei I. Gorelkin писал(а):LSB делает потому, что собран для mipsel-linux. Нужно пересобрать все, включая компилятор, для mips-linux.
Да, так и есть
test_mips: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, stripped
Теперь запускается, но программа висит и никак не хочет приветствовать writeln('Hello mips!!!');
Рою дальше.
Sergei I. Gorelkin, большое спасибо!!!
