Використання системних переривань
У програмі користувача може бути реалізований повний доступ до системи переривань основного мікроконтролера AT89S8252. Штатна (підтримувана апаратно) таблиця векторів переривань реалізована в MONITOR-і по адресах 0003h, 000Bh, ... 002Bh. Ці вектора являють собою команди переходу на відповідні елементи таблиці векторів, розташовуваної в програмі користувача.
Оскільки програма користувача завжди повинна починатися з адреси 2000h, така структура таблиці векторів практично ідентична стандартної (зі зсувом 2000h).
Природно, у програмі користувача можуть бути оголошені тільки ті вектора переходу, які потрібні в конкретному завданні.
Модифікація й завантаження програми MONITOR
Зміна програми MONITOR рекомендується робити тільки у випадку гострої потреби.
Здійсненний код системної програми MONITOR розміщається у внутрішній (резидентної) пам'яті програм основного мікроконтролера AT89S8252, що технологічно реалізована як Flash-пам'ять.
При поставці УНМС-2 штатна версія програми MONITOR уже розміщена в Flash-пам'яті основного мікроконтролера AT89S8252, а файл із вихідним кодом програми входить у комплект поставки. При необхідності текст програми MONITOR може бути змінений кваліфікованим персоналом.
Після компіляції вихідного тексту програми повинен бути отриманий HEX-файл (для цього можна скористатися середовищем розробки INFO8051, що поставляється).
Для завантаження HEX-файлу програми MONITOR на згадку основного мікроконтролера потрібно виконати наступні дії:
1. Виключити живлення УНМС-2.
2. Від’єднати верхню прозору панель корпуса УНМС-2, вивернувши шурупи по краях панелі. Потрібно дотримувати акуратності, тому що на панелі перебувають перемикачі для подачі дискретних сигналів зі сполучним шлейфом.
3. Сполучний кабель інтерфейсу SPI-51 (рознімання DB-25 маркіроване LPT, на другому кінці кабелю - технологічна розетка чорних кольорів з маркуванням SPI-51) підключити до LPT-порту ПЭВМ і технологічній вилці, розташованої ліворуч від основного мікроконтролера.
4. Включити живлення УНМС-2 і дочекатися закінчення стартового тесту й переходу в режим очікування програми користувача.
5. На ПЭВМ запустити програму AEC_ISP.exe.
6. У меню програми AEC_ISP вибрати пункт Load HEX-file і вказати ім'я потрібного файлу.
7. Вибрати пункт Program і простежити, щоб процес завантаження програми MONITOR і верифікації вмісту Flash-пам'яті мікроконтролера відбувся без збоїв.
8. Вибрати пункт Reset і перемкнути стан сигналу в Low.
9. Вибрати пункт Quit і завершити роботу із програмою AEC_ISP.
10. Нажати кнопку Скидання на верхній панелі УНМС-2. Система готова до роботи з новою програмою MONITOR.
11. Виключити живлення УНМС-2.
12. Від’єднати кабель інтерфейсу SPI-51 від УНМС і від ПЭВМ.
13. Установити на місце верхню панель корпуса УНМС і закрутити шурупи. При установці верхньої панелі потрібно дотримувати акуратності, тому що на панелі перебувають перемикачі для подачі дискретних сигналів зі сполучним шлейфом.
14. Включити живлення УНМС-2.
4. ЗВ'ЯЗОК ПК З УНМС-2. ПРОЦЕС НАБОРУ, НАЛАГОДЖЕННЯ ТА ВИКОНАННЯ ПРОГРАМ КОРИСТУВАЧА
4.1 Інтегроване середовище програмування INFO8051
ИСП-51 служить для автоматизації процесу розробки й налагодження програмного забезпечення, розроблювального для мікроконтролерів серії MCS-51 (базової моделі ВЕ51, модифікацій ВЕ751, ВЕ31) і інтеграції всіх етапів розробки в рамках єдиного програмного продукту. Пакет працює під керуванням MS-DOS.
ИСП містить у собі текстовий редактор, компілятор з мови Асемблер МК51 і повноекранний відладчик на основі програмного емулятора виконання команд МК51 й імітатора ресурсів МК-системы. ИСП дозволяє також здійснювати натурне налагодження розроблювального ПО з використанням блоку ВСЭ, підключеного до ПЭВМ і прототипу створюваного цільового контролера.
При роботі з мікроконтролерним стендом ИСП використається для створення тексту прикладної програми, її компіляції й одержання файлу із двійковими кодами команд програми. Цей файл потім може бути завантажений на згадку МК-стенда й виконаний на реальній апаратурі. У деяких випадках можливе виконання автономного тестування фрагментів прикладної програми для МК-стенда засобами ИСП.
Запуск ИСП на виконання здійснюється через файл "asm.com".
4.1.1 Текстовий редактор
Текстовий редактор служить для набору тексту програми мовою Асемблер МК51 і роботи з текстовими файлами (файли в кодах ASCII). Редактор представляє користувачеві стандартний набір сервісних функцій редагування.
У верхній частині екрана розташовується рядок головного меню редактори, що містить такі пункти:
− Files - робота з файлами (пошук, збереження, відкриття, печатка й т.д.);
− Assembler - ассемблірування в машинні коди вихідного тексту програми з можливістю одержання файлу лістінга компіляції, двійкового файлу з машинними кодами МК51, а також завантаження зовнішнього двійкового файлу;
− Emulator - вибір способу налагодження програми (убудований відладчик-емулятор, зовнішній внутрисхемний емулятор);
− Options - настроювання деяких параметрів ИСП;
− Quit - завершення роботи з ИСП.
У нижній частині екрана розташовується рядок допомоги, що містить "гарячі клавіші", застосовувані в редакторі:
F1 - вікно допомоги редактори;
F2 - збереження вмісту вікна редагування у файл на диск;
F3 - завантаження нового текстового файлу (новий файл зручно також завантажувати, використовуючи пункт головного меню Files - Directory);
F4 - компіляція ассемблеpного тексту з поточного відкритого файлу;
F5 - налагодження скомпільованої програми в програмному емуляторі;
F7 - налагодження програми на внутрисхемному емуляторі (ВСЭ);
F10 - виклик головного меню;
Esc - завершення роботи з ИСП або скасування операцій читання/запису.
Для переміщення курсору по тексту програми застосовуються стандартні клавіші керування ("стрілки", PageUp, PageDown, Home, End).
4.1.2 Компіляція програми
Для компіляції програми, що перебуває у вікні редагування, варто нажати клавішу F4. При повторному натисканні клавіші F4 або будь-яка алфавітно-цифрова клавіші виконується повернення у вікно редактора. Якщо убудований компілятор ASM-51 виявить у тексті програми помилку, то подається звуковий сигнал, і в нижній частині екрана з'являється повідомлення про помилку. Компілятор видає повідомлення про першу виявлену помилку, після виправлення якої послідовно будуть виявлені інші.
Варто пам'ятати, що компілятор перевіряє синтаксичну правильність побудови рядків програми (команд, операндів, коментарів), а також попередній опис всіх використовуваних у програмі символічних імен і наявність міток, на які виконуються посилання. Правильність розміщення кодів команд і даних у пам'яті, неперетинанність сегментів не контролюються. Помилки такого роду можуть бути виявлені в процесі налагодження програми.
При відсутності помилок користувачеві представляється лістінг компіляції (дамп програми) із вказівкою адрес розміщення в пам'яті МК-системы й кодів машинного подання всіх команд і даних. Цей лістінг може бути збережений у файлі на диску (пункт меню Assembler - Listing).
4.1.3 Робота із програмним емулятором
Програмний емулятор імітує виконання програми користувача при відсутності реальної МК-системы. З його допомогою виробляється автономне налагодження відкомпільоpованої програми. Емулятор активізується натисканням функціональної клавіші F5 або через пункт меню Emulator - Simulator.
Емулятор надає користувачеві доступ до всіх ресурсів МК і системи на його основі, дозволяє відслідковувати виконання програми, оперативно змінювати з метою налагодження вміст комірок пам'яті (всі фізичні області) і регістрів. Налагодження виконується у відносному часі. Вид екрана емулятора показаний на мал.3.
В емуляторі діють наступні функціональні клавіші, представлені в нижньому рядку підказки:
F1 - допомога;
F2 - виконання однієї поточної команди (покроковий режим налагодження);
F3 - запуск програми з поточної адреси до крапки останова;
F4 - завдання або перегляд крапок останова;
F6 - перегляд останніх 16 виконаних команд (траса програми);
F7 - перехід у режим внутрисхемного емулятора (діє тільки при підключенні блоку ВСЭ до персонального комп'ютера);
F8 - скидання (обнуління) емулюємого процесора МК51;
F9 - скидання лічильника виконаних машинних циклів у нульове значення;
F10 - виклик меню;
Esc - вихід в асемблер/редактор.
Перемикання між вікнами (вибір активного вікна) здійснюється послідовним натисканням клавіші Tab (Shift+Tab - перехід в іншу сторону).
Налагодження в покроковому або автоматичному режимі можуть вироблятися незалежно від поточного активного вікна.
При кожнім натисканні клавіші F2 (покроковий режим) імітується виконання однієї поточної команди. При цьому користувач може за своїм розсудом змінювати вміст всіх регістрів емулюємого мікроконтролера (крім PC) і комірок пам'яті (областей РПД і ВПД), а також імітувати подачу вхідних сигналів на лініях портів P1, P2, P3 й P4.
У режимі автоматичної емуляції після натискання клавіші F3 імітується виконання програми користувача від поточної команди до крапок останова (якщо такі задані). У цьому режимі ручна зміна вмісту регістрів і комірок пам'яті не допускається. Користувач може імітувати надходження зовнішніх сигналів переривань й імпульсів на рахункових входах таймерів. Для коректного останова автоматичної емуляції користувач обов'язково повинен указати принаймні одну крапку останова. Автоматична емуляція також припиняється при натисканні клавіші Esc.
У вікні Вибір типу відображуваної пам'яті дані назви різних областей пам'яті МК51 (ROM - ВПП, RAM - ВПД, InROM - РПП, SFRAM - РПД ), ліворуч і праворуч від яких перебувають стрільці-покажчики. За допомогою клавіш керування курсором здійснюється вибір типу пам'яті для 1-го й 2-го вікон дампа пам'яті.
У вікні дизассемблірування керування здійснюється за допомогою наступних комбінацій клавіш: