Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
ob:o7 [2017/04/06 23:29] иван_денисов [O7] |
ob:o7 [2024/02/26 08:26] (текущий) iadenisov [Полезные заметки] |
Компилятор языка программирования [[ob:oberon07|Oberon-07]]\\ | Компилятор языка программирования [[ob:oberon07|Oberon-07]]\\ |
для широкого класса микроконтроллеров архитектуры ARMv{6,7E}-M. | для широкого класса микроконтроллеров архитектуры ARMv{6,7E}-M. |
| |
| Автор: Александр Ширяев. |
| |
| Проект основан на компиляторе Oberon → RISC из [[http://www.inf.ethz.ch/personal/wirth/ProjectOberon/index.html|Project Oberon]] Н. Вирта. [[https://github.com/aixp/O7/blob/master/O7/Docu/license.txt|Лицензия]]. |
| |
Компилятор распространяется в открытых исходных кодах вместе с набором полезных модулей, которые объединены в подсистему **Micro**. В этих модулях хранятся адреса регистров, процедуры инициализации контроллеров, заготовки для передачи данных по протоколу UART и многое другое. | Компилятор распространяется в открытых исходных кодах вместе с набором полезных модулей, которые объединены в подсистему **Micro**. В этих модулях хранятся адреса регистров, процедуры инициализации контроллеров, заготовки для передачи данных по протоколу UART и многое другое. |
[[https://github.com/aixp/O7|Хранилище проекта на GitHub]] | [[https://github.com/aixp/O7|Хранилище проекта на GitHub]] |
| |
Проект основан на компиляторе Oberon → RISC из [[http://www.inf.ethz.ch/personal/wirth/ProjectOberon/index.html|Project Oberon]] Н. Вирта. [[https://github.com/aixp/O7/blob/master/O7/Docu/license.txt|Лицензия]]. | [[https://github.com/iadenisov/O7|Альтернативное хранилище Ивана Денисова]] |
| * дополнительными модули для I2C, SPI, дисплеев |
| * дополнительные примеры |
| * исправлено положение трапа в исходниках |
| * поддержка "_" в идентификаторах |
| |
| |
===== Установка и настройка ===== | ===== Установка и настройка ===== |
| |
Компилятор [[ob:o7|O7]] разработан на языке [[сp:docu|Компонентный Паскаль]] в виде расширения среды программирования [[:blackbox|BlackBox Component Builder]]. Поэтому, чтобы откомпилировать и использовать [[ob:o7|O7]], требуется сначала установить эту среду. | [[https://recordino.ldnova.com/|Среда разработки Рекордино]] имеет встроенный компилятор O7. |
| |
| Компилятор [[ob:o7|O7]] разработан на языке [[:cp|Компонентный Паскаль]] в виде расширения среды программирования [[:blackbox|BlackBox Component Builder]]. Поэтому, чтобы откомпилировать и использовать [[ob:o7|O7]], требуется сначала установить эту среду. |
| |
- Установите Блэкбокс ([[blackbox:ubuntu|в Ubuntu]], [[blackbox:Windows|в Windows]]). | - Установите Блэкбокс ([[blackbox:ubuntu|в Ubuntu]], [[blackbox:Windows|в Windows]]). |
- Скачайте [[https://github.com/aixp/O7/archive/master.zip|компилятор O7]]. | - Скачайте [[https://github.com/aixp/O7/archive/master.zip|компилятор O7]]. |
- Скопируйте папки **O7** и **Micro** в директорию, которую вы создали для проектов, или в корневой каталог Блэкбокса. | - Скопируйте директории **O7**, **Micro**, **Mobx** в директорию, которую вы создали для проектов, или в корневой каталог Блэкбокса. |
- Откройте файл **O7/Docu/Quck-Start.odc** и нажмите по очереди первые три коммандера (черная кнопка-кружок). | - Откройте файл **O7/Docu/Quck-Start.odc** и нажмите по очереди первые три коммандера (черная кнопка-кружок). |
- Затем откройте файл **Micro/Docu/Quck-Start.odc** и нажмите второй коммандер, если вы собираетесь писать программу для контроллера с архитектурой **ARMv6-M**, третий --- если для **ARMv7-M**. | - Затем откройте файл **Micro/Docu/Quck-Start.odc** и нажмите второй коммандер, если вы собираетесь писать программу для контроллера с архитектурой **ARMv6-M**, третий --- если для **ARMv7-M**. |
| |
| P.Compile:\\ |
| @: компилировать текущий документ\\ |
| /s: заменять символьные файлы |
| |
| Tool.DecObj: информаия об объектном файле\\ |
| Tool.DecSym: информация о символьном файле\\ |
| Tool.DecBin: дизассемблер bin-файлов\\ |
| Tool.DecHex: дизассемблер hex-файлов |
===== Полезные заметки ===== | ===== Полезные заметки ===== |
| |
| * [[ob:o7:examples|Учебник по программированию микроконтроллеров]] **NEW!** |
* [[ob:o7:stm32f103|Моя первая программа для STM32]] | * [[ob:o7:stm32f103|Моя первая программа для STM32]] |
* [[ob:o7:stm32flash|Прошивка микроконтроллера через UART]] | * [[ob:o7:stm32flash|Прошивка микроконтроллера через UART]] |
| * [[ob:o7:timer|Работа с таймером через прерывания]] |
| * [[ob:o7:flash|Сохранение данных в FLASH память микроконтроллера]] |
* [[ob:o7:memory|Особенности работы с памятью]] | * [[ob:o7:memory|Особенности работы с памятью]] |
* [[ob:o7:debug|Особенности отладки]] | * [[ob:o7:debug|Особенности отладки]] |
* [[ob:o7:trimble|Обмен сообщениями (в процессе написания)]] | |
* [[ob:o7:stm32f103C8T6|Отчёт о сборке и прошивке STM32F103C8T6]] | * [[ob:o7:stm32f103C8T6|Отчёт о сборке и прошивке STM32F103C8T6]] |
* [[ob:o7:stm32f103C8T6_2|Прошивка STM32F103C8T6 под Windows 8.1]] | * [[ob:o7:stm32f103C8T6_2|Прошивка STM32F103C8T6 под Windows 8.1]] |
| |
===== Видеоуроки ===== | ===== Видео ===== |
| |
| * [[https://vk.com/video-155609632_456239121|Конвеерум #30: Компилятор Оберона для архитектуры ARM: простота в основе надежности]] |
* [[https://youtu.be/zlnj6FCY1tY|Прошивка контроллера Cortex-M3 (LPC1343F) программой на Oberon]] | * [[https://youtu.be/zlnj6FCY1tY|Прошивка контроллера Cortex-M3 (LPC1343F) программой на Oberon]] |
* [[https://youtu.be/mGi03zjahwY|Прошивка контроллера Cortex-M4 STM32F407VG программой на Oberon]] | * [[https://youtu.be/mGi03zjahwY|Прошивка контроллера Cortex-M4 STM32F407VG программой на Oberon]] |
* Бортовые программы комплекса беспилотных летательных аппаратов (ООО «НПКЦ Новик-91») | * Бортовые программы комплекса беспилотных летательных аппаратов (ООО «НПКЦ Новик-91») |
* Система контроля потоков в микрофлюидных чипах (Сибирский федеральный университет) | * Система контроля потоков в микрофлюидных чипах (Сибирский федеральный университет) |
| * Шприцевой насос (Сибирский федеральный университет) |
| * Люминометр (Сибирский федеральный университет) |
| |
===== Полезные ссылки ===== | ===== Полезные ссылки ===== |
| |
* [[https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf|Сообщение о языке Oberon-07]] | * [[https://visual.sfu-kras.ru/oberon|Сообщение о языке Oberon-07]] |
* [[http://oberoncore.ru/library/wirth_sets|SET: Недооцениваемый тип данных и его компиляция для ARM]] | * [[http://oberoncore.ru/library/wirth_sets|SET: Недооцениваемый тип данных и его компиляция для ARM]] |
* [[http://forum.oberoncore.ru/viewtopic.php?f=137&t=5232|Обсуждение проекта на форуме]] | * [[http://forum.oberoncore.ru/viewtopic.php?f=137&t=5232|Обсуждение проекта на форуме]] |
* [[http://milandr.ru/index.php?mact=Products,cntnt01,default,0&cntnt01hierarchyid=5&cntnt01returnid=67|Российские микроконтроллеры (ядро ARMv6-M, ARMv7-M)]] | * [[http://milandr.ru/index.php?mact=Products,cntnt01,default,0&cntnt01hierarchyid=5&cntnt01returnid=67|Российские микроконтроллеры (ядро ARMv6-M, ARMv7-M)]] |
| |