====== O7 ====== Компилятор языка программирования [[ob:oberon07|Oberon-07]]\\ для широкого класса микроконтроллеров архитектуры 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 и многое другое. В подсистеме **Mobx** находятся примеры программ для нескольких микроконтроллеров. [[https://github.com/aixp/O7|Хранилище проекта на GitHub]] [[https://github.com/iadenisov/O7|Альтернативное хранилище Ивана Денисова]] * дополнительными модули для I2C, SPI, дисплеев * дополнительные примеры * исправлено положение трапа в исходниках * поддержка "_" в идентификаторах ===== Установка и настройка ===== [[https://recordino.ldnova.com/|Среда разработки Рекордино]] имеет встроенный компилятор O7. Компилятор [[ob:o7|O7]] разработан на языке [[:cp|Компонентный Паскаль]] в виде расширения среды программирования [[:blackbox|BlackBox Component Builder]]. Поэтому, чтобы откомпилировать и использовать [[ob:o7|O7]], требуется сначала установить эту среду. - Установите Блэкбокс ([[blackbox:ubuntu|в Ubuntu]], [[blackbox:Windows|в Windows]]). - Скачайте [[https://github.com/aixp/O7/archive/master.zip|компилятор O7]]. - Скопируйте директории **O7**, **Micro**, **Mobx** в директорию, которую вы создали для проектов, или в корневой каталог Блэкбокса. - Откройте файл **O7/Docu/Quck-Start.odc** и нажмите по очереди первые три коммандера (черная кнопка-кружок). - Затем откройте файл **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:stm32flash|Прошивка микроконтроллера через UART]] * [[ob:o7:timer|Работа с таймером через прерывания]] * [[ob:o7:flash|Сохранение данных в FLASH память микроконтроллера]] * [[ob:o7:memory|Особенности работы с памятью]] * [[ob:o7:debug|Особенности отладки]] * [[ob:o7:stm32f103C8T6|Отчёт о сборке и прошивке STM32F103C8T6]] * [[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/mGi03zjahwY|Прошивка контроллера Cortex-M4 STM32F407VG программой на Oberon]] * [[https://youtu.be/nvLbGeM2imA|Oberon для микроконтроллеров. Обмен сообщениями по UART]] ===== Проекты ===== * Бортовые программы комплекса беспилотных летательных аппаратов (ООО «НПКЦ Новик-91») * Система контроля потоков в микрофлюидных чипах (Сибирский федеральный университет) * Шприцевой насос (Сибирский федеральный университет) * Люминометр (Сибирский федеральный университет) ===== Полезные ссылки ===== * [[https://visual.sfu-kras.ru/oberon|Сообщение о языке Oberon-07]] * [[http://oberoncore.ru/library/wirth_sets|SET: Недооцениваемый тип данных и его компиляция для ARM]] * [[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)]]