Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

В процессе эксплуатации память типа EEPROM часто используют для создания счетчиков аварийных ситуаций на объекте. Возможные аварии предварительно классифицируются, в системе устанавливаются датчики, которые позволяют микроконтроллеру отнести возникшую аварийную ситуацию к тому или иному типу. Если тип аварии диагностирован, то МК увеличивает соответствующий счетчик и запоминает его новое состояние в энергонезависимой памяти данных типа EEPROM. Такое решение позволяет сохранить информацию об авариях даже при отключении системы питания.

4.7.1. Карта памяти МК B32

Карта памяти МК определяет, по каким адресам в конкретной модели МК расположены блоки памяти. Процессорное ядро HC12 позволяет линейно адресовать 64К слов памяти. Поскольку МК 68HC12 используют однобайтовые ячейки памяти, то получается, что при линейной адресации в МК семейства 68HC12 адресуют 64 Кб памяти. Определение «линейная адресация» означает, что в любой момент времени без применения дополнительных команд МК может обратиться к ячейке памяти с любым адресом из диапазона $0000…$FFFF.

Карта памяти МК B32 приведена на рис. 4.11. Резидентная память (т.е. память, расположенная на кристалле МК) включает четыре блока памяти: 512 байт регистров специальных функций для управления периферийными модулями, 1 Кб оперативного запоминающего устройства для хранения промежуточных результатов вычислений, 768 байт энергонезависимой памяти типа EEPROM с побайтным стиранием и побайтным программирования для хранения уставок программы пользователя, 32 Кб энергонезависимой Flash памяти для размещения прикладной программы пользователя. На рис. 4.11 карта памяти учитывает особенности размещения резидентной программы отладки D-Bug12 при работе МК в составе платы отладки MC68HC912B32EVB:

• $8000…$F600 — код программы отладчика D-Bug12;

• $F680…$F6BF — область пользователя;

• $F6C0…$F6FF — область D-Bug12;

• $F700…$F77F — код запуска D-Bug12;

• $F780…$F7FF — таблица векторов для режима отладки;

• $F800…$FBFF — зарезервированная разработчиком область;

• $FC00…$FFBF — код программы загрузчика в EEPROM;

• $FFC0…$FFFF — вектора сброса и прерывания.

Из представленного распределения адресного пространства МК в составе платы отладки видно, что код программы отладчика занимает практически всю область Flash ПЗУ, которая в реальных проектах предназначается для прикладной программы управления. А где же предполагается размещать отлаживаемую программу? Ответ на этот вопрос Вы найдете в параграфе 4.3.1.

4.7.2. Изменение адресов в карте памяти МК

Внимательно проанализировав распределение адресного пространства в карте памяти МК, можно заметить, что часть доступного адресного пространства не используется резидентной памятью микроконтроллера. Так в МК B32 (рис. 4.11) в диапазоне адресов $01FF…$0800, $0BFF…$0D00 и $0FFF…$8000 память отсутствует. Именно это незанятое адресное пространство может быть использовано для подключения внешней памяти в расширенных режимах работы МК. В процессе подключения внешней памяти может оказаться, что отдельные блоки внутренней памяти МК желательно «переместить» в пределах адресного пространства МК. Тогда схемотехника подключения внешней памяти упростится. Для назначения новых, виртуальных адресов блоков резидентной памяти МК предназначены три регистра специальных функций:

• INITRG — регистр базового адреса блока регистров специальных функций;

• INITRM — регистр базового адреса блока ОЗУ;

• INITEE — регистр базового адреса блока EEPROM.

В состоянии сброса МК эти регистры указывают на реальные, физические адреса перечисленных блоков памяти. Назначение виртуальных адресов блоков обычно происходит на начальном этапе выполнения программы в секции инициализации.

4.8. Подсистема памяти МК DP256

Карта памяти для МК DP256 приведена на рис. 4.12. Расположение различных модулей памяти в адресном пространстве МК чрезвычайно похоже на рассмотренный ранее МК B32. Основное отличие подсистемы памяти DP256 от B32 — это наличие системы страничной адресации, которая позволяет обращаться к более чем 64 Кб памяти с использованием 16 разрядной магистрали адреса. Объем резидентной памяти МК DP256 составляет 256 Кб. Модули резидентного ОЗУ, EEPROM и регистры специальных функций доступны, как и ранее, с использованием обычной адресации в пределах 64 Кб (см. рис. 4.12). Основная часть ПЗУ программ разделена на страницы по 16 Кб, причем каждая из страниц может отображаться на одном и том же адресном пространстве $8000–$BFFF. Выбор конкретной страницы осуществляется занесением под управлением программы ее кода в специальный регистр. Поэтому частое переключение между страницами программной памяти замедляет исполнение программы.

Рис. 4.12. Карта памяти МК семейства HCS12 DP256


Вопросы для самопроверки

1. Каков объем Flash памяти программ МК B32?

Ответ: 32 Кб.

2. Как занести программу пользователя во Flash-память МК B32, установленного на отладочной плате M68EVB912B32?

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT