автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.15, диссертация на тему:Унификация архитектур однокристальных микроконтроллеров и ее применение для разработки программного обеспечения встраиваемых систем

кандидата технических наук
Белых, Андрей Александрович
город
Москва
год
2006
специальность ВАК РФ
05.13.15
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Унификация архитектур однокристальных микроконтроллеров и ее применение для разработки программного обеспечения встраиваемых систем»

Автореферат диссертации по теме "Унификация архитектур однокристальных микроконтроллеров и ее применение для разработки программного обеспечения встраиваемых систем"

На правах рукописи

Белых Андрей Александрович

У

УНИФИКАЦИЯ АРХИТЕКТУР ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ И ЕЕ ПРИМЕНЕНИЕ ДЛЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВСТРАИВАЕМЫХ СИСТЕМ

Специальность 05.13.15 - "Вычислительные машины и системы"

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Москва - 2006

Работа выполнена на кафедре «Вычислительные машины, системы и сети» Московского энергетического института (технического университета)

Научный руководитель - кандидат технических наук, доцент

Мороховец Юрий Евгениевич

Официальные оппоненты:

- доктор технических наук, профессор Бородин Геннадий Александрович

- кандидат технических наук, доцент Дорошенко Александр Николаевич

Ведущая организация - ООО "НПА Вира Реалтайм" (г Москва)

Защита состоится 7 апреля 2006 г. в 16 час. 00 мин на заседании диссертационного совета Д 212.157.01 при Московском энергетическом институте (техническом университете) по адресу: 111250, г Москва, Красноказарменная ул, д 17 (ауд. Г-306).

С диссертацией можно ознакомиться в библиотеке МЭИ (ТУ).

Автореферат разослан << » марта 2006 г.

Отзывы в двух экземплярах, заверенные печатью организации, просьба направлять по адресу 111250, г Москва, Красноказарменная ул, д. 14, Ученый Совет

МЭИ (ТУ)

Ученый секретарь

диссертационного совета Д 212.157.01 кандидат технических наук, профессор

ИИ Ладыгин

ЯОО£А ъпг.1-

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. В настоящее время в системах управления и обработки данных все чаще применяются однокристальные микроконтроллеры (ОМК), решающие широкий спектр задач. Интегрируя на одном кристалле высокопроизводительный процессор, память и набор периферийных схем, ОМК позволяют с минимальными затратами реализовать высокоэффективные системы и устройства управления различными объектами. Применение микропроцессорной системы управления, выполненной на основе однокристального микроконтроллера, позволяет "встроить" эту систему непосредственно в управляемый объект.

Основными характеристиками встраиваемых систем являются:

- ограниченность аппаратных ресурсов;

- неизменность программного обеспечения в процессе применения,

- высокая надежность;

- короткий цикл разработки-внедрения;

- серийность производства;

- низкая себестоимость.

Именно благодаря этим качествам ОМК находят широкое применение в системах промышленной автоматики, контрольно-измерительных приборах и системах, аппаратуре связи, автомобильной электронике, медицинском оборудовании, бытовой технике и многих других областях

Применение однокристальных микроконтроллеров позволяет перенести основные затраты, связанные с разработкой встраиваемых систем управления, из аппаратной в программную область Это неминуемо влечет за собой увеличение сложности программного обеспечения (ПО) микроконтроллеров.

Особенностью разработки ПО для ОМК является использование языка низкого уровня - языка ассемблера. Это связано с тем, что при реализации встраиваемых систем критичными являются время реакции на внешние воздействия, время выполнения заданных процедур обработки данных, размер программного кода и области данных Последнее связано с тем, что зачастую сначала выбираются аппаратные средства, включающие ядро и периферию микр а тем разра-

батывается ПО для выбранного ОМК Следовательно, выход за рамки возможностей микроконтроллера, например по такому показателю, как емкость памяти, влечет повторный выбор ОМК и проектирование системы практически с нуля. Это обусловлено тем, что языки ассемблеров и архитектуры вновь выбранного и ранее используемого микроконтроллеров могут существенным образом отличаться

Учитывая сказанное, представляется актуальной разработка методов и средств создания повторно-используемых программных модулей, написанных на унифицированном языке ассемблера, инвариантных относительно архитектур ОМК заданного целевого класса. При этом инвариантность программных моду пей должна обеспечиваться эффективной трансляцией унифицированного языка ассемблера на внутренние машинные языки микроконтроллеров целевого класса

Перспективным концептуальным подходом к разработке указанных выше методов и средств является создание такой архитектуры однокристального микроконтроллера, которая позволила бы разрабатывать программное обеспечение для различных ОМК целевого класса, используя унифицированный язык ассемблера, единую инструментальную среду разработки и накопленные (разработанные ранее) эффективные программные модули.

Целью диссертационной работы является разработка механизмов унификации архитектур ОМК и их применение для повышения эффективности создания программного обеспечения встраиваемых систем.

Для достижения поставленной цели требовалось, чтобы были решены следующие основные задачи:

- проведен анализ существующих методов и средств разработки ПО однокристальных микроконтроллеров, а также архитектур ОМК наиболее известных производителей;

- поставлена задача повышения эффективности разработки ПО ОМК, относящихся к ограниченным целевым классам архитектур, на основе унификации архитектур этих классов;

предложено формальное описание архитектур ОМК,

- сформулированы правила выделения базового набора унифицируемых архитек-

тур ОМК в целевом классе;

- разработана процедура унификации целевых архитектур по выделенному базовому набору;

- разработана методика создания ПО для однокристальных микроконтроллеров;

- разработана унифицированная архитектура ОМК, включающая систему команд, представленную на ассемблерном уровне - унифицированный ассемблер, для реального целевого класса микроконтроллеров,

- разработан инструментарий, позволяющий вести создание программ для однокристальных микроконтроллеров с использованием указанного выше унифицированного ассемблера,

- определены критерии оценки использования унифицированной архитектуры и ассемблера;

- проведена сравнительная оценка эффективности использования унифицированной архитектуры и ассемблера при создании ПО встраиваемых систем.

Методы исследования. При выполнении работы использовались методы теории множеств, теории графов, теории формальных грамматик, методы формального описания синтаксиса и семантики языков программирования.

Научная новизна. На основе анализа современных однокристальных микроконтроллеров, а также существующих подходов к разработке программного обеспечения ОМК, предложена процедура унификации архитектур ОМК и основанная на унификации методика разработки приложений для встраиваемых систем на языке ассемблера. Разработка ПО, в соответствии с предложенной методикой, основана на унификации структуры и системы команд. Научная новизна работы состоит в следующем:

- предложено формальное описание архитектур однокристальных микроконтроллеров, включающий описание структуры, системы команд и алгоритма функционирования;

- сформулированы принципы разработки унифицированной архитектуры и ассемблера для заданного целевого класса однокристальных микроконтроллеров;

- предложена методика разработки программного обеспечения встраиваемых сис-

тем на однокристальных микроконтроллерах, использующая принципы унификации их архитектур.

