Лабораторная_работа_№_01_МТ4-81_Keil_uVision (Лабораторный практикум), страница 2
Описание файла
Файл "Лабораторная_работа_№_01_МТ4-81_Keil_uVision" внутри архива находится в папке "Лабораторный практикум". PDF-файл из архива "Лабораторный практикум", который расположен в категории "". Всё это находится в предмете "языки интернет-программирования" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "языки интернет-программирования" в общих файлах.
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
И окне Project подведите курсор к названию проекта и нажмите правую клавишумышки. В открывшемся окне выберите Options for Target 'Target 1',3. Project - Options for Target 'Target 1',4. Alt + F7.На экране появляется окно настройки проекта (рис. ):- 10 -РисунокDeviceНа первой закладке ."Device" выбирается тип МК. Тип МК мы выбрали.TargetОкно описания карты памяти (начальный адрес и размер памяти программ иначальный адрес и размер памяти данных).- 11 -Рисунок.OutputОкно установки для вывода результатов работы компановщика.РисунокListing.- 12 Окно установки параметров вывода результатов трансляции и сборщика (Listing).Рисунок.UserРисунок.- 13 C/C++Окно установки параметров транслятора С++.Рисунок.AsmОкно установки параметров транслятора с языка ассемблера.РисунокLinker.- 14 -Рисунок.DebugВ данном окне можно выбрать режимы:Use Simulation - режим симуляции выбранного МК.Use - отладка с помощью отладочной платы.
(STM32L-DISCOVERY)- 15 -Рисунок.UtilitesРисунок.- 16 В этом окне устанавливается имя драйвера, с помощью которого будетотлаживаться МК система.Настройки выполнены. Можно приступать к написанию программы на языкеассемблер.В созданный ассемблерный файл скопируем содержимое файла Shablon_lab_1.asm.Удаляем небольшой демонстрационный пример, находящийся между двумя строкамикомментариев. (Начало и конец программы пользователя). На освободившемсяпространстве запишем нашу программу.Программу необходимо компилировать и линковать.
Это можно сделать двумяспособами:1. Найти в панели инструментов кнопку.2. Выполнить следующие действия: Project - Rebuild all Target files.Если в программе имеются синтаксические ошибки, то транслятор укажет номер строкипрограммы с ошибкой. Исправте все выявленные ошибки и повторите трансляцию.После устранения всех ошибок запишем программу в память МК нажав кнопкунапанели инструментов, либо выполнить Debug - Start/Stop Debug Session либо Ctrk+F5. Наэкране появляется окно с дисассемблированной программой и окно с содержимомрегистового файла.Приступим к отладке МК системы.
Программу можно выполнить в пошаговом режиме т.е.по одной команде. Результат выполнения можно посмотреть в регистровом файле.Программу можно выполнить:- по одной команде,- по одной команде в основной программе; процедура выполняется как однакоманда,- выполнить и остановиться,- выполнить до курсора.Системы тактирования RCC (модуль Reset and clock control).Смещение адреса этого регистра относительно базового адреса порта равно 0х18.После сброса микроконтроллера в этом регистре устанавливаются следующиезначения 0x0000 0000.- 17 -Порты ввода/вывода (GPIO).Порты ввода/вывода микроконтроллера предназначены для приема данных с датчиков(температуры, давления, влажности и т.д.) и вывода преобразованных данных.
Количествопортов ввода/вывода (GPIO) зависит от типа микроконтроллера. Порты микроконтроллеровSTM32 имеют по16 линий. кажда линия может быть сконфигурирлована как наввод(аналоговый или цифровой) так и на вывод. Для настройки линий портов на ту или инуюфункцию служат регистры конфигурации.Регистры конфигурации порта.GPIO каждый порт входа/выхода имеет 4 тридцатидвухразрядных регистра конфигурации:1. (GPIOx_MODER,2. GPIOx_OTYPER,3. GPIOx_OSPEEDR,4. GPIOx_PUPDR).Два тридцатидвухразрядных регистра данных5. GPIOx_ID6.
GPIOx_ODR).7. тридцатидвухразрядный комплект/переустановленный регистр (GPIOx_BSRR),8. трицатидвухразрядный фиксирующий регистр (GPIOx_LCKR) ,9. трицатидвухразрядный REZERVNый регистр выбора функции 2 (GPIOx_AFRH иGPIOx_AFRL).GPIO.ИмярегистраMODEROTYPEROSPEEDER0x400200000x400200040x40020008PUPDR0x4002000CIDRODRBSRRLCKR0х400200100х400200140х400200180х4002001СAFRL0х40020020АдресНазначениеPort mode registerВыбор схемы вывода в порт.В этом регистре указываетсяскорость вывода.Указывается способ подключениявыходного каскада порта - сподтяжкой к потенциалу "земли" илик напряжению питания.Входной регистр порта.Выходной регистр порта.Регистр сброса/установки бит порта.Регистр - защелка конфигурациипорта.Указатель альтернативных функцийпорта (старшие разряды 16 - 31).- 18 AFRH'0х40020024Указатель альтернативных функцийпорта (младшие разряды 0 - 15).Регистр GPIOx_MODERСмещение адреса этого регистра относительно базового адреса порта равно 0х00.После сброса микроконтроллера в этом регистре устанавливаются следующиезначения:0xA800 0000 для порта A0x0000 0280 для порта B0x0000 0000 для всех остальных портов.Биты 2у и 2у+1 регистра MORERy задают режим работы каждого вывода порта:00 - ввод информации,01 - вывод информации,10 - альтернативные функции,11 - аналоговые данные.Регистр GPIOx_OTYPER.Смещение адреса этого регистра относительно базового адреса порта равно 0х04.После сброса микроконтроллера в этом регистре устанавливаются следующиезначения:0x0000 0000 для всех портов.Биты 31 - 16 зарезервированы для будущих расширений.Биты 15 - 0 OTYPERy[1:0]: PORTx задают тип вывода в ножку порта (y = 0..15)Бит может принимать следующие значения:.0 - push-pull выход (устанавливается при сбросе микроконтроллера)1 - выход с открытым стоком.Регистр GPIOx_OSPEEDER.Смещение адреса этого регистра относительно базового адреса порта равно 0х08.После сброса микроконтроллера в этом регистре устанавливаются следующиезначения:0х0000 00С0 для порта В,0x0000 0000 для всех портов.- 19 Биты 2y и 2y+1 OSPEEDRy[1:0]: PORTx (y = 0..15)Эти биты задают скорость вывода для каждой ножки порта:00 - 400 kHz,01 - 1 MHz ,10 - 10 MHz,11 - 40 MHz, если емкостьСн не более 50 pF (50 MHz, если Сн менее 30 pF).Регистр GPIOx_PUPDR.Смещение адреса этого регистра относительно базового адреса порта равно 0х0С.После сброса микроконтроллера в этом регистре устанавливаются следующиезначения:0х6400 0000 для порта А,0х0000 0100 для порта В,0x0000 0000 для всех портов.Биты 2y и 2y+1 PUPDRy[1:0]: POTRx (y = 0..15)Значения этих бит:00 - подтягивающие резисторы не включены,01 - включен резистор подтягивающий вывод к напряжению питания,10 - включен резистор подтягивающий вывод к напряжению "земли",11- резерв.Регистр GPIOx_IDRРегистр входных данных.Смещение адреса этого регистра относительно базового адреса порта равно 0х10.После сброса микроконтроллера в этом регистре устанавливается следующеезначение:0x0000 ххххБиты 0 - 15 этого регистра доступны только для чтения.Биты 16 -31 - резерв.Регистр GPIOx_ODRРегистр выходных данных.После сброса микроконтроллера в этом регистре устанавливается следующеезначение:0x0000 0000 для всех портов.Биты 0 - 15 этого регистра доступны как для записи так и для чтения.- 20 Биты 16 -31 - резерв.Задание:1.
Составить программу вычисления по формуле согласно варианту из таблицы 1Программу составить на языке «Ассемблер» для микроконтроллера ARM CORTEXM3. Вывод результата произвести в указанный в задании порт. Числовые данныепеременных a и b разместить в команде, остальные в памяти программ.2. Отладить программу, используя симулятор Keil µVision в режиме Use Simulation и сиспользованием отладочной платы STM32L-DISCOVERY.3. Выполнить составленную программу в пошаговом режиме. Дать объяснениерезультатам выполнения каждой арифметической команды и состоянию регистра .4. Вывести результат расчета по формуле в указанный порт.
Выведенный результатперевести из шестнадцатеричной системы счисления в десятичную.5. Составить отчет.6. Защитить работу.№вар.12345678910ФормулаabcX=a*b/c+(a-b)/(e-f)X=(d-e+a*b)-c/(a+b)X=a-{(c-d)/(a+b)+e}/fX=a+b-c+(a+b*c)/(a+b)X=c-d+(a-b*c)/(c-d)/(a+f)X=a/b+f-(c+d)/(a*b)X=(c+a*b)*(d+a)-a/(d+a)X=d+e-(f-a/b)*{f/(d+e)}X=(a+b)*(c-d/e)+d/(a+b)X=c**2+(a+b*c)/f+a*b/(a+b)X=a+b+c+d+e*b/(c+d)-10/fX=20/f+(a+b*c)/(a-b)*eX=f/a*b+(a+b*c-2)/eX=a-b+c+(a/b+d*e)*aX=a/d+(a/b/c+d**2)-a-dX=a*b*c-(d+e/f)*(a+b)X=(a-b)*(b+c)-a*d/e/(b+c)X=f-a+(c*d+d/a)+(a*b-c)X=2*a+b/c-(a*b-c/d**2)X=a/2+b*4-(a/b+c*d)/(a+b)X=35/f+(a+b)*(a*c-b**2)X=a+b+c+d*(a-b)/(c*d)X=f+d-c+b/(f+d)+(c*d-f)/2X=(c/a-b*a)+(a+b)/4-f*eX=a/b*(a+b)-e/f+(a/b-f*(a+b))X=f*b/c/(a+b)+(c-d)*(a+b)X=e/a+b/e+(a+b*c)*(b/e-f)de111213141516171819202122232425262728Все числовые значения таблицы 1 заданы в десятичной системе счисления.Приложение №1Структурная схема микроконтроллера ARM Cortex M3.Таблица 1.ПортfвыводаPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTBPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTBPORTCPORTAPORTB- 21 -Приложение №2Внутренние регистры МК ARM.Внутренние регистры МКARM можно классифицировать следующим образом:1.
Регистровый файл ЦПУ или регистры общего назначения (РОН).2. Регистр статуса ЦПУ - xPSR.3. Регистры управления периферийными устройствами.ЦПУ с ядром ARM выполнено по RISC архитектуре. Перед выполнениемарифметической или логической операции операнды необходимо поместить врегистровый файл.