Меню English Ukrainian російська Головна

Безкоштовна технічна бібліотека для любителів та професіоналів Безкоштовна технічна бібліотека


Ініціалізація додаткових сегментів пам'яті програм для мікроконтролерів сімейства MCS-51. Енциклопедія радіоелектроніки та електротехніки

Безкоштовна технічна бібліотека

Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери

Коментарі до статті Коментарі до статті

Сучасні мікроконтролери мають вбудовану енергонезалежну пам'ять даних (EEPROM), інформацію в яку іноді необхідно занести до початку роботи приладу. Образ (прошивка) цієї пам'яті має бути сформований під час розробки програми. Це дозволяють зробити, наприклад, асемблери для мікроконтролерів сімейств PICmicro та AVR. Вони дають програмісту можливість організувати додатковий сегмент пам'яті та задати в ньому вихідні дані для запису EEPROM.

Ассемблери для мікроконтролерів з ядром MSC-51 теж дозволяють розділити пам'ять на кілька частин, але лише в одній з них - сегменті коду, що виконується - можлива ініціалізація. У решті дозволено лише резервувати осередки пам'яті і записувати у яких дані лише у виконання програми. Виходом із ситуації може бути прийом, про який розказано нижче. Суть його - використання умовного асемблювання, у результаті ініціалізація сегмента коду відбувається по-різному, залежно та умовами трансляції. Отримані файли НЕХ можуть бути використані для програмування не тільки внутрішнього EEPROM мікроконтролера, але і зовнішніх мікросхем пам'яті.

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

Приклад програми з двома додатковими ініціалізованими сегментами, умовно названими EEPROM та FLASH, наведено у табл. 1. Зберігши його у файлі example.asm, скористаємося асемблером ASEM-51, який можна безкоштовно завантажити за адресою .

Насамперед запустимо асемблер командним рядком

asem example.asm eeprom.hex/define:EEPROM

Обробляючи перші рядки тексту програми, він помістить до своєї таблиці символів мітки idEeprom, ptrWord і prtBufE, а вихідний файл eeprom.hex (табл. 2) - задані директивами DB і DW дані. Потім буде виконано перевірку довжини сегмента. Якщо значення програмного лічильника перевищило фізично існуючий обсяг EEPROM (у цьому випадку - 640 осередків), буде виведено повідомлення про помилку. При явно невеликому обсязі сегмента перевірку можна виключити. Аналогічні перевірки можна передбачити і інших сегментах.

Ініціалізація додаткових сегментів пам'яті у програмах для мікроконтролерів сімейства MCS-51
(Натисніть для збільшення)

Далі асемблер зустріне директиву IFNDEF EEPROM. Оскільки символ з таким іменем у командному рядку визначений (параметр /define:EEPROM), усі наступні рядки програми, аж до директиви ENDIF, будуть проігноровані і трансляція закінчиться.

Повторну трансляцію тієї ж програми запустимо командним рядком

asem example.asm flash.hex/define:FLASH

Вона відрізняється від попередньої лише визначенням символу FLASH замість EEPROM. Перший етап трансляції пройде точно так, як описано вище, і вихідний файл будуть записані дані сегмента EEPROM. Однак директива IFNDEF EEPROM цього разу процес не перерве, а наступна за нею директива ORG 0 обнулює програмний лічильник. Асемблер почне заносити у вихідний файл із нульової адреси дані, призначені для сегмента FLASH. Трансляцію перерве директива IFNDEF FLASH. Остаточний вид файлу flash.hex показаний у табл. 3.

Трансляцію справжнього сегмента виконуваного коду задамо командою

asem example.asm

Насамперед, будуть знову відтрансльовані додаткові сегменти, а всі певні в них мітки занесені до таблиці символів асемблера, що дозволить посилатися на них із сегмента коду. Директива ORG 0 на самому його початку вкотре обнулює програмний лічильник. Далі трансляція піде звичайним чином. В отриманому файлі example.hex (табл. 4) код програми, що виконується, починається з четвертого рядка, перебуваючи після рядків, ідентичних що містяться в попередніх НЕХ-файлах.

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

Деякі програматори немає проміжного буфера чи суворо контролюють вхідні дані, не допускаючи перекриття адрес. У першому випадку програмування буде неправильним, у другому - взагалі не почнеться, доки "помилки" не будуть усунені.

Видалити зайві рядки з файлу НЕХ можна вручну за допомогою будь-якого текстового редактора. Можна зробити це автоматично, виконавши поспіль дві команди:

hex2bin example.hex bin2hex example.bin

Перша створить двійковий образ даних у файлі example.hex і помістить їх у файл example.bin. Друга виконає зворотне перетворення та створить новий файл example.hex вже без надмірностей. Необхідні програми можна завантажити за адресами і .

Автор: С.Чекунов, м. Іжевськ

Дивіться інші статті розділу Мікроконтролери.

Читайте та пишіть корисні коментарі до цієї статті.

<< Назад

Останні новини науки та техніки, новинки електроніки:

Новий спосіб управління та маніпулювання оптичними сигналами 05.05.2024

