русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Інструментальні та програмні засоби розробки та налагодження

найефективніший спосіб налагодження програм для МК - застосування спеціалізованих професійних інструментальних налагоджувальних засобів, до яких слід віднести:

  • внутрисхемные емулятори (ВСЕ) - програмно апаратний засіб, здатний замінити собою эмулируемый процесор у реальному пристрої;
  • програмні симулятори - програмне засіб здатний імітувати роботу МК і його пам'яті;
  • монітори налагодження - спеціальна програма, завантажується в пам ’ ять, що налагоджується системи.
  • плати розвитку (Evaluation Boards - оціночні плати) - своєрідні конструктори для макетування прикладних систем;
  • емулятори ПЗУ - програмно-апаратний засіб, що дозволяє замінити ПЗУ отлаживаемого пристрою на ОЗУ, яке можна завантажити програму з комп ’ ютера через один із стандартних каналів зв'язку.

Крім цього існують і комбіновані пристрої та набори.

 

Симулятори

Як правило, симулятор складається з відладчика, моделі ПРОЦЕСОРА і пам'яті. Більш досконалі пристрої містять у своєму складі моделі вбудованих периферійних пристроїв (таймерів, портів, АЦП і систем переривань).
Симулятор повинен уміти завантажувати файли програм у всіх популярних форматах, максимально повно відображає інформацію про стан ресурсів симулируемого МК, а також надавати можливості по симуляції виконання завантажується програми в різних режимах. В процесі налагодження модель виконує програму, і на екрані монітора комп'ютера відображається поточний стан моделі.
Завантаживши програму в симулятор, користувач може запустити її покроковому або безперервному режимі, задавати умовні або безумовні точки зупину, контролювати і вільно змінювати вміст комірок пам'яті і регістрів симулируемого МК. Симулятор дозволяє швидко перевірити логіку виконання програми, правильність виконання арифметичних операцій.
залежно від класу використовуваного відладчика деякі моделі симуляторів підтримують високорівневий налагодження програм.
Симулятор може містити й ряд додаткових програмних засобів, наприклад інтерфейс зовнішнього середовища. Наявність такого інтерфейсу дозволяє створювати і гнучко використовувати модель зовнішнього середовища МК, функціонуючу і впливає на отлаживаемую програму по заданому алгоритму.
В реальному системі МК «зазвичай займається» зчитуванням інформації з підключених до нього пристроїв (датчиків), обробкою і її видачі керуючих сигналів на виконавчі пристрої. Для того щоб у простому симуляторі змоделювати роботу датчика, потрібно вручну змінювати поточний стан моделі периферійного пристрою, до якого в реальному системи підключено датчик. Але існує ряд сучасних програмних розробок симуляторів, в яких щоб імітувати зовнішні умови і ситуації, зазвичай використовується спеціальний файл вхідних впливів. Цей файл визначає послідовність вхідних сигналів, що надходять на імітації пристрій.
наприклад, для мікроконтролерів AVR цей вхідний файл програмного симулятора може виглядати наступним чином:
000000000:00
000000006:F1
000000015:18
000000109:1C
000000203:61
000000250:10
000000344:1F
000000391:71
999999999:ff
де кожен рядок містить цикл:дані , що надходять на якій або вказаний порт.
В деяких моделях симуляторів ця проблема імітації зовнішніх сигналів вирішено таким чином, що симулятор має вбудований засіб для створення моделей підключених до МК зовнішніх пристроїв, включаючи кошти графічного відображення інформації.
Очевидна особливість програмних симуляторів в тому, що завантажені в них програми виконуються в масштабі часу, відмінному від реального. Однак низька ціна, можливість налагодження навіть при відсутності макета отлаживаемого пристрою роблять програмні симулятори вельми привабливим засобом налагодження. Необхідно також відзначити, що існує цілий клас помилок, які можна виявити лише за допомогою симулятора.

 

Інтегровані середовища розробки

