Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСслайды / STM8.pptx
Скачиваний:
125
Добавлен:
23.02.2015
Размер:
3.22 Mб
Скачать

Распределение памяти

С помощью выводов управления 7/7 загрузкой адрес 0x00000000 вместо Flash памяти пользователя может быть также связан со статическим ОЗУ.

Поскольку загрузка статического ОЗУ осуществляется более быстро, то эта возможность может оказаться полезной на фазе проектирования для исполнения кода программы из статического ОЗУ.

Кроме того, появляется возможность сократить частоту

перепрограммирования Flash памяти.

Системный таймер SysTick

В ядро Cortex входит 24-битный вычитающий счетчик с функциями автоматической перезагрузки и генерации прерывания.

Он используется во всех Cortex-МК для формирования шкалы времени в ОСРВ или для периодических прерываний обработки запланированных задач.

С помощью регистра управления и статуса таймера, можно выбрать его источник синхронизации (равной

тактовой частоте ЦПУ или 1/8 тактовой

Системная

архитектура

STM32

Обработка прерываний

1/19

Структуре прерываний ARM7 и ARM9 свойственна непостоянность времени требуемого на завершение текущей инструкции при возникновении прерывания.

В системах реального времени из-за этого могут возникнуть большие трудности.

Поддержка вложенных прерываний в архитектуре ARM7 и ARM9 реализована неэффективно и требует написания дополнительных кодов программы в виде ассемблерных макросов или ОСРВ.

В ядре Cortex эти трудности преодолены. Разработана стандартная структура прерываний, отличающаяся предельным

прерываний (КВВП)

является стандартным блоком ядра Cortex, имеет одну и ту же структуру, независимо от его производителя МК.

Поэтому прикладной код и операционные системы можно легко переносить с одного

МК на любой другой и, при этом,

2/19

программисту не требуется изучение нового набора регистров.

КВВП имеет малую задержку реагирования на прерывание. Данная задача решена возможностями КВВП, а также набором инструкций Thumb-2, многоцикловые инструкции которого, как например, инструкции многократного чтения/записи,

являются прерываемыми.

Контроллер вложенных векторных

прерываний

• КВВП разработан с учетом 3/19 программирования полностью на Си и исключает потребность в написании каких- либо ассемблерных макросов или специальных, несовместимых с ANSI, директив.

КВВП поддерживает одно немаскируемое прерывание и еще до 240 внешних линий прерывания, которые можно подключить к пользовательским УВВ.

КВВП поддерживает вложенные прерывания

( у МК STM32 16 уровней приоритетов).

В ядре Cortex поддерживается еще 15

4/19

Работа КВВП при входе в исключительные ситуации и выходе из них

Если прерывание инициируется УВВ, то КВВП подключит ЦПУ Cortex к обработке 5/19 прерывания.

ЦПУ Cortex помещает набор регистров в стек. Эта операция выполняется с помощью

специального микрокода, что упрощает прикладной код.

В процессе записи данных в стек на

шине инструкций осуществляется выборка начального адреса процедуры обработки прерывания. Благодаря этому, с момента возникновения прерывания до выполнения первой инструкции его

6/19

Сохранение в стеке:xPSR, PC,

LR, R12(внутренних вызовов),

 

 

R0-R3 (рег. Передачи данных)

Расширенный режим обработки

прерываний

• Помимо высокого быстродействия обработки одного прерывания, КВВП 7/19 поддерживается несколько оригинальных методов, позволяющие обрабатывать несколько запросов прерываний с минимальными задержками между прерываниями и с гарантированием приоритетности.

• КВВП имеет возможность приостановки находящегося на обработке прерывания, если возникает прерывание с более высоким

приоритетом.

Соседние файлы в папке МПСслайды