DC-SWAT Forum
Вапрос - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Programming (/forum-8.html)
+--- Тема: Вапрос (/thread-1543.html)

Страниц: 1 2 3 4 5 6


RE: Вапрос - Rio - 03.11.2011 16:42

Цитата:что она в эмуле работает, а на дриме нет, вот это уже печально и я с этим сталкиваюсь постоянно
Ну или наоборот ситуация, когда Дримка запускает, а эмуль нет.
Ясно в-общем. А скинешь текст своего скрипта? Хочу почитать, это действительно очень удобно, надо и себе под виндой сделать такое.


RE: Вапрос - SWAT - 04.11.2011 09:35

Вот сокращенный и немного измененный makefile для сборки DreamShell, я выкинул из него все лишнее, оставил только основу.

PHP код:
##################################
# DreamShell Makefile            #
# Created by SWAT                #
# http://www.dc-swat.ru          #
##################################

TARGET DS

OBJS 
= ./src/main.

#KOS_ROMDISK_DIR = romdisk
#EXPORTS_SYMBOL = dsf_symtab
#EXPORTS_FILE = exports.txt

KOS_CFLAGS += -I./include -L./lib

all
rm-elf $(TARGET)

include $(
KOS_BASE)/Makefile.rules

$(TARGET): $(TARGET).BIN

$(TARGET).elf: $(OBJS)
    $(
KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -$(TARGET).elf $(KOS_START) \
        $(
OBJS) $(OBJEXTRA) $(KOS_LIBS)

$(
TARGET).BIN: $(TARGET).elf
    
@echo Strip target...
    @$(
KOS_STRIP) $(TARGET).elf
    
@echo Creating binary file...
    @$(
KOS_OBJCOPY) -.stack -O binary $(TARGET).elf $(TARGET).BIN
    
@echo Scramble binary file...
    @$(
KOS_BASE)/utils/scramble/scramble $(TARGET).BIN 1ST_READ.BIN


cdi
rm-elf $(TARGET).cdi

run
: $(TARGET).cdi
    
@echo Running DreamShell...
    @
run $(KOS_BASE)/utils/emu/nullDC.exe
    
runl
: $(TARGET).cdi
    
@echo Running DreamShell with log...
    @
run $(KOS_BASE)/utils/emu/nullDC.exe emu.log

$(TARGET).cdi: $(TARGET).BIN
    
@echo Creating ISO...
    @-
rm -f cd/1ST_READ.BIN
    
@cp 1ST_READ.BIN cd/1ST_READ.BIN
    
@$(KOS_BASE)/utils/iso/mkisofs -V DreamShell -G IP.BIN -joliet -rock --.svn -$(TARGET).iso ./cd
    
@echo Convert ISO to CDI...
    @-
rm -$(TARGET).cdi
    
@$(KOS_BASE)/utils/iso/cdi4dc $(TARGET).iso $(TARGET).cdi -conv_log.txt
    
@-rm -f conv_log.txt
    
@-rm -$(TARGET).iso

clean
:
    -
rm -$(TARGET).elf $(TARGET).BIN 1ST_READ.BIN $(TARGET).cdi $(OBJS

rm-elf:
    -
rm -f 1ST_READ.BIN $(TARGET).BIN $(TARGET).elf $(TARGET).cdi 

Соответственно тебе необходимо будет положить все утилиты туда, куда за ними ходит скрипт, хотя пути конечно можешь и поменять, я их чисто логически расположил в kos/utils, там все доп. утилиты лежат.
В самом эмуляторе в настройках прописан образ по умолчанию, который создается данным makefile. Что позволяет сразу при запуске эмулятора, запускать и образ без дополнительных телодвижений.


RE: Вапрос - Rio - 05.11.2011 16:35

Что надо убрать но что?
[Изображение: 5g547nPq.jpg]


RE: Вапрос - SWAT - 05.11.2011 19:04

Какая у тебя версия KOS и GCC?


RE: Вапрос - Rio - 05.11.2011 19:52

gcc - 3.4.4
Версия кос, хз, обновлял в сентябре, хз как определить.

Кстати, посоветуй за одно, как лучше заливать программы на дрим - через SD card adaptor, при этом постоянно вытаскивая и вставляя карточку, либо же через какой-нибудь переходник Pc->Dc serial\BBA adaptor?


RE: Вапрос - SWAT - 06.11.2011 11:27

Выкинь gcc старый, откуда ты его вообще взял, собери новый, скрипты для сборки лежат в kos/utils/dc-chain
Тестить конечно удобней через dctool, чем карту дергать постоянно.


RE: Вапрос - Rio - 06.11.2011 14:57

Уверен что в нем проблема?


RE: Вапрос - SWAT - 06.11.2011 19:36

Скачай последнюю версию KOS и собери свежие GCC, после чего уже будем разбираться дальше, если не поможет.


RE: Вапрос - Rio - 07.11.2011 15:17

[Изображение: xXThOqUv.png]


RE: Вапрос - SWAT - 08.11.2011 10:09

А cygwin ты откуда взял? Сам ставил или скачал Dev ISO R4 или какой там? Установи сам, скачай его менеджер пакетов http://cygwin.com/setup.exe
Вообще смотрю ты уже либо пытался собрать gcc (старый правда), либо это в наследство осталось от dev iso...Ты что kos залил новую поверх на старую? Лучше удали ее сначала, вместе с cygwin и установи все заново. GCC должен быть версии 4.5.2.


RE: Вапрос - Rio - 12.11.2011 18:01

Сначала с DDER4 потом докачивал пакеты а-ля vim и lynx.

Мм трабла все переставил но у меня компайлеры лежат не в \usr\local\dc\sh-elf\
Нужно установить вот эти вот переменные иначе дрова
PHP код:
export KOS_CC_BASE="/usr/local/dc/sh-elf"        # DC
export KOS_CC_PREFIX="sh-elf" 



RE: Вапрос - SWAT - 13.11.2011 11:13

Если бы ты собирал сам компиляторы, то они у тебя бы лежали в /opt/toolchains/dc
Переменные конечно менять нужно.


RE: Вапрос - Rio - 15.11.2011 00:28

Так а где они лежат у меня теперь?


RE: Вапрос - SWAT - 15.11.2011 14:15

Так ты собрал их или нет?


RE: Вапрос - Rio - 16.11.2011 18:52

Конешно конешно, я их указал при установке нового Cygwin. это gcc серии 4.5.6 и новые бинютилс.


RE: Вапрос - SWAT - 17.11.2011 06:42

Мдааа Smile))
При установке Cygwin ты устанавливаешь компиляторы для x86, а не для SH4. Для SH4 их нужно собирать самому! Скрипты для этого в kos/utils/dc-chain