Достоверность полученных результатов. Достоверность результатов работы подтверждается опытом применения процедуры унификации и методики разработки ПО встраиваемых систем к реальному целевому классу 8-ми разрядных ОМК.

Практическая ценность. Предложенные принципы унификации были положены в основу построения среды разработки ПО встраиваемых систем на базе 8-ми разрядных микроконтроллеров, исиользующей унифицированный для данного целевого класса ОМК язык ассемблера. Реализованные на этом языке модули (конечные программы, выполняющие одну или несколько функций) могут быть повторно использованы в других программных продуктах, и быть откомпилированными под различные микроконтроллеры без внесения изменений в исходный текст самих модулей. Кроме того, разработанная унифицированная система мнемоник и соответствующая структура модельного микроконтроллера могут быть использованы в обучении специалистов, при изучении принципов разработки ПО однокристальных микроконтроллеров на языке ассемблера. Использование созданной процедуры унификации в коммерческих разработках подтверждено актом о внедрении.

Апробация работы. Основные результаты исследований представлены в докладах на международных конференциях «Компьютерные технологии в науке, производстве, социальных и экономических процессах» (Новочеркасск, 2004), лРадио-электроника, электротехника и энергетика» (Москва, 2002, 2003, 2004).

Публикации. Основные результаты, полученные при выполнении диссертационной работы, опубликованы в 6 печатных работах.

Структура и объем работы. Диссертация состоит из введения, семи глав, заключения, списка источников и приложений. Диссертация содержит 135 страниц машинописного текста без учета приложений.

СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность темы, показаны научная новизна, практическая ценность, апробация и достоверность полученных результатов, приведено краткое содержание работы по главам.

В первой главе работы проведен анализ используемых языков программирования однокристальных микроконтроллеров и инструментальных сред разработки ПО встраиваемых систем на основе микроконтроллеров.

Отмечается, что разработка ПО для ОМК, ограниченных вычислительными ресурсами, в основном ведется с использованием языка ассемблера Подавляющее большинство производителей микроконтроллеров поставляют специализированные компиляторы с ассемблера, обеспечивающие генерации эффективного целевого машинного кода Однако, язык ассемблера не универсален, и зачастую различается не только у разных производителей, но и у семейств ОМК одного производителя

Делается вывод о необходимости разработки новых подходов к преодолению трудностей, возникающих при создании ПО встраиваемых систем, и выдвижения критериев его эффективной разработки

Вторая глава посвящена анализу структур и систем команд современных однокристальных микроконтроллеров (в том числе используемых в них способов адресации данных) и определению классификационных признаков ОМК.

Делается вывод о целесообразности исследования в рамках настоящей работы наиболее широко применяемых 8-ми разрядных микроконтроллеров с сокращенным набором инструкций. Выделяются классификационные признаки, характеризующие структуру и функционирование ОМК - размер регистровой памяти, памяти данных и программ, разрядность арифметических и индексных регистров, шины данных, поддерживаемые способы адресации операндов процессора

В третьей главе изложена методика разработки прохраммного обеспечения встраиваемых систем на однокристальных микроконтроллерах, включающая выделение базового набора ОМК и унификацию архитектур ОМК, предложена технология пополнения целевого класса ОМК без внесения изменений в унифицированную архитектуру абстрактного ОМК.

Практика создания встроенных систем на основе 8-ми разрядных ОМК подсказывает, что главным критерием эффективности разработки их программного обеспечения является скорость выполнения работ, выраженная как трудоемкость создания набора программных модулей, обеспечивающих решение определенного

на практике, достаточно сложного фиксированного (эталонного) набора задач

Таким образом, для корректной оценки эффективности разработки ПО, проводимой в соответствии с определенной методикой и с применением соответствующих инструментальных средств, необходимо измерить трудоемкость (трудозатраты в человеко-часах) реализации программных модулей, решающих эталонный набор задач на микроконтроллерах целевого класса.

Другим важным (а для встраиваемых систем на ограниченных 8-ми разрядных ОМК в особенности) критерием эффективности разработки ПО является качество программного кода, которое может быть адекватно выражено временем исполнения программ (или их критических участков) на микроконтроллерах целевого класса, решающих задачи из эталонного набора, а также размер программ (в машинных словах) Следует подчеркнуть, что здесь, как и в случае с трудоемкостью разработки, интерес представляет программный код, полученный в рамках определенной методики с применением соответствующих средств поддержки.

Рассмотренные критерии позволяют сформулировать принципы эффективной разработки программного обеспечения встраиваемых систем, реализуемых на базе микроконтроллеров Основными среди них являются:

- удобная высокоскоростная разработка программного кода, обусловленная требованиями быстро развивающегося рынка, внесением существенных изменений в готовые устройства и разработкой новых перспективных встраиваемых систем,

- компиляция быстрого и прогнозируемого программного кода, обусловленная критичностью времени выполнения заданных последовательностей действий, времени реакций на внешние события;

- ограниченный объем скомпилированного выполняемого программного кода, обусловленный небольшой емкостью памяти программ и данных, применяемой в рассматриваемом целевом классе ОМК.

Предлагаемая в данной работе методика разработки программного обеспечения ОМК, поддерживаемая инструментальной средой разработки (ИСР), включает три этапа

- анализ спецификаций семейств ОМК, выделение целевого класса и базового

набора унифицируемых архитектур ОМК;

- унификация архитектур ОМК, включенных в базовый набор, создание унифицированной структуры и языка ассемблера, отвечающих целевому классу ОМК, разработка кросс-транслятора унифицированного языка ассемблера в машинные языки выделенных целевых микроконтроллеров,

- разработка программного обеспечения ОМК, принадтежащих целевому классу, на основе применения существующих /Л-модулей1 и вновь созданных программных модулей, представленных на унифицированном языке ассемблера

Далее последовательно рассматривается каждый из указанных этапов

Этап 1 - Выделение целевого класса и базового набора архитектур ОМК В процессе анализа (рисунок 1) спецификаций ОМК, используемых в проектах группы разработчиков, необходимо классифицировать ОМК по ряду критериев для выделения класса архитектур ОМК. подлежащих унификации Критерии определяются группой разработчиков, осуществляющих унификацию, на основе опыта и знания технических характеристик рассматриваемых ОМК Критерии применяются к формализованным описаниям архитектуры ОМК

Каждый ОМК можно описать набором параметров, характеризующих его структуру и функционирование Такими параметрами могут служить размер и количество регистров общего назначения (РОН); наличие внутренней памяти данных, ее разрядность и размер; размер и количество регистров специального назначения (для управления периферией ОМК, состоянием процессора, и др.), наличие внутренней памяти программ и ее размер, разрядность и поддерживаемая функциональность арифметико-логического устройства (АЛУ), возможность оперирования с данными «двойной» разрядности (для операций умножения и деления); количество аккумуляторов (для сохранения оперативных данных); поддерживаемые способы адресации процессора

