Засоби розробки та налагодження для однокристальних мікроконтролерів
До числа основних інструментальних засобів налагодження відносяться:
- внутрісхемний емулятори.
- програмні симулятори.
- плати розвитку (оціночні плати).
- монітори налагодження.
- емулятори ПЗУ.
Даний список не вичерпує всіх типів існуючих інструментальних засобів налагодження. Крім зазначених, існують і комбіновані пристрої та набори, які дозволяють компенсувати недоліки основних засобів, взятих окремо.
Внутрісхемний емулятори.
Внутрісхемний емулятор - програмно апаратний засіб, здатний заміщати собою емульований процесор в реальному схемою. Внутрісхемний емулятор - це найбільш потужний і універсальне налагоджувальної засіб.
По суті справи, "хороший" внутрісхемний емулятор робить процес функціонування отлаживаемого контролера прозорим, тобто легко контрольованим, довільно керованим і модифікується з волі розробника.
Функціонально внутрісхемний емулятори діляться на стикуються з зовнішньої обчислювальною машиною (зазвичай це буває IBM PC), і функціонують автономно. Автономні внутрісхемний емулятори мають індивідуальні обчислювальні ресурси, засоби введення-виведення, не вимагають для своєї нормальної роботи стикування з будь-якими зовнішніми обчислювальними засобами, але за це користувачеві доводиться розплачуватися або істотно більш високою ціною, або зниженими функціональними і сервісними можливостями в порівнянні з аналогічними моделями, стикуємими з IBM PC.
Зазвичай, стикування внутрісхемного емулятора з налагоджують системою проводиться за допомогою емуляціонного кабелю зі спеціальною емуляціонной голівкою. Емуляціонная головка вставляється замість мікроконтролера в налагоджували систему. Якщо мікроконтроллер неможливо видалити з налагоджують системи, то використання емулятора можливо, тільки якщо цей мікроконтроллер має налагоджувальний режим, при якому всі його висновки знаходяться в третьому стані. В цьому випадку для підключення емулятора використовують спеціальний адаптер-кліпсу, який підключається безпосередньо до висновків емульованого мікроконтролера.
Як мінімум, емулятор містить наступні функціональні блоки:
- відладчик.
- вузол емуляції мікроконтролера;
- емуляціонная пам'ять;
- підсистема точок зупину;
Більш просунуті моделі можуть містити додатково:
- процесор точок зупину;
- трассировщик;
- Профілювальники (аналізатор ефективності програмного коду);
- таймер реального часу;
- програмно-апаратні засоби, що забезпечують можливість читання і модифікації ресурсів емульованого процесора "на льоту", тобто в процесі виконання програми користувача в реальному часі;
- програмно-апаратні засоби, що забезпечують синхронне керування, необхідні для емуляції в мультипроцесорних системах;
- інтегроване середовище розробки
Отладчик
Відладчик є своєрідним мостом між розробником і налагоджувальний засобом. Склад і обсяг інформації, що проходить через засоби введення-виведення, доступність її для сприйняття, контролю, і, при необхідності, для корекції і модифікації - безпосередньо залежать від властивостей та якості отладчика.
Хороший відладчик дозволяє здійснювати:
- завантаження налагоджують програми в пам'ять системи.
- висновок на монітор стану та вмісту всіх регістрів і пам'яті, і при необхідності, їх модифікацію.
- управління процесом емуляції.
Більш потужні отладчики, зазвичай їх називають високорівневими (High-Level Debuggers), крім цього, дозволяють:
- вести символьну налагодження, завдяки тому що відладчик "знає" адреси всіх символьних змінних, масивів і структур (за рахунок використання спеціальної інформації поставляється компілятором). При цьому користувач може оперувати більш прийнятними для людини символьними іменами, не обтяжуючи себе запам'ятовуванням їх адрес.
- контролювати і аналізувати не тільки дісассемблірованний текст, але й вихідний текст програми, написаної мовою високого рівня, і навіть з власними коментарями.
Такий відладчик дозволяє користувачеві одночасно контролювати хід виконання програми й бачити відповідність між вихідним текстом, образом програми в машинних кодах, і станом всіх ресурсів емульованого мікроконтролера.
Слід зазначити, що високорівнева відладчик забезпечує виконання всіх своїх функцій тільки в тому випадку, якщо використовується крос-компілятор постачає повну й правильну налагоджувальну інформацію (не всі компілятори, особливо їх піратські версії, поставляють таку інформацію) і при цьому формат її подання повинен бути " знаком "відладчику.
Емуляціонная пам'ять
Наявність емуляціонной пам'яті дає можливість використовувати її в процесі налагодження замість ПЗУ в налагоджують системі, і більше того, налагоджувати програму без використання реальної системи або її макета. При необхідності внесення змін до налагоджують програму, достатньо завантажити нову або модифіковану програму в пам'ять емулятора, замість того щоб займатися перепрограмуванням ПЗУ. Існують моделі емуляторів, які дозволяють користувачеві "підставляти" замість ПЗУ емуляціонную пам'ять не тільки цілком, але і по блоках (в деяких моделях мінімальний розмір блоку може досягати одного байта), у порядку, визначеному користувачем. Для цього користувачеві досить задати розподіл пам'яті даних і пам'яті програм, відповідно до якого процесор буде отримувати доступ і до вмісту ПЗУ в налагоджують системі, і до вмісту емуляціонной пам'яті внутрісхемного емулятора. Така пам'ять зазвичай називається пам'яттю з можливістю співставлень.
Трасувальник
По суті, трассировщик являє собою логічний аналізатор, що працює синхронно з процесором і фіксує потік виконуваних інструкцій та стану обраних зовнішніх сигналів. Існують моделі внутрісхемних емуляторів, які дозволяють трасувати не тільки зовнішні сигнали, але й стану внутрішніх ресурсів мікроконтролера, наприклад, регістрів. Такі емулятори використовують спеціальні версії мікроконтролерів (емуляціонние кристали).
Процесор точок зупину
Процесор точок зупину дозволяє зупиняти виконання програми, або виконувати інші дії, наприклад запускати або зупиняти трассировщик, при виконанні заданих користувачем умов. На відміну від механізму звичайних точок зупину, процесор точок зупину дозволяє формувати і відслідковувати умови практично будь-якого ступеня складності, і при цьому емульований процес не виводиться з масштабу реального часу.
Профілювальники
Профілювальники (інакше аналізатор ефективності програмного коду), дозволяє отримати за результатами прогону налагоджують програми наступну інформацію:
- кількість звернень до різних ділянок програми;
- час, витрачений на виконання різних ділянок програми.
Аналіз статистичної інформації, що поставляється профілювальником, дозволяє легко виявляти "мертві" або перенапружені ділянки програм, і в результаті оптимізувати структуру налагоджують програми.
Інтегрована середу розробки
Сукупність програмних засобів, що підтримує всі етапи розробки програмного забезпечення від написання початкового тексту програми до її компіляції й налагодження, і забезпечує просте і швидке взаємодія з іншими інструментальними засобами (програмним отладчиком-сімуляторм і програматором).
Наявність у програмній оболонці емулятора вбудованого редактора, вбудованого менеджера проектів і системи управління, дозволяють істотно полегшити роботу розробника, позбавивши його від безлічі рутинних дій. Для розробника стирається грань між написанням програми, її редагуванням і налагодженням. Перехід від редагування вихідного тексту до налагодження і назад відбувається "прозоро" і синхронно з активізацією відповідних вікон, менеджер проектів автоматично запускає компіляцію в міру необхідності і активізує відповідні вікна програмного інтерфейсу.
Настільки ж просто здійснюється і перехід до налагодження проекту за допомогою наявного отладчика-симулятора, або приступити до "прошивці" ПЗУ налагодженої програмою.
Деякі моделі внутрісхемних емуляторів можуть надавати користувачам і інші додаткові можливості. Серед них відзначимо одну, хоча і досить специфічну, але в ряді випадків має принципове значення: можливість побудови многоемуляторних комплексів, необхідних для налагодження мультипроцесорних систем. Відмінною особливістю такого комплексу є можливість синхронного управління (з одного комп'ютера) кількома емуляторами.
У загальному випадку, різні моделі внутрісхемних емуляторів можуть надавати користувачеві можливості по контролю і управлінню функціонуванням налагоджують пристроїв, з різного роду обмеженнями. Наприклад це може бути некоректне оброблення переривань в покроковому режимі, або заборона на використання послідовного порту і т.п.. Так само необхідно пам'ятати, що кожна реальна модель емулятора має свій набір підтримуваних компіляторів. Деякі фірми виробники емуляторів свідомо йдуть на обмеження кількості підтримуваних компіляторів, в першу чергу це характерно для західних виробників. У цих випадках емулятор вміє користуватися тільки одним символьним форматом.
Можливості "реального" внутрісхемного емулятора ми проілюструємо на прикладі моделі PICE-51.
PICE-51
Внутрісхемний емулятор 8-розрядних мікроконтролерів сімейства 8051
PICE-51 - емулятор нового покоління, створений із застосуванням нових технологій розробки апаратури і програмного забезпечення.

Застосування програмованих матриць великої ємності дозволило різко скоротити розміри емулятора без якого-небудь збитку його функціональним можливостям, мінімізувати відхилення електричних і частотних характеристик емулятора від характеристик емульованого процесора і, тим самим, домогтися максимальної точності емуляції на частотах до 30 Мгц при напругах живлення від 3.3В до 5В.
Перезавантажуємося апаратна структура емулятора забезпечує емуляцію практично всіх мікроконтролерів сімейства 8051 як вітчизняного виробництва, так і фірм: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS та інших.
Потужний програмний інтерфейс в середовищі Windowsв, являє собою інтегроване середовище розробки, що підтримує всі етапи розробки програмного забезпечення від написання початкового тексту програми до її компіляції та відлагодження. Програма підтримки емулятора орієнтована на налагодження програм на мові високого рівня з вихідного тексту.
Эмулятор состоит из основной платы размером 80х76мм, сменного адаптера под конкретный процессор и сменной эмуляционной головки под конкретный тип корпуса. На основной плате реализованы: трассировщик, процессор точек останова . Плата сменного адаптера содержит эмулирующий процессор под конкретный тип микроконтроллера. Эмуляционные головки обеспечивают установку эмулятора в колодки DIP и PLCC на плате пользователя. Питание эмулятора осуществляется от блока питания +5В, 0,5А или непосредственно от отлаживаемого устройства. Связь с компьютером - по гальванически развязанному каналу RS-232C на скорости 115 КБод..
ХАРАКТЕРИСТИКИ АППАРАТУРЫ
- Точная эмуляция - отсутствие каких-либо ограничений на использование программой пользователя ресурсов микроконтроллера.
- До 256K эмулируемой памяти программ и данных. Поддержка банкированной модели памяти. Распределение памяти между эмулятором и устройством пользователя с точностью до 1-го байта.
- До 512K аппаратных точек останова по доступу к памяти программ и данных.
- Аппаратная поддержка для отладки программ на языках высокого уровня.
- Трассировка 8 произвольных внешних сигналов.
- 4 выхода синхронизации аппаратуры пользователя.
- Трассировщик реального времени с буфером объемом от 16К до 64K фреймов по 64 бита с доступом "на лету". Трассировка адреса, данных, сигналов управления, таймера реального времени и 8-ми внешних сигналов пользователя.
- Программируемый фильтр трассировки.
- Аппаратный процессор точек останова с возможностью задания сложного условия останова эмуляции по комбинации сигналов адреса, данных, управления, 8-ми внешних сигналов, таймера реального времени, счетчиков событий и таймера задержки.
- Четыре комплексных точки останова, которые могут быть использованы независимо или в комбинациях по условиям AND/OR/IF-THEN.
- 48-разрядный таймер реального времени.
- Прозрачная эмуляция - доступ "на лету" к эмулируемой памяти, точкам останова, процессору точек останова, буферу трассировки, таймеру реального времени.
- Управляемый генератор тактовой частоты для эмулируемого процессора. Возможность плавного изменения тактовой частоты от 500 кГц до 40 МГц.
- Гальванически развязанный от компьютера канал связи RS-232C со скоростью обмена 115 КБод.
- Встроенная система самодиагностики аппаратуры эмулятора.
ХАРАКТЕРИСТИКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- Программное обеспечение ориентировано на работу в среде Windowsв на IBM-соместимых компьютерах с процессорами типа 386/486/Pentium;
- Встроенный многооконный редактор предназначен для написания исходных текстов программ. Редактор поддерживает операции с блоками текста, поиск/замену, цветовое выделение синтаксических конструкций языка ассемблера и Си;
- Вбудований менеджер проектів забезпечує автоматичну компіляцію програм. Всі опції задаються в діалоговій формі. Перехід від редагування вихідного тексту до налагодження і назад відбувається "прозоро", тобто менеджер проектів автоматично запускає компіляцію проекту при необхідності;
- PICE-51 забезпечує символьну налагодження і налагодження по вихідному тексту для програм, створених за допомогою таких компіляторів:
- асемблер ASM51 фірми Intel;
- асемблер MCA-51 фірми Фітон / Мікрокосм;
- компілятор PL / M фірми Intel;
- асемблер і компілятор Сі фірми IAR Systems;
- асемблер і компілятор Сі фірми Avocet Systems Inc. / HiTech;
- асемблер і компілятор Сі фірми Keil Software Inc.;
- Автоматичне збереження та завантаження файлів конфігурації апаратури, інтерфейсу і опцій налагодження. Забезпечується сумісність файлів конфігурації з симулятором PDS-51. Забезпечено переносимість проектів між емулятором PICE-51 і симулятором PDS-51;
- Можливість налаштування кольорів, шрифтів та інших параметрів для всіх вікон одночасно і для кожного вікна окремо;
Емулятор забезпечений друкованим посібником з експлуатації і контекстним електронним керівництвом, в яких детально описані його принципи роботи, команди, меню, гарячі клавіші.
Структурна схема емулятора PICE-51
Варіанти комплектації емулятора PICE-51
| Емульований мікроконтролер | Емуляція внутрішньої пам'яті програм | Комплект поставки | ||
| Основна плата | Змінний адаптер | Емуляціонная головка | ||
| Intel: 80C31/32, 80С51/52, 80L/C51FA, 80C51RA; Philips: 80С31/32, 80C51/52, 80C51FA; 80C51RA +, 80CL410, 80C524/528/550/652/654/575/576/851; Atmel: 89C51, 89C52, 89C55, 89S8252, 89S53; Siemens: SAB501/502/504/505/511/513; MHS: 80C31, 80C51, 80C32, 80C52, 80C154; Oki: 80C31, 80C51, 80C154; AMD: 80C31, 80C51, 80C52; | Немає | PICE-51 | POD-51-31 | ADP-51-DIP40 або ADP-51-LCC44 |
| Intel: 80C31/32, 8XС51/52/54/58, 8XL/C51FA/FB/FC, 8XC51RA/RB/RC; Philips: 80С31/32, 8XC51/52/54/58, 8XC51FA/FB/FC; 8XC51RA + / RB + / RC + / RD +, 8XC524/528/550/652/654/575/576/851; 89C535/536/538; Atmel: 89C51, 89C52, 89C55; Siemens SAB501; MHS: 80C31, 8XC51, 80C32, 8XC52, 8XC154; Oki: 80C31, 8XC51, 8XC154; AMD: 80C31, 8XC51, 8XC52; | 64K | PICE-51 | POD-51-RX | ADP-51-DIP40 або ADP-51-LCC44 |
| Atmel: 89C4051, 89C2051, 89C1051; | 4K | PICE-51 | POD-51-31 або POD-51-RX | ADP-51-2051 |
| Philips: 80C451, 80C453; 87C451, 87C453 | 64K | PICE-51 | POD-51-453 | ADP-51-LCC68 |
| Philips: 80C552, 80C562; 80C554 Philips: 80C552, 80C562; 80C554, 87C552, 87C562, 87C554 | Немає 64K | PICE-51 PICE-51 | POD-51-552 POD-51-554 | ADP-51-LCC68 ADP-51-LCC68 |
| Intel: 80C51GB | Немає | PICE-51 | POD-51-GB | ADP-51-LCC68 |
| Dallas: DS80C310, DS80C320, DS8XC520 | 64K | PICE-51 | POD-51-DS530 | ADP-51-DIP40 або ADP-51-LCC44 |
| Dallas: DS8XC530 | 64K | PICE-51 | POD-51-DS530 | ADP-51-DS530 |
Порівняльні характеристики деяких емуляторів для мікроконтролерів сімейства 8051
| Модель, Постачальник | EMUL-51 Nohau Corporation | USP-51 Signum Systems | iceMASTER-8051 MetaLink | PICE-5 Фітон1 |
| Емульований мікроконтролери сімейства 8051 | Всі відомі різновиди | Всі основні різновиди | Всі основні різновиди | Всі основні різновиди |
| Максимальна частота емуляції | 42 MHz | 40 MHz | 24 MHz | 33 MHz |
| Максимальний обсяг емуліруемой пам'яті | 320K | 256K | 128K | 512K |
| Можливості перерозподілу пам'яті між емулятором і пристроєм користувача | Блоками по 4K | Блоками по 256 байт | Блоками по 16 байт | З точністю до 1-го байта |
| Буфер трасування | До 16K фреймів по 48 біт | До 32K фреймів по 80 біт | До 4K фреймів по 48 біт | До 64К фреймів по 64 біта |
| Доступ "на льоту" до емуліруемой пам'яті і трасувальникові | Та | Та | Та | Та |
| Интерфейс с компьютером | Карта в ISA слот | RS-232C,до 115 Kbaude | RS-232C, до 115 Kbaude | Изолированный RS-232C, до 115 Kbaude |
| Конструкция и размеры | Две карты в ISA формате, кабели 2 метра, PODы | Корпус 260x260x64 mm, кабель, POD | Корпус 178x140x25 mm, кабель, POD | Весь эмулятор - в эмуляционной головке размером 80x76x50 mm |
| Цена за сопоставимую конфигурацию поставки: поддержка 80С51, 25 MHz, 128K RAM, буфер трассировки объемо 16K фреймовм | $5200(Nohau price list) | $5300(Signum price list) | $4000 (MetaLink price list) | $990 |
Більш повна інформація, а так само демо-версія емулятора, представлена на Website: http://www.phyton.ru
Звичайно, настільки широкий набір функціональних можливостей, робить внутрісхемний емулятори найбільш потужним і універсальним засобом налагодження.
Симулятори
Симулятор - програмний засіб, здатне імітувати роботу мікроконтролера і його пам'яті. Як правило, симулятор містить у своєму складі:
- відладчик;
- модель ЦПУ і пам'яті.
Більш просунуті симулятори містять в своєму складі моделі вбудованих периферійних пристроїв, таких, як таймери, порти, АЦП, і системи переривань.
Симулятор повинен вміти завантажувати файли програм у всіх популярних форматах, максимально повно відображати інформацію про стан ресурсів сімуліруемого мікроконтролера, а також надавати можливості по симуляції виконання завантаженої програми в різних режимах. В процесі налагодження модель "виконує" програму, і на екрані комп'ютера відображається поточний стан моделі.
Завантаживши програму в симулятор, користувач має можливість запускати її в покроковому або безперервному режимах, задавати умовні або безумовні точки зупину, контролювати і вільно модифікувати вміст комірок пам'яті і регістрів сімуліруемого мікропроцесора. За допомогою симулятора можна швидко перевірити логіку виконання програми, правильність виконання арифметичних операцій.
В залежності від класу використовуваного отладчика, різні симулятори можуть підтримувати високорівневу символьну налагодження програм.
Деякі моделі симуляторів можуть містити ряд додаткових програмних засобів, таких наприклад як: інтерфейс зовнішнього середовища, вбудовану інтегроване середовище розробки.
В реальній системі мікроконтроллер зазвичай займається зчитуванням інформації з підключених зовнішніх пристроїв (датчиків), обробкою цієї інформації і видачею керуючих впливів на виконавчі пристрої. Щоб у симуляторі не володіє інтерфейсом зовнішнього середовища змоделювати роботу датчика, потрібно вручну змінювати поточний стан моделі периферійного пристрою, до якого в реальній системі підключений датчик. Якщо, наприклад, при прийомі байта через послідовний порт зводиться деякий прапорець, а сам байт потрапляє в певний регістр, то обидва ці дії потрібно робити в такому симуляторі вручну. Наявність же інтерфейсу зовнішнього середовища дозволяє користувачеві створювати і гнучко використовувати модель зовнішнього середовища мікроконтролера, що функціонує і взаємодіє з налагоджують програмою по заданому алгоритму. Можливості "реального" отладчика-симулятора проілюструємо на прикладі моделі PDS-PIC.
PDS-PIC
Відладчик-симулятор для розробки та налагодження програм на базі мікроконтролерів PIC16/PIC17.

PDS-PIC - зручне і гнучке засіб для написання і налагодження програм, орієнтованих на мікроконтролери PICmicro фірми Microchip.
Симулятор має:
- Вбудований багатовіконний редактор для написання вихідних текстів програм. Редактор підтримує операції з блоками тексту, пошук / заміну, колірне виділення синтаксичних конструкцій мови асемблера;
- Вбудований менеджер проектів, що підтримує автоматичну компіляцію програм, написаних для макроассемблера PASM-PIC фірми Фітон і для макроассемблера MPASM фірми Microchip.
- Всі опції асемблера задаються у вигляді зручних діалогів. Перехід від редагування вихідного тексту до налагодження і назад відбувається "прозоро", тобто менеджер проектів автоматично запускає асемблер при необхідності;
- Широкие возможности по отладке программ: отслеживание выполнения программы по ее исходному тексту, просмотр и изменение значений любых переменных, встроенный анализатор эффективности программного кода, точки останова по условию и доступу к ячейкам памяти, просмотр стека вызовов подпрограмм, встроенный ассемблер, точный подсчет интервалов времени и многое другое;
- Возможность выполнения программы "назад" на большое количество шагов, а также в непрерывном режиме. При этом состояние модели микроконтроллера полностью восстанавливается;
- Точную модель поведения микроконтроллеров. Симулируется работа всех встроенных в микроконтроллер периферийных устройств: таймеров, АЦП, системы прерываний, портов и т.д.;
- Развитые средства моделирования "внешней среды", т.е. устройств, подключенных к микроконтроллеру. Можно легко задавать различные периодические и непериодические внешние сигналы на ножках микроконтроллера, моделировать работу внешней логики. С помощью встроенных средств графического отображения можно наглядно отображать различные индикаторы, строить графики, моделировать клавиатуру;
- Систему сохранения конфигурации окон и параметров настройки. Возможно сохранение и восстановление неограниченного количества файлов конфигурации;
- Возможность настройки цветов и шрифтов и других параметров для всех окон одновременно и для каждого окна в отдельности;
- Систему контекстной помощи. Находясь в любом меню, окне или диалоге, Вы можете получить справку, относящуюся к этому меню, окну или диалогу;
- PDS-PIC работает в среде Windowsв.
Более подробно особенности симулятора представлены в таблице, составленной по результатам сравнительного анализа двух симуляторов: MPlabSIM -фирмы Microchip и PDS-PIC - фирмы Фитон. Основные особенности и различия MPlabSIM и PDS-PIC обусловлены тем, что при их проектировании были использованы концептуально разные интерфейсы пользователя и среды для симуляции.
| MPlabSIM | PDS-PIC | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Управление* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Точки останова | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Моделируемые события | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Ресурсы процессора | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Моделирование внешних воздействий | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Дополнительные возможности | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
* MPlabSIM использует меню как надстройку над строчным вводом команд управления процессом симуляции с возможностью запоминания и выполнения линейных последовательностей команд. Например, для изменения содержимого регистра нужно произвести следующие действия:
- выбрать в меню раздел "WINDOWS" - выбрать в подменю опцию "MODIFY" - выбрать "что" (STACK,DATA or CODE)(в данном случае "DATA") собираетесь менять - указать адрес - ввести новое значение - подтвердить ввод При этом в окне дампа регистрового фала Вы увидите результат изменения, но в самом окне ничего не сможете изменить (только через меню - аналог командной строки).
Используя PDS-PIC, модифицировать значение рагистра можно нажатием двух клавиш. Так же просто можно выполнять все другие действия по отладке программы.
** На примере из пакета MPLAB-sim для 16c54, при выполнении на рекомендованной MICROCHIP конфигурации P90/16RAM.
Очевидной особенностью программных симуляторов является то обстоятельство, что исполнение программ загруженных в симулятор происходит в масштабе времени, отличном от реального. Однако, низкая цена, возможность ведения отладки даже в условиях отсутствия макета отлаживаемого устройства, делают программные симуляторы весьма эффективным средством отладки. Отдельно необходимо подчеркнуть, что существует целый класс ошибок, которые могут быть обнаружены только при помощи симулятора.
Отладочные мониторы
Отладочный монитор - специальная программа, загружаемая в память отлаживаемой системы. Она вынуждает процессор пользователя производить, кроме прикладной задачи, еще и отладочные функции:
- загрузку прикладных кодов пользователя в свободную от монитора память
- установку точек останова
- запуск и останов загруженной программы в реальном времени
- проход программы пользователя по шагам
- просмотр, редактирование содержимого памяти и управляющих регистров.
Программа монитора обязательно должна работать в связке с внешним компьютером или пассивным терминалом, на которых и происходит визуализация и управление процессом отладки. Повторим, что отладочные мониторы используют тот процессор, который уже стоит на плате пользователя. Достоинством этого подхода являются очень малые затраты при сохранении возможности вести отладку в реальном времени. Главным недостатком является отвлечение ресурсов микроконтроллера на отладочные и связные процедуры, например: монитор занимает некоторый объем памяти, прерывания, последовательный канал. Объем отвлекаемых ресурсов зависит от искусства разработчика монитора. В последнее время появились изделия, которые практически не занимают аппаратных ресурсов процессора, о них будет рассказано ниже, в разделе "Эмуляторы ПЗУ".
Платы Развития
Платы развития, или как принято их называть в зарубежной литературе - оценочные платы (Evaluation Boards), являются своеобразными конструкторами для макетирования прикладных систем. В последнее время, при выпуске новой модели кристалла микроконтроллера, фирма-производитель обязательно выпускает и соответствующую плату развития. Обычно это печатная плата с установленным на ней микроконтроллером, плюс вся необходимая ему стандартная обвязка. На этой плате также устанавливают схемы связи с внешним компьютером. Как правило, там же имеется свободное поле для монтажа прикладных схем пользователя. Иногда, имеется уже готовая разводка для установки дополнительных устройств, рекомендуемых фирмой. Например, ПЗУ, ОЗУ, ЖКИ-дисплей, клавиатура, АЦП и др. Кроме учебных или макетных целей, такие доработанные пользователем платы стало выгодно (экономия времени) использовать в качестве одноплатных контроллеров, встраиваемых в мало серийную продукцию (5..20 шт.).
Для большего удобства, платы развития комплектуются еще и простейшим средством отладки на базе монитора отладки. Однако, здесь проявились два разных подхода: один используется для микроконтроллеров, имеющих внешнюю шину, а второй - для микроконтроллеров, не имеющих внешней шины.
В первом случае отладочный монитор поставляется фирмой в виде микросхемы ПЗУ, которая вставляется в специальную розетку на плате развития. Плата также имеет ОЗУ для программ пользователя и канал связи с внешним компьютером или терминалом. Примером здесь может служить плата развития фирмы Intel для микроконтроллера 8051.
Во втором случае, плата развития имеет встроенные схемы программирования внутреннего ПЗУ микроконтроллера, которые управляются от внешнего компьютера. В этом случае, программа монитора просто заносится в ПЗУ микроконтроллера совместно с прикладными кодами пользователя. Прикладная программа при этом специально должна быть подготовлена: в нужные ее места вставляют вызовы отладочных подпрограмм монитора. Затем осуществляется пробный прогон. Чтобы внести в программу исправления пользователю надо стереть ПЗУ и произвести повторную запись. Готовую прикладную программу получают из отлаженной путем удаления всех вызовов мониторных функций и самого монитора отладки. Примерами могут служить платы развития фирмы Microchip для своих PIC контроллеров. Такой же принцип и у плат для отладки микроконтроллеров 80С750 Philips или 89C2051 Atmel.
Важно отметить, что плюс к монитору, иногда платы развития комплектуются еще и программами отладки, которые запускаются на внешнем компьютере в связке с монитором. Эти программы в последнее время заметно усложнились и зачастую имеют высокопрофессиональный набор отладочных функций, например, отладчик-симулятор, или различные элементы, присущие в чистом виде интегрированным средам разработки. В состав поставляемых комплектов могут входить и программы прикладного характера, наиболее часто встречающиеся на практике.
Возможности по отладке, предоставляемые комплектом "плата развития плюс монитор" безусловно не столь универсальны, как возможности внутрисхемного эмулятора, да и некоторая часть ресурсов микропроцессора в процессе отладки отбирается для работы монитора. Тем не менее, наличие законченного набора готовых программно-аппаратных средств, позволяющих без потери времени приступить к монтажу и отладке прикладной системы, во многих случаях является решающим фактором. Особенно если учесть, что стоимость такого комплекта несколько меньше чем стоимость более универсального эмулятора.
Эмуляторы ПЗУ.
Эмулятор ПЗУ - программно-аппаратное средство позволяющее, замещать ПЗУ на отлаживаемой плате, и подставляющее вместо него ОЗУ, в которое может быть загружена программа с компьютера через один из стандартных каналов связи. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ. Эмулятор ПЗУ имеет смысл только для микроконтроллеров, которые в состоянии обращаться к внешней памяти программ. Это устройство сравнимо по сложности и по стоимости с платами развития. Оно имеет одно большое достоинство: универсальность. Эмулятор ПЗУ может работать с любыми типами микроконтроллеров.
Ранние эмуляторы ПЗУ позволяли только загружать программу, запускать ее и останавливать, используя общий сброс. Затем появились усложненные модели с аппаратной выработкой сигналов трассировки по достижении определенного адреса на осциллограф. Эмулируемая память в таких изделиях была доступна для просмотра и модификации, но очень важный контроль за внутренними управляющими регистрами микроконтроллера был до недавнего времени невозможен.
Однако появились модели интеллектуальных эмуляторов ПЗУ, которые позволяют "заглядывать" внутрь микроконтроллера на плате пользователя и вообще, по управлению отладкой, стали похожими на внутрисхемный эмулятор. Фирма Cactus даже представляет свой фактически интеллектуальный эмулятор ПЗУ, как внутрисхемный эмулятор ряда микропроцессоров, настолько невозможно отличить работу с тем и другим. В действительности, процессор здесь не замещается, а используется тот, что стоит на плате пользователя.
Интеллектуальные эмуляторы ПЗУ представляют собой гибрид из обычного эмулятора ПЗУ, монитора отладки и схем быстрого переключения шины с одного на другой. Этим создается эффект, как если бы монитор отладки был установлен на плате пользователя и при этом он не занимает у микроконтроллера никаких аппаратных ресурсов, кроме небольшой зоны программных шагов, примерно 4К. Например, такое устройство разработала фирма "Фитон" для всех существующих и будущих микроконтроллеров, которые имеют ядро от 8051 но дополнительно насыщенны различными устройствами ввода\вывода. Это устройство поддерживает множество самых разных микроконтроллеров фирм Philips, Siemens, OKI.
Интегрированные среды разработки.
Строго говоря, интегрированные среды разработки не относятся к числу средств отладки, тем не менее обойти вниманием данный класс программных средств, существенно облегчающий и ускоряющий процесс разработки и отладки микропроцессорных систем было бы неправильно.
При традиционном подходе, начальный этап написания программы строится следующим образом:
- Исходный текст набирается при помощи какого-либо текстового редактора. По завершении набора, работа с текстовым редактором прекращается и запускается кросс компилятор. Как правило, вновь написанная программа содержит синтаксические ошибки, и компилятор сообщает о них на консоль оператора.
- Вновь запускается текстовый редактор, и оператор должен найти и устранить выявленные ошибки, при этом сообщения о характере ошибок выведенные компилятором уже не видны, так как экран занят текстовым редактором.
И этот цикл может повторяться не один раз. Если программа не слишком мала и тривиальна, собирается из различных частей, подвергается редактированию или модернизации, то даже этот начальный этап может потребовать очень много сил и времени программиста, и существенно притушить энтузиазм разработчика.
Избежать большого объема рутины и существенно повысить эффективность процесса разработки и отладки, позволяют появившиеся и быстро завоевывающие популярность т.н. интегрированные среды (оболочки) разработки (Integrated Development Environment, IDE).
Как правило, "хорошая" интегрированная среда позволяет объединить под одним крылом имеющиеся средства отладки (внутрисхемный эмулятор, программный симулятор, программатор), и при этом обеспечивает работу программиста с текстами программ в стиле "турбо".
Работа в интегрированной среде дает программисту:
- Возможность использования встроенного много файлового текстового редактора, специально ориентированного на работу с исходными текстами программ.
- Диагностика выявленных при компиляции ошибок, и исходный текст программы, доступный редактированию, выводятся одновременно в многооконном режиме.
- Возможность организации и ведения параллельной работы над несколькими проектами. Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого проекта. Опции используемых компиляторов и список исходных файлов проекта, устанавливаются в диалоговых меню и сохраняются в рамках проекта, устраняя необходимость работы с неудобными batch-файлами.
- Перекомпиляции подвергаются только редактировавшиеся модули.
- Возможность загрузки отлаживаемой программы в имеющиеся средства отладки, и работы с ними без выхода из оболочки.
- Возможность подключения к оболочке практически любых программных средств.
В последнее время, функции интегрированных сред разработки становятся принадлежностью программных интерфейсов наиболее продвинутых эмуляторов и отладчиков-симуляторов. Подобные функциональные возможности, в сочетании с дружественным интерфейсом, в состоянии существенно облегчить жизнь разработчику и ускорить его работу.

