OberonCore https://forum.oberoncore.ru/ |
|
Компилятор Oberon → ARMv6-M, ARMv7E-M https://forum.oberoncore.ru/viewtopic.php?f=137&t=5232 |
Страница 7 из 9 |
Автор: | Kemet [ Среда, 04 Май, 2016 09:34 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Kubanych писал(а): 8 битный ардуиновый Оберон сделать насколько сложно? Да принципиальных проблем нет.Есть, например вариант Компонетного Паскаля для 8-ми битных MCS 51, Оберон07 для 16-ти битного DCPU-16. У нас есть Активный Оберон для PDP-11. Конечно, есть некоторая специфика, но главная проблема - кто и зачем будет писать компилятор( или back end ) для avr8. |
Автор: | Kubanych [ Среда, 04 Май, 2016 12:41 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Kemet писал(а): Да принципиальных проблем нет... главная проблема - кто и зачем будет писать компилятор( или back end ) для avr8. Это хорошо. Один раз я ковырялся в структурах данных, созданных фронтэндом блэкбокса, извлекал оттуда нужную информацию. Значит, в целом 8 битный компилятор есть, надо поработать над бэкэндом. |
Автор: | Иван Денисов [ Четверг, 08 Сентябрь, 2016 22:36 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
На базе такой же платы с STM32F103 и компилятора O7 запустил OLED дисплей по протоколу I2С. |
Автор: | Artyemov [ Пятница, 09 Сентябрь, 2016 11:40 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Аппаратный I2C или программно реализовано? Ну и "чтоб два раза не вставать": ARMv4TP.odc для архитектуры 7TDMI компилятор? |
Автор: | Иван Денисов [ Пятница, 09 Сентябрь, 2016 12:37 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Artyemov писал(а): Аппаратный I2C или программно реализовано? На сколько я могу судить, I2C - аппаратный. |
Автор: | Artyemov [ Пятница, 09 Сентябрь, 2016 14:14 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
"На сколько я могу судить…" - от чего такая неуверенность? |
Автор: | Иван Денисов [ Пятница, 09 Сентябрь, 2016 19:29 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Artyemov писал(а): "На сколько я могу судить…" - от чего такая неуверенность? Модуль для I2C за авторством Александра Ширяева, и судя по тому, что в МК есть аппаратная поддержка I2C и по тому, что я вижу в коде, я могу сделать такой вывод. Но окончательно и наверняка ответит только он. |
Автор: | Artyemov [ Понедельник, 09 Январь, 2017 14:21 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Намедни я решил применить Oberon к SAM3S1 атмеловскому и начал с описания периферии. Результат компиляции на картинке: Вложение: O7_quasiErrors.png [ 10.11 КБ | Просмотров: 9564 ] Оказывается, что буква "_" (ASCII-код 5FH) за букву не считается, в соответствии с Oberon07.Report.pdf, и значит в идентификаторах применяться не может. Это ещё поля в регистрах не описывались Следующий момент: почему "_" в позиции 90 вызвала ошибку (остальные ошибки - индуцированные), а за 4 позиции до того - нет? КП (по Cntl-K) этот модуль компилирует без ошибок (это к тому, что синтаксических ошибок нет). Предложение Александру Ширяеву: "причислить "_" к лику св…" - ввести в список букв (letter = "A" | "B" | … | "Z" | "a" | "b" | … | "z" | "_".), и если есть контакт с Никлаусом Вальтеровичем, то узаконить " "_" - буква". "_" в идентификаторах хорошо с читаемостью кода помогает: XXXXX_xxxxxx Xxxx_XXXX _XXXX_Xxxxxx - визувально. |
Автор: | Oleg N. Cher [ Понедельник, 09 Январь, 2017 14:58 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Хотя компилятором пока пользоваться не собираюсь, но присоединяюсь к просьбе. Поддержка "_" в идентах - это была первая причина моей работы над Ofront, из-за которой я вообще этим занялся. Грубо попрал стандарт языка, но зато стало сильно легче работать с WinAPI. |
Автор: | Artyemov [ Понедельник, 09 Январь, 2017 15:48 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
В микроконтроллерах "потроха" достаточно вычурными аббревиатурами обзываются и разбирать как поделить идентификатор на составные не самая простая задача. "_" вообще в стандарте не фигурирует ни как буква, ни как спецсимвол, ни как что-то вообще. И в самом тексте "_" нет |
Автор: | Alexander Shiryaev [ Среда, 11 Январь, 2017 21:52 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Добавил поддержку SAM3S в компоновщик. |
Автор: | Artyemov [ Пятница, 13 Январь, 2017 17:13 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
А "_" в категорию букв включить? |
Автор: | Alexander Shiryaev [ Пятница, 13 Январь, 2017 18:28 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Artyemov писал(а): Оказывается, что буква "_" (ASCII-код 5FH) за букву не считается, в соответствии с Oberon07.Report.pdf, и значит в идентификаторах применяться не может. Это ещё поля в регистрах не описывались Следующий момент: почему "_" в позиции 90 вызвала ошибку (остальные ошибки - индуцированные), а за 4 позиции до того - нет? Так у Вирта в компиляторе, я ничего не менял. Можете добавить "_" в O7S.Identifier, но это уже будет расширение того языка, который описан в "language report". |
Автор: | Info21 [ Пятница, 13 Январь, 2017 22:19 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Александр Владимирович, за Вами должок в духе http://www.inr.ac.ru/~info21/oberon_inn ... onAgro.htm и в виде докладика на Дне Оберона 2017. |
Автор: | Alexander Shiryaev [ Среда, 01 Февраль, 2017 00:41 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Переместил все примеры подсистемы Micro в отдельную подсистему: Mobx |
Автор: | Alexander Shiryaev [ Среда, 01 Февраль, 2017 01:02 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Добавил в примеры модуль для работы с таймером SysTick. Код: MODULE MobxSysTickTest0;
IMPORT ARMv7M := MicroARMv7M, PeriodicTimer := MobxARMv7MSTM32SysTick0, Sys := MicroSTM32F103x8System; CONST periodicTimerFreq = 16 (* Hz *); PROCEDURE MainLoop; BEGIN REPEAT IF PeriodicTimer.OnTimer() THEN ... END; ARMv7M.WFI UNTIL FALSE END MainLoop; PROCEDURE Init; BEGIN PeriodicTimer.Init(Sys.HCLK, periodicTimerFreq) END Init; BEGIN Init; MainLoop END MobxSysTickTest0. (^Q)O7ARMv7MLinker.Link STM32F103C8 MobxSysTickTest0 |
Автор: | Иван Денисов [ Среда, 01 Февраль, 2017 06:42 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
А почему бы этот модуль не поместить в Micro, а вот этот твой пример с форума должен как раз быть в Mobx ? |
Автор: | Artyemov [ Среда, 01 Февраль, 2017 13:11 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Alexander Shiryaev писал(а): Добавил в примеры модуль для работы с таймером SysTick. Ещё полезная функция у SysTick: определить время выполнения программного фрагмента (да, пока не Оберон ): Код: LDR R8, =SysTick_BASE_ADDRSS LDR R0, [R8, #(REG_SysTick_VAL - SysTick_BASE_ADDRSS)] LDR R12, =TEST_BITMAP MOV R11, #0 MOV R10, #10 BL LCM32128A_BITMAP_WRITE LDR R7, [R8, #(REG_SysTick_VAL - SysTick_BASE_ADDRSS)] разница содержимого R7 и R0 - длительность выполнения подпрограммы LCM32128A_BITMAP_WRITE в тактах ядра |
Автор: | Kubanych [ Пятница, 03 Февраль, 2017 20:26 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
А вместо ARM можно выводить на llvm? |
Автор: | Kemet [ Пятница, 03 Февраль, 2017 21:30 ] |
Заголовок сообщения: | Re: Компилятор Oberon → ARMv6-M, ARMv7E-M |
Kubanych писал(а): А вместо ARM можно выводить на llvm? Я пробовал (для другого компилятора ) и пришел к выводу что это сейчас бессмысленно. Лучше транслировать в Си и компилировать используя соответствующий компилятор для Си.
|
Страница 7 из 9 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |