Создать ответ 
 
Рейтинг темы:
  • Голосов: 1 - Средняя оценка: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Вапрос
Автор Сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #1
Вапрос
sh-elf-gcc -ml -Wl,-Ttext,0x8c010000 -nostartfiles -nostdlib -e _start prog.c -o prog.elf -lgcc
sh-elf-objcopy -O binary prog.elf prog.bin
scramble prog.bin 1ST_READ.BIN
(Последний раз сообщение было отредактировано 28.03.2011 в 19:43, отредактировал пользователь Rio.)
27.03.2011 20:01
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #2
RE: Вапрос
PS: убунту подойдет для девелопмента?
27.03.2011 20:28
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #3
RE: Вапрос
скачай DDEr4 и не парь себе мозг с линуксом. Поставишь все оттуда и сможешь программировать для дрима под Windows. Там есть примеры которые просто разобрать и изменитьпод свои нужды. Сборка программ делается через Makefile. После сборки появляется elf-файл (это универсальный формат для объектных и исполнимых файлов для разных ОС и устройств, в том числе и для Дрима), этот файл легко конвертировать через 1st_read.bin checker в bin и запустить на дриме или на эмуле.
28.03.2011 00:38
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #4
RE: Вапрос
Да токо оно кучу ошибок выдает.
29.03.2011 16:20
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #5
RE: Вапрос
Сплошные проблемы у тебя... Не судьба Smile

[Изображение: barbers.png]
29.03.2011 18:38
Вебсайт Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #6
RE: Вапрос
Ошибки анализируешь и смотришь что их провоцирует.
Ничего там сложного нет.
29.03.2011 21:53
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #7
RE: Вапрос
Да Rio, если ты не научишься фиксить ошибки, у тебя никогда ничего не получится Smile

[Изображение: barbers.png]
30.03.2011 06:11
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #8
RE: Вапрос
Сват, ну я же не настолько дурак)) Естессно, я фиксю их. Но после двадцатого запроса в гугл, нечто на подобии, "Kallisti Os errors" или "KOS errors list", и не находя нужного ответа, уже как-то, честно, опускаются руки))
(Последний раз сообщение было отредактировано 30.03.2011 в 16:02, отредактировал пользователь Rio.)
30.03.2011 16:01
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #9
RE: Вапрос
Хмм что то ты не то ищешь... Что у тебя за ошибки вообще?

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 30.03.2011 в 18:29, отредактировал пользователь SWAT.)
30.03.2011 18:28
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #10
RE: Вапрос
[Изображение: rdmLj6uT.jpg]
30.03.2011 18:50
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #11
RE: Вапрос
Так ты ничего не скомпилишь. Если уж нужно скомпилировать отдельный файл, то используй это:
kos-cc -o prog.elf prog.c
а вообщето заходи в папку /usr/local/dc/kos/kos/examples/dreamcast
печатай:
make
Так ты соберешь примеры. Если все правильно соберется то найди пример поменьше и попробуй переделать его. Там вроде есть что-то типа Hello world вот с него и начни.
30.03.2011 19:09
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #12
RE: Вапрос
Цитата:Так ты ничего не скомпилишь.
Почему?
Цитата:kos-cc -o prog.elf prog.c
Откуда ты узнал что компилить надо именно так?
Цитата:Там вроде есть что-то типа Hello world вот с него и начни.
Конечно. Я уже пробовал. Он не работает.
(Последний раз сообщение было отредактировано 31.03.2011 в 01:47, отредактировал пользователь Rio.)
31.03.2011 01:43
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #13
RE: Вапрос
1) Потому что sh-elf-gcc - это голый компилятор, который не знает где лежать хэдеры и либы, А kos-cc - это врепепер, которий создан специально для того чтобы упростить компиляцию. Узнать о нем можно посмотрев в файлы environ*.sh.