Отмечается, что возможно добавление нового семейства, состоящего из одного или более ОМК, в процессе использования ранее определенного целевого класса

11Р - 1гЛе0ес1иа1 Ргорег1у - Интеллектуальная собственность

Рисунок 1 - Анализ спецификаций семейств ОМК

Часто это необходимо из-за того, что производитель выпускает новый микроконтроллер (семейство), в большей степени соответствующий(-ее) требованиям решаемых технических задач, или условиям указанных задач в большей степени удовлетворяет ОМК, ранее не рассматриваемый разработчиками. При этом, изменения в базовый класс архитектур ОМК, используемый при унификации, не вносятся, а добавляемое семейство ОМК проверяется на соответствие ранее определенным критериям, и пополняется лишь целевой класс архитектур ОМК.

Этап 2 - Унификация архитектур ОМК, включенных в базовый набор

Базовый класс архитектур ОМК, включающий в себя различные, максимально неоднородные микроконтроллеры, унифицируется (рисунок 2) с целью получения одной абстрактной архитектуры, называемой далее унифицированной архитектурой ОМК. Полученная архитектура включает в себя унифицированный язык описания команд управления процессором и описание структуры абстрактного микроконтроллера.

Рисунок 2 - Унификация архитектур семейств ОМК

Программист может использовать этот унифицированный язык в процессе разработки программ для абстрактного микроконтроллера Однако, в реальном техническом устройстве должен использоваться реально существующий ОМК Для

| Методика ' унификации

Разработка компилятора

этого требуется разработать кросс-компилятор с унифицированного языка ассемблера на язык ассемблера целевого микроконтроллера Отметим, что для разработки кросс-компилятора требуется знания об архитектуре целевого ОМК, полученной в результате анализа спецификаций ОМК Во-первых, это знание синтаксиса и семантики команд процессора целевого ОМК - типы команд, их разновидности и способы использования Во-вторых, это знание структуры целевого ОМК - память и ее емкость, наличие регистров общего и специального назначения и их количество И, наконец, знание функционирования ОМК - изменение состояния элементов структуры ОМК при выполнении команд процессора при использовании поддерживаемых способов адресации данных.

Этап 3 - Разработка программного обеспечения для ОМК

Разработка ПО подразумевает не только проектирование программной системы и написание программного кода (кодирование), но и компиляцию этого программного кода (рисунок 3) Учитывая тот факт, что в нашем случае программное обеспечение может разрабатываться на разных языках - унифицированном ассемблере или целевых языках, процесс компиляции состоит из двух стадий Безусловно, он мог быть и одностадийным Однако, в этом случае, потребовалось бы более трудоемкое проектирование унифицированного компилятора В случае двухстадийной компиляции, после крссс-компиляции получается программный код на целевом ассемблере с помощью таблиц соответствия языков. В то время, как сама программа «компилятор» не меняется при обеспечении поддержки нового семейства ОМК, необходимы добавления в таблицы соответствия.

Рисунок 3 - Разработка программного обеспечения для ОМК

Полученный код может быть скомпонован с другими модулями на целевом (конкретного ОМК) языке и откомпилирован с использованием стандартного ком-

Компилятор цалаяого языка

Готовы* программны« I I модули на целевом ^

пилятора, поставляемого производителем ОМК

Итак, методика эффективной разработки ПО для встраиваемых систем состоит из трех этапов, возможно разделенных по времени На входе - спецификации семейств ОМК, спецификация нового семейства ОМК, общий набор классификационных признаков, критерии целевого отбора, методика унификации, условия базового отбора, компиляторы целевых языков, программные модули на унифицированном и целевом языках Па выходе - целевой и базовый классы архитектур ОМК, унифицированная архитектура ОМК (представляющая собой описание системы команд и структуры ОМК), унифицированный кросс-компилятор, и, наконец, машинный код программы.

В четвертой главе представлены принципы построения унифицированных архитектур ОМК' определение целевого класса архитектур, формализация описания архитектур, унификация структуры и системы команд; приведен пример применения процедуры унификации для небольшого числа базовых ОМК

Каждая архитектура ОМК, в том числе и базовая, описывается набором, включающим три основных эчемента, характеризуюших структуру микроконтроллера (S), его систему команд (7) и алгоритм функционирования (F)

А = (S, I, F) (1)

В свою очередь структура S, определяется посредством набора структурных элементов, определяющего аппаратные возможности микроконтроллера

S = {ALU, AC, RC, RS, MD, MP), где ALU = {LL)MN, Ьцшх) - арифметико-логическое устройство (АЛУ), а LoMIlh Ldmax - минима.хьная и максимальная разрядность данных, парачлельно обрабатываемых АЛУ, соогветственно,

