В этом документе рассматривается процесс установки среды моделирования SimpleScalar на примере операционной системы OpenSUSE 10.1. На большинстве других дистрибутивов вы также можете с успехом использовать это руководство.
Шаг 1 Получение исходных кодов
Для минимальной установки нам потребуется четыре файла: simpleutils-990811.tar.gz, simplesim-3v0d.tgz, gcc-2.7.2.3.ss.tar.gz и simpletools-2v0.tgz. Их можно получить на официальном сайте программы (www.simplescalar.com) а также на множестве зеркал по всему миру.
После того, как вы получите все файлы их необходимо скопируйте их в один каталог и разархивируйте.
cd /ваш/каталог/установки
tar xzf simpleutils-990811.tar.gz
tar xzf simplesim-3v0d.tgz
tar xzf gcc-2.7.2.3.ss.tar.gz
tar xzf simpletools-2v0.tgz
После разархивирования simpletools-2v0.tgz в каталоге установки появится подкаталог gcc-2.6.3 он нам не понадобится, поэтому удаляем его:
rm -rf gcc-2.6.3
Шаг 2 Компиляция утилит
Перед компиляцией определим переменную окружения IDIR:
export IDIR=/ваш/каталог/установки
После этого необходимо сконфигурировать и сткомпилировать утилиты:
cd $IDIR/simpleutils-990811/
./configure --host=i386-*-linux \
--target=sslittle-na-sstrix \
--with-gnu-as \
--with-gnu-ld \
--prefix=$IDIR
make all install
Скомпилированные утилиты будут установлены в каталог $IDIR/sslitle-na-sstrix/bin
Замечание
В ходе компиляции утилит может возникнуть ошибка "../../src/ld/ldlex.l:577: error: `yy_current_buffer' undeclared (first use in this function)". Это означает, что вы используете слишком новую версию программы flex (например, 2.5.31). Для успешной сборки необходимо удалить пакет flex и вместо него установить flex-old.
Шаг 3 Компиляция simplescalar 3.0
Для компиляции simplescalar 3.0 необходимо выполнить команды:
cd $IDIR/simplesim-3.0
make config-pisa
make
make sim-tests
На этом этапе обычно никаких сложностей не возникает.
Шаг 4 Сборка кросскомпилятора gcc
На этом шаге возникает наибольшее число ошибок, поэтому следует быть внимательными. В первую очередь необходимо в глобальную переменную PATH добавить пути к утилитам, скомпилированным на шаге 2:
cd $IDIR/gcc-2.7.2.3
export PATH=$PATH:$IDIR/sslittle-na-sstrix/bin
Конфигурируем скрипты и запускаем компиляцию:
./configure --host=i386-*-linux \
--target=sslittle-na-sstrix \
--with-gnu-as \
--with-gnu-ld \
--prefix=$IDIR \
–enable-languages=c,c+
make
Замечание
В ходе сборки кросскомпилятора может появится множество ошибок:
- Ошибки в файле insn-output.c. Эти ошибки исправляются путем добавления в исходном тексте завершающих экранирующих слэшей '\' на всех многостроковых константах, на которых выдается ошибка.
- Следует заменить файл $IDIR/sslittle-na-sstrix/include/sys/cdefs.h его исправленной версией $IDIR/gcc-2.7.2.3/patched/sys/cdefs.h. Это поможет избавится от ошибке с константой __NORETURN.
- В файле $IDIR/gcc-2.7.2.3/objc/sendmsg.c в строке 35 дабавьте "#define STRUCT_VALUE 0".
- В файле protoize.c в строке 60 замените объявление "#include
" на "#include ". - Если в файле decl.c появляется ошибка "invalid lvalue in increment", то в файле $IDIR/gcc-2.7.2.3/obstack.h в строке 341 замените выражение "*((void **)__o->next_free)++=((void *)datum);\" на "*((void **)__o->next_free++)=((void *)datum);\".
Завершение процесса сборки:
make enquire
../simplesim-3.0/sim-safe ./enquire -f > float.h-cross
make install
Шаг 5 Проверка установки
На последнем этапе мы проверим правильность нашей установки. Создайте каталог $IDIR/dev и сохраните в него в файле test.c простую программу на C:
#include
void main() {
printf("Hello world\n");
}
Затем выполните следующие команды:
cd $IDIR
bin/sslittle-na-sstrix-gcc -o test dev/test.c
simplesim-3.0/sim-outorder test
Если после этого вы увидели результаты моделирования на экране, то установка прошла успешно.
1 комментарий:
Актуальная инструкция: https://github.com/sdenel/How-to-install-SimpleScalar-on-Ubuntu
Отправить комментарий