мой основной проект - http://kystari.ru/
Семейство микроконтроллеров STM8 построено по гарвардской архитектуре, с разделением шин программ и данных. Несмотря на это, вся память расположена в едином линейном адресном пространстве в 16 Мбайт. Ниже показано устройство интерфейса памяти.
Имеется шины адреса, данных, контрольный сигнал чтения/записи, сигнал перевода CPU в режим совместимости с медленными интерфейсами памяти. В случае, когда интерфейс памяти работает медленнее CPU, процессор ожидает готовности памяти перед выполнением инструкции. Поскольку адресное пространство едино, данные могут быть расположены во flash-память (память программ), а программа может выполняться из RAM (оперативной памяти). В этом случае загрузка данных и считывание инструкций из памяти выполняется по одной шине, что замедляет выполнение программы.
Т.к. адресация памяти 24-битная, для адресации с помощью 1,2 и 3 байтов все пространство разделяют на страницы и секции.
Стек располагается в нулевой секции, там же располагают часто используемые данные для большей эффективности кода. Все указатели хранятся только в нулевой секции. Использование индексной адресации (с 16-битными индексными регистрами и длинным смещением) позволяет размещать данные вне 0 и 1 секции.
Ниже представлена карта памяти на примере STM8L15x:
(1) - граница адреса зависит от объема памяти в конкретном микроконтроллере. Начало стека - конец оперативной памяти.
Семейство микроконтроллеров STM8 построено по гарвардской архитектуре, с разделением шин программ и данных. Несмотря на это, вся память расположена в едином линейном адресном пространстве в 16 Мбайт. Ниже показано устройство интерфейса памяти.
![]() |
| Адресное пространство |
- Page - страница - [с 0xXXXX00 до 0xXXXXFF] 256-байтная область памяти, XXXX определяет номер страницы.
- Section - секция - [с 0xXX0000 до 0xFFXXXX] 64-килобайтная область памяти, XX определяет номер секции.
Стек располагается в нулевой секции, там же располагают часто используемые данные для большей эффективности кода. Все указатели хранятся только в нулевой секции. Использование индексной адресации (с 16-битными индексными регистрами и длинным смещением) позволяет размещать данные вне 0 и 1 секции.
Ниже представлена карта памяти на примере STM8L15x:
(1) - граница адреса зависит от объема памяти в конкретном микроконтроллере. Начало стека - конец оперативной памяти.



Комментариев нет:
Отправить комментарий