АС = {ac[n][l\ 0 < n < Nac -1, 0 < / < ЬАС -1} - блок регистров-аккумуляторов (РАК), содержащий NAc регистров, имеющих разрядность LAC бит,

RC s {rc[n\[l\ 0 < и < Nrc -1, 0 < / < LrC -1} - блок регистров общего назначения (РОН), содержащий N*c регистров, имеющих разрядность LRC бит,

RS = (IP, RF, IR, PORT. RSR} - регистры специального назначения, включающие:

- регистр счетчика команд IP,

- регистр флагов RF s {rf [/]' 0 < / < LRb- -1}. в том числе флаги переноса RF[FC] sпереполнения RF[FOV] s RF[l] и др ,

- блок индексных регистров IR = {гг[и][7]' О < п <NIti -1, 0< I <Lm-l],

- блок регистров линий ввода-вывода PORT = {port[n\[!\: 0 <п< МР(Ш -1,0 <1 <ЬРот-Ц и

-блокпрочихVCÎIRSR= {гаф]№ 0<и<Л^л-1. 0 </<¿^-1}, MD = {md[ri\[I\\ 0 < п < NMD-1, 0 < / < LMD -1} - память данных (ПД) емкостью ТУмп слов, имеющих разрядность LMD биг,

МР = {тр[и]- 0 < п <NMP-1} - память программ (ПП) емкостью Nmp слов, причем каждое слово хранит инструкцию - элемент множества /, представляющего набор команд.

Структурой хранения данных DSS (Data Storage Structure) назван набор следующего вида:

DSS s (АС, RC, RS.RF, RS.IR, RS.PORT, RS.RSR, MD) Элементом хранения данных является отдельно взятый регистр или слово па-мята данных микроконтроллера, входящие в структуру хранения данных DSS.

Пусть метапеременная dss (возможно со штрихами или строчными индексами), принимает значения из множества {ас. rc, RS rf, RS.ir, RS.port, RS rsr, md}

Для указания произвольного элемента хранения данных с адресом п, используется нотация dss[n]. 0 < п < N^s -1; разряд этого элемента хранения данных с номером / обозначается через ds?[п\Щ, 0 < / < LDss-1 Для задания какого-либо элемента хранения за исключением регистра флагов (без регистров флагов и аккумуляторов) используется ds (d) в качестве префикса в указанных выше конструкциях

Состояние структуры хранения данных $Dss определяется, используя определения состояний ее элементов и их разрядов

(Vîi)(V7) S dss[n\[l} ->• {0,1} - состояние разряда элемента,

(V п) • -> {0,1}'- - состояние элемента хранения данных;

Sdss = 'J - состояние структуры хранения данных.

diteDSS

Множество всех состояний структуры хранения данных ОМК -Состояние регистра счетчика команд определяется как константная функция &ASZP, принимающая значения из множества {0, 1, , }, где, напомним, NUP -емкость памяти программ. Множество всех состояний регистра счетчика команд обозначается §rs.ip-

Для обозначения результатов применения функций состояния к аргументам и Srs ip(RS.IP), то есть для обозначения содержимого соответствующих элементов памяти, используются утолщенные парные круглые скобки, опуская символы соответствия Qj,, и [Р.

Например, (ю4(гс[7])]> = 23 или (RS IP)+l => RS.IP.

Система команд I задается как множество инструкций процессора ОМК, имеющее вид- I щ 10 U /1U12 U /3, где 10 - безадресные инструкции, II- одноадресные инструкции, 12 ~ двухадресные инструкции, 13 - грехадресные инструкции. Множество, например, двухадресных инструкций задается, как множество 12 = {(op, aexpl, аехр2). ореОР2аОР, aexpleAEXP, аехр2еАЕХР}, где ор - ассемблерный код (мнемоника) операции, ОР2 - множество мнемоник двухадресных операций, АЕХР - множество ассемблерных адресных выражений, выводимых из нетерминального символа при помощи некоторой КС-грамматики

Для описания семантики инструкций из множества I вводится функция тех (instruction execution), устанавливающая частичное соответствие следующего вида: тех: Ix&dssx&xsjp &dssx&ssjp-Для инструкции {ADD, А, (§>(£))) соответствующая семантическая схема выглядит следующим образом: inst {ADD, 5, @(D)) : trans B->d [nl], D d[n2]

exec (d[nl]) - (d[(d[n2})}) => d\(d\nl})]. (RS /Р)+1 => RS.IP Для задания алгоритма функционирования ОМК. определяется понятие состояния памяти программ 9-■ MP —> I

Заметим, что график этого соответствия vT д/р является программой, содержз-

щейся в памяти MP, причем (V«) 0 <п< N^r-1, (тр[п]) е 1 Множество всех программ, которые могут храниться в MP, обозначим через &'мр

Функционирование F определяется как частичная функция вида F(,%ss, ¿W) - ¿f(mp[$RS1F]) = (STOP) then

else F(mex({mp )),

где, как следует из выше сказанного, № = (RS IF).

Алгоритм функционирования ОМК определен, если заданы

- программа обработки данных St"MP е

- исходное состояние структуры хранения данных е dp«,

- исходное состояние регистра счетчика команд е л>.

а также известен закон его функционирования, то есть полностью специфицирована функция тех, описывающая семантику системы команд

Процедура посгроения унифицированной архитектуры ОМК (как часть целостной методики разработки ПО встраиваемых систем) предназначена для проектирования таких структуры и системы команд микроконтроллера, которые были бы одновременно просты в использовании и функциональны в достаточной степени

Шаг 1 Определение набора базовых архитектур ОМК

Из качественно определенного класса целевых архитектур ОМК выбираются несколько (пк) архитектур, называемых базовыми архитектурами Выбор осуществляется с таким расчетом, чтобы базовые архитектуры в наибольшей степени различались по определенном}' набору признаков - качественно отличающиеся системы команд, качественно отличающиеся структуры микроконтроллеров (доступный набор регистров специального и общего назначения, организации памяти данных с точки зрения доступа к данным и пр.)

Шаг 2. Формализованное описание базовых архитектур

Каждая архитектура, вошедшая в базовый набор, описывается тройкой ВЛ = (BS, BI, BF). где BS - базовая структура, BI базовая система команд (на языке ассемблера), BF - базовое функционирование ОМК

Задается описание базовой структуры ОМК 55: ВБ н (АЬи(Ьшш, Ьаих), АС{Ыас\[Ьас1 ПС[Ынс][Ьнс1 Л5, Л4Р[ЛЫХ

= (1Р, тЬрА, Ж[К'р}Ы РОЯТ[ЫРокг][ЬРош1 причем для конкретных регистров или их разрядов (например, для Ш7 и ЯБК) могут быть даны символические имена

Определяется базовая система команд 57 ОМК, множества мнемоник одно-, двух- и трехадресных операций базового ОМК, множество ассемблерных адресных выражений АЕХР, семантика инструкций из базовой системы команд

При описании множеств АЕХР и ОР базовых архитектур ОМК необходимо выбирать синтаксически равные описания для семантически эквивалентных мнемонических обозначений и выражений.

Шаг 3. Унификация базовых архитектур.

Унификация базовых архитектур заключается в унификации их структур ВБ и систем команд В1.

1) Множество базовых структур ОМК унифицируется {ВЗи Й52, • • > ВБ^} в 118 на основе следующих правил:

1. Минимальная разрядность данных обрабатываемых АЛУ унифицированного ОМК иЗАЬиЬпмм определяется как минимально возможная разрядность обрабатываемых АЛУ данных базовых архитектур ОМК;

2 Максимальная разрядность данных обрабатываемых АЛУ унифицированного ОМК иБ АЫ1 Ьг>мм определяется как максимально возможная разрядность обрабатываемых АЛУ данных базовых архитектур ОМК;

3 В Ш обязательно входит КС, причем определяется на этапе трансляции и может принимать значения от 0 до максимального Кгяс для конкретного ОМК, а ЬдС - как максимальная разрядность Ькс из всех базовых архитектур ОМК,

4. ЛУ в Г/5 фиксируется (выбирается) при определении класса ОМК. На необходимость включения в ЦБ КЗ определенных регистров специального назначения влияют следующие факторы:

- поддерживаемые способы адресации данных в базовых архитектурах ОМК,

- организация работы с периферией базового ОМК,

— наличие отека в базовой архитектуре ОМК,

5 В US включается MD и MP, где LMD определяется разрядностью обрабатываемых данных базовых архитектур ОМК (ALULdiv1ax)> Nmd и NVj определяются на этапе трансляции, не имеет практического значения для US, что обусловлено технологией трансляции с UI на Bh, 0 < к < пк -1, и могут принимать значения от 0 до максимального для конкретного ОМК;

6 АС в US фиксируется (выбирается) при определении класса ОМК

— Lac определяется по АЬи.Ьшлх,

— Nac определяется как минимальное Nic из всех базовых архитектур ОМК

2) Множество систем команд всех базовых архитектур ОМК унифицируется / = {£>//. В12, , В1„} в UI на основе следующих правил:

1 В UI включается набор макросов по работе с флагами ОМК (состояние процессора, прерывания и пр.)

2. Для каждой команды из BIk, 0 < к < пк-1, необходимо поставить соответствие с командой из UI, то есть каждое множество команд В0 <к<пк-1, является подмножеством множества команд UI

3. Для каждой команды из U1 составляется функционально эквивалентная последовательность команд изВ1к, 0 < к < пк-1, то есть такой набор команд из ЯД, О < к < пк -1, обладает той же функциональностью, что и команда из UI (функциональность проверяется по результату применения функции тех к каждой команде)

Пятая глава посвящена разработке унифицированной архитектуры ОМК для определенного во второй главе целевого класса архитектур ОМК разработке системы мнемоник унифицированной системы команд, описанию структуры абстрактного ОМК и его функционирования в соответствии с предложенной процедурой унификации архитектур ОМК.

Рассматриваемый целевой класс архитектур однокристальных микроконтроллеров, наиболее часто применяемый в российских разработках, включает архитектуры ОМК с фиксированной точкой, имеющих гарвардскую организацию хранения данных и команд, обладающих 8-ми разрядной шиной данных, аккумулятором, характеризующихся сокращенной системой команд и наличием языка ассемблера

Разработанная унифицированная система команд отличается наглядностью, простотой использования и, в то же время, полнотой. Отмечается, что уменьшение времени изучения унифицированной системы мнемоник может быть достигнуто за счет использования разнообразных способов адресации и, следовательно, меньшего количества мнемоник.

Процедура унификации, как часть целостной методики проектирования ПО, может быть применена к иному целевому классу ОМК, отличному от того, что был представлен в данной диссертации.

В шестой главе рассматриваются принципы создания инструментальной среды разработки программных приложений для встраиваемых устройств на основе микроконтроллеров с использованием унифицированной системы мнемоник (унифицированного ассемблера) и архитектуры в целом, приводится краткое описание разработанной инструментальной среды, позволяющей вести разработку программ для ранее выделенного целевого класса 8-ми разрядных микроконтроллеров.

В седьмой главе представлены результаты сравнения эффективности разработки программных приложений для различных однокристальных микроконтроллеров с помощью унифицированной системы команд, языка высокого уровня (языка С) и оригинальных систем команд целевых микроконтроллеров по таким критериям как время разработки (рисунок 4) и использование ресурсов микроконтроллера, а именно размер программы на машинном языке (то есть, требуемый размер памяти программ), размер занимаемой памяти дэнных и время выпотаения программы (критического участка программы) Отметим, что последние три параметра характеризуют работоспособность программы на целевом ОМК, причем, для разных исходных языков программирования в равной степени.

Показана эффективность использования разработанной в диссертации унифицированной архитектуры ОМК, особенно в модифицируемых и постоянно развивающихся проектах (число реализаций ПО больше 3). Отмечается, что по параметрам, характеризующим использование ресурсов микроконтроллера, язык унифицированного ассемблера практически не уступает языку высокого уровня С, и, в то же время, превосходит язык ассемблера целевого ОМК.

!— — Асееблер

М— Унифицированный Ассемблер

О

2 3 4 5 6 7 8 Число реализации ПО, шт

9

Рисунок 4 - Зависимость времени разработки от числа реализаций

В заключении приводятся основные результаты, полученные в ходе выполнения диссертационной работы

1 Предложено формальное описание архитектур однокристальных микроконтроллеров, включающее описание их структурной организации, системы команд и алгоритма функционирования.

2. Предложена и опробована на практике процедура построения унифицированной архитектуры абстрактного микроконтроллера, которая может быть применена к определённому целевому классу архитектур ОМК, находящих практическое применение в конкретной технической области.

3. Создана методика разработки программного обеспечения встраиваемых систем на однокристальных микроконтроллерах с использованием унифицированного языка ассемблера абстрактного ОМК, позволяющая в рамках одной группы разработчиков использовать широкий спектр микроконтроллеров, которые могут в значительной степени различаться по системе команд и структуре ОМК

4. Разработана унифицированная архитектура ОМК для реального целевого класса однокристальных микроконтроллеров с использованием предложенной процедуры унификации. Разработанная унифицированная система команд отличается наглядностью, простотой использования и, в то же время, полнотой

5 Проведена количественная оценка эффективности унифицированной архитектуры - показана эффективность применения унифицированного языка ассемблера однокристального микроконтроллера по сравнению с целевыми ассемблерами и языком С

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

XoqCA

20 Р - 3 7 2 2

СПИСОК РАБОТ, ОПУБЛИКОВАННЫХ ПО ТЕМЕ ДИССЕТРАЦИИ

1 Белых A.A. Применение модульных принципов при разработке ПО для встраиваемых систем // Восьмая Междунар науч -техн конф студентов и аспирантов "Радиоэлектроника, электротехника и энергетика": Тез докл В 3-х т - M ■ Издательство МЭИ, 2002. Т. 1. - С. 317-318.

2 Белых А А. Критерии эффективной разработки ПО для встраиваемых систем '/ Девятая Междунар науч.-техн. конф. студентов и аспирантов: Тез докл. В 3-х т. - М.: МЭИ, 2003. Т. 1 - С. 348.

3. Белых А А. Хранение информации о языках программирования для встраиваемых систем // Тез и доклады X Междунар. Конф «Теоретические и клинические аспекты применения биорезонансной терапии». - M • «ИМЕДИС», 2004 Ч. 2 -С. 372-374.

4 Белых А А Генерация промежуточного кода при компиляции ПО для встраиваемых систем // Десятая Междунар науч -техн конф студентов и аспирантов "Радиоэлектроника, электротехника и энергетика" Тез докл В 3-х т - M ■ МЭИ 2004. Т. 1. - С. 358-359

5. Белых A.A. Проблемы эффективной разработки ПО для встраиваемых систем и пути их решения // Тез. и доклады X Междунар. Конф «Теоретические и клинические аспекты применения биорезонансной терапии» - М.: «ИМЕДИС», 2004 Ч. 2-С. 381-387.

6. Белых А А Принципы построения унифицированной архитектуры однокристального микроконтроллера // Компьютерные технологии в науке, производстве, социальных и экономических процессах' Материалы V Междунар. науч -практ. конф., г Новочеркасск, 12 нояб. 2004 г : В 3 ч / Юж.-Рос. гос техн ун-т (НПИ). - Новочеркасск: ЮРГТУ, 2004. 4.2 -С. 27-28.

Подписано в печать Полиграфический центр МЭИ (ТУ) Красноказарменная ул., д. 13

Оглавление автор диссертации — кандидата технических наук Белых, Андрей Александрович

ВВЕДЕНИЕ.

1. АНАЛИЗ СРЕДСТВ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ.

1.1 Проблемы разработки программного обеспечения встраиваемых систем, реализуемых на однокристальных микроконтроллерах.

1.2 Цели анализа архитектуры микроконтроллеров и средств разработки программного обеспечения встраиваемых систем.

1.3 Языки разработки программного обеспечения встраиваемых систем.

1.4 Инструментальные среды разработки программного обеспечения для однокристальных микроконтроллеров.

Введение 2006 год, диссертация по информатике, вычислительной технике и управлению, Белых, Андрей Александрович

Актуальность. В настоящее время в системах управления и обработки данных все чаще применяются микроконтроллеры, решающие широкий спектр задач. Однокристальные микроконтроллеры (ОМК) являются наиболее массовым видом устройств современной микропроцессорной техники, годовой объем выпуска которых составляет более 2,5 млрд. штук. Интегрируя на одном кристалле высокопроизводительный процессор, память и набор периферийных схем, ОМК позволяют с минимальными затратами реализовать высокоэффективные системы и устройства управления различными объектами (процессами). В отличие от обычных микропроцессоров, для работы которых необходимы внешние интерфейсные схемы, в корпусе ОМК наряду с основными функциональными узлами размещены такие вспомогательные узлы, как тактовый генератор, таймер, контроллер прерываний, цифро-аналоговый и аналого-цифровой преобразователи, порты ввода-вывода.

Система управления, в зависимости от сложности решаемых ею задач, может быть реализована на основе специализированной интегральной схемы, многокристальной микропроцессорной системы (МПС) или на основе ОМК. Применение МПС, выполненной в виде модульной конструкции, или однокристального микроконтроллера позволяет «встроить» систему управления непосредственно в управляемый объект. Поэтому для характеристики систем управления данного класса в настоящее время широко используется термин «встроенная система» {embedded system). Этот термин обозначает вычислительную систему, входящую неотъемлемой частью в состав другой системы, или, что более точно, - аппаратные средства обработки данных и программное обеспечение, формирующие управляющий компонент какой-либо технической метасистемы, который должен функционировать при минимальном вмешательстве человека.

Основными характеристиками встраиваемых систем являются [1]:

- ограниченность аппаратных ресурсов;

- неизменность программного обеспечения в процессе применения;

- высокая надежность;

- короткий цикл разработки- внедрения;

- серийность производства;

- низкая себестоимость.

Именно благодаря этим качествам ОМК находят широкое применение в системах промышленной автоматики, контрольно-измерительных приборах и системах, аппаратуре связи, автомобильной электронике, медицинском оборудовании, бытовой технике и многих других областях.

Применение однокристальных микроконтроллеров позволяет перенести основные затраты, связанные с разработкой встраиваемых систем управления, из аппаратной в программную область. Это неминуемо влечет за собой увеличение сложности программного обеспечения (ПО) микроконтроллеров.

Особенностью разработки ПО для ОМК является использование языка низкого уровня - языка ассемблера. Это связано с тем, что при реализации встраиваемых систем критичными являются время реакции на внешние воздействия, время выполнения заданных процедур обработки данных, размер программного кода и области данных [2]. Последнее связано с тем, что зачастую сначала выбираются аппаратные средства, включающие ядро и периферию микроконтроллера, и только затем разрабатывается ПО для выбранного ОМК. Следовательно, выход за рамки возможностей микроконтроллера, например по такому показателю, как емкость памяти, влечет повторный выбор ОМК и проектирование системы практически с нуля. Это обусловлено тем, что языки ассемблеров и архитектуры вновь выбранного и ранее используемого микроконтроллеров могут существенным образом отличаться.

Учитывая сказанное, представляется актуальной разработка методов и средств создания повторно-используемых программных модулей, написанных на унифицированном языке ассемблера, инвариантном относительно архитектур ОМК заданного целевого класса. При этом инвариантность программных модулей должна обеспечиваться эффективной трансляцией унифицированного языка ассемблера на внутренние машинные языки микроконтроллеров целевого класса.

Перспективным концептуальным подходом к разработке указанных выше методов и средств является создание такой унифицированной архитектуры однокристального микроконтроллера, которая позволила бы разрабатывать программное обеспечение для различных ОМК целевого класса, используя унифицированный язык ассемблера, единую инструментальную среду разработки и накопленные (разработанные ранее) эффективные программные модули.

Целью диссертационной работы является разработка механизмов унификации архитектур ОМК и их применение для повышения эффективности создания программного обеспечения встраиваемых систем.

Для достижения поставленной цели требовалось, чтобы были решены следующие основные задачи:

- проведен анализ существующих методов и средств разработки ПО однокристальных микроконтроллеров, а также архитектур ОМК наиболее известных производителей;

- поставлена задача повышения эффективности разработки ПО ОМК, относящихся к ограниченным целевым классам архитектур, на основе унификации архитектур этих классов;

- предложен способ формального описания архитектур ОМК;

- сформулированы правила выделения базового набора унифицируемых архитектур ОМК в целевом классе;

- разработана процедура унификации целевых архитектур по выделенному базовому набору;

- разработана методика создания ПО для однокристальных микроконтроллеров;

- разработана унифицированная архитектура ОМК, включающая систему команд, представленную на ассемблерном уровне (унифицированный ассемблер), для реального целевого класса микроконтроллеров;

- разработан инструментарий, позволяющий вести создание программ для однокристальных микроконтроллеров с использованием унифицированного ассемблера;

- определены критерии оценки использования унифицированной архитектуры и ассемблера;

- проведена сравнительная оценка эффективности использования унифицированной архитектуры и ассемблера при создании ПО встраиваемых систем.

Методы исследования. При выполнении работы использовались методы теории множеств, теории графов, теории формальных грамматик, теории программирования, методы формального описания синтаксиса и семантики языков программирования.

Научная новизна. На основе анализа архитектуры современных однокристальных микроконтроллеров, а также подходов к разработке программного обеспечения ОМК предложена методика разработки приложений для встраиваемых систем на языке ассемблер. Разработка ПО, в соответствии с предложенной методикой, основана на унификации архитектур однокристальных микроконтроллеров. Научную новизну раскрывают следующие результаты:

- предложен способ формального описания архитектур однокристальных микроконтроллеров, включающий формальное описание структуры, системы команд и алгоритма функционирования;

- сформулированы принципы разработки унифицированной архитектуры и ассемблера для заданного целевого класса однокристальных микроконтроллеров;

- предложена методика разработки программного обеспечения встраиваемых систем на однокристальных микроконтроллерах, использующая принципы унификации их архитектур.

Достоверность полученных результатов. Достоверность полученных в работе результатов подтверждается внедрением разработанной методики и процедуры унификации архитектур ОМК заданного целевого класса.

Практическая ценность. Предложенные принципы и методы были положены в основу создания среды разработки ПО для встраиваемых систем на базе 8-ми разрядных микроконтроллеров с использованием унифицированного для целевого класса ОМК языка ассемблера. Реализованные на этом языке модули (конечные программы, выполняющие одну или несколько функций) могут быть повторно использованы в других программных продуктах, и быть откомпилированными под различные микроконтроллеры без внесения изменений в исходный текст этих модулей. Кроме того, разработанная унифицированная система мнемонических кодов команд - мнемоник и соответствующая структура модельного микроконтроллера могут быть использованы для обучения специалистов, например при изучении ими принципов разработки ПО однокристальных микроконтроллеров на языке ассемблер. Использование созданной процедуры унификации в коммерческих разработках подтверждено актом о внедрении.

Апробация работы. Основные результаты исследований отражены в докладах на международных конференциях «Компьютерные технологии в науке, производстве, социальных и экономических процессах» (Новочеркасск, 2004), «Радиоэлектроника, электротехника и энергетика» (Москва, 2002, 2003, 2004).

Публикации. По теме диссертации опубликовано 6 научных работ.

1) Белых А.А. Применение модульных принципов при разработке ПО для встраиваемых систем. // Восьмая международная науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика»: Тез. докл. в 3-х т.-М.: МЭИ, 2002. Т. 1. - С. 317-318.

2) Белых А.А. Критерии эффективной разработки ПО для встраиваемых систем. // Девятая международная науч.-техн. конф. студентов и аспирантов: Тез. докл. в 3-х т. - М.: МЭИ, 2003. Т. 1. - С. 348.

3) Белых А.А. Хранение информации о языках программирования для встраиваемых систем. // Тезисы и доклады X международной конф. «Теоретические и клинические аспекты применения биорезонансной терапии». - М.: ИМЕДИС, 2004. Ч. 2 - С. 372-374.

4) Белых А.А. Генерация промежуточного кода при компиляции ПО для встраиваемых систем. // Десятая международная науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика»: Тез. докл. в 3-х т. - М.: МЭИ, 2004. Т. 1. - С. 358-359.

5) Белых А.А. Проблемы эффективной разработки ПО для встраиваемых систем и пути их решения. // Тезисы и доклады X международной конф. «Теоретические и клинические аспекты применения биорезонансной терапии». - М.: ИМЕДИС, 2004. Ч. 2 - С. 381-387.

6) Белых А.А. Принципы построения унифицированной архитектуры однокристального микроконтроллера. // Компьютерные технологии в науке, производстве, социальных и экономических процессах: Материалы V международной. науч.-практ. конф., г. Новочеркасск, ноябрь 2004 г.: в 3 ч. / Юж.-Рос. гос. техн. ун-т (НПИ). - Новочеркасск: ЮРГТУ, 2004. 4.2. - С. 27-28.

Структура и объем работы. Диссертация состоит из введения, семи глав, заключения, списка информационных источников и приложений. Диссертация содержит 135 страниц машинописного текста без учета приложений.

Заключение диссертация на тему "Унификация архитектур однокристальных микроконтроллеров и ее применение для разработки программного обеспечения встраиваемых систем"

7.4 Основные результаты и выводы

1) Определена область применения предлагаемой методики и унифицированного ассемблера.

2) Сформулированы основные критерии сравнения программ для ОМК, реализованных с помощью различных языков программирования.

3) Рассмотрены два примера применения унифицированного языка ассемблер при разработке законченных программ для 8-ми разрядных ОМК, проведена оценка разработанных программ, сравнение с другими языками программирования микроконтроллеров.

4) Показана эффективность использования разработанной унифицированной архитектуры ОМК, особенно в модифицируемых и постоянно развивающихся проектах.

ЗАКЛЮЧЕНИЕ

Цели, поставленные в процессе подготовки диссертации, сформулированные во введении, полностью достигнуты. В ходе проведенных исследований получены следующие основные результаты.

1) Проведен анализ структур и систем команд современных ОМК, что позволило классифицировать микроконтроллеры по ряду выделенных признаков, характеризующих их архитектуру.

2) Установлено, что подавляющее большинство производителей микроконтроллеров поставляют специализированные компиляторы с ассемблера, обеспечивающие генерацию эффективного целевого машинного кода. Эти компиляторы могут использоваться для реализации двухуровневой схемы трансляции, которая используется в настоящей работе.

3) Предложено использование языка ассемблера в качестве унифицированного средства написания программ для ОМК в силу ряда причин - ограниченного размера памяти программ и данных, высоких требованиями к временным характеристикам программного обеспечения однокристальных микроконтроллеров.

4) Разработана методика реализации программного обеспечения встраиваемых систем на однокристальных микроконтроллерах с использованием унифицированного языка ассемблера абстрактного ОМК, которая позволяет в рамках одной группы разработчиков использовать широкий спектр микроконтроллеров, которые могут в значительной степени различаться по системе команд и структуре.

5) Предложен способ формального описания архитектур ОМК.

6) Разработана процедура построения абстрактной унифицированной архитектуры, основанная на формальных описаниях ОМК, принадлежащих к суженному целевому классу архитектур.

7) Разработана унифицированная архитектура ОМК для реального целевого класса 8-ми разрядных однокристальных микроконтроллеров с использованием предложенной процедуры унификации. Разработанный унифицированный ассемблер отличается наглядностью, простотой использования и, в то же время, полнотой.

