
- •Структура, основные функциональные узлы встраиваемых систем. Информационные потоки, представления информации.
- •Представление данных в вычислительных системах. Фиксированная и плавающая точка.
- •Системы счисления: двоичная, двоично-десятичная, десятичная, восьмеричная, шестнадцатеричная.
- •Устройства предварительной обработки сигналов чэ.
- •Микропроцессор: архитектура и организация вычислительного процесса.
- •Микроконтроллеры: особенности структуры и организации вычислительного процесса.
- •Цифровые сигнальные процессоры (цсп): особенности структуры и организации вычислительного процесса.
- •Память: виды, особенности функционирования.
- •Виды и особенности программирования и функционирования постоянных запоминающих устройств.
- •Основные параметры и характеристики запоминающих устройств.
- •Интерфейсы: основные понятия и характеристики. Скорость передачи информации.
- •Интерфейсы: основные типы и их характеристики
- •Цифровые устройства. Логические устройства.
- •Программируемая логика.
- •Устройства питания: особенности питания вычислительных устройств и микропроцессоров, супервизор, управление включением выключением, режимы экономии энергии.
- •OrCad Capture – процесс ввода схемы электрической принципиальной.
- •OrCad Layout – процесс разработки печатной платы.
- •Единая система конструкторской документации (ескд). Основные документы электронных устройств.
- •Программирование встраиваемых систем. Алгоритмы, способы отображения.
- •Структура по (программного обеспечения).
- •Операционные системы. ( Смотри также билет № 28)
- •Процесс программирования.
- •Языки программирования.
- •Интегрированная среда программирования.
- •Откладка программ.
- •Программа документации. Еспд.
Процесс программирования.
Технологии программирования.
Программа состоит из одной или нескольких частей, называемых программными модулями. Программный модуль на языке программирования называется исходным модулем. В результате трансляции исходный модуль превращается в объектный модуль.
Нисходящее программирование (сверху вниз) – базируется на декомпозиции задачи на множество подзадач, которые программируются как именованные процедуры с возможностью обращения. Подзадачи с неготовыми процедурами подменяются в структуре программы программными «заглушками», что позволяет производить отладку программы в целом, заменяя «заглушки» по мере готовности подзадач.
Восходящее программирование (снизу вверх) – базируется на обратном процессе: программирование и отладка программ самого нижнего уровня, затем их сборка в блоки на уровне подзадач, затем сборка блоков и отладка программы в целом. Обе технологии позволяют использования библиотеки стандартных программ для реализации отдельных процедур. Система команд процессора включает значительное число элементарных инструкций, которые могут непосредственно исполняться аппаратными средствами системы.
Программирование в машинных кодах
Программа записывается в виде чисел, соответствующих адресам ячеек памяти и кодам команд процессора.
Недостатки:
- трудоемкость: громоздкая запись, трудная запоминаемость команд;
- сложность поиска ошибок: трудная читаемость, плохая обозримость;
- трудность внесения изменений при изменении объема программы в памяти.
Переход к 8- или 16-ной системе упрощает запись, но не устраняет других недостатков.
Достоинства:
- максимальное быстродействие,
- минимальный объем программы;
- возможность непосредственного ввода программы.
Программирование на языке ассемблера
Программа записывается в виде мнемокодов и символических имен регистров, соответствующих кодам команд процессора и адресам ячеек памяти. Мнемокоды представляют урезанные до нескольких букв слова английского языка
Использование мнемокодов уменьшает трудности программирования в машинных кодах:
- менее громоздкая запись, легче запоминать команды;
- проще поиск ошибок: программа лучше обозревается и легче читается;
- внесение изменений не требует применения специальных приемов по размещению в памяти.
- быстродействие и объем программы не изменяются;
- для ввода программы в систему необходима ее трансляция ассемблером.
Язык ассемблера, как и машинные коды, жестко привязан к архитектуре и индивидуален для каждого процессора.
Программирование на языке макроассемблера
Отличается возможностью присвоения имени некоторой последовательности команд для повторения этой последовательности в других местах программы путем записи имени в этих местах. Это сокращает запись текста программы и лучшую его обозримость, однако для трансляции в машинные коды требуется специальный макропроцессор.
Языки ассемблера и макроассемблера относятся к машинно-ориентированным языкам.
Программирование на языках высокого уровня
Приближаются к обычному языку записи математических и логических операций, причем сложные математические и логические процедуры представляются короткими записями. Обеспечивают дальнейшее сокращение текста, улучшение обозримости программы и облегчения процесса выявления ошибок.
Различают машинно-зависимые и машинно-независимые языки высокого уровня.
Для ввода в систему программы, написанной на языке высокого уровня необходима ее трансляция. Трансляторы с языков высокого уровня сложнее, чем с языков ассемблера, причем с машинно-независимых языков они сложнее, чем с машинно-зависимых.
Полученная при трансляции исполняемая программа занимает больший объем памяти (от десятков до сотен процентов) и медленнее выполняется (сравнение производится с программой на языке ассемблера). Эффективность трансляции с машинно-независимых языков они ниже, чем с машинно-зависимых.
Перевод программы на машинный язык осуществляется транслятором. Различают следующие виды трансляторов:
- компилятор – переводит программу в целом на машинный язык, после чего исполняемый файл записывается в память системы;
- интерпретатор – переводит на машинный язык отдельные команды исходного текста и передает их в систему для исполнения;
- ассемблер – производит присвоение операторам программы, написанной на языке ассемблера, соответствующих машинных кодов.
Трансляция начинается с чтения исходного текста (называется проходом), при котором производится его лингвистический анализ и генерация сообщений о синтаксических ошибках с указанием их места и типа. Различают однопроходные и многопроходные трансляторы. Многопроходные трансляторы при первом проходе переводят программу на промежуточный язык, на втором осуществляют ее техническая подготовка к вычислениям (точки вычислений, чистка циклов, распределение индексных регистров и т.п.), на третьем производится генерация и оптимизация выходного кода (при наличии оптимизатора в составе транслятора).