Использование сегментов
Разбиение памяти МК на сегменты (рис. 4.9)
В программе присутствует два сегмента: сегмент кода программы и сегмент данных. Кроме кодов команд в памяти программ хранятся константы, то есть в памяти программ микроконтроллера располагаются, по крайней мере, два сегмента: программа и данные. Чередование программы и констант может привести к нежелательным последствиям. Вследствие каких-либо причин данные могут быть случайно выполнены в качестве программы или наоборот программа может быть воспринята и обработана как данные.
Рис. 4.9. Пример разбиения памяти программ и памяти данных на сегменты
На примере размещения сегментов в адресном пространстве памяти программ и внутренней памяти данных видно, что при использовании нескольких сегментов переменных во внутренней памяти данных редактор связей может разместить меньший из них на месте неиспользованных банков регистров. Под сегмент стека обычно отводится вся область внутренней памяти, не занятая переменными. Это позволяет создавать программы с максимальным уровнем вложенности подпрограмм. Сегмент переменных, расположенный во внешней памяти данных, при использовании современных микросхем, таких как AduC842, может находиться в ОЗУ, расположенном на кристалле микроконтроллера.
Дата добавления: 2015-10-09; просмотров: 692;