8) Разработаны и реализованы алгоритмы лексического и синтаксического анализа текстов программ на унифицированном языке ассемблера (для унифицированной архитектуры ОМК), разработана инструментальная среда создания программ для микроконтроллеров, учитывающая сформулированные аспекты методики.

9) Показана эффективность применения унифицированного языка ассемблера однокристального микроконтроллера по сравнению с целевыми ассемблерами и языком С.

Выполненные исследования позволяют повысить эффективность разработки ПО микроконтроллеров, увеличить количество взаимозаменяемых ОМК в проекте за счет использования унифицированной архитектуры при большом количестве проектов.

Работа над диссертацией показала, что в дальнейшем возможно развитие предложенной в ней концепции. Целесообразным является, например, создание коммерчески используемой интегрированной среды разработки ПО ОМК, позволяющей компилировать тексты программ на внутренние языки наиболее подходящих целевых микроконтроллеров автоматически.

Библиография Белых, Андрей Александрович, диссертация по теме Вычислительные машины и системы

1. Предко М. Руководство по микроконтроллерам. М.: Постмаркет, 2001.-Т. 1 -416 е., Т. 2-382 с.

2. Назаров С.В. Операционные системы специализированных вычислительных комплексов: Теория построения и системного проектирования. М.: Машиностроение, 1989. - 400 с.

