Засоби розробки і налагодження для однокристальнихмікроконтролерів

До числа основних інструментальних засобів налагодження відносяться:

  • внутрісхемние емулятори.
  • програмні симулятори.
  • плати розвитку (оціночні плати).
  • монітори налагодження.
  • емулятори ПЗУ.

Цей список не вичерпує всіх типів існуючих інструментальних засобів налагодження. Крім зазначених, існують і комбіновані пристрої та набори, які дозволяють компенсувати недоліки основних засобів, взятих порізно.

Внутрісхемние емулятори.

Внутрісхемний емулятор - програмно апаратне засіб, здатне заміщати собою емульований процесор в реальній схемі. Внутрісхемний емулятор - це найбільш потужний і універсальне налагоджувальне засіб.

По суті справи, "хороший" внутрісхемний емулятор робить процес функціонування отлаживаемого контролера прозорим, тобто легко контрольованим, довільно керованим і модифікується з волі розробника.

Функціонально внутрісхемние емулятори діляться на стикуються з зовнішньої обчислювальною машиною (зазвичай це буває 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
Операція *
мишка
система меню
"гарячі клавіші"
через модель зовнішнього середовища
да
да
да
немає
да
да
да
да
точки зупинки
за адресою виконуваного коду
по вмісту регістра
при зміні значення виразу
при виконанні логічного умови
да
да
немає
немає
да
да
да
да
моделюються події
синхронні
асинхронні
тимчасовий дозвіл
да
немає
4 циклу команд
Так
Так
1 цикл команд
ресурси процесора
Reset
Interrupt
Timer0
Timer1
Timer2
CCP1
CCP2
PWM1 / 2
PSP
SSP
I2C
SCI (USART)
EEPROM
ADC
Comparators
Vref
RC генератор
модуль АЦП
без затримки включення
повністю
тільки синхронно
тільки синхронно
повністю
повністю
повністю
без високого дозволу
тільки синхронно
повністю
тільки регістри
тимчасові затримки
без захисної послідовності
тільки затримки і регістри
тільки регістри
тільки регістри
dчастота постійна
тільки затримки
повністю
повністю
синхронно / асинхронно
синхронно / асинхронно
повністю
повністю
повністю
повністю
синхронно / асинхронно
тільки регістри і прапори переривання
тільки регістри
тільки регістри
повністю
повністю
повністю
повністю
частота задається незалежно від частоти тактового генератора
регістри для аналогових входів
Моделювання зовнішніх впливів
установка заданих значень на вході порту введення / виведення
пряма запис в регістри
циклічні впливу
асинхронні впливу
опис (завдання впливів) зовнішнього середовища алгоритмічно
зовнішні аналогові сигнали
тільки синхронно (за номером циклу команди)
да
да
взаємозв'язок межу входом і кнопкою у відповідному діалозі
немає
немає
синхронно / асинхронно
да
да
да
да
да
Додаткові можливості
прогін програми назад (backtrace)
аналізатор ефективності виконання програмного коду (profiler)
можливості графічного відображення процесів
швидкодія **
немає

немає


немає

400 команд / сек
да

да


да

100 000 команд / сек

* 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-файлами.
  • Перекомпіляції піддаються тільки редагувати модулі.
  • Можливість завантаження налагоджують програму в наявні засоби налагодження, і роботи з ними без виходу з оболонки.
  • Можливість підключення до оболонки практично будь-яких програмних засобів.

Останнім часом, функції інтегрованих середовищ розробки стають приналежністю програмних інтерфейсів найбільш просунутих емуляторів і отладчиков-симуляторів. Подібні функціональні можливості, в поєднанні з дружнім інтерфейсом, в стані істотно полегшити життя розробнику і прискорити його роботу.