Forth
http://fforum.winglion.ru/

m3forth - форт для ARM Cortex-M3
http://fforum.winglion.ru/viewtopic.php?f=39&t=2952
Страница 2 из 5

Автор:  Sunforth [ Ср июл 10, 2013 22:45 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Недели две назад поиск в гугле делал и остановился на плате дискавери. Под него форт еще не искал. И вот тут как по заказу нашел форт для дисквери.
Цитата:
Из коробки не получится, линуксы у всех разные.

Еще не скачивал файлы, но предвижу много вопросов с моей стороны. Поэтому хотелось бы именно пошаговую инструкцию установки получить на той линукс системе что у Вас установлена. Потом под свою систему сам настрою( у меня установлена Fedora 17) .
Цитата:
2а. Подключаем контроллер к COM-порту, дописываем форт-систему. Пока не реализовано

а это для меня пока что проблема

Автор:  oco [ Пт июл 12, 2013 18:40 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Sunforth писал(а):
Еще не скачивал файлы, но предвижу много вопросов с моей стороны. Поэтому хотелось бы именно пошаговую инструкцию установки получить на той линукс системе что у Вас установлена. Потом под свою систему сам настрою( у меня установлена Fedora 17) .

Вам установку всех компонент описывать?

Автор:  Sunforth [ Пт июл 12, 2013 22:35 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

oco писал(а):
Sunforth писал(а):
Еще не скачивал файлы, но предвижу много вопросов с моей стороны. Поэтому хотелось бы именно пошаговую инструкцию установки получить на той линукс системе что у Вас установлена. Потом под свою систему сам настрою( у меня установлена Fedora 17) .

Вам установку всех компонент описывать?

Описывать не нужно, достаточно команды в терминале(консоли).

Автор:  diver [ Сб июл 13, 2013 15:29 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Тогда еще один дилетантский вопрос: есть шансы запустить/собрать данный форт на Линуксе, запущенном на Арме?(версия Убунты, FCC в комплекте)

Автор:  oco [ Вс июл 14, 2013 00:00 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

diver писал(а):
Тогда еще один дилетантский вопрос: есть шансы запустить/собрать данный форт на Линуксе, запущенном на Арме?(версия Убунты, FCC в комплекте)

Если в этом линуксе есть какой-нибудь форт, то можно попробовать собрать данный форт с его помощью, но так как в результате получается файл с прошивкой, запустить его не выйдет.

Автор:  oco [ Вс июл 14, 2013 00:46 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Sunforth писал(а):
Еще не скачивал файлы, но предвижу много вопросов с моей стороны. Поэтому хотелось бы именно пошаговую инструкцию установки получить на той линукс системе что у Вас установлена. Потом под свою систему сам настрою( у меня установлена Fedora 17) .

1. Хорошо, начнем с тулчейна (это GCC с утилитами, заточенный под ARM). Необязателен, если не нужна отладка. Качаем этот архив и распаковываем его в папку, у меня ~/arm. В файл ~/.bashrc дописываем строки:
Код:
if [ -d "$HOME/arm/bin" ] ; then
    PATH="$HOME/arm/bin:$PATH"
fi

затем перелогиниваемся. Теперь тулчейн доступен.
2. st-link. С его помощью будем прошивать и отлаживать наши программы. Берем здесь и распаковываем в ~/src/st-link. Собираем:
Код:
$ ./autogen.sh
$ ./configure
$ make

Если возникают ошибки, значит у вас не установлены некоторые программы, например automake и т.д. Внимательно читаем ошибки и устанавливаем нужные программы с помощью пакетного менеджера
После сборки создаем файл /etc/modprobe.d/usb-storage с таким содержимым:
Код:
options usb-storage quirks=483:3744:i

Перезагружаем модуль ядра usb-storage:
Код:
sudo modprobe -r usb-storage
sudo modprobe usb-storage

3. qEMU - эмулятор. Если хотите отладить программу не прошивая ее в контроллер. Установите пакет qemu-system-arm с зависимостями.
4. libelf - нужна для отладки и генерации elf-файлов. Установите пакет libelf1
5. libdwarf - нужна для отладки и генерации elf-файлов. Скопируйте libdwarf.so из архива с m3forth в /usr/lib. Если будут возникать ошибки (этот файл из Ubuntu 12.04), скачайте пакет с исходными текстами dwarfutils:
Код:
apt-get source dwarfutils

В папке libdwarf выполните команды
Код:
./configure --enable-shared
make
sudo make install
. Так у вас должна появиться свой libdwarf.so
6. ddd (data display debugger) - отладчик. Устанавливаем пакет ddd.
7. openocd - то же что и st-link, но умеет semihosting. Нужен, если хотите поработать в форте прямо в микроконтроллере. Качаем здесь файл openocd-0.7.0.tar.bz2 и распаковываем в любую папку, собираем и устанавливаем:
Код:
./configure
make
sudo make install

8. Качаем форт и распаковываем в любую папку. Переходим в папку examples/tester и пробуем собрать:
Код:
make -B

9. Все!

Автор:  oco [ Вс июл 14, 2013 00:48 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

P.S. Довел до ума semihosting, так что можно более-менее нормально работать на форте в микроконтроллере прямо по USB-кабелю, также добавил обработчики прерываний и переделал файлы устройств (были ошибки), ждите новую версию.

Автор:  oco [ Вт июл 16, 2013 13:19 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Версия 0.2. Критические ошибки были, качать обязательно!

Автор:  KPG [ Вт июл 16, 2013 15:56 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

oco писал(а):
Версия 0.2. Критические ошибки были, качать обязательно!

Спасибо! Закачка прошла успешно :D

P.S. Жаль, что на на форуме нет статистики по "выкачке" размещеного вложения.

Автор:  vikt [ Пт июл 19, 2013 20:03 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Возможно ли адаптировать программу для процесорра intell arm - sa1110 ?

Автор:  KPG [ Пт июл 19, 2013 20:56 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

vikt писал(а):
Возможно ли адаптировать программу для процесорра intell arm - sa1110 ?

Общий ответ - Скорее всего да, но как говорится "дьявол скрывается в мелочах" и необходимо рассматривать отличия
архитектур, железа и команд + сам процессор обычно находится в каком нибудь девайсе, а это дополнительный важный слой рассмотрения и времени это потребует неизвестное количество, но "конечное" :D

P.S. Для Strong ARM были некоторые Форт системы, в том числе вроде российские delosoft для Palm OS
Архивы должны сохраниться, но можно начать с i-neta. Современные ARM контроллеры, по производительности, наверное,
уже обошли данный процессор.

Автор:  oco [ Сб июл 20, 2013 01:49 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

vikt писал(а):
Возможно ли адаптировать программу для процесорра intell arm - sa1110 ?

Скорее всего нет. Этот форт для Cortex-M3 (архитектура ARMv7M), кодировка инструкций ассемблера другая (Thumb-2). Для вашего процессора лучше взять другой форт.

Автор:  oco [ Пт сен 13, 2013 02:00 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Версия 0.3. Исправлены ошибки в отладочной информации. Качайте, если были проблемы с отладкой

Автор:  oco [ Ср окт 30, 2013 20:49 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

Кому интересно, мой пост http://habrahabr.ru/post/199490/, в нем кратко прошелся по созданию отладочной информации.

Автор:  Mihail [ Вс ноя 03, 2013 19:13 ]
Заголовок сообщения:  Re: m3forth - форт для ARM Cortex-M3

oco писал(а):
Версия 0.3.

в паре мест у меня получше
Код:
CODE 2SWAP      ( a b c d - c d a b )
        LDMIA   DSTK!,  {R5-R7}         \ r5 = c, r6 = b, r7 = a, DSTK += 3*4
        movs    r0,     r7
        STMDB   DSTK!,  {r0,TOS, R5}
        mov     TOS,    R6              \ TOS = b
        NEXT
END-CODE

CODE 2OVER      ( a b c d -- a b c d a b )
        ldr     TREG,   [DSTK, # 8]     \ a -> treg
        STMDB   DSTK!,  {TREG, TOS}     \ d a -> steck
        ldr     TOS,   [DSTK, # 12]     \ b -> tos
        NEXT
END-CODE

TOS лучше выбрать с номером поменьше иногда для LDMIA STMDB хочется прихватить регистры с номером больше TOS.
У меня TOS - R1 , но это исторически. Мне следовало выбрать TOS побольше.
Оптимизатор лучше делать полностью на уровне машинных кодов.

Страница 2 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/