3. Видениекс П.О. и др. Проблемно-ориентированные микропроцессорные системы в производстве РЭА / П.О. Видениекс, Я.Я. Вентиньш, А.А. Кривченков. -М.: Радио и связь, 1987. 296 с.

4. Белых А.А. Проблемы эффективной разработки ПО для встраиваемых систем и пути их решения // Тез. и доклады X Междунар. Конф. «Теоретические и клинические аспекты применения биорезонансной терапии». М.: «ИМЕДИС», 2004. Ч. 2 - С. 381-387.

5. Представлено в Интернете по адресу www.cminusminus.org.

6. Адрес сайта в Интернете www.eecs.harvard.edu.

7. Кухар А. Язык С с двумя минусами, или Как ассемблер стал порта-бельным, Издательский Дом «КОМИЗДАТ», 2004.

8. С. Емец, М. Еременко. Компиляторы Си для микроконтроллеров PIC18. Часть 2. http://www.chipnews.com.ua/html.cgi/arhiv/0209/st-03.htm.

9. CCS PIC С Compiler Comparison, www.ccsinfo.com/compare.shtml.

10. ЗобнинЮ.С. Воздействие средств подержки разработки на рынок микроконтроллеров. М.: журнал «Компоненты и технологии», номер за 05.07.2000.

