DC-SWAT Forum

Полная версия: помощь чайнику
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2 3 4 5 6
Тот что находится в папке kos тот и нужно запускать...
а чем. я обычно бат файл делаю , и обычно это был например make.exe или psymake.exe , который мэй файлы понимает и выполняет команды.

или есть пример без мэйка там пишут

! Dreamcast Serial example by marcus
!
! Set up the serial interface and
! send some data
!
! To compile into SREC using GNU binutils:
!
! sh-elf-as -little -o serial.o serial.s
! sh-elf-ld -EL --oformat srec -Ttext 0x8c010000 serial.o -o serial.srec
.....
.....
....(далее асм код)

т.е его можно c помощью sh-elf-as и sh-elf-ld скомпилить и собрать? без мэка?
make должен быть в окружении cygwin, ты же все через него делать будешь, если в консоли cygwin наберешь make в директории kos, то он все сделает.
а, понял.

так а с этими отдельными командами, можно в бат файле написать? предварительно наведя (set) на нужние директории конечно.

sh-elf-as -little -o serial.o serial.s
sh-elf-ld -EL --oformat srec -Ttext 0x8c010000 serial.o -o serial.srec
вроде получилось. только ещё как сделать чтобы линкер собрал просто бинарный файл без ELF, просто код начиная с нулевого адреса.?
Ну ELF конверти в бинарник теперь:

PHP код:
sh-elf-objcopy -.stack -O binary app.elf app.bin 
отличненько... опять пропустил через дисасм, сравнил -похоже)))

позже ещё сишные попробую. будет материал для IPL)))
а как правильно скомпилить сишник.

пишу

sh-elf-gcc -c serial.c -o serial.o

выдаёт ошибку, но .o получает. но в итоге бинарник нулевой.
make должен быть в окружении cygwin, ты же все через него делать будешь, если в
консоли cygwin наберешь make в директории kos, то он все сделает.

make.exe я чтото не видел в папках цыгвина.
в консоли набираю make в директории kos (usr/local/dc/kos/kos)
пишет
MAKE Version 5.2...
Error makefile 10: Command syntax error
Error makefile 12: Command syntax error
Error makefile 16: Command syntax error
Error makefile 21: Command syntax error
...

???
В папке bin он должен быть. Но раз он ругается, то он у тебя есть Smile
Почему правда ругается не понятно, открой makefile может он покосячился или попробуй сохранить его в *nix формате (я имею ввиду переносы строк).
По поводу компилирования... ну блин читай азы GCC Smile после копилирования слинковать нужно еще, прежде чем в бинарник конвертировать объектный файл. И вообще чтобы я понял в чем дело, пиши тексты ошибок компилятора.
А вообще не занимайся извращениями, собери KOS и потом возьми за основу makefile из примеров там.
Если с мэйком беда будет и дальше, попробуй другой поставить другую версию, у меня он такой - GNU Make 3.82.90
про гцц я сократил, а так конечно там ещё стадия линковки ld , просто раз ошибка в начале то дальше будет тож ерунда.

про *nix формат я не знаю, что это.

попробую другой мэйк. может ещё раз установать.
какаято похожая беда была в других платформах (пс1/2) когда правил мэйк.
но тут я ничео не делал. порсто скачал SVN по kos
*nix формат переноса строк, у виндовс это \r\n а у никсов только \n
ясно.

не, по ходу там чтото с исполнением мэйков , я убрал места где вызывалась ошибка (ifndef), он спотыкается на конструкции for i ... тоже убираю, не понимает опцию -C (вроде переход в папку пример kos-gcc -C utils ) , и выдаёт список опций в нём нету этого "-C"
Значит пробуй другой.
странно, а для чего они так делают. в новых версиях както иначе эти команды выполняются? или версия триальная?
Да хз.
1-пробовал отдельную папочку скомпилить из проекта dcload-serial.
выдавала ошибку - не могла найти точку start.
я глянул что в обьектном файле точно не генериться.
точка start сидит в crt0.S. он копилиться с синшными флагами.
я прописал дополнительно. всё скомпилилось. не знаю насколько это верно?

2- make.exe взял из цыгвина от проекта ps2 , вроде пашет.
Ну вообще странно что не прописан старт, если добавил верный, то должно быть ок. Но вообще для проверки лучше скомпиль саму kos и потом примеры из папки examples.
старт сидит с crt0.s но в мэйк файле они все компилсять правилом
.c.o:
$(CC) $(CFLAGS) $(INCLUDE) -o $@ -c $<
тож самое для .S.o: и .s.o: хотя по идее асмовые файлы по другому компиляться
вроде компилятся, просто по началу ничё не получалось.

вот, сишные файлы не хотят компилиться , это пока не понятно

E:\SEGADC\tst_crt0>make.exe -f Makefile all
E:\SEGADC\cyg\opt\toolchains\dc\sh-elf/bin/sh-elf-gcc -O2 -ml -m4-single-only -I
../target-inc -o console-test.o -c console-test.c
sh-elf-gcc: error trying to exec '/opt/toolchains/dc/sh-elf/libexec/gcc/sh-elf/4
.5.2/cc1.exe': execv: Bad address

вроде он ищет этот cc1.exe в папке /opt/toolchains/dc/sh-elf/libexec/gcc/sh-elf/4
.5.2/cc1.exe' но реально в начале надо както добавить E:\SEGADC\cyg

через консоль цигвина который я скачал - теже ошибки.
Вообще это нужно делать через консоль cygwin все, это его пути.
Ты видимо что то упустил в настройке, ты подргужаеш environ.sh при старте cygwin?
Страниц: 1 2 3 4 5 6
URL ссылки