Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 07:48

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 72 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Сб июл 06, 2013 01:01 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Всем здравствуйте!

Недавно увлекся микроконтроллерами и, насытившись AVR-ами, решил попробовать что-то посеръезнее. Остановился на STM32vldiscovery (ARM Cortex-M3).
Отыскал несколько форт-систем, но подходящего ничего не нашел, так как заранее захотел себе систему отладки, как в С. Пришлось долго продираться по дебрям отладочных форматов и документации ARM. И вот результат, m3forth!
Написан на sp-forth 4.20 (в комплекте). За основу взят macroforth by David Kuhling.

Краткие характеристики:
- 32-бита, подпрограммный шитый код
- Соответствует стандарту для кросс-компиляторов, предложенному Forth, Inc. (можно почитать здесь, здесь и здесь)
- Встроенный Thumb2-ассемблер
- Оптимизатор (аналогичный таковому в SwiftX)
- Интерпретатор
- Генерация стандартных elf-файлов с отладочными символами, что позволяет отлаживать форт-программы в gdb (скриншот сессии отладки в DDD).

Пока работает только в Linux
Для установки вам понадобится:
- тулчейн (я использовал CodeSourcery). Нужен для генерации листинга и отладки. Готовый архив здесь
- st-link - для прошивки и отладки программ непосредственно на контроллере
- qEMU - эмулятор (вам нужна только его ARM-часть)
- библиотеки libelf и libdwarf.so (последняя в комплекте, для ubuntu 12.10, 13.04, ее нужно скопировать в usr/lib; если не подойдет, собрать из исходников)
- ddd (data display debugger) - визуальный отладчик

В папке examples два тестовых проекта:
- tester - стандартный форт-тестер tester.spf
Можно протестировать на эмуляторе, запускайте:
make run - попадете в терминал (эмулятор),
make debug - отладка в эмуляторе
make test - тестирование интерпретатора (эмулятор)
make flash - прошивка микроконтроллера
make debug2 - отладка непосредственно в микроконтроллере

- led - мигаем светодиодами на stm32vldiscovery
make flash - прошивка микроконтроллера
make debug2 - отладка непосредственно в микроконтроллере

Версия 0.5

Качать можно здесь или здесь (гитхаб)


Последний раз редактировалось oco Вт фев 03, 2015 01:07, всего редактировалось 9 раз(а).


За это сообщение автора oco поблагодарил: Mihail
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Сб июл 06, 2013 08:55 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Урра!
Вообще, хорошо бы выложить все необходимые компоненты одним файлом и чтобы можно было использовать из коробки.
И конечно пошаговую инструкцию по процессу заливки всего этого в железку.
Я вот несколько месяцев назад искал форт как раз под М3 - нашелся Pygmy Forth, но вот на той самой дискавери он так и не завелся. Может конечно я что-то не так делал в силу отсутствия глубоких знаний в МК. А автор ответил - "ничего не знаю".

Какие основные особенности данного форта?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Последний раз редактировалось VoidVolker Вт июл 16, 2013 22:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вс июл 07, 2013 12:28 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
VoidVolker писал(а):
Урра!
Вообще, хорошо бы выложить все необходимые компоненты одним файлом и чтобы можно было использовать из коробки.

Из коробки не получится, линуксы у всех разные.
st-link придется собирать из исходников, это просто.
DDD, qEMU, libelf ставятся обычным способом.
libdwarf.so я приложил
Тулчейн качайте здесь
VoidVolker писал(а):
И конечно пошаговую инструкцию по процессу заливки всего этого в железку.

После того, как все соберете, просто
Код:
make flash

VoidVolker писал(а):
Какие основные особенности данного форта?

Я выше вкратце указал.
В общем, пробуйте, если конкретные вопросы какие будут - обязательно отвечу


Последний раз редактировалось oco Чт авг 08, 2013 14:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 11:09 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
oco писал(а):
Из коробки не получится, линуксы у всех разные.

Сборка elf и bin файлов от системы не должна зависеть.
oco писал(а):
make run - попадете в терминал (эмулятор),
make debug - отладка в эмуляторе
...

Где просто компиляция?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 12:27 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Mihail писал(а):
oco писал(а):
Из коробки не получится, линуксы у всех разные.

Сборка elf и bin файлов от системы не должна зависеть.

Сборка elf файла зависит от libelf и libdwarf, следовательно и от системы
Mihail писал(а):
oco писал(а):
make run - попадете в терминал (эмулятор),
make debug - отладка в эмуляторе
...

Где просто компиляция?

Просто make


Последний раз редактировалось oco Пн июл 08, 2013 13:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 12:59 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
oco писал(а):
Где просто компиляция?

Просто make


У меня под UBUNTU/32
Код:
Exception #-2 at: /home/mihail/work/arm/m3forth/lib/dwarf/libdwarf.spf:5:16:
USE libdwarf.so
              ^ libdwarf.so: cannot open shared object file: No such file or dir


Для компиляции не нужен dwarf.

ЗЫ: В общем, работа большая и хорошая.
Ошибок и нерациональностей с ходу не нашел.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 13:14 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Mihail писал(а):

