DC-SWAT Forum

Полная версия: Вапрос
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2 3 4 5 6
Цитата:что она в эмуле работает, а на дриме нет, вот это уже печально и я с этим сталкиваюсь постоянно
Ну или наоборот ситуация, когда Дримка запускает, а эмуль нет.
Ясно в-общем. А скинешь текст своего скрипта? Хочу почитать, это действительно очень удобно, надо и себе под виндой сделать такое.
Вот сокращенный и немного измененный 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. Что позволяет сразу при запуске эмулятора, запускать и образ без дополнительных телодвижений.
Что надо убрать но что?
[Изображение: 5g547nPq.jpg]
Какая у тебя версия KOS и GCC?
gcc - 3.4.4
Версия кос, хз, обновлял в сентябре, хз как определить.

Кстати, посоветуй за одно, как лучше заливать программы на дрим - через SD card adaptor, при этом постоянно вытаскивая и вставляя карточку, либо же через какой-нибудь переходник Pc->Dc serial\BBA adaptor?
Выкинь gcc старый, откуда ты его вообще взял, собери новый, скрипты для сборки лежат в kos/utils/dc-chain
Тестить конечно удобней через dctool, чем карту дергать постоянно.
Уверен что в нем проблема?
Скачай последнюю версию KOS и собери свежие GCC, после чего уже будем разбираться дальше, если не поможет.
[Изображение: xXThOqUv.png]
А cygwin ты откуда взял? Сам ставил или скачал Dev ISO R4 или какой там? Установи сам, скачай его менеджер пакетов http://cygwin.com/setup.exe
Вообще смотрю ты уже либо пытался собрать gcc (старый правда), либо это в наследство осталось от dev iso...Ты что kos залил новую поверх на старую? Лучше удали ее сначала, вместе с cygwin и установи все заново. GCC должен быть версии 4.5.2.
Сначала с 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" 
Если бы ты собирал сам компиляторы, то они у тебя бы лежали в /opt/toolchains/dc
Переменные конечно менять нужно.
Так а где они лежат у меня теперь?
Так ты собрал их или нет?
Конешно конешно, я их указал при установке нового Cygwin. это gcc серии 4.5.6 и новые бинютилс.
Мдааа Smile))
При установке Cygwin ты устанавливаешь компиляторы для x86, а не для SH4. Для SH4 их нужно собирать самому! Скрипты для этого в kos/utils/dc-chain
да ну нет. gcc вроде сразу под все архитектуры идет.
А скриптов там как таковых нет. Сначала просто скачиваются пакеты ,потом распаковываются, ну а Makefile да, ужасныйSmile
Нет, не бывает одного компилятора под все архитектуры! Каждый компилятор собирается под конкретную архитектуру и никак иначе.
Ясно, спасибо за разъяснение.
Дело в том что приведенный тобой скрипт, лежащий в папке 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. А лучше расскажи пошагово, как самому собрать кос и порты с исходников, а также компилятор
Страниц: 1 2 3 4 5 6
URL ссылки