Сучасний світ науки та технологій стрімко розвивається, і з кожним днем ​​з'являються нові методи та технології, які відкривають перед нами нові перспективи у різних галузях. Однією з таких інновацій є розробка німецькими вченими нового способу керування оптичними сигналами, що може призвести до значного прогресу фотоніки. Нещодавні дослідження дозволили німецьким ученим створити регульовану хвильову пластину всередині хвилеводу із плавленого кремнезему. Цей метод, заснований на використанні рідкокристалічного шару, дозволяє ефективно змінювати поляризацію світла через хвилевід. Цей технологічний прорив відкриває нові перспективи розробки компактних і ефективних фотонних пристроїв, здатних обробляти великі обсяги даних. Електрооптичний контроль поляризації, що надається новим методом, може стати основою створення нового класу інтегрованих фотонних пристроїв. Це відкриває широкі можливості для застосування. ...>>

Приміальна клавіатура Seneca 05.05.2024

Клавіатури – невід'ємна частина нашої повсякденної роботи за комп'ютером. Однак однією з головних проблем, з якою стикаються користувачі, є шум, особливо у випадку преміальних моделей. Але з появою нової клавіатури Seneca від Norbauer & Co може змінитися. Seneca – це не просто клавіатура, це результат п'ятирічної роботи розробників над створенням ідеального пристрою. Кожен аспект цієї клавіатури, починаючи від акустичних властивостей до механічних характеристик, був ретельно продуманий і збалансований. Однією з ключових особливостей Seneca є безшумні стабілізатори, які вирішують проблему шуму, характерну для багатьох клавіатур. Крім того, клавіатура підтримує різні варіанти ширини клавіш, що робить її зручною для будь-якого користувача. І хоча Seneca поки не доступна для покупки, її реліз запланований на кінець літа. Seneca від Norbauer & Co є втіленням нових стандартів у клавіатурному дизайні. Її ...>>

Запрацювала найвища у світі астрономічна обсерваторія 04.05.2024

Дослідження космосу та її таємниць - це завдання, яка привертає увагу астрономів з усього світу. У свіжому повітрі високих гір, далеко від міських світлових забруднень, зірки та планети розкривають свої секрети з більшою ясністю. Відкривається нова сторінка в історії астрономії із відкриттям найвищої у світі астрономічної обсерваторії – Атакамської обсерваторії Токійського університету. Атакамська обсерваторія, розташована на висоті 5640 метрів над рівнем моря, відкриває нові можливості для астрономів у вивченні космосу. Це місце стало найвищим для розміщення наземного телескопа, надаючи дослідникам унікальний інструмент вивчення інфрачервоних хвиль у Всесвіті. Хоча висотне розташування забезпечує більш чисте небо та менший вплив атмосфери на спостереження, будівництво обсерваторії на високій горі є величезними труднощами та викликами. Однак, незважаючи на складнощі, нова обсерваторія відкриває перед астрономами широкі перспективи для дослідження. ...>>

Випадкова новина з Архіву

Нанопроводи для кремнієвої фотоніки 24.04.2014

Розробникам IBM вдалося створити нанопроводи з арсеніду галію, які мають властивості, корисні для кремнієвої фотоніки.

Сьогодні як одна з можливостей забезпечення подальшого прогресу у розвитку напівпровідникових технологій розглядають роботу з елементами з III-V груп періодичної системи.

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

У підрозділі IBM в Цюріх вдалося використовувати інші цікаві властивості подібних сплавів. Розробники IBM створили на звичайній кремнієвій пластині ділянки, що включають нанопроводи з механічно напруженого арсеніду галію. Шляхом зміни механічного навантаження на нанопровідники (стискаючи і розтягуючи їх), вдалося досягти такої зміни електричних властивостей "проводів", що вони або випускали фотони, або поглинали їх.

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

Інші цікаві новини:

▪ Зовнішні акумулятори HyperJuice для мобільної техніки

▪ Видобуток корисних ресурсів на Місяці

▪ Мультимедійний програвач Dueple

▪ Сенсорний дисплей, що не вимагає торкання пальців

▪ TWS-навушники Urbanista Phoenix із вбудованою сонячною батареєю

Стрічка новин науки та техніки, новинок електроніки

 

Цікаві матеріали Безкоштовної технічної бібліотеки:

▪ Розділ сайту Пристрої захисного відключення. Добірка статей

▪ стаття Довгий ящик. Крилатий вислів

▪ стаття Як отримав свою назву мексиканський вулкан Парікутін? Детальна відповідь

▪ стаття Робота з монтажно-поршневим пістолетом. Типова інструкція з охорони праці

▪ стаття Прості ефективні антени для далеких зв'язків. Енциклопедія радіоелектроніки та електротехніки

▪ стаття Купюра протикається олівцем і залишається неушкодженою. Секрет фокусу

Залишіть свій коментар до цієї статті:

ім'я:


E-mail (не обов'язково):


коментар:





All languages ​​of this page

Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт

www.diagram.com.ua

www.diagram.com.ua
2000-2024