|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[13] 8 Операционная система OS Теперь реализуем два метода: :N0NAME ( о -- )>R R@ х @ R@ у @ AT-XY R@ text @ R> len @ TYPE ; button defines draw :N0NAME ( addr u о -- ) >R 0 R@ x ! 0 R@ у! R@ len ! R> text ! ; button defines init В качестве примера наследования определим класс bold-button без новых переменных и методов button class end-class bold-button : bold27 EMIT ." [lm" ; : normal27 EMIT ." [Om" ; :N0NAME bold [ button :: draw ] normal ; bold-button defines draw И наконец некоторый код, демонстрирующий создание объектов и применение методов: button new CONSTANT foo s" thin foo" foo init foo draw bold-button new CONSTANT bar s" fat bar" bar init bar draw 8 Операционная система os Операционная система os32 - система программирования на Форте для встраиваемых яя ;тем , построенная на основе е оптимизирована под язык Форт. систем , построенная на основе виртуальной стековой машины , система команд которой • Крайне высокая переносимость между разными компьютерами и ОС - ядро системы (интерпретатор байт-кода) переписывается под любую хост-систему35 всего за несколько часов. или в целевой компилятор. защиты данных, контроля работы программы в процессе выполнения. 32полный комплект исходных текстов см. http: akps.ssau.ru/forth/os/ 33embedded 34чисто программном интерпретаторе байт-кода без какой-либо компиляции в машинный код реальной машины типа JIT 35железо и ОС версия 26 октября 2005 г.ФОРТ Основное средство разработки - целевой компилятор36, написанный в виде расширения стандартной форт-системы. К сожалению, авторы компиляторов C++ пока не изъявили желание сделать кодогенератор для os. При необходимости вы можете написать собственную верцию целевого компилятора, который будет генерировать настоящий машинный код целевой платформы, при условии что ваши программы на работают напрямую с байт-кодом и словарем, Это условие не выполняется для самомодифицирующихся программ, в том числе и для интерактивной форт-системы, которая в дальнейшем возможно кем-то будет написана. Если написать такую форт-систему, она совместит в себе интерпейс командной строки, монитор, средство on-board разработки и ручного управления, загрузчик конфигурационных файлов (если движок их поддерживает) и т.п. Движок os позволяет очень легко использовать любые возможности хост-платформы (железа и ОС, на которой работает виртуальная машина), а в некоторых случаях получить функциональность, не поддерживаемую хост-системой (например многозадачность или распределенные вычисления на нескольких процессорных узлах). 8.1Байт-код os использует подпрограммный шитый код, причем используются не машинные команды, выполняемые аппаратно, а команды виртуальной машины (байт-код). Эта технология также используется некоторыми форт-системами, и называется tokenized threaded code (ТТС) или switched threaded code. Набор команд и архитектура ВМ оптимизирована для языка Форт, в частности все команды выполняют действия, аналогичные небольшому набору форт-слов из CORE WORDSET стандарта языка. 8.2Движок для DOS на C++ Дистрибутив37 включает пример виртуальной машины для DOS, написанной на Borland СП-Ь 3.1. Выбор этого варианта был сделан исходя из простоты работы с полноэкранной графикой и 16-битной разрядности ОС, которая очень близка к реальным встраиваемым системам и иногда в них применяется. 9 Паяем самодельный компьютер 9.1 Модель микропроцессора Almel AVR (ATmega8515) на Форте В последнее время я увлекся программированием самых маленьких компьютеров, доступных сейчас в магазинах - микроконтроллеров AVR (Atmel). Всего за $5-10 вы получаете маленький компьютер, который можно использовать для сбора данных с датчиков, например отслеживать изменение температуры на улице с небольшим интервалом, управлять окнами с электроприводом в зависимости от температуры в вашей домашней теплице, ну и в конце-концов можно сделать электронные часы с десятком будильников, срабатывающих в нужное вам время. Чтобы получить минимальную работающую систему, нужно всего лишь купить чип AVR (я предпочитаю АТ*8515 в корпусе PDIP) и источник питания 5 В (несколько батареек, аккумуляторов или сетевой блок питания и стабилизатор КР142ЕН5А или 1705). 36ассемблер стековой машины 37http: akps.ssau.ru/forth/os/ ФОРТверсия 26 октября 2005 г. Уже в этой комплектации это достаточно функциональное устройство управления. Не обязательно даже подключать кварц - достаточно встроенного генератора на RC-цепочке, если не нужна высокая скорость или ее стабильность (частота генератора зависит от температуры). Для программирования AVR нужно спаять простенький кабель-программатор на LPT-порт вашего компьютера38, подробное описание которого см. на [akps] в разделе "Железо для ничинающих". Для программирования AVR через LPT-кабель я использую программу avreal, а для разработки прошивок пакет AVR Studio и маленький набор форт-примочек, который и будет описан в этом разделе книги. Этот раздел послужит примером практического использования Форта именно в той области39, для которой этот язык был первоначально разработан и применяется до сих пор. 9.1.1 Краткое описание архитектуры AVR AVR - 8-битный RISC микропроцессор, поставляемый фирмой Atmel40. Для хранения данных и операций с ними используются 32 8-битных регистра R0-R31. В модели для хранения регистров используем байтовый массив CREATE reg 0x20 ALLOT reg 0x20 0 FILL При выполнении слова reg ( - addr ) на стек будет положен адрес первого элемента массива - регистра R0. Для работы с регистрами определим несколько вспомогательных слов: : r@ ( idx -- value ) \ прочитать содержимое регистра reg + СО : г! ( value ide -- ) \ записать регистр reg + С! Операция reg + ( idx - addr ) выполняет разиндексацию одномерного байтового массива reg, то есть возвращает линейный адрес элемента reg[idx], (idx=0..31) в адресном пространстве форт-системы. 9.2 Кластерная сеть на последовательной шине UARTnet Если вы хотите решать с помощью наших микрокомпов задачи, для которых не хватает ресурсов или скорости одного чипа, придется использовать кластер из нескольких микроконтроллеров, каждый из которых выполняет часть работы. Самый простой вариант объединить несколько контроллеров (узлов) в сеть - использование кольца, соединив входы и выходы порта UART каждого узла, и добавив в прошивки всех узлов кучка кода, который должен 38если у вас есть свободный ISA-слот, желательно поставить в него старую мультикарту с LPT, a LPT на материнской плате отключить - если вам не повезет, и вы спалите LPT-порт, дешевле заменить мультикарту (100 р зу пучок), чем менять материнскую плату программирование встраиваемых систем 40http: www.atmel.ru версия 26 октября 2005 г.ФОРТ |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||