У меня под UBUNTU/32
Код:
Exception #-2 at: /home/mihail/work/arm/m3forth/lib/dwarf/libdwarf.spf:5:16:
USE libdwarf.so
              ^ libdwarf.so: cannot open shared object file: No such file or dir


Для компиляции не нужен dwarf.

ЗЫ: В общем, работа большая и хорошая.
Ошибок и нерациональностей с ходу не нашел.

Положите libdwarf.so (в проекте есть) в /usr/lib
В общем, сделаю генерацию отладочных символов отключаемой, тогда и elf не нужен, оставить только bin?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 15:26 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Пример мигания в Proteus y меня "не завёлся" - в свойствах контроллера был указан hex, а в проекте его не оказалось,
заменил на elf из проекта и с ним тоже не мигает.

P.S. А возможно ли пошаговое исполнение Форт кода программы в Proteus по отладочной информации в файле?
(интуиция подсказывает, что вряд ли) и какие "рецепты" по опробованию данного Форта из под Windows?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Пн июл 08, 2013 20:14 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
KPG писал(а):
Пример мигания в Proteus y меня "не завёлся" - в свойствах контроллера был указан hex, а в проекте его не оказалось,
заменил на elf из проекта и с ним тоже не мигает.

P.S. А возможно ли пошаговое исполнение Форт кода программы в Proteus по отладочной информации в файле?
(интуиция подсказывает, что вряд ли) и какие "рецепты" по опробованию данного Форта из под Windows?

В протеусе пока не работает, нужно рыть документацию на контроллеры, которые протеус может эмулировать, у меня еще только stm32f10x. Однако, пошаговая отладка в протеусе работает, проверял.
Под виндой не пробовал, нужно искать libelf, libdwarf для виндовс и немного переделывать систему.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 00:16 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
А из чего можно нагенерить файлы из папки /devices для stm32L-discovery?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 01:35 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Ilya писал(а):
А из чего можно нагенерить файлы из папки /devices для stm32L-discovery?

Из CMSIS. На сайте st.com ищем микроконтроллер, установленный на плате. В разделе Design Resources ищем standard peripherals library. Качаем, в ней ищем файл Device/ST/контроллер/include/контроллер.h. Для STM32L152RB это будет stm32l1xx.h, в нем все есть


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 02:08 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
oco писал(а):
Ilya писал(а):
А из чего можно нагенерить файлы из папки /devices для stm32L-discovery?

Из CMSIS. На сайте st.com ищем микроконтроллер, установленный на плате. В разделе Design Resources ищем standard peripherals library. Качаем, в ней ищем файл Device/ST/контроллер/include/контроллер.h. Для STM32L152RB это будет stm32l1xx.h, в нем все есть

Ок!
Имеем: вроде тестовые проекты компилятся и даже шьются в контроллер, а вот как получить доступ к терминалу (у меня LXDE)?
ЗЫ
Чутка пришлось ковырять makefile ибо при st-flash v2 - у меня автоматом пытался найти v1.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 03:29 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
Ilya писал(а):
Имеем: вроде тестовые проекты компилятся и даже шьются в контроллер, а вот как получить доступ к терминалу (у меня LXDE)?

Тут несколько вариантов (для проекта tester):
1. Моделируем в qEMU. Просто make run - получаем терминал
2. Хотим в контроллере:
2а. Подключаем контроллер к COM-порту, дописываем форт-систему. Пока не реализовано
2б. semihosting - очень удобная штука, позволяет подключиться к контроллеру через отладочный интерфейс. К сожалению, st-link не умеет его. Можно использовать openocd. make debug3 подключает терминал к stm32vldiscovery. Для вашей платы нужно подправить конфигурационный файл openocd, также в файле tester.spf раскомментировать строку
Код:
S" lib/semihosting.spf" INCLUDED
и закомментировать
Код:
S" lib/qemu-uart.spf" INCLUDED
. К сожалению, вариант очень медленный - скорость выдачи - около 1 символа в секунду :(. Возможно скорость можно увеличить, выдавая не по 1 символу, а целой строкой, думаю попробовать.

P.S. замените в makefile xfce4-terminal на ваш.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 18:22 
Не в сети

Зарегистрирован: Ср май 10, 2006 13:51
Сообщения: 202
Благодарил (а): 3 раз.
Поблагодарили: 4 раз.
KPG писал(а):
Пример мигания в Proteus y меня "не завёлся" - в свойствах контроллера был указан hex, а в проекте его не оказалось,
заменил на elf из проекта и с ним тоже не мигает.

Да, посмотрел сейчас, протеус эмулирует контроллеры LM3S3хх - в них вся периферия организована по-другому и на других адресах, программы для протеуса придется писать отдельно.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: m3forth - форт для ARM Cortex-M3
СообщениеДобавлено: Вт июл 09, 2013 21:41 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Название m3Forth несовсем удачно выбрано т.к.
с таким названием есть другой Форт для Cortex M3 LPC17xx m3Forth Cliff Biffle


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 72 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB