Программирование микроконтроллеров 1986ВЕ9x компании Миландр. Контрольные вопросы для самопроверки. Предназначено для студентов технических высших учебных заведений очной и заочной формы обучения, аспирантов, инженерно-технических работников
35 совместимых с ARM32 Cortex. Основное в обеих библиотеках – модули на языке Си с соответствующим набором функций, т.е. файлы *.c и *.h. Рисунок 1.8 – Структура каталогов проекта В каталоге Project лежат подкаталоги отдельных проектов, коих может быть произвольное количество. Как видно из рисунка 1.8, здесь их два: Lab1_1 и Lab1_2. Таким образом, все проекты используют одни и те же библиотеки из каталога Libraries, расположенного чуть выше. Это удобно с точки зрения экономии места на диске и простоты обновления библиотек. Непосредственно в подкаталоге проекта Lab1_1 размещены все файлы модулей *.c и заголовков *.h, которые созданы программистом в рамках проекта (из группы User). По сути, это – все исходники проекта. Сюда же помещают ранее упомянутые файлы из группы RTX: RTX_Conf_CM.c и Retarget.c . Из подкаталогов, представляющих для нас интерес, здесь есть подкаталог MDK-ARM, содержащий вспомогательные файлы для среды Keil. Для других сред программирования создаются отдельные подкаталоги. Таким образом пытаются достигнуть переносимости проекта между разными средами, что, впрочем, на практике достижимо далеко не всегда. В подкаталоге MDK-ARM интересен файл проекта Project.uvproj. Он содержит все основные настройки проекта. Если этот файл попытаться открыть в Проводнике, то автоматически запустится среда Keil и загрузится соответствующий проект.
36 В подкаталоге MDR32F92QI (имя дано по названию отладочной платы) средой Keil создаются разнообразные вспомогательные файлы в процессе компиляции, ассемблирования и компоновки. Отметим лишь важность файлов с расширениями *.axf , *.hex , *.map и *.sct : *.axf – файл необходим для внутрисхемной отладки проекта; *.hex – файл прошивки микроконтроллера, т.е. то, ради чего все это и затевается; *.sct – текстовый файл, содержащий описание используемых проектом секций памяти; *.map – файл содержит полное описание распределения памяти для объектов программы (переменных, констант, функций); анализируя этот файл, можно определить количество памяти, задействованной в проекте, и цель ее использования. Все, что содержится в подкаталоге MDR32F92QI, можно смело удалять: при построении проекта все будет возвращено. Однако не следует удалять файл *.sct, если вы правили его самостоятельно. 1.7.3. Основные настройки проекта В-третьих, каждый проект имеет свои настройки. Рассмотрим основные. Вернемся в среду Keil и зайдем в настройки проекта, который, естественно, должен быть открыт, выполнив пункт меню Project – Options for Target или нажав кнопку на панели инструментов. Перейдем на вкладку Device (устройство), как показано на рисунке 1.9. Здесь при помощи дерева выбирается тип микроконтроллера. В нашем случае – MDR32F9Q2I (это название микроконтроллера K1986ВЕ92QI, используемое для международного рынка). Далее перейдем на вкладку Target (цель проекта), показанную на рисунке 1.10. На этой вкладке задается тактовая частота микроконтроллера, при необходимости выбирается операционная система, а также указываются используемые в микроконтроллере диапазоны памяти.
37 Рисунок 1.9 – Выбор типа микроконтроллера Рисунок 1.10 – Выбор операционной системы, задание тактовой частоты процессора и диапазонов адресов используемой памяти
38 В нашем случае указывается частота 8 МГц (на такой частоте микроконтроллер запускается, а затем разгоняется до частоты 80 МГц). В микроконтроллерах семейства 1986ВЕ9х доступно 128 Кбайт (0x20000 байт) встроенной флеш-памяти программ (IROM), расположенной по адресам, начиная с 0x8000000, и 32 Кбайт (0x8000 байт) встроенной оперативной памяти данных (IRAM), расположенной по адресам, начиная с 0x20000000. Эти настройки памяти и задаются здесь. В наших проектах будет использоваться ОСРВ RTX. Чтобы задействовать ее в проекте, выбираем в списке Operation system значение RTX Kernel. Это позволит подключить к проекту необходимые модули операционной системы, а также сделает доступным специальный монитор отладки ОСРВ RTX. Далее откроем вкладку Output (рисунок 1.11). Тут можно выбрать каталог, в котором будут размещаться выходные файлы проекта, разрешить или запретить создание HEX-файла, а также указать его имя. Теперь перейдем на вкладку С/C++ (рисунок 1.12). Здесь задаются настройки компилятора языка С/C++. Нас в основном может заинтересовать уровень оптимизации и пути к библиотекам. Рисунок 1.11 – Настройка параметров HEX-файла