Ідея єдності програмного і апаратного забезпечення систем на базі МК є дуже важливою. Об'єднання інструментальних засобів розробки програмного забезпечення з інструментальними засобами розробки апаратного забезпечення може стати важливою перевагою при розробці пристроїв.
Істотно спрощують і прискорюють процес розробки та налагодження мікропроцесорних систем, так звані інтегровані середовища розробки. Вони поєднують у собі текстовий редактор для написання вихідних текстів, транслятори з асемблера і Сі, лінкер, налагодження, довідкову інформацію по МК та інші засоби, необхідні розробнику. Налаштування трансляторів, лінкера та інших компонентів здійснюється не методом вказівки ключів в командному рядку, а у вигляді діалогових вікон, де потрібно тільки розставити «галочки» в потрібних місцях. Перетворення вихідних текстів програм у файл машинних кодів запускається натисненням однієї клавіші.
Поява інтегрованих середовищ розробки програм ще більше підвищило ефективність створення програм для МК, дозволило розробникам зосередитися на суті розв'язуваної задачі і відволіктися від конкретних деталей її реалізації. Інтегровані пакети для розробки програм випускають кілька фірм, пакети різних виробників схожі між собою по функціям, але розрізняються надаваними сервісними можливостями, зручністю роботи і якістю генерованого машинного коду.
Нагадаємо, що при традиційному підході початковий етап написання програм будується таким чином. Вихідний текст набирають за допомогою будь-якого текстового редактора. По завершенню набору робота з текстовим редактором припиняється і запускається крос-компілятор. Як правило, нова програм містить синтаксичні помилки, і компілятор повідомляє про них на консоль оператора. Потім знову запускається текстовий редактор, і оператор ищет і усуває виявлені помилки. При цьому повідомлення про їхній характер, виведені компілятором вже не видно, оскільки екран зайнятий текстовим редактором.
Цей цикл може повторюватися не один раз. І якщо програма щодо складна, збирається з різних частин, підлягає редагуванню або модернізації, то навіть цей початковий етап може зажадати дуже багато сил і часу програміста.
Уникнути рутинної роботи і тим самим істотно підвищити продуктивність праці програміста дозволяє з'явилися і швидко завойовують популярність так звані інтегровані середовища (оболонки) розробки (Integrated Development Environment - IDE).
Як правило, гарна інтегроване середовище об'єднує наявні засоби налагодження (внутрисхемный емулятор, програмний симулятор і програматор) і забезпечує роботу програміста з текстами програм в стилі діалогових вікон.
Інтегроване середовище дозволяє:

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

останнім часом функції інтегрованих середовищ розробки стає приналежністю програмних інтерфейсів найбільш «просунутих» емуляторів і відладчик симуляторів.Такі функціональні можливості в поєднанні з дружнім інтерфейсом істотно прискорюють роботу програміста.
Таким чином, вибираючи інструментальні засоби налагодження, доцільно враховувати наступний комплекс показників: перелік підтримуваних МК, обмеження на ресурси емульованих/симулируемых МК, можливість символьного налагодження, перелік підтримуваних компіляторів і, нарешті, сервісні можливості.

 

Мова Асемблера.

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

 

Мови програмування високого рівня.

Для програмування МК можна використовувати різні мови високого рівня. Термін «мова високого рівня» служить для позначення мов, що використовуються для написання легко читаються програм, які конвертуються (компілюються) в мова асемблера, а потім перетворюються в об'єктний код (біти і байти) для їх виконання мікроконтролером.
Перелічимо основні характеристики мов високого рівня:

  • наявність вбудованих функцій (наприклад, консольний ввід/вивід) з підключаються бібліотеками;
  • різноманітні типи даних (8-, 16-, 32-бітні і з плаваючою точкою);
  • виконання арифметичних операцій з використанням стека;
  • використання локальних і глобальних змінних, покажчиків і структур даних;
  • розподіл пам'яті;
  • доступ до апаратних регістрів;
  • символічна інформація для симулятора/емулятора.

Реалізація цих характеристик може бути проблематичним для вбудованих МК, які володіють наступними особливостями:

  • обмежений обсяг пам'яті програм ROM і пам'яті даних RAM;
  • відсутність BIOS або операційної системи;
  • переопределяемый ввід/вивід (коли висновок може використовуватися як цифроаналоговий/послідовний вхід/вихід).

Таким чином, використання асемблера необхідно, якщо до розміру і швидкодії генерується коду пред'являються дуже жорсткі вимоги. В даний час таких випадків стає все менше і менше, тому що практично завжди можна взяти більш «швидкий» МК з великим об'ємом пам'яті. Крім того, сучасні пакети крос коштів дозволяють легко писати змішані програми, де частина модулів написана на Сі найбільш критичні до швидкодії частини - на асемблері. Компілятори Сі дозволяють також вставляти у вихідні тексти асемблерні інструкції.
При розробці програмного забезпечення для МК існує кілька правил, які слід виконати, щоб обсяг ресурсів, що використовуються не перевищив доступний межа.

  • Використовувати тільки один вид інтерфейсу з апаратними засобами (зовнішніми пристроями). Застосування різних інтерфейсів створює проблеми, якщо буде потрібно підключати інші типи зовнішніх пристроїв.
  • Ідентифікувати глобальні змінні, специфічні для підпрограм, і не використовувати їх де-небудь ще в коді.
  • Використовувати скрізь, де можливо, локальні змінні (це можна реалізувати тільки в мовах високого рівня).
  • Якщо передбачається наявність тимчасово використовуваних змінних, то програма повинна забезпечити їх унікальне використання.

Дотримання цих правил при розробці прикладних програм позбавить вас надалі від проблем, пов'язаних з усуненням важко виявляються нестійких помилок у програмі.

Переглядів: 1440

Повернутися в зміст: Архітектура мікроконтролерів




Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн