<
  • Главная
Статьи

Програмування.

Головна технології мікропроцесори програмування

Програмування для мікроконтролерів як і програмування для універсальних комп'ютерів пройшло великий шлях розвитку від програмування в машинних кодах до застосування сучасних інтегрованих систем написання програм, налагодження та програмування мікроконтролерів. В даний час початковий текст програми пишеться на одній з мов програмування.

Процес перетворення операторів вихідної мови програмування в машинні коди мікропроцесора називається трансляцією вихідного тексту. В даний час ручна трансляція програм практично не використовується. Трансляція здійснюється спеціальними программамі- трансляторами.

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

Малюнок 1. Класифікація програм-трансляторів мов програмування.

Самі мови програмування в свою чергу діляться на дві групи:

  1. мови програмування "високого" рівня
  2. мови програмування "низького" рівня.

До мов програмування "низького" рівня відносяться мови програмування в яких кожному оператору відповідає не більше однієї машинної команди. Набір машинних команд кожного конкретного процесора обов'язково входить до складу такої мови програмування. Мови програмування низького рівня в даний час називаються асемблер (стара назва автокоди). Для кожного процесора існує своя група ассемблеров. Асемблери для одного і того ж процесора розрізняються між собою додатковими можливостями, які полегшують програмування.

Мови програмування "високого" рівня дозволяють замінювати один оператор декількома машинними командами. Це дозволяє збільшувати продуктивність праці програмістів. Крім того, мови "високого" рівня дозволяють писати програми, які можуть виконуватися на різних процесорах. (Природно, що при цьому необхідно використовувати програми - траслятори для відповідного процесора.)

Про переваги і недоліки мов високого і низького рівнів говорилося досить багато. Вибір мови програмування залежить від складу апаратури, для якої пишеться програма, а також від потрібного швидкодії всього програмно - апаратного комплексу в цілому.

У тих випадках, коли об'Јм ОЗУ і ПЗУ малий (в районі декількох кілобайт) альтернативи ассемлеру немає. Саме ці мови програмування дозволяють отримувати найкоротший і швидкодіючий код програми (при інших рівних умовах, тому що зіпсувати можна всЈ!).

Мови програмування високого рівня дозволяють значно скоротити час створення програми, але при цьому збільшується розмір програми, тому для вибору такої мови програмування для мікропроцесорних систем необхідно мати досить великий об'Јм пам'яті програм (кілька десятків кілобайт). Збільшення об'Јма програми пов'язано з декількома факторами:

  1. Мова програмування розраховується на всі випадки життя, тому в більшості випадків людина могла б написати програму коротше (виключивши непотрібні в даному конкретному випадку перевірки або захисту).
  2. Програміст не бачить до чого призводить використання тих або інших операторів мови програмування, тому може вибирати оператори, які не оптимальні як з точки зору довжини машинного коду програми, так і з точки зору швидкодії програми.
  3. Програміст не використовує підпрограми там, де вони могли б скоротити об'Јм програми, так як на мові програмування високого рівня це всього один або кілька операторів.

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

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

Компілятори бувають оціночні і професійні.

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

Професійні транслятори дозволяють виробляти трансляцію вихідного тексту програми по частинах. Це дозволяє значно скоротити час трансляції вихідного тексту програми, так як не потрібно транслювати весь текст програми, а можна транслювати лише ту частину програми, яка змінювалася після попередньої трансляції. Крім того, кожен програмний модуль може писати окремий програміст. Це дозволяє скоротити час написання програми. Навіть в тому випадку, якщо програму пише одна людина, час написання програми скорочується за счЈт використання готових налагоджених і оттранслировать програмних модулів . У таких компіляторах процес трансляції програми розбивається на два етапи: трансляція програмного модуля і зв'язування програмних модулів в єдину програму. Тому такі компілятори називаються компіляторами з роздільним трансляцією.

Оціночні компілятори зазвичай пропонуються безкоштовно фірмами - виробниками мікроконтролерів. Тільки фірма Intel запропонувала в своЈ час професійний пакет розробки програм - мова програмування PLM-51 до складу якого входить професійну мову програмування ASM-51.

Професійні компілятори розробляються і продаються окремими фірмами. Для мікроконтролерів сімейства MCS-51 здобули популярність продукти таких фірм як FRANCLIN , IAR , KEIL . До складу сучасних засобів написання і налагодження програм для мікроконтролерів зазвичай входять емулятори процесорів або налагоджувальні плати, текстовий редактор, компілятори мови високого рівня (найчастіше "C") і асемблера, редактор зв'язків і завантажувач програми в отладочную плату. Всі програми зазвичай об'єднані інтегрованим середовищем розробки програмного проекту, що дозволяє підтримувати один або кілька програмних проектів.

[ назад ] [ зміст ] [ вперед ]



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью