Главная страница
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
qrcode

Программирование микроконтроллеров 1986ВЕ9x компании Миландр. Контрольные вопросы для самопроверки. Предназначено для студентов технических высших учебных заведений очной и заочной формы обучения, аспирантов, инженерно-технических работников


НазваниеКонтрольные вопросы для самопроверки. Предназначено для студентов технических высших учебных заведений очной и заочной формы обучения, аспирантов, инженерно-технических работников
АнкорПрограммирование микроконтроллеров 1986ВЕ9x компании Миландр.pdf
Дата07.06.2019
Размер3.98 Mb.
Формат файлаpdf
Имя файлаProgrammirovanie_mikrokontrollerov_1986VE9x_kompanii_Milandr.pdf
оригинальный pdf просмотр
ТипКонтрольные вопросы
#52981
страница7 из 71
КаталогОбразовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
1   2   3   4   5   6   7   8   9   10   ...   71

26 ради оптимизации кода. Комментарии бывают многострочными (начинаются с символов /* и заканчиваются символами */) и однострочными (начинаются с символов //).
/* Многострочный комментарий нередко размещают в начале файла,
где он содержит имя автора и описание программы */
#include "MDR32Fx.h"
// Подключаем заголовочный файл MDR32Fx.h
Построим проект, нажав клавишу F7. Под построением понимают компиляцию всех модулей, входящих в состав проекта, их ассемблирование и компоновку. То же действие доступно и через пункт главного меню
Project – Build target
или через кнопку на панели инструментов. Заметим, что иногда полезно бывает полностью перестроить проект, выбрав пункт меню Project – Rebuild all target files
или нажав кнопку (горячая клавиша не предусмотрена). Разница между построением и перестроением проекта заключается в том, что в процессе перестроения заново компилируются все модули, а при построении – только те, которые подверглись изменению после последней компиляции. Перестроение занимает больше времени, но работает надежней.
Результатом построения проекта является так называемый HEX-файл, предназначенный для загрузки в память микроконтроллера. Формат HEX, предложенный в свое время фирмой Intel, предназначен для представления произвольных двоичных данных в текстовом виде. Если открыть такой файл обычным текстовым редактором, то он будет состоять из строк шестнадцатеричных цифр, поэтому его и называют «HEX» – от английского слова «hexadecimal» – «шестнадцатеричная система счисления».
Результаты построения отображаются в нижнем окне Build Output.
Далее приведен в сокращенном виде пример сообщений, полученных при полном перестроении проекта.

27
Rebuild target 'MDR32F92QI' compiling main.c... compiling led.c... compiling rst.c... compiling MDR32F9Qx_it.c... compiling MDR32F9Qx_port.c... compiling MDR32F9Qx_rst_clk.c... assembling startup_MDR32F9Qx.s... compiling Retarget.c... compiling RTX_Conf_CM.c... linking...
Program Size: Code=4524 RO-data=268 RW-data=44 ZI-data=6820
".\MDR32F92QI\MDR32F92QI.axf" - 0 Errors, 0 Warning(s).
Как видно из примера, сначала были откомпилированы все модули на языке Си (файлы с расширением *.c) и ассемблирован вспомогательный модуль startup_MDR32F9Qx.s, написанный на языке ассемблер. Затем все модули были скомпонованы. Процесс построения прошел без ошибок и замечаний: 0 Errors, 0 Warning(s). Если же в процессе компиляции или компоновки возникнут ошибки, что часто бывает в процессе написания и отладки программ, то соответствующие сообщения появятся в этом окне.
В строке Program Size приводятся важнейшие характеристики полученной программы – занимаемая ей память и ее объем:

Code=4572 – программный код занимает 4572 байта флеш-памяти;

RO-data=268 – постоянные данные (различные константы) занимают 268 байт флеш-памяти;

RW-data=44 – оперативные данные (переменные), которые инициализируются ненулевыми значениями, занимают 44 байта ОЗУ.
Для хранения инициализационных значений также приходится выделить 44 байта во флеш-памяти;

ZI-data=6820 – оперативные данные (переменные), которые инициализируются нулями, занимают 6820 байта ОЗУ.
Таким образом, общий объем требуемой флеш-памяти составляет:
Code + RO + RW = 4572 + 268 + 44 = 4884 (байта).
Общий объем требуемой оперативной памяти составляет:
ZI + RW = 6820 + 44 = 6864 (байта).

28
Создавая проект надо всегда помнить, что объем памяти микроконтроллера ограничен, и нужно укладываться в установленные рамки.
Напомним, что для нашего микроконтроллера K1986ВЕ92QI объем флешпамяти программ составляет 128 Кбайт, а оперативной памяти данных –
32 Кбайт. Кроме того, в ознакомительной версии Keil µVision MDK-ARM, которой вы сейчас пользуетесь, установлено ограничение в 32 Кбайта
флеш-памяти. Вплотную к этим показателям приближаться не следует.
Лучше всегда иметь запас хотя бы в 10%.
Если памяти не хватает, то можно порекомендовать такие действия:

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

использовать микроконтроллер того же семейства, но с большим объемом флеш-памяти программ или ОЗУ;

использовать менее ресурсоемкие алгоритмы.
Результатом построения проекта являются файлы Lab1_1.axf и
Lab1_1.hex
. Файл Lab1_1.axf содержит в себе исполняемый код и необходимую отладочную информацию. Он применяется для отладки программы в среде Keil. Файл Lab1_1.hex, как уже говорилось, содержит готовую «прошивку» для микроконтроллера в формате HEX. Стоит отметить, что имея готовый HEX-файл, можно загружать в микроконтроллер программу и без среды Keil, используя другие программные средства.
1.7.
Структура проекта в Keil µVision
Проект программы для микроконтроллера в среде Keil µVision представляет собой достаточно сложную совокупность файлов, каталогов и настроек. Поэтому при начальном знакомстве со средой Keil µVision рекомендуется не создавать новый проект, проводя многочисленные настройки, а воспользоваться уже созданным проектом, внеся в него необходимые изменения. Впрочем, такой подход широко используется и при разработке серьезных приложений.
1.7.1.
Модули проекта
Во-первых, проект состоит из модулей, написанных на языках Си, С++ или ассемблер. Напомним, что модуль на языке Си, как правило, состоит из
1   2   3   4   5   6   7   8   9   10   ...   71

перейти в каталог файлов

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей