Процессор содержит шинную матрицу, которая занимается арбитражем процессорного ядра и вспомогательного Отладочного порта (Debug Access Port (DAP) в моменты доступа к памяти как для внешней подсистемы памяти, так и для внутреннего системного пространства System Control Space (SCS) и компнентов отладки.
Приоритет всегда отдаётся процессорному ядру для гарантии того, что любые отладочные воздействия изолированы в их влиянии. Для системы с нулевым временем ожидания все отладочные воздействия к памяти, SCS и отладочным ресурсам всегда полностью прозрачны и не оказывают влияния на работу системы.
Карта памяти процессора Cortex-M3®:
Некоторые процессорные интерфейсы перемещаются в различные регионы в рамках карты памяти:
Если у вас есть дополнительные вопросы по модели памяти, смотрите в документ ARMv7-M Architecture Reference Manual (раздел A3).
К настоящему моменту существует только один способ получить ARMv7-M Architecture Reference Manual: зарегистрироваться на http://arm.com и скачать документ по названию, указав причину по которой вы интересуетесь этой информацией.
По очевидным причинам мы не имеем права распространять этот документ в качестве вложения.
Однако всем, кто интересуется работой процессора ARMv7-M следует ознакомиться с этим документом.
Внутренняя Private Peripherial Bus (PPB) предоставляет доступ к:
Внешняя PPB предоставляет доступ к:
Микропроцессор Cortex-M3® поддерживает механизм невыровненного доступа ARMv7 и всегда исполняется как операция невыровненного доступа. На самом деле такие операции всегда конвертируются в две илли больше операции выровненного доступа на шинах DCode и System.
Все операции внешнего доступа у Cortex-M3 всегда выровненные операции.
Невыровненный доступ доступен только для единичных операций LDR,STR. Двойная загрузка/выгрузка всегда поддерживает выровненный по размеру слова доступ и не разрешает другие типы выравнивания и даже генерирует ошибку если подобная попытка была предпринята.
Невыровненный доступ, который пересекает границы карты памяти является архитектурно непредсказуемым. В зависимости от типа пересекаемой границы поведение процессора отличается. Например:
0x1FFFFFFF
. Он будет сконвертирован DCode шиной в байтовый доступ к адресу 0x1FFFFFFF
следующий за байтовым доступом к 0x00000000
.
0xDFFFFFFF
) будет сконвертирован интерфейсом System в байтовый доступ 0xE0000000
. Как говорилось выше, адрес 0xE0000000
не является корректным для шины System.
0xFFFFFFFF
) будет сконвертирован интерфейсом System в байтовый доступ 0x00000000
. Как говорилось выше, адрес 0x00000000
не является корректным для шины System.
Невыровненный доступ, который может пересечь границу bit-band также является системно непредсказуемым. Процессор выполнит bit-band операцию, но эта операция не будет являться результатом bit-band операции. Например, невыровненный доступ полслова по адресу 0x21FFFFFF
исполняется как байтовый доступ к 0x21FFFFFF
следующий за байтовым доступом к 0x22000000
(первый байт bit-band ссылки).
Невыровненные загрузки, котоыре соответствуют литеральному компаратору в FPB не переназначаются. FPB переназзначает только выровненные адреса.
Временные параметры Load/Store | Режимы работы |