2) Так компилятся программы через gcc компилятор. Не уверен что собранная таким образом программа заработает на дриме, тем более что там еще нужно указывать кучу библиотек. Это я так для примера показал.

3) Если у тебя это не работает, то скорей всего ты не зашел в папки .../kos/kos и /kos/kos-ports и не ввел там make. Или же ты не выполнил команду source environ.sh находясь в папке .../kos/kos, которую нужно выполнять каждый раз при запуске Cygwin.

Если ничего из этого тебе не поможет то скинешь скриншот ошибки, которая возникает при попытке собрать hello.
31.03.2011 01:59
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #14
RE: Вапрос
Суда по ошибке, у тебя не загружен environ.sh
Его можно прописать в /etc/profile вместо строки:
Код:
cd "${HOME}"

Напиши:
Код:
cd /usr/local/dc/kos/kos
./environ.sh

После этого при запуске консоли cygwin, ты будешь находится в нужной папке с выставленными параметрами для компиляциями.
Заходишь в директорию examples/dreamcast/hello и пишешь make. Если собралось, можешь дальше экспериментировать с этим примером.

Да и кстати, если ты все устанавливал сам, а не с готового установщика, то файл environ.sh нужно взять из doc и сконфигурять в нем пути. Но судя по скриншоту он у тебя уже есть.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 31.03.2011 в 08:12, отредактировал пользователь SWAT.)
31.03.2011 08:06
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #15
RE: Вапрос
PHP код:
# base-files version 4.0-6
# /etc/profile: executed by the command interpreter for login shells.

# The latest version as installed by the Cygwin Setup program can
# always be found at /etc/defaults/etc/profile

# Modifying /etc/profile directly will prevent
# setup from updating it.

# System-wide profile file

# Some resources...
# Customizing Your Shell: http://www.dsl.org/cookbook/cookbook_5.html#SEC69
# Consistent BackSpace and Delete Configuration:
#   http://www.ibb.net/~anne/keyboard.html
# The Linux Documentation Project: http://www.tldp.org/
# The Linux Cookbook: http://www.tldp.org/LDP/linuxcookbook/html/

# Setup some default paths. Note that this order will allow user installed
# software to override 'system' software.
# Modifying these default path settings can be done in different ways.
# To learn more about startup files, refer to your shell's man page.
PATH="/usr/local/bin:/usr/bin:${PATH}"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:${INFOPATH}"

# Set the user id
USER="$(id -un)"

# TMP and TEMP are defined in the Windows environment. Leaving
# them set to the default Windows temporary directory or unset
# can have unexpected consequences. 
unset TMP TEMP
TMP
="/tmp"
TEMP="/tmp"

