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/ |