11. Методология RAD. М.: Центр Информационных Технологий, 2001. http://www.citforum.ru/database/case/glaval32.shtml.

12. Шнитман В.З., Кузнецов С.Д. Аппаратно-программные платформы корпоративных информационных систем. М.: Центр Информационных Технологий, 1998.

13. Современные высокопроизводительные компьютеры. Гл. 4. Основные архитектурные понятия. -М.: Центр Информационных Технологий, 1999.

14. Пустоваров В.И. Язык Ассемблера в программировании информационных и управляющих систем. М.: «ЭНТРОП», К, «ВЕК», 1997. - 304 с.

15. John Day. Microcontrollers, EBN, The Technology Network, 2000.

16. Фрунзе А., Контроллерный рынок России: факты и домыслы, парадоксы и закономерности, журнал «Компоненты и технологии», 2001.

17. J. Edwards. The global top 20: Semiconductor sales are jumping, but capacity addition remains muted, leading to higher prices and fears of shortages. My-ESM, 2004. http://www.my-esm.com/showArticle.jhtml?articleID=165600157.

18. C. Souza. Crista SouzaTop semiconductor companies: Pricing pressure remains the order of the day for the vast majority of chipmakers. EBN, 2003. http://www.my-esm.com/showArticle.jhtml?articleID= 10300871.

