Ведение - |
12 |
Данное методическое пособие предназначено для выполнения лабораторных работ с использованием отладочных плат фирмы «Миландр» серии 1986ВЕхх и сред разработки IAR Embedded Workbench IDE for ARM и Keil MDK-ARM.
Методическое пособие написано в рамках курса «Микропроцессорные средства систем автоматизации и управления» специальности 220301 – Автоматизация технологических процессов и производств (в приборостроении), но оно будет полезно всем желающим освоить программирование МК семейства Cortex-M3 независимо от производителя, и в принципе, интегрированной среды разработки. Кроме того, данное пособие окажется полезным для изучения всего семейства процессоров Cortex-M(0,1,3,4), т.к. разработчик архитектуры процессора Cortex-M, британская компания ARM (Advanced RISC Machine), реализовало принцип программной совместимости во всем семействе Cortex- M.
Авторы искренне надеются, что студенты, получали свои оценки по базовым предметам честно, и уже умеют писать программы на языке С/С++, знают азы электроники и владеют компьютером на уровне квалифицированного пользователя. Последнее крайне важно так, как современный специалист работает в быстро меняющемся информационном окружении, и ему просто необходимо владеть навыками работы с разнообразными информационными ресурсами: WEB, FTP, SMB, SVN, почта.... Все эти ресурсы широко используются в курсе МПСАУ и коротко описаны в данном пособии.
Методическое пособие состоит из двух основных частей. В первой части изучается процессор Cortex-M3, даются примеры использования языка ассемблер, способы исследования кода с помощью встроенного дизассемблера, а также приемы написания эффективных (быстродействующих) программ. Вторая часть посвящена работе с периферийными модулями МК 1986ВЕхх и связана с курсовым проектированием, для которого выполняется поэтапная практическая реализация элементов программного кода курсового проекта.
Вразработке первой части методического пособия, кроме преподавателя Недяка Сергея Павловича, самое активное участие принимали студенты 539гр. ТУСУРа, обучавшиеся на кафедре ЭСАУ в 2012-2013гг Бушуева Анастасия, Климов Владимир, Павлов Дмитрий, Лигачев Сергей. Частично оно составлено из их отчетов по лабораторным работам.
Воснову второй части, преподавателем Шаропиным Юрием Борисовичем, положен принцип: вся информация по МК в первоисточнике, в спецификации на серию МК spec_seriya_1986BE9x.pdf (Версия 3.2.0 от 20.09.2012), вся теория в книгах предыдущих курсов блока электроника, блока программирование и лекций по текущему предмету, в методическом пособии только методология, некоторые базовые понятия, ссылки, описание действий, задания и вопросы.
Уважаемый читатель, если Вы нашли в методическом пособии какие-либо ошибки, неточности или у Вас есть пожелания по улучшению содержания, просим вас написать по одному из адресов: mpsau@iit.tusur.ru или nediak.serg@yandex.ru.
Для студентов есть уникальная возможность потренироваться в использовании системы контроля версий Subversion на примере редактирования и исправления ошибок в данном методическом пособии. Оно находиться по адресу svn://esau.tusur.ru/_labs/Metod. Доступ для записи одинаков для всех: student, iit. Единственная просьба оставляйте в сообщении указание на ошибку и свои фио-группу. Кроме этого методическое пособие находится в системе Redmine по адресу http://esau.tusur.ru:8085/issues/700.
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Ведение - 1 |
13 |
Для организации учебной и преподавательской работы с информацией на современном уровне на кафедре авторским коллективом (Шаропин Ю.Б., Алтухов Ю.А., Карелин А.Е, Недяк С.П.) внедрён ряд информационных сервисов. Выбор этих сервисов был основан на принципе: учиться и работать с реальными, настоящими средствами и инструментами, с которыми большинству студентов предстоит встретиться через пару лет, на первом месте работы после получения диплома.
Информационный сервер. Для хранения информации по предметам для студентов и преподавателей организован информационный сервер. В локальной сети его имя «SV2», IPадрес в локальной сети: 192.168.77.178. Сервер поддерживает два протокола доступа: SMB (работает только в локальной сети) и FTP, который работает и в локальной сети и глобальной.
В тексте методички будем указывать только относительные пути к файлу (директории), без указания способа (протокола) доступа.
Доступ из глобальной сети ftp://esau.tusur.ru/далее_относительный_адрес. Доступ из локальной сети ftp://192.168.77.178/далее_относительный_адрес или в подсети UNDERGROUND заходить на сервер SV2 в папку «exchange». Доступ по прямому IP в файловом менеджере FAR: net: 192.168.77.178 или net: sv2.
Система сопровождения проектирования и разработки призвана обеспечить: рабочее WEB-пространство для постановки и решения задач проектирования совместно со студентами, контроль над ходом выполнения работы, обмен сообщениями в режиме форума, обмен файлами, генерацию отчетов активности по проекту. В курсе используется интернетприложение Redmine, работающие на кафедральном сервере. Доступ в глобальной сети:http://esau.tusur.ru:8085, доступ в локальной сети: http://192.168.77.177. Программное обеспечение свободное, исходный код открыт. Документации по использованию Redmine не требуется, оно не сложнее чем использование, например сайта «в контакте», интерфейс русифицирован.
Система контроля версий программного кода. Данное клиент-серверное ПО предназначено для управления версиями программного кода. Для студента оно обеспечивает: поэтапное сохранение изменений программного года, удаленное централизованное или распределенное хранение кода, доступ к коду с любого компьютера подключенному к Интернет, возможность просмотра всей истории создания кода, что также очень полезно преподавателю и обеспечивает контроль над ходом разработки программного кода и дает возможность оценить не только результат в конце проектирования, но и весь ход работы. В курсе МПСАУ используется система Subversion, которая также установлена на сервере кафедры. Программное обеспечение свободное, исходный код открыт. Документация по использованию Subversion имеется на русском языке.
Адрес доступа svn://esau.tusur.ru/_labs/<Папка с репозиторием>. Логин и пароль доступа к описанным ресурсам уточнять у преподавателя или администратора сети.
В таблице 1 перечислены все необходимые файлы документации по лабораторному курсу и доступ к ним с информационных ресурсов кафедры. Естественно, самую новую информацию нужно брать с сайта производителя http://milandr.ru.
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Ведение - 1 |
14 |
Таблица 1. - Техническая документация по курсу лабораторных работ
Описание |
Адрес расположения |
|
|
Спецификация по МК |
\_For_Students\MPSSAU\Milandr\Микроконтроллеры и |
1986ВЕ9x |
микропроцессоры\1986\spec_seriya_1986BE9x.pdf |
|
|
Описание найденных |
Там же: spec_seriya_1986BE9x_errata_2.pdf |
ошибок в реализации МК |
|
Спецификация на |
\_For_Students\MPSSAU\Milandr\Отладочная плата\Hardware\Отладочная |
отладочную плату |
плата 1986ВЕ93У\1986EvBrd_48_тех_описание.pdf |
1986ВЕ93У |
|
Принципиальные схемы |
\_For_Students\MPSSAU\Milandr\Отладочная плата\Hardware\Отладочная |
на отладочную плату |
плата 1986ВЕ93У\Печатная плата |
1986ВЕ93У |
1986EvBrd_48\1986EvBrd_48_схема.pdf |
Спецификация на |
\_For_Students\MPSSAU\Milandr\Отладочная плата\Hardware\Отладочная |
отладочную плату |
плата 1986BE91Т\1986EvBrd_тех_описание.pdf |
1986BE91Т |
|
Принципиальные схемы |
Там же: |
отладочной платы |
1986BE91_dk_sch_1.pdf |
1986BE91Т |
1986BE91_dk_sch_2.pdf |
Исходные коды по первой |
\_For_Students\MPSSAU\!Labs\Labs_Asm |
части ЛР |
|
Дополнительная |
\_For_Students\MPSSAU\!Labs\Labs_IO |
информация по второй |
|
части ЛР |
|
Стандартная библиотека |
\_For_Students\MPSSAU\Milandr\Программное обеспечение\Library\ |
ввода-вывода и примеры |
Example_Projects\ |
программ |
Examples\ |
Примеры программ для |
MDR1901VC1\ |
различных отладочных |
MDR1986VE1T\ |
плат |
MDR1986VE3\ |
|
MDR1986VE9x\ |
Файлы конфигурации для |
IDE\ |
различных сред |
iar_arm |
разработки |
keil |
|
Phyton_CodeMaster |
Библиотеки CMSIS, |
Libraries\ |
Ввода-вывода и |
CMSIS\ |
Программная |
MDR32F9Qx_StdPeriph_Driver\ |
|
|
документация. |
MDR32F9Qx_stdperiph_lib.chm |
|
MDR32F9Qx_USB_Library.pdf |
Демонстрационный |
svn://esau.tusur.ru/_labs/MDR32F9Qx_Demo |
проект для отладочных |
|
плат |
|
|
|
Проект мигания |
svn://esau.tusur.ru/_labs/laba0/Trunk/test1 |
светодиодом |
|
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Ведение - 2 |
15 |
Обобщая опыт преподавания, можно сделать некоторые наблюдения. Одно из них заключается в том, что студенты очень редко описывают (протоколируют) реальный ход выполнения работы. Любая работа, как правило, связана со значительным числом неудачных попыток. Их детальное описание как раз и составляют наибольшую ценность отчёта по лабораторной работе, поскольку в противном случае эти же самые ошибки будут повторяться следующими поколениями студентов, вашими младшими коллегами, и на их устранение будет тратиться такое же количество рабочего времени.
Второе наблюдение заключается в том, что копирование сторонних источников за последние годы стало настолько привычным и даже рутинным делом, что возврат к нормальной вузовской проверке полученных знаний поначалу воспринимается как нечто необычное. Мы в своей преподавательской практике придерживаемся консервативных позиций — учим по-старому, т. е. по-честному, и проверяем тщательно, по крайней мере, стремимся это делать. Весь драматизм событий по этой части зафиксирован в http://esau.tusur.ru:8085/issues/802. Выпускникам нашей кафедры рекомендуем ознакомиться, чтобы учесть ошибки предыдущих поколений.
В пособии приведены, по сути, примеры выполнения лабораторных работ. В процессе обучения каждый студент получает своё маленькое индивидуальное задание для проведения своей первой самостоятельной исследовательской (лабораторной) работы. Причём, задания специально недоопределены. Как показывает производственный опыт, многие проблемы, возникающие на завершающей стадии серьёзных проектов, закладываются ещё на стадии формулировки технического задания. Поэтому умение детально анализировать задачу также важно, как и умение писать программы.
1.Подготовка и допуск к лабораторной работе. Освоение теории по указанной в методическом пособии литературе, до начала лабораторной работы.
2.Запись в тетрадь вопросов по теории. Обсуждение непонятных вопросов с преподавателем и коллегами.
3.Освоение материала из спецификации (документации) на МК.
4.Зарисовка структурных-схем изучаемых блоков.
5.Запись в тетрадь вопросов по документации. Обсуждение с преподавателем и коллегами.
6.Изучение исходных кодов на изучаемый блок МК.
7.Запись в тетрадь вопросов по исходным кодам. Обсуждение с преподавателем и коллегами.
8.Изучение работы программ на отладочной плате, в режиме пошагового выполнения и выполнения с контрольными точками. Выяснение непонятных моментов. Обсуждение с преподавателем и коллегами.
9.Запись осциллограмм, измерение временных параметров выполнения участков программ, контроль над размерами функции, стека, оперативной памяти.
10.Оформление отчета и исходных кодов.
11.Подготовка ответов на контрольные вопросы.
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |
Ведение - 2 |
16 |
Данный раздел больше относится к проектированию ПО, т.к. как именно на этом этапе Вам придется создавать свой программный код, но к этому этапу нужно быть готовым! Его нужно было бы начать с такого базового понятия, как Парадиигма программиирования (ПП), т.к. оформление и документирование кода это не самые первые этапы в жизненном цикле программы. ПП — это система идей и понятий, определяющих стиль написания компьютерных программ. Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером2. Для лучшего понимания этого важного вопроса отсылаю вас к «библии программиста» [1].
Стиль кодирования (оформление исходного кода) или стандаарт оформлеания коада (стандаарт кодиарования) (англ. coding standards, coding convention или programming style) — набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования. Наличие общего стиля кодирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения3.
Стиль кодирования обуславливается парадигмой программирования (или стилем программирования МК, мы Вам рекомендуем освоить парадигму «автоматного программирования» [10]. Он очень эффективен для создания программ встраиваемой вычислительной техники, где, как правило, алгоритм работы устройства достаточно хорошо
представляется конечным автоматом.
Для освоения приемлемого для настоящей работы стиля кодирования, и получения желаемой оценки, вам нужно использовать источники [3,4,5].
Господа студенты, нам с вами для лучшего взаимопонимания придется пользоваться один стилем!
Doxygen — это кроссплатформенная система документирования исходных текстов, которая поддерживает C++, Си, Objective-C, Python, Java, IDL, PHP, C#, Фортран, VHDL и, частично, D.
Doxygen генерирует документацию на основе набора исходных текстов и также может быть настроен для извлечения структуры программы из недокументированных исходных кодов. Возможно составление графов зависимостей программных объектов, диаграмм классов и исходных кодов с гиперссылками.
Doxygen имеет встроенную поддержку генерации документации в формате HTML, LATEX, man, RTF и XML. Также вывод может быть легко сконвертирован в CHM, PostScript, PDF4.
С целью сокращения объёма данного методического пособия исходные тексты здесь приведены без надлежащего оформления. Все исходные тексты программ в лабораторных работах, предъявляемых на сдачу, должны соответствовать требованиям к оформлению программной документации. Лучше если вы сразу привыкните пользоваться Doxygen-ом.
Doxygen уже широко используемый продукт. Оформление кода по правилам этой программы создает особый стиль оформления, который использован и в библиотеки CMSIS и в библиотеки стандартных периферийных устройств. На рис.1 показан хелп-файл
2 https://ru.wikipedia.org/wiki/Парадигма программирования
3 https://ru.wikipedia.org/wiki/Стиль кодирования
4 https://ru.wikipedia.org/wiki/Doxygen
ТУСУР, "Миландр" |
Каф. ЭСАУ |
Недяк С.П., Шаропин Ю.Б |
Февраль 2017 г. |