OberonCore
https://forum.oberoncore.ru/

Компилятор Oberon → ARMv6-M, ARMv7E-M
https://forum.oberoncore.ru/viewtopic.php?f=137&t=5232
Страница 1 из 9

Автор:  Alexander Shiryaev [ Пятница, 12 Сентябрь, 2014 22:01 ]
Заголовок сообщения:  Компилятор Oberon → ARMv6-M, ARMv7E-M

Да.. хорошо, что так всё просто получилось.

Я вот написал компилятор Oberon-07 → ARMv6-M (Cortex-M0...)

Написал и для ARMv7-M, но он мне пока не очень нравится, буду переписывать.


Модератор: отделено от viewtopic.php?f=90&t=5127

Автор:  Info21 [ Пятница, 12 Сентябрь, 2014 22:12 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Да, все такие штуки надо бы по возможности публиковать.

Автор:  Пётр Кушнир [ Суббота, 13 Сентябрь, 2014 12:23 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Alexander Shiryaev писал(а):
Да.. хорошо, что так всё просто получилось.

Я вот написал компилятор Oberon-07 → ARMv6-M (Cortex-M0...)

Написал и для ARMv7-M, но он мне пока не очень нравится, буду переписывать.

Круто. А как раскрутка/отладка происходила на начальных этапах?

Автор:  Alexander Shiryaev [ Суббота, 13 Сентябрь, 2014 19:03 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Это кросс-компилятор.

Сначала переписал часть кодогенератора (ORG -> O7ARMv6MG) и дизассемблер (ORTool -> O7ARMv6MTool), чтобы можно было компилировать простенькие программы и проверять, что компилятор работает правильно. Потом написал часть компоновщика (Modules.Load -> O7ARMv6MLinker), чтобы можно было проверять их работоспособность на реальном железе. Потом постепенно дописал, чего не хватает до полноценной реализации.

Потом реализовал системные модули -- настройку генератора тактовых импульсов, прерывания, информационный обмен между компьютером и микроконтроллером.
Потом портировал Kernel -- заработало динамическое выделение памяти и сборщик мусора (хоть это для микроконтроллеров и не нужно, но всё равно работает).

Автор:  Alexander Shiryaev [ Суббота, 20 Сентябрь, 2014 01:15 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Российские микроконтроллеры (ядро ARMv6-M, ARMv7-M)

Автор:  Alexander Shiryaev [ Понедельник, 29 Сентябрь, 2014 02:51 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Дописал компилятор для ARMv7[E]-M.

Эмулятора FPU нет. Операции с числами IEEE 754 (если они нужны) работают только с микроконтроллерами, в которых есть FPU (Cortex-M4F).

Операции DIV, MOD для ARMv6-M реализованы программно, т. к. там нет аппаратного деления.

Проверял с микроконтроллерами NXP LPC1114FBD48/302 (Cortex-M0) и STMicroelectronics STM32F411RE (Cortex-M4F).
Поддержку любых других добавить не сложно. Если кому нужно — сделаю.

Автор:  Иван Кузьмицкий [ Понедельник, 29 Сентябрь, 2014 08:40 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

У меня LPC2103, если его можно будет программировать на BlackBox, сразу же потащу в школу.

Автор:  Alexander Shiryaev [ Понедельник, 29 Сентябрь, 2014 09:42 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Это ARMv4T, там другой набор команд :(

Проще всего, наверное, купить эту плату (830 руб.)


Отладочные платы starterkit.ru (Cortex-M4):

Автор:  Иван Кузьмицкий [ Понедельник, 29 Сентябрь, 2014 11:17 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Как у них всё непросто!

Автор:  Alexander Shiryaev [ Понедельник, 29 Сентябрь, 2014 11:32 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Ну да :)

А ещё недавно появились Cortex-M7. Хорошо, что у них тоже набор команд ARMv7E-M.

Автор:  Иван Кузьмицкий [ Понедельник, 29 Сентябрь, 2014 11:35 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

А сколько по времени занимает написание компилятора? Я к тому, что раз тут такой зоопарк, то стоит задуматься о капиталовложениях в виде затраченных усилий.

Автор:  Alexander Shiryaev [ Понедельник, 29 Сентябрь, 2014 11:42 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

А вообще компилятор не сложно переписать для любого 32-разрядного RISC

Для этого надо переписать кодогенератор (ORG..), написать компоновщик (linker) и системные модули (настройку генератора тактовых импульсов (PLL..), обработку TRAP-ов, UART...)

Сколько по времени займёт - не знаю, у кого как. У меня 2-3 недели, если не торопиться.
Я писать компилятор для ARMv4T не хочу :) (потому что нет аппаратного FPU)

Автор:  Иван Кузьмицкий [ Понедельник, 29 Сентябрь, 2014 12:21 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Спасибо, буду думать.

Автор:  Kubanych [ Среда, 01 Октябрь, 2014 07:35 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Alexander Shiryaev писал(а):
Проверял с микроконтроллерами NXP LPC1114FBD48/302 (Cortex-M0) и STMicroelectronics STM32F411RE (Cortex-M4F).
Поддержку любых других добавить не сложно. Если кому нужно — сделаю.


Замечательно.
А с LPC1343 и STM32F3,STM32F407VGT6 работать будет? У меня как раз есть от них тестовые платы для нашей школы Оберон-робототехники.

Автор:  А.П. [ Среда, 01 Октябрь, 2014 15:50 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Добрый день, Александр!

В последнее время появились довольно мощные и недорогие одноплатники (Raspberry Pi, Cubieboard2, Cubieboard8?), которые можно использовать для управления учебными робоконструкциями, в том числе с распознаванием видео в реальном времени. Очень хочется приспособить BlackBox или Astrobe (Oberon-2014) на подобные одноплатники. Вы не рассматривали возможность приложить к этому Ваши руки и знания?
У меня есть несколько толковых магистрантов-программистов (1-й курс магистратуры) на факультете информатики, кого в принципе можно привлечь в помощники. Я бы поспособствовал.
Как Вам такое предложение?

С уважением, А.Попков

Автор:  Alexander Shiryaev [ Среда, 01 Октябрь, 2014 16:41 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Kubanych писал(а):
А с LPC1343 и STM32F3,STM32F407VGT6 работать будет?


Будет, только надо написать системные модули для этих микроконтроллеров и добавить их поддержку в компоновщик (поддержка LPC1343 уже добавлена).

Автор:  Alexander Shiryaev [ Среда, 01 Октябрь, 2014 21:49 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

А.П. писал(а):
Добрый день, Александр!

В последнее время появились довольно мощные и недорогие одноплатники (Raspberry Pi, Cubieboard2, Cubieboard8?), которые можно использовать для управления учебными робоконструкциями, в том числе с распознаванием видео в реальном времени. Очень хочется приспособить BlackBox или Astrobe (Oberon-2014) на подобные одноплатники. Вы не рассматривали возможность приложить к этому Ваши руки и знания?
У меня есть несколько толковых магистрантов-программистов (1-й курс магистратуры) на факультете информатики, кого в принципе можно привлечь в помощники. Я бы поспособствовал.
Как Вам такое предложение?

С уважением, А.Попков


Здравствуйте.

Для таких систем вижу целесообразным переписывание компилятора BlackBox для ARMv7-A, чтобы BlackBox можно было там запускать в Linux.
Если бы кто-нибудь это сделал, то было бы хорошо :)

По обработке видео -- можно ли использовать для этого FPGA, как вы считаете?
А для робототехники разве не достаточно микроконтроллеров? Что там за алгоритмы такие сложные, что необходимо использовать такие системы (кроме задач видеообработки)?

Автор:  Роман М. [ Среда, 01 Октябрь, 2014 23:33 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Для обработки видео в реальном времени используют сигнальные микропроцессоры - DSP. Они как раз для таких задач и созданы.

Раз уж речь пошла о переносе компилятора под разные платформы, то почему не доработать Ofront, транслятор в C? Или же его форк, Vishap Oberon Compiler (voc)
Цитата:
Vishap Oberon Compiler (voc) is a free (GPLv3) non-commercial oberon-2 compiler.

Platforms:
voc produces x86_64, x86, ppc, armv{4-7} binaries and works on those platforms.
On x86_64 it supports 64bit LONGINT types.
By using currently stable C backend voc is easily ported to any platform for which C compiler exists.

Автор:  Иван Денисов [ Четверг, 02 Октябрь, 2014 05:21 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Роман, ну во первых, он GPLv3, а это для меня не годится, например, так как хотелось бы делать прошивки для коммерческих приборов в будущем, а GPLv3 запрещает коммерческое использование. Александр пока не озвучил лицензию, кстати.

Во вторых, интуитивно, транслятор всегда хуже, чем компилятор и разрабатывать его (а тем более адаптировать чей-то чужой) не так весело :)

Автор:  Kubanych [ Четверг, 02 Октябрь, 2014 07:44 ]
Заголовок сообщения:  Re: Po - Project Oberon @ BlackBox

Alexander Shiryaev писал(а):
(поддержка LPC1343 уже добавлена).


Для того, что уже готово, было бы неплохо общими силами подготовить нечто вроде пособия "BlackBox для микроконтроллеров" с объяснениями примеров, чтобы заинтересовать молодежь

Страница 1 из 9 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/