19. R. Cravotta. Reaching down: 32-bit processors aim for 8 bits. EDN, 2005. http://www.edn.com/index.asp?layout=articlePrint&articleID=CA502421.

20. Microcontrollers predicted to show healthy growth. EBN, 2003. http://www.my-esm.com/showArticle.jhtml?articleID=8600262.

21. Заводсков С.Д. Микропроцессоры и периферийные устройства. Введение в микропроцессоры, 2002. http ://www. sm.bmstu.ru/sm5/n4/oba/proz 1 .html.

22. Motorola Microcontroller Selector Guide Quarter 3 2003. Motorola,2003.

23. M-CORE MMC2001 User manual. Motorola, 1998.25. 8XC251SA/SB/SP/SQ Embedded Microcontroller User's Manual. Intel, 1996.26. 8XC196Kx/Jx/CA Microcontroller Family User's Manual. Intel, 1997.

24. TMS370 Microcontroller Family User's Guide. Texas Instruments,1997.

25. MSP430xlxx Family User's Guide. Architecture Guide and Module Library, SLAU049, Texas Instruments, 2000.

26. Microchip 2004 Technical Library First Edition. Microchip, 2004.

27. SX18 AC/20AC/28 AC/48 AC/52 AC High-Performance 8-Bit Microcontrollers with EE/Flash Program Memory and In-System Programming Capability. -Ubicom, 2001.

28. H8 8 & 16-bit CISC Technical Product Overview. - Hitachi, 2001.

29. Кривченко И., Ламберт E. AVR-микроконтроллеры: семь ярких лет становления. журнал «Компоненты и технологии», №1 за 2004 г.

30. Кривченко И. Микроконтроллеры общего назначения для встраиваемых приложений производства ATMEL Corp. журнал «Электронные Компоненты», №5 за 2002 г.

31. Белых А.А. Критерии эффективной разработки ПО для встраиваемых систем // Девятая Междунар. науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика»: Тез. докл. В 3-х т. М.: МЭИ, 2003. Т. 1.-С. 348.

32. Панфилов И.В., Половко A.M. Вычислительные системы/ Под ред. A.M. Половко. М.: Сов. Радио, 1980, 304 с.

33. Каган Б.М. Электронные вычислительные машины и системы: Учеб. пособие для вузов. М.: Энергия, 1979. - 528 с.

34. Клингман Э. Проектирование микропроцессорных систем. / Пер. с англ. М.: Мир, 1980.

35. Белых А.А. Применение модульных принципов при разработке ПО для встраиваемых систем // Восьмая Междунар. науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика»: Тез. докл. В 3-х т. -М.: МЭИ, 2002. Т. 1.-С.317.

36. Белых А.А. «Разработка и исследование интегрированной среды быстрой реализации приложений для встраиваемых систем». Дис. на соискание степени магистра. М.: МЭИ, 2002. - 116 с.

37. Волкова И.А., Руденко Т.В. Формальные грамматики и языки. Элементы теории трансляции. М.: Изд-во МГУ им. М. В. Ломоносова, 1996.

38. Ахо А.В., Сети Р., Ульман Д.Д. Компиляторы: принципы, технологии и инструменты. / Пер. с англ. М.: Издательский дом «Вильяме», 2001.

39. Белых А.А. Генерация промежуточного кода при компиляции по для встраиваемых систем // Десятая Междунар. науч.-техн. конф. студентов и аспирантов «Радиоэлектроника, электротехника и энергетика»: Тез. докл. В 3-х т. М.: МЭИ, 2004. Т. 1. - С. 358-359.

40. Белых А.А. Хранение информации о языках программирования для встраиваемых систем // Тез. и доклады X Междунар. Конф. «Теоретические и клинические аспекты применения биорезонансной терапии». М.: ИМЕДИС, 2004. Ч. 2 - С. 372-374.

41. Каляев А.В. Микропроцессорные системы с программируемой архитектурой. М.: Радио и связь, 1984. - 240 с.

42. Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование. Основы построения трансляторов./Учеб. пособ. СПб.: КОРОНА принт, 2000. - 256 с.

43. Капитонова Ю.В., Летичевский А.А. Математическая теория проектирования вычислительных систем. М.: Наука, гл. ред. физ.-мат.лит., 1988. -296 с.

44. Подбельский. В.В. Язык Си++/ Учеб. пособ. М.: Финансы и статистика, 1995.-560 с.

45. Лавров С.С. Программирование. Математические основы, средства, теория. СПб.: БХВ-Петербург, 2001. - 320 с.

46. Stroustrup В. The С++ programming language, spec, edition. NJ: Addison-Wesley, 2002. -1056 p.

47. Зиндер Е.З. Проектирование баз данных: новые требования, новые подходы. М.: Корпорация ЛВС, 2001.

48. ER/Studio User's Guide. San Francisco: Embarcadero Technologies, Inc., 2003. Дополнительная информация доступна на www.embarcadero.com.

49. Архангельский А.Я. Язык SQL в Delphi 5 М.: ЗАО «Изд-во БИНОМ», 2000. - 208 е.: ил. (Все о Delphi).

50. Гоффман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. -СПб.: БХВ-Петербург, 2000. 656 е.: ил.

51. Таненбаум Э. Архитектура компьютера. 4-е изд. Спб.: Питер, 2005. - 699 с.