# Define default printer
p='/proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows/Device'
if [ -"${p}] ; then
  read 
-r PRINTER "${p}
  
PRINTER=${PRINTER%%,*}
fi
unset p

# Default to removing the write permission for group and other
#  (files normally created with mode 777 become 755; files created with
#  mode 666 become 644)
umask 022

# Here is how HOME is set, in order of priority, when starting from Windows
#  1) From existing HOME in the Windows environment, translated to a Posix path
#  2) from /etc/passwd, if there is an entry with a non empty directory field
#  3) from HOMEDRIVE/HOMEPATH
#  4) / (root)
# If the home directory doesn't exist, create it.
if [ ! -"${HOME}]; then
  
if mkdir -"${HOME}"then
    
echo "Copying skeleton files."
    
echo "These files are for the users to personalise their cygwin experience."
    
echo
    echo 
"They will never be overwritten nor automatically updated."
    
echo
    
cd /etc/skel || echo "WARNING: Failed attempt to cd into /etc/skel!"
    
/usr/bin/find . -type f | while read f; do
      
fDest=${f#.}
      
if [ ! -"${HOME}${fDest}-! -"${HOME}${fDest}]; then
        
/usr/bin/install ---"${f}" "${HOME}/${fDest}"
      
fi
    done
    
unset fDest
  
else
    echo 
"${HOME} could not be created."
    
{ [ -"${TEMP}] && HOME="${TEMP}"; } ||
    { [ -
"${TMP}] && HOME="${TMP}"; } ||
    { [ -
/tmp ] && HOME=/tmp; } ||
    
HOME=/
    echo 
"Setting HOME to ${HOME}."
  
fi
fi

# Make sure we start in home unless invoked by CHERE
if [ ! -"${CHERE_INVOKING}]; then
  
unset CHERE_INVOKING
else
  
cd "${HOME}|| echo "WARNING: Failed attempt to cd into ${HOME}!"
fi

# Shell dependent settings
profile_d ()
{
  
saved_LC_COLLATE=${LC_COLLATE}
  
LC_COLLATE=C
  
for file in /etc/profile.d/*.$1; do
    [ -e "${file}" ] && . "${file}"
  done
  LC_COLLATE=${saved_LC_COLLATE}
  unset saved_LC_COLLATE
}

if [ ! "x${BASH_VERSION}" = "x"  ]; then
  HOSTNAME=$(/usr/bin/hostname)
  profile_d sh
  [ -f "/etc/bash.bashrc" ] && . "/etc/bash.bashrc"
elif [ ! "x${KSH_VERSION}" = "x" ]; then
  typeset -l HOSTNAME=$(/usr/bin/hostname)
  profile_d sh
  PS1=$(print '\033]0;${PWD}\n\033[32m${USER}@${HOSTNAME} \033[33m${PWD/${HOME}/~}\033[0m\n$ ')
elif [ ! "x${ZSH_VERSION}" = "x" ]; then
  HOSTNAME=$(/usr/bin/hostname)
  profile_d zsh
  PS1='(%n@%m)[%h] %~ %% '
elif [ ! "x${POSH_VERSION}" = "x" ]; then
  HOSTNAME=$(/usr/bin/hostname)
  PS1="$ "
else 
  HOSTNAME=$(/usr/bin/hostname) 
  profile_d sh
  PS1="$ "
fi

export PATH MANPATH INFOPATH USER TMP TEMP PRINTER HOSTNAME PS1 

# Check to see if mkpasswd/mkgroup needs to be run try and cut down the emails
#   about this on the lists!
#
# The following are the conditions under which the group name special cases 
#   will appear (where uid and gid are the effective user and group ids
#   for the current user, and pgsid is the primary group associated with the
#   SID for the current user):
#       mkpasswd:
#         gid is not in /etc/group
#         uid is not in /etc/passwd
#       passwd/group_GID_clash(<gid>/<pgsid>):
#         gid is not in /etc/group
#         uid is in /etc/passwd
#         pgsid is in /etc/group (and does not match gid)
#       mkgroup:
#         gid is not in /etc/group
#         uid is in /etc/passwd
#         pgsid is not in /etc/group
#
# If this message keeps appearing and you are sure it's a mistake (ie, don't
#   email about it!), comment out the test below.
case "$(id -ng)" in
mkpasswd )
  echo "Your group is currently \"mkpasswd\".  This indicates that your"
  echo "gid is not in /etc/group and your uid is not in /etc/passwd."
  echo
  echo "The /etc/passwd (and possibly /etc/group) files should be rebuilt."
  echo "See the man pages for mkpasswd and mkgroup then, for example, run"
  echo
  echo "mkpasswd -l [-d] > /etc/passwd"
  echo "mkgroup  -l [-d] > /etc/group"
  echo
  echo "Note that the -d switch is necessary for domain users."
  ;;
passwd/group_GID_clash* )
  echo "Your group is currently \"passwd/group_GID_clash(gid/pgsid)\".  This"
  echo "indicates that your gid is not in /etc/group, but the pgsid (primary "
  echo "group associated with your SID) is in /etc/group."
  echo
  echo "The /etc/passwd (and possibly /etc/group) files should be rebuilt."
  echo "See the man pages for mkpasswd and mkgroup then, for example, run"
  echo
  echo "mkpasswd -l [-d] > /etc/passwd"
  echo "mkgroup  -l [-d] > /etc/group"
  echo
  echo "Note that the -d switch is necessary for domain users."
  ;;
mkgroup )
  echo "Your group is currently \"mkgroup\".  This indicates that neither"
  echo "your gid nor your pgsid (primary group associated with your SID)"
  echo "is in /etc/group."
  echo
  echo "The /etc/group (and possibly /etc/passwd) files should be rebuilt."
  echo "See the man pages for mkpasswd and mkgroup then, for example, run"
  echo
  echo "mkpasswd -l [-d] > /etc/passwd"
  echo "mkgroup  -l [-d] > /etc/group"
  echo
  echo "Note that the -d switch is necessary for domain users."
  ;;
esac


cd /usr/local/dc/kos/kos
source environ.sh 
вот полный текст моего файла. судя по всему заданная строка в нем уже есть.
при попытке вызвать из консоли команду make пишет ругательное "command not found".
01.04.2011 17:09
Найти все сообщения Цитировать это сообщение
sc_maxim Не на форуме
Пользователь
**

Сообщений: 94
Зарегистрирован: 27.11.2010
Рейтинг: 1
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #16
RE: Вапрос
значит ты установил Cygwin не полностью. Ты устанавливал с DDEr4?
Если да то попробуй все переустановить заново, удавлив предварительно все его папки. И нужно щелкнуть при выборе компонентов Cygwin по All - Default, чтобы оно изменилось на All - Install, иначе опять не будет команды make.
01.04.2011 20:01
Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #17
RE: Вапрос
Вот еще такой вопрос. Откомпайлил я hello world. В папке, соответсвенно, появилось несколько файлов, в том числе и файл hello.elf огромного (просто таки ужасающего) размера - аж целых 998 Кбайт. Что не мало, согласитесь.
Итак, что мне надо дальше с этим файлом делать? На попытки выполнить из командной строки утилиты elf2bin и scramble интерпретатор отвечает что команды не найдены.
02.04.2011 12:53
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #18
RE: Вапрос
Ну конечно он их не нашел, потому что их там нет.

Замени в Makefile строки:

PHP код:
$(TARGET): $(OBJS)
    
kos-cc -$(TARGET) $(OBJS

На эти:

PHP код:
$(TARGET): $(OBJS)
    $(
KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -$(TARGET) $(KOS_START) $(OBJS) $(OBJEXTRA) $(KOS_LIBS)
    $(
KOS_STRIP) $(TARGET)
    $(
KOS_OBJCOPY) -.stack -O binary $(TARGETunscrambled.bin
    
$(KOS_BASE)/utils/scramble/scramble unscrambled.bin 1ST_READ.BIN 

Если у тебя нет утилиты utils/scramble/scramble то закинь туда ее.
Размера файла пугаться не стоит, в нем есть куча ненужно инфы, которая потом удалится с помощью KOS_STRIP. Да и при конвертации в бинарник, он еще немного уменьшится.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 02.04.2011 в 13:13, отредактировал пользователь SWAT.)
02.04.2011 13:03
Вебсайт Найти все сообщения Цитировать это сообщение
Rio Не на форуме
Продвинутый
***

Сообщений: 371
Зарегистрирован: 04.04.2009
Рейтинг: 2
Сказал спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщ.
Сообщение: #19
RE: Вапрос
Не понял. Еще разочек пожалуйста. Что делать с hello.elf.
02.04.2011 13:04
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #20
RE: Вапрос
Тебе ничего не придется с ним больше делать, когда ты внесешь изменения в Makefile как я сказал.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 02.04.2011 в 13:15, отредактировал пользователь SWAT.)
02.04.2011 13:15
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)