Для запуска отладки в среде NetBeans, выполните следующие действия:
1. Переключите конфигурацию проекта в режим «Debug»:
Рис. 80
2. Перейдите к «Свойствам» проекта. Для этого выберите название проекта и нажмите правой клавишей мыши по нему. В открывшемся окне выберите «Свойства». Убедитесь, что в строке «Additional Options» для вкладок «C Compiler» и «C++ Compiler» свойств проекта, приготовляемого к отладке, присутствует опция «-gdwarf-2»:
Рис. 81
3. Убедитесь так же, что там же установлен уровень оптимизации «O0».
4. Убедитесь, что в проекте NetBeans указан верный путь к .gdbinit и символьному файлам (Свойства проекта->Отладка):
Рис. 82
5. Добавьте директории файлов исходного кода, использующиеся в проекте, в свойство «Source dirs»:
Рис. 83
6. Подготовка GDB сервера.
a. Если Вы используете ПО от SEGGER:
i. Выполните действия, описанные в главе Подготовка отладки с использованием SEGGER-J-Link GDB Server.
ii. Измените файл C:\Intec\MSTN\M100\Other\gdbinit.gdbinit так, чтобы его содержимое было таким:
Рис. 84
b. Если Ваш выбор openOCD – выполните действия из главы Подготовка отладки с использованием openOCD). Затем:
i. не меняя настроек по умолчанию плагина MSTN, кликните по кнопке «Start GDB Server»:
Рис. 85
ii. Измените файл C:\Intec\MSTN\M100\Other\gdbinit.gdbinit так, чтобы его содержимое было таким:
Рис. 86
iii. Дождитесь в консоли NetBeans MSTN monitor уведомления о том, что GDB Server запущен:
Рис. 87
7. Пересоберите проект.
8. Залейте полученную прошивку на плату.
9. Откройте выпадающее меню инструмента Debug и активируйте пункт «Attach Debugger»:
Рис. 88
10. В появившемся окне «Attach»:
a. В качестве отладчика (Debugger) выберите gdbserver:
Рис. 89
b. В строке Target введите «ext:3333» если Вы используете openOCD или «ext:2331» если Вы используете J-Link GDB Server. Так же выберите необходимый проект для отладки:
|
Рис. 90
11. NetBeans установит соединение с GDB сервером, после чего активируется панель инструментов «Debug»:
Рис. 91
12. Остановим выполнение программы:
a. Нажмите на левую кнопку паузы (это стандартная кнопка NetBeans):
Рис. 92
b. Ничего не произошло? Всё верно, так и задумано. Дело в том, что на платформе Windows среда разработки NetBeans не может стандартными средствами посылать сигнал останова в отладчик. Поэтому модуль расширения MSTN предоставляет свою кнопку паузы:
Рис. 93
c. Теперь нажмите на кнопку паузы от MSTN:
Рис. 94
d. Готово, выполнение программы на плате остановилось:
Рис. 95
13. Вы можете устанавливать свои точки останова (не более 6-ти активных одновременно) перед началом отладки или во время сеанса отладки, когда выполнение программы приостановлено:
Рис.96
14. Нажмите на кнопку «Continue», чтобы продолжить выполнение программы:
Рис. 97
Вы можете пользоваться всеми инструментами отладки, предоставляемыми NetBeans (учитывая ограничение встроенной кнопки паузы). Подробнее см. по ссылке.
15. Готово! Вы умеете запускать отладку по интерфейсу JTAG в среде NetBeans.
Примечание: если Вы, в процессе отладки, нажмете на кнопку паузы от плагина MSTN ранее, чем хотя бы один раз нажали на встроенную кнопку паузы NetBeans, появится окно с уведомлением:
Рис. 98
В этом случае Вам необходимо выбрать действие «Discard and Pause»:
Рис. 99
Отладка остановится с возможностью продолжения.
Чтобы в дальнейшем это уведомление не всплывало – хотя бы один раз (за весь сеанс отладки) нажмите на кнопку паузы по умолчанию:
Рис. 100
|
Описание утилиты mstn-m100-client.exe
Утилита mstn-m100-client.exe (далее «Утилита») предназначена для взаимодействия с платой MSTN-M100 (далее «Плата»), на которой установлено ПО, созданное с использованием библиотеки libMSTN-M100.a.
Утилита (версии 1.2.0) имеет следующий функционал:
1. Обновление пользовательской микропрограммы с помощью предустановленного на Плате загрузчика от Intec по интерфейсу USB.
2. Перезагрузка платы.
3. Стирание пользовательской микропрограммы.
4. Синхронизация времени часов на Плате с текущим локальным временем на ПК.
5. Прием и передача сообщений пользовательскому ПО на Плате.
6. Отображение списка подключенных к ПК плат MSTN-M100.
7. Передача аргументов функции main на Плату.
8. Запись лога.
Работа с Утилитой ведется из оболочки командной строки. Выбор режима работы (текущей цели запуска) осуществляется запуском Утилиты с одной или несколькими опциями командной строки. За один запуск Утилиты может выполнена одна или несколько целей. Допускается комбинирование нескольких целей после одного символа «-».
Опции командной строки (регистр символов основной опции не важен) и их предназначение:
Опция | Результат | ||||||
Нет | Вывод версии утилиты | ||||||
-r (-R) | Перезагрузка Платы | ||||||
-e (-E) | Стирание пользовательской микропрограммы | ||||||
-d + Путь к файлу микропрограммы (*.bin) | Загрузка образа микропрограммы на плату и переход к его выполнению | ||||||
--ltsync | Синхронизация времени на плате с временем на ПК | ||||||
-l (-L) | Отображение списка плат, в настоящее время подключенных к ПК. Это блокирующая цель - при её наличии не будет выполнено никаких других целей, если таковые заданы. | ||||||
-t (-T) | Переход в режим «диалога» с пользовательской микропрограммой, присутствующей на Плате. Символы «>>>» в начале строки означают приглашение к вводу, поступившее от пользовательского ПО на плате. | ||||||
--sn= | Соединение или выполнение других действий с платой, имеющей заданный серийный номер. Если таковой не будет найдено – подключение не будет произведено. | ||||||
-v (-V) | Опция увеличивает количество выводимых сообщений (подробный лог операций). | ||||||
-p (-P) | Может использоваться с опциями -d (загрузка прошивки). При использовании опции -p сразу после загрузки прошивки на плату выполнение утилиты завершится, но плата не будет переведена в состояние выполнения. Для запуска выполнения необходимо или вручную перезагрузить плату (нажатием на кнопку RESET) или запуском утилиты с опцией перезагрузки (-r). | ||||||
--log=filename | Дублирует вывод платы, приглашение к вводу и пользовательский ввод в указанный файл (создает его, если он отсутствует). | ||||||
--distime | При её использовании в выводе утилиты (и в файле лога, если он ведется) отсутствуют метки времени. | ||||||
-с (-С) | Может использоваться совместно с опцией –t для того, чтобы при ведении диалога с Платой, её интерфейс управления оставался «занятым». Может быть полезен при одновременном общении с двумя платами (например с использованием Утилиты и модуля NetBeans) | ||||||
--bargs=”args” | Используется для передачи аргументов функции main на плату. Максимальная длина строки аргументов составляет 59 символов. | ||||||
Пример совмещения нескольких целей при вызове: | |||||||
-h (--help) | Вывод справки. | ||||||
|
Утилита по завершении работы возвращает «0» если действие выполнено успешно, в случае ошибки – не «0».
Коды ошибок:
Значение | Тип ошибки | |
EXIT_DONE | Успешно | |
EXIT_ERASE_DONE | Не используется | |
EXIT_FILE_LARGEST | Размер файла прошивки слишком большой | |
EXIT_DEVICE_NOT_FOUND | Устройство MSTN не найдено | |
EXIT_FILE_DONT_OPEN | Файл не найден или его расширение не «.bin» | |
EXIT_WRITE_ERROR | Ошибка записи прошивки | |
EXIT_DEVICE_DONT_ANSWER | Устройство MSTN не отвечает в течение длительного времени | |
EXIT_USER_CANCEL | Не используется | |
EXIT_DEVICE_QUERY_FAIL | Ошибка во время обмена данными с устройством MSTN | |
EXIT_USER_DEVICE_IN_BOOT_MODE | Устройство MSTN в загрузочном режиме («диалог» невозможен) |
Начало работы с платой в Arduino IDE
В качестве одной из популярных рабочих сред, где может проводиться работа с платой MSTN-M100, является Arduino IDE. Среда разработки Arduino IDE состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста (консоли), панели инструментов с кнопками часто используемых команд и нескольких меню.
1. Скачайте среду разработки Arduino IDE. На официальном сайте представлены версии для установки на операционные системы: Windows, Linux и MacOS. Установите Arduino IDE на компьютер или скачайте portable-версию (portable-версия работает, не требуя установки).
Рис. 101 Загрузка программной среды Arduino IDE
2. Запустите пример
3. Перейдите во вкладку «Файл» и выберите «Настройки».
4. В открывшемся окне в поле «Дополнительные ссылки для Менеджера плате» введите https://gitlab.com/mstn-m100/mstn-arduino/raw/master/package_MSTN100_index.json. Данная ссылка позволяет в дальнейшем подключить плату MSTN-M100.
Рис.102 Установка ссылки для Менеджера плат
- Перейдите во вкладку «Инструменты» и выберите «Плата». После чего перейдите в «Менеджер плат…».
Рис. 103 Выбор платы
6. Во всплывающем окне выберите вариант «MSTN» и нажмите «Установка». Данное действие позволит Arduino IDE определять плату и загружать пользовательскую программу на неё. В случае появления ошибки «CRC поврежден» провести установку повторно.
Рис. 104 Установка платы в Менеджер плат
- Подключите плату MSTN-M100 к компьютеру при помощи USB – micro-USB кабеля
- Перейдите во вкладку «Инструменты» и выберите «Плата». Среди предложенных вариантов выберите «MSTN». В случае если среди предложенных вариантов нет «MSTN», то повторите пункт 6.
Рис.105 Выбор платы
- Запустите проверку пользовательской программы. После чего загрузите программу на плату MSTN-M100.
Рис. 106 Проверка и загрузка программы на плату
- При успешной загрузке программы на плату светодиод начнет мигать с периодичностью в 1 секунду.
Начало работы с платой в Keil
Keil uVision — это среда разработки для микроконтроллеров с ядром ARM Cortex-M. Использование данной среды обусловлено большой популярностью и простотой в работе. Если в ранее рассмотренных средах загрузка программы на плату проводилась при использовании USB-разъема, то в Keil загрузка будет проходить при помощи JTAG разъема, а в качестве отладчиков будут использоваться J-Link и ST-Link. Использование данных отладчиков вызвано их популярностью и доступностью. Ниже будут приведены инструкции при работе с каждым из отладчиков.