Слід мати на увазі, що автономна відладка окремих модулів настільки простіша і ефективніша за відладку всієї робочої програми, що переходити до етапу комплексної відладки доцільно тільки після вичерпання всіх засобів автономної відладки.
Вищеперелічені етапи відладки здійснюються зазвичай з використанням крос-систем (наприклад, MPLAB IDE для OMK PIC).
До складу крос-систем входять програми-відладчики (узагальнене ім'я - DEBUG), що інтерпретують (що моделюють) виконання програм, написаних для МК. Такі програмні імітатори дозволяють ефективно відладжувати обчислювальні процедури, а також алгоритм функціонування контроллера.
Розробникові наданий доступ до будь-якого ресурсу МК, є можливість покомандного і пофрагментного виконання програми і останову по умові, а також підрахунку числа тактів виконання тих або інших фрагментів програми, ініціювання переривань, дизасемблювання вмісту пам'яті програм і т.п.
Кросс-відладчики дозволяють промоделювати практично всі можливі варіанти роботи програми і тим самим переконатися в її працездатності. На цьому ж етапі можлива перевірка працездатності програми при нештатних ситуаціях в умовах надходження некоректних вхідних дій (для застосувань з півищенними вимогами по безпеці).
Головним недоліком крос-систем є неможливість прогону програми в реальному масштабі часу, тобто з швидкістю, близькою до швидкості виконання програми в самому МК, а також неможливість комплексування апаратурних і програмних засобів системи, що розробляється. Через ці причини достовірність прикладних програм, відладжених в кросс-режимі, недостатньо велика.
Якнайповніша і комплексна відладка прикладного прогаммного забезпечення спільно з апаратурними засобами контроллера може бути проведена на інструментальному відладчику PICDEM 2 PLUS. Під управлінням МІКРОЕОМ PICDEM 2 PLUS дозволяє проганяти прикладну програму або її окремі фрагменти в реальному темпі, зупиняти виконання програм по багатьом ознакам, робити трасування зовнішніх сигналів МК і системи під час виконання програм. Достовірність програмного забезпечення, відладженого на інструментальній МІКРОЕОМ за допомогою PICDEM 2 PLUS , висока хоч і не рівна одиниці.
У будь-якому випадку для доведення прикладного програмного забезпечення контроллера необхідні комплексні і всесторонні випробування розробленої системи в реальному оточенні і у всіляких режимах.
MPLAB IDE - безкоштовне інтегроване середовище розробки для мікроконтролерів PICmicro фірми Microchip Technology Incorporated. MPLAB IDE дозволяє писати, відладжувати і оптимізувати текст програми. MPLAB IDE включає редактор тексту, симулятор і менеджер проектів, підтримує роботу емуляторів (MPLAB-ICE, PICMASTER) і програматорів (PICSTART plus, PRO MATE) фірми Microchip і інших налагоджувальних засобів фірми Microchip і третіх виробників.
Інструментальні засоби, що легко настроюються, тематична допомога, «випадні» меню і «призначення гарячих» клавіш в MPLAB IDE дозволяють Вам:
• отримати код програми;
• спостерігати виконання програми за допомогою симулятора, або в реальному часі, використовуючи емулятор (потрібна апаратна частина);
• визначати час виконання програми;
• проглядати поточне значення змінних і спеціальних регістрів; • працювати з програматорами PICSTAR і PRO MATE II; • використовувати систему допомоги по MPLAB IDE.
MPLAB IDE дозволяє Вам створювати початковий текст програми в повнофункціональному текстовому редакторові, легко виконати виправлення помилок за допомогою вікна результатів компіляції, в якому указуються виниклі помилки і попередження.
Використовуючи менеджер проектів можна вказати початкові файли програми, об'єктні файли, бібліотеки і файли сценарію.
MPLAB IDE забезпечує різноманітні засоби симуляції і емуляції виконуваного коду для виявлення логічних помилок. Ось їх основні особливості:
• велика кількість сервісних вікон, щоб контролювати значення регістрів пам'яті даних і виконання інструкцій мікроконтролера;
• вікна початкового коду програми, лістингу програми, коду програми - дозволяють оцінити якість компіляції;
• покрокове виконання програми, система точок зупинки, трасування, призначена для швидкої і зручної відладки вашої програми.
MPLAB IDE складається з декількох модулів, що забезпечують єдине середовище розробки.
Використовується для створення і роботи з файлами, що відносяться до проекту. Дозволяє одним клацанням «миші» виконати компіляцію початкового тексту, включити симулятор або внутрішньосхемний емулятор і т.д.
Призначений для написання і редагування початкового тексту програми, шаблонів і файлів сценарію лінкера.
Відладчик MPLAB /CD Недорогий внутрішньосхемний відладчик для мікро контролерів сімейства PIC16F87X. MPLAB-SIM симулятор
Програмний симулятор моделює виконання програми в мікроконтролері з урахуванням стану портів введення/виводу. MPLAB ICE емулятор
Емулює роботу мікроконтролера в масштабі реального часу безпосередньо в пристрої користувача.
MPASM компілює початковий текст програми. MPLINK створює завершальний код програми, зв'язуючи різні модулі отримані з MPASM, MPLAB-C17, MPLAB-C18. MPLIB управляє бібліотеками.
MPLAB-C17 і MPLAB-C18 виконують компіляцію тексту програми написаному на мові ANSI С. Складні проекти можуть складатися із частин написаних на мові С і Асемблера.
Працюють під управлінням MPLAB IDE і призначені для
програмування мікроконтролерів кодом програми, отриманої в результаті компіляції початкових файлів. Програматор PRO MATE може працювати самостійно, без використання MPLAB IDE.
Застосовуються для моделювання роботи мікроконтролера в пристрої користувача в масштабі реального часу.
Для роботи вибираємо контролер PIC16F877. Обмежимося стандартною програмою типу «моргнути світлодіодиком».
Запустіть MPLAB IDE будь-яким зручним для Вас способом. Створіть на жорсткому диску папку, в якій зберігатиметься Ваша робота. У нашому випадку створимо папку C:\work\led Скористаємося помічником створення проектів. Вибираємо Project\Project Wizard. У першому віконці просто клацаємо «Далі».
У наступному вибираємо мікроконтролер. Як ми домовилися, це буде PIC16F877. Натискаєм «Далі».
На наступному листі пропонується вибрати мову розробки.
У рядку «Active Toolsuite» вибираємо «Microchip MPASM Toolsuite»
Нижче вказаний зміст даного програмного продукту і його розташування.
Натискаємо «Далі»
На наступному листі необхідно вказати назву проекту і місцерозташування папки, в якій зберігатиметься код програми.
Указуємо назву «led» і шлях «c:\work\led»
Для вказівки шляху можна скористатися кнопкою «Browse.»
На наступній сторінці пропонується приєднати існуючі файли до проекту. Оскільки ми тільки починаємо, то сміливо тиснемо «Далі» На цьому створення проекту завершується.
Ми бачимо підсумкові дані нашого проекту. Натискаємо «Готово»
Для написання програми нам необхідний файл.
Створимо його!
Натискаємо піктограму у вигляді чистого листа.
У нас з'явився новий порожній файл.
Збережемо його в папці c:\work\led «File/Save as.» Назва – led.asm Додамо цей файл до проекту.
Для цього клацаємо правою кнопочкою на «Source Files» і виберемо «Add
Files.»
Відкриється вікно, в якому необхідно вибрати «main» Після цього файл led.asm буде доданий до проекту.
Для того, щоб компілятор розумів символьні імена, такі як PORTB,
STATUS та інші необхідно підключити файл header. Це робиться шляхом додавання рядка #include P16F877.INC На цьому підготовку до написання програми ми закінчили.
Само написання програми – процес творчий і неординарний, ми не на цьому зупинятимемося, а візьмемо готову програму.
;================ Початок LED.ASM ================
;Файл: LED.ASM
list p=16F877 ;Використуємий процесор.
#include p16f877.inc ;Заголовочный файл для
;мікроконтролера PIC16F877. ;Файл розташований в директорії ;встановленої MPLAB-IDE. org 0x0000 ;Вектор скидання процесора, ;після скидання програма починає ;виконуватися звідси.
nop ;Цей nop життєво необхідний для ;коректної роботи MPLAB-ICD clrf INTCON ;Перестраховуємося, забороняємо всі ;переривання.
clrf PCLATH ;Перестраховуємося, вибираємо Bank 0 ;Пам'яті Програм.
goto Start ;Обхід вектора переривання і блоку
;підпрограм.
org 0x0004 ;Вектор переривання.
;********** Початок обробника переривань **********
;У цій простій програмі не використовуються переривання
;********** Кінець обробника переривань************
;***************** Блок підпрограм ****************
;У цій простій програмі немає підпрограм
;************* Кінець блоку підпрограм *************
Start ;Тіло програми починається тут.
;********** Початок Ініціалізації процесора ********
clrf PORTТВ ;Усі виводи PORTВ переводимо в '0'
movlw b'00100000' ; movwf STATUS ;Вибираемо Bank 1 RAM(адреси 80h - FFh)
movlw b'00000000' ; movwf TRISB ;Усі лінії PORTB перемикаємо на вихід clrf STATUS ;Повертаємося у Bank 0 RAM(адреси 00h - 7Fh)
;********** Кінець Ініціалізації процесора *********
Loop bsf PORTB,2 ;Засвітимо світлодіод nop ;Тягнемо час... nop ;... nop ;...
bcf PORTB,2 ;Тушимо світлодіод nop ;Тягнемо час... nop ;... nop ;... goto Loop ;Нескінченній цикл.
END ;Кінець початкового коду програми
;============= Кінець LED.ASM =====================
Компіляція початкового файлу може бути виконана декількома способами. Описаний тут метод використовує пункт меню Project > Build . Після вибору вказаного пункту меню початковий текст програми зберігається і запускається програма MPASM. Як тільки компіляція буде завершена, на екрані з'явиться вікно результатів роботи MPASM (Рисунок 4.1).