RE: Вапрос - Rio - 17.11.2011 20:34

да ну нет. gcc вроде сразу под все архитектуры идет.
А скриптов там как таковых нет. Сначала просто скачиваются пакеты ,потом распаковываются, ну а Makefile да, ужасныйSmile


RE: Вапрос - SWAT - 18.11.2011 08:04

Нет, не бывает одного компилятора под все архитектуры! Каждый компилятор собирается под конкретную архитектуру и никак иначе.


RE: Вапрос - Rio - 18.11.2011 23:53

Ясно, спасибо за разъяснение.


RE: Вапрос - Rio - 19.11.2011 22:03

Дело в том что приведенный тобой скрипт, лежащий в папке dc-chain (download.sh), не работает. Это связано с тем, что он через утилиту Wget пытается получить с Ftp'шника gnu версию binutils которой не существует. В скрипте указана версия binutils 2.21. Такой версии на фтп не существует, ее или убрали, или еще что, я не знаю. Вот смотри скриншот если не веришь:
http://s2.ipicture.ru/uploads/20111119/16xKIA4Z.jpg
Т.е. по правде говоря эта версия есть - но с префиксом альфа, т.е. я так понимаю это какая-то нестабильная, поэтому меня как-то праве стремает ее качать, я поставил 2.8, надеюсь это конфликтов не вызовет.
Ну или чекани сам по ссылке - ftp://ftp.gnu.org/gnu/binutils/

Ну да ладно, хрен с ними, с теми binutils, я скачал по новее, версию 2.8, надеюсь что с ней все заработает. После распаковки всего нужного и небольшой правки makefile я попытался выполнить цель build-sh4-newlib, и вот что оно мне выплюнуло.
[Изображение: q5FbFSV6.jpg]


У меня, честно говоря, по правде такое подозрения что во всем опять виноват корявый скрипт, в котором либо неправильно прописаны пути (либо никто нигде не объяснил, как их надо правильно прописать), поэтому оно и плюется. Я сейчас химичу с makefile'ом, авось путем чисто логического подбора мне удастся найти нужное решение, однако надеюсь все же на твое содействие.

P.S. Да, и что такое Newlib? Нах она нужна?
P.S.2. А лучше расскажи пошагово, как самому собрать кос и порты с исходников, а также компилятор