Menu Home

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


Инициализация дополнительных сегментов памяти в программах для микроконтроллеров семейства MCS-51. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

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

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

Искусственно создаваемые дополнительные сегменты (допустимо любое их число) помещают в текст программы до реального сегмента кода. Метки, определенные в одном из них, будут известны во всех следующих, в том числе в реальном сегменте кода. А вот ссылки в обратном направлении недопустимы. На тип и физическое расположение дополнительной памяти ограничений нет.

Пример программы с двумя дополнительными инициализированными сегментами, условно названными EEPROM и FLASH, приведен в табл. 1. Сохранив его в файле example.asm, воспользуемся ассемблером ASEM-51, который можно бесплатно "скачать" по адресу <plit.de/asem-51/ asem5113.zip>.

Прежде всего запустим ассемблер командной строкой

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 уже без излишеств. Необходимые программы можно "скачать" по адресам <ftp://atmel.com/pub/atmel/hex2bin.exe> и <ftp://atmel.com/pub/atmel/bin2hex.exe>.

Автор: С.Чекунов, г. Ижевск

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Экраны влияют на детей неравномерно в разном возрасте 01.08.2026

Планшеты и смартфоны давно стали привычной частью повседневной жизни даже самых маленьких детей. Родители часто используют гаджеты, чтобы успокоить малыша или занять его на время, однако ученые все чаще задаются вопросом, как экранное время сказывается на развитии мозга и будущей способности к обучению. Новое исследование показывает, что значение имеет не только продолжительность просмотра, но и возраст, в котором ребенок проводит время перед экраном. Ученые наблюдали детей от рождения до 8 лет. Оказалось, что больше всего экраны влияют на мозг в два периода - в раннем младенческом возрасте и перед поступлением в школу. У детей, много времени проводивших перед экранами в эти возрастные точки, в 9 лет были несколько хуже успехи в обучении, а в 10,5 лет хуже работала рабочая память - способность удерживать и обрабатывать информацию здесь и сейчас. Исследователи из Франции и Сингапура проанализировали данные 502 детей и выделили два ключевых этапа. У младенцев мозг развивается очень ...>>

Умные жилеты, спасающие от жары 01.08.2026

Летняя жара в больших городах все чаще становится серьезным испытанием для людей, работающих на открытом воздухе. Мусорщики, строители и другие специалисты вынуждены проводить часы под палящим солнцем, рискуя перегревом. Китайские инженеры предложили практичное решение - специальные охлаждающие жилеты, которые помогают снизить ощущаемую температуру примерно на 10 градусов. Пока мир страдает от сильной жары, китайские инженеры разработали "умные" жилеты с климат-контролем. Жилеты с кондиционированием почти не отличаются от обычной рабочей одежды. Главное отличие - в системе охлаждения. В городе Нанкин в жилет вмонтированы два вентилятора, работающих от портативных аккумуляторов. Одного заряда хватает на 3-4 часа непрерывной работы. В Чанчжоу решили разместить в карманах охлаждающие элементы с материалом, который при нагревании переходит из твердого состояния в жидкое, активно поглощая тепло. Это поддерживает комфортную температуру в течение 2,5-4 часов. Такие жилеты выглядят почти ...>>

Летающие ветротурбины 3 МВт вышли в серию 31.07.2026

Традиционные ветряные электростанции зависят от силы и стабильности ветра у поверхности земли, где воздушные потоки часто бывают слабыми и порывистыми. На больших высотах ветер обычно сильнее и постояннее, поэтому инженеры уже давно рассматривают возможность подъема турбин в воздух. Китайская компания сделала важный шаг в этом направлении, перейдя от испытаний к мелкосерийному производству. Компания Beijing Linyi Yunchuan Energy Technology запустила мелкосерийное производство летающей ветротурбины S2000, а в провинции Чжэцзян возводят отдельный завод по производству материалов для оболочки аппарата. У компании уже есть предварительные договоренности с прибрежными городами и горными регионами, которые рассматривают возможность использования этой технологии для удовлетворения собственных энергетических потребностей. Прототип, который полгода назад только что поднялся в небо над Сычуанем, теперь превращается в целую отрасль. Идея S2000 проста: вместо того чтобы устанавливать ветряну ...>>

Случайная новость из Архива

Планшет Nokia T20 Education Edition 29.11.2021

Компания HMD Global представила свой обновленный планшет Nokia T20 Education Edition. Гаджет позиционируется как планшет для учебы.

Новинка получила 10,4-дюймовый дисплей 2К с разрешением экрана 1200 x 2000 пикселей. Экран прошел швейцарскую сертификацию SGS в категории защиты глаз от синего цвета. Устройство работает планшет на базе процессора Unisoc T610. Это собой восьмиядерный процессор, включающий в себя два ядраCortex-A75 с тактовой частотой 1,8 ГГц и шесть ядер Cortex-A55 с тактовой частотой 1,8 ГГц.

Объем ОЗУ составляет 4 ГБ, а объем внутреннего хранилища - 64 ГБ. Также есть поддержка карт памяти microSD.

Автономность планшета обеспечивает аккумулятор на 8100 мАч с поддержкой быстрой зарядки 15 Вт.

Продажи Nokia T20 Education Edition стартуют в декабре.

Другие интересные новости:

▪ Кроманьонец был умнее нас

▪ Химический коктейль морских черепах

▪ Цифровой презерватив для защиты приватности

▪ Монохромная Фабрика печати Epson

▪ Плотное пуленепробиваемое дерево

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта ВЧ усилители мощности. Подборка статей

▪ статья Мерзость запустения. Крылатое выражение

▪ статья Какой недостаток скифов привел к краху их гегемонии в Передней Азии? Подробный ответ

▪ статья Базелла белая. Легенды, выращивание, способы применения

▪ статья Металлоискатель из доступных элементов. Энциклопедия радиоэлектроники и электротехники

▪ статья КВ конвертор для УКВ приемника. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026