Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
HCS12 с применением языка С - royallib.ru.doc
Скачиваний:
118
Добавлен:
11.03.2016
Размер:
2.28 Mб
Скачать

Пример применения

В процессе эксплуатации память типа 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.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]