29 сентября 2012 г.

Подготовка инструментов для разработки для RL78 под GNU/Linux

Выбора компиляторов под GNU/Linux для RL78 нет, есть только связка binutils+newlib+gcc. Для гентушников есть исходники :), а все остальные могут установить уже готовые сборки с сайта www.kpitgnutools.com. Потребуется регистрация, но она бесплатная. Ну а дальше:
$ yum install gnurl78_v12.02_elf-1-1.i386.rpm
или (если у вас Debian или его последователь, например Ubuntu):
$ alien -i gnurl78_v12.02_elf-1-1.i386.rpm

Компилятор и всё сопутствующее установлено, осталось дело за малым - добавить путь к компилятору в переменную окружения PATH, что бы каждый раз не указывать полный путь. Для этого надо создать файл (с именем gnurl78.sh, например) в папке /etc/profile.d/ со следующим содержанием:
GNURL78_PATH=/usr/share/gnurl78_v12.02_elf-1/bin
if [ -d $GNURL78_PATH ]; then
    export PATH=$GNURL78_PATH:$PATH
fi

С компилятором разобрались. Следующая на очереди -- утилита для программирования чипов. Для rl78flash готовых сборок нет, поэтому придётся собирать из исходников:
$ git clone git://github.com/msalov/rl78flash.git
$ cd ./rl78flash
$ make
установить программу можно просто -- скопировав исполняемый файл в нужное место:
$ cp ./rl78flash /usr/local/bin

Проверить работоспособность компилятора и симулятора можно классической программой:
#include <stdio.h>
void main (void)
{
    printf("Hello, World!\n");
}

Надо её собрать с магическим ключём -msim и запустить:
$ rl78-elf-gcc -o hello.elf ./hello.c -msim
$ rl78-elf-run ./hello.elf
Hello, World!
$

Дальше -- писать, компилировать, программировать и проверять. Аппаратные отладчики не работают под Linux к сожалению, так что остаётся только симулятор и всевозможные отладочные светодиоды, последовательные порты и прочие способы вывода вкупе с внешним логическим анализатором или последовательным портом.

Пример программы можно найти в папке:
/usr/share/gnurl78_v12.02_elf-1/samples/RL78G13/app1/ 

А если потребуется шаблон для скрипта линкера -- его можно найти рядом:
/usr/share/gnurl78_v12.02_elf-1/rl78-elf/lib/rl78.ld

Happy coding ;)

Комментариев нет:

Отправить комментарий