Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Налагодження мікроконтролерів за допомогою емулятора ПЗП. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери Трудомісткість розробки та налагодження робочої програми електронного пристрою, що містить мікропроцесор, нерідко визначає вартість його розробки загалом. У мікроконтролерах (МК), що інтегрували в собі пам'ять та деякі периферійні пристрої, це виявляється особливо сильно. Один із засобів, що значно полегшують налагодження, - описаний в [1] емулятор ПЗП. У цій статті описується технологія роботи з ним. Можливості налагодження не обмежуються викладеними прийомами. Цей процес, як і проектування в цілому, певною мірою - мистецтво: для одного й того самого інструменту кожен створює "свою музику". Ми будемо вдячні читачам, які поділяться своїми оригінальними засобами та методами налагодження програм МК. Складність та трудомісткість процесу налагодження програмного забезпечення МК визначається такими факторами [2]:
Традиційна контрольно-вимірювальна апаратура (наприклад, осцилограф) може лише обмеженою мірою використовуватися для налагодження МК. Найпростіший (і одночасно найнеефективніший) спосіб налагодження - "метод проб і помилок": завантаження програми в репрограмований постійний запам'ятовуючий пристрій (РПЗУ), спроба її виконання, виявлення та виправлення помилок у програмі та апаратурі, стирання РПЗУ, нове завантаження програми і т.д. д. Процеси стирання та запису даних у мікросхему РПЗУ займають багато часу, а після певної кількості циклів перепрограмування вона взагалі виходить з ладу. Багаторазові установки та вилучення мікросхеми знижують надійність електричних контактів у розетці РПЗП. Можливість отримання налагоджувальної інформації про систему практично відсутня. В даний час МК найчастіше налагоджують крос-кошти на базі персонального комп'ютера. Це дозволяє мінімальною мірою відволікати ресурси МК. Пристрій, що налагоджується, як показано на малюнку, з'єднують з комп'ютером через деякий інструментальний засіб, наприклад, емулятор ПЗУ. Такий комплекс дозволяє завантажувати та редагувати програму, вводити до неї тестові модулі, отримувати певну інформацію про систему та багато іншого, про що ми розповімо нижче. Хоча емулятори ПЗУ - не єдиний і не найпотужніший налагоджувальний засіб, вони, як і раніше, популярні. Їх "довголіття" пояснюється незалежністю від типу МК (необхідна лише можливість роботи із зовнішньою пам'яттю програм), роботою в реальному масштабі часу, невисокою ціною та доступністю широкому колу розробників апаратури та радіоаматорів. Технологію налагодження програми за допомогою емулятора ПЗУ розглянемо на прикладі МК сімейства MCS-51 (8031, 8051, 80C31, 80С51. КР1816ВЕ31, КР1816ВЕ51, КР1830ВЕ31, КР1830ВЕ. Приступаючи до налагодження, необхідно перевірити працездатність апаратної частини системи та самого МК. І тому можна скористатися тестами " вільного рахунки " [3]. які полягають у переборі всіх можливих кодових комбінацій лініях портів МК. У процесі тестування лінії портів будуть встановлюватися в стан виведення, тому перш за все переконайтеся за схемою пристрою, що налагоджується, що вони не навантажені на виходи інших елементів. Тимчасово від'єднайте такі навантаження, якщо вони є. Завантажте емулятор ПЗУ кодами команди "ні операції" (NOP) у межах всього адресного простору програм МК. Для MCS-51 це код 00Н. Виконуючи таку "програму", МК послідовно перебирає всі адреси програмної пам'яті. Проконтролюйте осцилографом сигнали ALE, РМЕ та портів Р0, Р2. Осцилограми на лініях портів повинні відповідати тимчасовим діаграмам двійкового лічильника з урахуванням мультиплексування на Р0 молодшого байта адреси та даних. Далі перевірте порти Р1 і РЗ, завантаживши в емулятор ПЗУ тестову програму, наведену в таблиці. 1. Вона виводить на лінії зазначених портів послідовність кодів від 00Н до 0FFH, моделюючи восьмирозрядний двійковий лічильник. Якщо осцилограми відповідають необхідним, відновіть відключені від портів навантаження та переходьте до налагодження робочої програми МК. Пам'ятайте, що ви налагоджуєте одночасно програмну та апаратну частини системи, і не забувайте періодично контролювати сигнали осцилографом в контрольних точках. Невідповідність виду сигналів вашим уявленням про них - привід для серйозних роздумів та додаткових перевірок. Для полегшення розробки та налагодження слід дотримуватись модульного принципу програмування, тобто розділяти програму МК на частини за функціональною ознакою. Це дозволить легко переміщати окремі модулі, а за потреби і застосовувати їх в інших проектах. Модуль, який передається управління після включення живлення чи скидання МК, називають головним чи основним. Передавати керування на точку входу в програму слід командою переходу, а не викликом підпрограми, щоб не засмічувати стек адресою повернення. Щоб уникнути непередбачуваних результатів роботи програми, не забувайте привласнити початкове значення кожної зі змінних до її першого використання. У деяких випадках може знадобитися ініціалізація периферійного обладнання. Блок ініціалізації поміщають на початок основного програмного модуля. Зразковий вид основного програмного модуля на початку налагодження наведено у табл. 2. Він містить лише точку входу в програму та обробник виходу з неї. Хоча в мікроконтролерах такий вихід використовують вкрай рідко, його необхідно передбачити для коректного завершення аварійних ситуацій. У прикладі після завершення роботи програма "зациклюється". З цього стану її виведе лише перезапуск системи сигналом апаратного скидання. Під час налагодження до основного модуля в міру готовності додають інші модулі. Порядок їх підключення та налагодження відіграє важливу роль. Починати слід із драйверів пристроїв виведення інформації (дисплея, цифроаналогового перетворювача тощо), помістивши їх дзвінки в основний модуль. Потім налагоджують драйвери інших периферійних пристроїв, підпрограми обробки даних і після цього перевіряють спільну роботу всіх програмних модулів. При наявності буквенно-цифрового дисплея драйвер його налагоджують в першу чергу і використовують у подальшому для виведення налагоджувальної інформації, наприклад, вмісту внутрішньої пам'яті даних МК. Якщо використовується такий емулятор ПЗУ, що міститься в ньому інформацію здатні записувати і зчитувати як керуючий комп'ютер, так і пристрій, що налагоджується, МК може помістити налагоджувальні дані у вільну область пам'яті емулятора ПЗУ, а керуючий комп'ютер вважає їх і виведе на свій дисплей. Наприклад, щоб вивести вміст внутрішнього ОЗП даних МК, з'єднайте його вихід сигналу запису у зовнішню пам'ять даних (WR) із входом сигналу запису емулятора ПЗП та використовуйте підпрограму, наведену в табл. 3. Передбачається, що обсяг пам'яті програм налаштовуваного пристрою не перевищує 32 Кбайт, тому налагоджувальна інформація, що міститься в пам'ять емулятора, починається з адреси 8000Н. Вміст регістрів R0 і R1 пересилається окремо, так як надалі вони використовуються у підпрограмі для організації циклу. Після виведення налагоджувальної інформації програму МК припиняють, зчитують комп'ютером, що управляє, вміст осередків пам'яті емулятора ПЗУ 8000H-807FH, виводять його на дисплей і аналізують. Аналогічним чином можна вивести вміст всіх програмно доступних регістрів МК. Приступаючи до налагодження драйвера периферійного пристрою, тимчасово відключіть від нього МК-керуючі сигнали, щоб уникнути можливого виходу пристрою з ладу через помилки в програмі. Якщо процес носить одноразовий характер, "зацикліть" його і запрограмуйте при необхідності сигнал синхронізації осцилографа Налагоджуйте драйвер, контролюючи осцилографом формовані МК сигнали. Переконавшись у відповідності до тимчасових діаграм керуючих сигналів необхідним, підключіть периферійний пристрій і продовжіть налагодження драйвера на реальній апаратурі. Насамкінець видаліть з програмного модуля налагоджувальні елементи і перевірте його роботу в остаточному вигляді. Використання спільних ресурсів МК різними модулями досить часто призводить до того, що налагоджена програма перестає працювати при додаванні ще однієї підпрограми. Якщо у програмі використовуються переривання, не забороняйте їх без потреби. Налагоджений модуль не слід видаляти з програми, навіть якщо він не потрібен. При "зависанні" МК стане в нагоді наступний метод локалізації помилки: введіть у програму контрольні точки, що виводять на дисплей послідовно зростаючі числа. Після "зависання" на дисплеї буде відображено число, яке відповідає останній успішно пройденій контрольній точці. Якщо кілька таких точок потрапили в нескінченний цикл, цифри на дисплеї швидко змінюватимуться. Для того щоб визначити, які саме точки потрапили в цикл, доведеться штучно уповільнити зміну чисел, задавши при виведенні кожного програмну затримку, наприклад, у вигляді холостого циклу. Якщо в системі, що налагоджується, немає вбудованого дисплея, інформацію можна вивести на дисплей керуючого комп'ютера через вільну область пам'яті емулятора ПЗУ. Налагодивши всі драйвери пристроїв, приступають до налагодження інших підпрограм. Якщо якась із них реалізує складний алгоритм обробки або перетворення даних, виведення на дисплей одного або декількох проміжних значень змінних часто не дає достатньої для аналізу помилок інформації Подолати труднощі і тут допоможе запис налагоджувальної інформації необхідного обсягу у вільну область пам'яті емулятора ПЗП. Досягши нормальної роботи всіх програмних модулів, можна налагоджувати їх спільно. Виникаючі у своїй проблеми поділяються на дві групи. До першої належать проблеми спільного використання загальних ресурсів МК: арифметико-логічного пристрою, пам'яті даних, портів введення-виведення. Друга пов'язана з роботою мікроконтролерів у реальному масштабі часу. Системи реального часу зазвичай багатопоточні. Декілька програмних завдань (потоків) виконуються паралельно, взаємодіючи один з одним і використовуючи спільні ресурси. Але в кожний момент МК через свою структуру вирішує лише одну з них, по черзі переключаючись на інші з урахуванням пріоритету. Конфлікти між завданнями виникають як через брак ресурсів, і через дефіцит часу на обробку даних. Тому звертайте особливу увагу на ресурси МК, які у програмних модулях, частіше контролюйте зміна їхнього стану шляхом виведення налагоджувальної інформації. Намагайтеся зменшити кількість глобальних змінних, по можливості замінюючи їх локальними. Слідкуйте за станом стека. Оцінюйте час виконання критичних ділянок програми, перевіряйте систему за різних значень вхідних сигналів, можливих практично. За допомогою емулятора ПЗУ можна налагодити програму, призначену для роботи у внутрішній пам'яті МК, якщо тимчасово розмістити її у зовнішній пам'яті програм. Оскільки порти Р0 і Р2 виявляться зайнятими обслуговуванням зовнішньої пам'яті, то, якщо залишилися вільними ліній вводу-виведення МК недостатньо, Р0 і Р2 замінюють портами вводу-виводу, адресованими як осередки зовнішньої пам'яті даних. Їх підключають за стандартними схемами, застосовуючи збільшення числа ліній виведення тригерные регістри, а числа ліній введення - елементи з трьома станами виходів. Налагодивши систему за допомогою емулятора, видаліть з неї налагоджувальні елементи, запишіть програму в ПЗП (або у внутрішню пам'ять програм МК) та перевірте роботу пристрою в остаточному вигляді. література
Автори: Г.Видолоб, В.Самойлов, м.Москва (Зеленоград) Дивіться інші статті розділу Мікроконтролери. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Новий спосіб управління та маніпулювання оптичними сигналами
05.05.2024 Приміальна клавіатура Seneca
05.05.2024 Запрацювала найвища у світі астрономічна обсерваторія
04.05.2024
Інші цікаві новини: ▪ Найдальший об'єкт Сонячної системи ▪ Глобальне потепління особливо сильно вдарить по США Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Дитяча наукова лабораторія. Добірка статей ▪ стаття Історичний шлях – не тротуар Невського проспекту. Крилатий вислів ▪ стаття Як хмарам вдається триматися на небі? Детальна відповідь ▪ стаття Робота з ручною лебідкою та ручною таллю. Типова інструкція з охорони праці ▪ стаття Проста схема біпера. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Зникнення напою. Секрет фокусу
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |