Menu English Ukrainian Russian 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>.

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

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

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

<< Назад

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

Использование Apple Vision Pro во время операций 16.03.2024

Медицинская команда больницы Кромвеля в Лондоне впервые применила Apple Vision Pro в ходе двух операций на позвоночнике. Это событие подтверждает потенциал гарнитуры в качестве медицинского инструмента, изменяющего подход к хирургической практике. Хотя сами врачи не использовали Vision Pro, операционная медсестра работала с виртуальной реальностью, используя очки во время подготовки и выполнения процедур. Гарнитура позволила просматривать виртуальные экраны в операционной, выбирать инструменты и следить за ходом операции. Программное обеспечение, разработанное компанией eXeX, специализирующейся на создании приложений на основе искусственного интеллекта для хирургии, существенно улучшило процесс оказания медицинской помощи пациентам. Использование Apple Vision Pro открывает новые возможности для разработки приложений в сфере здравоохранения, таких как клиническое образование, планирование операций, обучение и медицинская визуализация. Внедрение Apple Vision Pro в медицинскую пр ...>>

Хранение углерода в Северное море 16.03.2024

Министр энергетики Норвегии Терье Осланд объявил о запуске проекта Longship, нацеленного на создание центрального хранилища углекислого газа в Северном море. Этот амбициозный проект оценивается в $2,6 млрд и направлен на применение технологии CCS (углеродного захвата и хранения) для смягчения воздействия климатических изменений. Норвегия уже имеет опыт в области CCS благодаря успешным проектам Sleipner и Snohvit, и сейчас стремится увеличить объем углерода, запечатываемого под морским дном. План Longship предусматривает создание мощности по захвату и хранению 1,5 млн. тонн углерода ежегодно в течение 25 лет. Несмотря на позитивные перспективы, существуют опасения по поводу долгосрочных последствий такого хранения. Однако сторонники проекта утверждают, что морское хранение углерода имеет ряд преимуществ, включая минимальное воздействие на окружающую среду. Проект Longship осуществляется при участии компаний Equinor, Shell и TotalEnergies через совместное предприятие Northern Li ...>>

Выращены мини-органы из амниотической жидкости человека 15.03.2024

Международная команда ученых под руководством профессора Фань Сюлиня из Университета Чжэцзян разработала уникальный способ выращивания мини-органов из клеток, обнаруженных в амниотической жидкости человека. Этот значительный прорыв в медицине может привести к улучшению диагностики и лечения врожденных заболеваний. Органоиды, представляющие собой трехмерные клеточные структуры, имитирующие органы в меньшем масштабе, были выращены из клеток легких, почек и тонкого кишечника, найденных в амниотической жидкости. Этот метод открывает новые возможности для изучения различных состояний плода и может стать ключом к ранней диагностике и лечению врожденных дефектов. Хотя пока не проводились попытки использования этого метода в лечении, ученые надеются, что их исследования в будущем помогут бороться с серьезными врожденными заболеваниями, которые затрагивают миллионы новорожденных ежегодно. Этот прорыв может изменить практику медицинских вмешательств, позволяя диагностировать и лечить врожд ...>>

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

Apple MacBook 23.07.2006

Apple расширила линейку пользовательских ноутбуков на процессорах Intel Core Duo.

Новый MacBook имеет тонкий стильный корпус и оснащен кристально чистым 13-дюймовым широкоформатным экраном. Как заявила компания, по производительности данный лэптоп в 5 раз превышает iBook и в 4 раза - 12-дюймовый PowerBook.

Таким образом, все ноутбуки от Apple теперь переведены на процессоры Intel, имеют встроенную видеокамеру iSight, систему дистанционного управления Front Row, DVI-выход, поддерживают подключение двух мониторов, оснащены Gigabit Ethernet, разъемами аудиовхода и выхода, а также специальным магнитным креплением шнура питания MagSafe.

"Apple начала перевод ноутбуков на процессоры Intel Core Duo 15 февраля, выпустив MacBook Pro. И вот, спустя всего 90 дней, мы представили MacBook и полностью завершили переход на новые процессоры", - отметил Филип Шиллер, старший вице-президент отдела мирового маркетинга компании Apple.

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

▪ Охлаждение лазером

▪ Организм человека содержит 30 триллионов клеток

▪ Космический аппарат NASA смог выдержать взрыв на Солнце

▪ Игровые ноутбуки ASUS

▪ Сервис IBM Watson Discovery Advisor

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

 

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

▪ раздел сайта Биографии великих ученых. Подборка статей

▪ статья История и теория религий. Конспект лекций

▪ статья Опасен ли гром? Подробный ответ

▪ статья Бочечный узел. Советы туристу

▪ статья Схема электрооборудования автомобиля ВАЗ-21213 (Нива). Энциклопедия радиоэлектроники и электротехники

▪ статья Импульсный преобразователь, 12/220 вольт 100 ватт. Энциклопедия радиоэлектроники и электротехники

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

Имя:


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


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





All languages of this page

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

www.diagram.com.ua

www.diagram.com.ua
2000-2024