Регистры M33 RP2350
Системные регистры ядра Arm Cortex-M33 в RP2350 на частной шине PPB: контроллер прерываний NVIC, таймер SysTick, блок управления системой SCB с регистрами отказов, защита памяти MPU и атрибуция SAU, доступ к FPU и сопроцессорам, а также блоки отладки и трассировки DWT, ITM, FPB, ETM и CTI.
Содержание
- Регистры блока
- M33_ITM_STIMn
- M33_ITM_TER0
- M33_ITM_TPR
- M33_ITM_TCR
- M33_INT_ATREADY
- M33_INT_ATVALID
- M33_ITM_ITCTRL
- M33_ITM_DEVARCH
- M33_ITM_DEVTYPE
- M33_ITM_PIDR4
- M33_ITM_PIDR5
- M33_ITM_PIDR6
- M33_ITM_PIDR7
- M33_ITM_PIDR0
- M33_ITM_PIDR1
- M33_ITM_PIDR2
- M33_ITM_PIDR3
- M33_ITM_CIDR0
- M33_ITM_CIDR1
- M33_ITM_CIDR2
- M33_ITM_CIDR3
- M33_DWT_CTRL
- M33_DWT_CYCCNT
- M33_DWT_EXCCNT
- M33_DWT_LSUCNT
- M33_DWT_FOLDCNT
- M33_DWT_COMPn
- M33_DWT_FUNCTION0
- M33_DWT_FUNCTION1
- M33_DWT_FUNCTION2
- M33_DWT_FUNCTION3
- M33_DWT_DEVARCH
- M33_DWT_DEVTYPE
- M33_DWT_PIDR4
- M33_DWT_PIDR5
- M33_DWT_PIDR6
- M33_DWT_PIDR7
- M33_DWT_PIDR0
- M33_DWT_PIDR1
- M33_DWT_PIDR2
- M33_DWT_PIDR3
- M33_DWT_CIDR0
- M33_DWT_CIDR1
- M33_DWT_CIDR2
- M33_DWT_CIDR3
- M33_FP_CTRL
- M33_FP_REMAP
- M33_FP_COMPn
- M33_FP_DEVARCH
- M33_FP_DEVTYPE
- M33_FP_PIDR4
- M33_FP_PIDR5
- M33_FP_PIDR6
- M33_FP_PIDR7
- M33_FP_PIDR0
- M33_FP_PIDR1
- M33_FP_PIDR2
- M33_FP_PIDR3
- M33_FP_CIDR0
- M33_FP_CIDR1
- M33_FP_CIDR2
- M33_FP_CIDR3
- M33_ICTR
- M33_ACTLR
- M33_SYST_CSR
- M33_SYST_RVR
- M33_SYST_CVR
- M33_SYST_CALIB
- M33_NVIC_ISER0
- M33_NVIC_ISER1
- M33_NVIC_ICER0
- M33_NVIC_ICER1
- M33_NVIC_ISPR0
- M33_NVIC_ISPR1
- M33_NVIC_ICPR0
- M33_NVIC_ICPR1
- M33_NVIC_IABR0
- M33_NVIC_IABR1
- M33_NVIC_ITNS0
- M33_NVIC_ITNS1
- M33_NVIC_IPRn
- M33_CPUID
- M33_ICSR
- M33_VTOR
- M33_AIRCR
- M33_SCR
- M33_CCR
- M33_SHPR1
- M33_SHPR2
- M33_SHPR3
- M33_SHCSR
- M33_CFSR
- M33_HFSR
- M33_DFSR
- M33_MMFAR
- M33_BFAR
- M33_ID_PFR0
- M33_ID_PFR1
- M33_ID_DFR0
- M33_ID_AFR0
- M33_ID_MMFR0
- M33_ID_MMFR1
- M33_ID_MMFR2
- M33_ID_MMFR3
- M33_ID_ISAR0
- M33_ID_ISAR1
- M33_ID_ISAR2
- M33_ID_ISAR3
- M33_ID_ISAR4
- M33_ID_ISAR5
- M33_CTR
- M33_CPACR
- M33_NSACR
- M33_MPU_TYPE
- M33_MPU_CTRL
- M33_MPU_RNR
- M33_MPU_RBAR
- M33_MPU_RLAR
- M33_MPU_RBAR_A1
- M33_MPU_RLAR_A1
- M33_MPU_RBAR_A2
- M33_MPU_RLAR_A2
- M33_MPU_RBAR_A3
- M33_MPU_RLAR_A3
- M33_MPU_MAIR0
- M33_MPU_MAIR1
- M33_SAU_CTRL
- M33_SAU_TYPE
- M33_SAU_RNR
- M33_SAU_RBAR
- M33_SAU_RLAR
- M33_SFSR
- M33_SFAR
- M33_DHCSR
- M33_DCRSR
- M33_DCRDR
- M33_DEMCR
- M33_DSCSR
- M33_STIR
- M33_FPCCR
- M33_FPCAR
- M33_FPDSCR
- M33_MVFR0
- M33_MVFR1
- M33_MVFR2
- M33_DDEVARCH
- M33_DDEVTYPE
- M33_DPIDR4
- M33_DPIDR5
- M33_DPIDR6
- M33_DPIDR7
- M33_DPIDR0
- M33_DPIDR1
- M33_DPIDR2
- M33_DPIDR3
- M33_DCIDR0
- M33_DCIDR1
- M33_DCIDR2
- M33_DCIDR3
- M33_TRCPRGCTLR
- M33_TRCSTATR
- M33_TRCCONFIGR
- M33_TRCEVENTCTL0R
- M33_TRCEVENTCTL1R
- M33_TRCSTALLCTLR
- M33_TRCTSCTLR
- M33_TRCSYNCPR
- M33_TRCCCCTLR
- M33_TRCVICTLR
- M33_TRCCNTRLDVR0
- M33_TRCIDR8
- M33_TRCIDR9
- M33_TRCIDR10
- M33_TRCIDR11
- M33_TRCIDR12
- M33_TRCIDR13
- M33_TRCIMSPEC
- M33_TRCIDR0
- M33_TRCIDR1
- M33_TRCIDR2
- M33_TRCIDR3
- M33_TRCIDR4
- M33_TRCIDR5
- M33_TRCIDR6
- M33_TRCIDR7
- M33_TRCRSCTLR2
- M33_TRCRSCTLR3
- M33_TRCSSCSR
- M33_TRCSSPCICR
- M33_TRCPDCR
- M33_TRCPDSR
- M33_TRCITATBIDR
- M33_TRCITIATBINR
- M33_TRCITIATBOUTR
- M33_TRCCLAIMSET
- M33_TRCCLAIMCLR
- M33_TRCAUTHSTATUS
- M33_TRCDEVARCH
- M33_TRCDEVID
- M33_TRCDEVTYPE
- M33_TRCPIDR4
- M33_TRCPIDR5
- M33_TRCPIDR6
- M33_TRCPIDR7
- M33_TRCPIDR0
- M33_TRCPIDR1
- M33_TRCPIDR2
- M33_TRCPIDR3
- M33_TRCCIDR0
- M33_TRCCIDR1
- M33_TRCCIDR2
- M33_TRCCIDR3
- M33_CTICONTROL
- M33_CTIINTACK
- M33_CTIAPPSET
- M33_CTIAPPCLEAR
- M33_CTIAPPPULSE
- M33_CTIINENn
- M33_CTIOUTENn
- M33_CTITRIGINSTATUS
- M33_CTITRIGOUTSTATUS
- M33_CTICHINSTATUS
- M33_CTIGATE
- M33_ASICCTL
- M33_ITCHOUT
- M33_ITTRIGOUT
- M33_ITCHIN
- M33_ITCTRL
- M33_DEVARCH
- M33_DEVID
- M33_DEVTYPE
- M33_PIDR4
- M33_PIDR5
- M33_PIDR6
- M33_PIDR7
- M33_PIDR0
- M33_PIDR1
- M33_PIDR2
- M33_PIDR3
- M33_CIDR0
- M33_CIDR1
- M33_CIDR2
- M33_CIDR3
Регистры M33 лежат на частной шине PPB ядра с адреса 0xE000 0000, и у каждого из двух ядер RP2350 своя копия. Ядра Cortex-M33 собраны с FPU одинарной точности, расширениями DSP и безопасности TrustZone, 52 внешними прерываниями и 4 битами приоритета — 16 уровней, — MPU на 8 защищённых и 8 незащищённых областей, SAU на 8 областей, 4 компараторами точек наблюдения и 8 компараторами точек останова (даташит RP2350, раздел 3.7.2).
По адресам блок делится на компоненты: ITM — с 0xE000 0000, DWT — с 0xE000 1000, FPB — с 0xE000 2000, системное пространство SCS с SysTick, NVIC, SCB, MPU, SAU, регистрами отладки и FPU — с 0xE000 E000, ETM — с 0xE004 1000, CTI — с 0xE004 2000; каждый компонент отладки заканчивается регистрами-идентификаторами CoreSight DEVARCH, DEVTYPE, PIDR и CIDR. Регистры SCS разделены между защищённым и незащищённым состоянием: код видит копию своего состояния, а защищённый может обратиться к незащищённой через зеркало PPB_NONSEC с адреса 0xE002 0000 (разделы 3.7.4.1.1 и 3.1.1).
Описания полей в заголовке pico-sdk и в таблице 127 даташита взяты из документации Arm, и в них есть огрехи: у всех полей SHPR1–SHPR3 написано «SecureFault», поля приоритета там трёхбитные (биты 7:5 байта) при четырёхбитных в NVIC_IPRn, а значения после сброса DWT_CTRL (NUMCOMP = 7, NOCYCCNT = 1) и FP_CTRL не сходятся с четырьмя компараторами DWT и восемью FPB. Здесь обработчики названы по номерам исключений Armv8-M, а значения регистров-идентификаторов надёжнее прочитать на чипе. По архитектуре флаги CFSR, HFSR, DFSR и SFSR сбрасываются записью 1, а запись в DHCSR действует только с ключом 0xA05F в битах 31:16 (Armv8-M Architecture Reference Manual, Arm DDI 0553).
| Экземпляр | Базовый адрес |
|---|---|
| PPB | 0xE000 0000 |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| M33_ITM_STIMn | 0x00 + n · 0x04 | ITM: порт стимулов n — запись отправляет пакет инструментальной трассировки | 0x0000 0000 |
| M33_ITM_TER0 | 0x0E00 | ITM: разрешение портов стимулов 0–31 | 0x0000 0000 |
| M33_ITM_TPR | 0x0E40 | ITM: доступ непривилегированного кода к портам стимулов | 0x0000 0000 |
| M33_ITM_TCR | 0x0E80 | ITM: управление и метки времени | 0x0000 0000 |
| M33_INT_ATREADY | 0x0EF0 | ITM, режим интеграции: чтение сигналов шины ATB | 0x0000 0000 |
| M33_INT_ATVALID | 0x0EF8 | ITM, режим интеграции: запись сигналов шины ATB | 0x0000 0000 |
| M33_ITM_ITCTRL | 0x0F00 | ITM: включение режима интеграции | 0x0000 0000 |
| M33_ITM_DEVARCH | 0x0FBC | ITM: архитектура компонента CoreSight | 0x4770 1A01 |
| M33_ITM_DEVTYPE | 0x0FCC | ITM: тип компонента CoreSight | 0x0000 0043 |
| M33_ITM_PIDR4 | 0x0FD0 | ITM: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_ITM_PIDR5 | 0x0FD4 | ITM: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_ITM_PIDR6 | 0x0FD8 | ITM: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_ITM_PIDR7 | 0x0FDC | ITM: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_ITM_PIDR0 | 0x0FE0 | ITM: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_ITM_PIDR1 | 0x0FE4 | ITM: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_ITM_PIDR2 | 0x0FE8 | ITM: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 000B |
| M33_ITM_PIDR3 | 0x0FEC | ITM: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_ITM_CIDR0 | 0x0FF0 | ITM: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_ITM_CIDR1 | 0x0FF4 | ITM: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_ITM_CIDR2 | 0x0FF8 | ITM: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_ITM_CIDR3 | 0x0FFC | ITM: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
| M33_DWT_CTRL | 0x1000 | DWT: конфигурация, счётчики и пакеты трассировки | 0x7374 1824 |
| M33_DWT_CYCCNT | 0x1004 | DWT: счётчик тактов ядра CYCCNT | 0x0000 0000 |
| M33_DWT_EXCCNT | 0x100C | DWT: счётчик тактов обработки исключений | 0x0000 0000 |
| M33_DWT_LSUCNT | 0x1014 | DWT: счётчик дополнительных тактов загрузок и сохранений | 0x0000 0000 |
| M33_DWT_FOLDCNT | 0x1018 | DWT: счётчик сдвоенных команд | 0x0000 0000 |
| M33_DWT_COMPn | 0x1020 + n · 0x10 | DWT: компаратор n — адрес или значение данных для сравнения | 0x0000 0000 |
| M33_DWT_FUNCTION0 | 0x1028 | DWT: компаратор 0 — тип совпадения и действие | 0x5800 0000 |
| M33_DWT_FUNCTION1 | 0x1038 | DWT: компаратор 1 — тип совпадения и действие | 0x8900 0828 |
| M33_DWT_FUNCTION2 | 0x1048 | DWT: компаратор 2 — тип совпадения и действие | 0x5000 0000 |
| M33_DWT_FUNCTION3 | 0x1058 | DWT: компаратор 3 — тип совпадения и действие | 0x2000 0800 |
| M33_DWT_DEVARCH | 0x1FBC | DWT: архитектура компонента CoreSight | 0x4770 1A02 |
| M33_DWT_DEVTYPE | 0x1FCC | DWT: тип компонента CoreSight | 0x0000 0000 |
| M33_DWT_PIDR4 | 0x1FD0 | DWT: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_DWT_PIDR5 | 0x1FD4 | DWT: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DWT_PIDR6 | 0x1FD8 | DWT: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DWT_PIDR7 | 0x1FDC | DWT: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DWT_PIDR0 | 0x1FE0 | DWT: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_DWT_PIDR1 | 0x1FE4 | DWT: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_DWT_PIDR2 | 0x1FE8 | DWT: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 000B |
| M33_DWT_PIDR3 | 0x1FEC | DWT: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_DWT_CIDR0 | 0x1FF0 | DWT: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_DWT_CIDR1 | 0x1FF4 | DWT: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_DWT_CIDR2 | 0x1FF8 | DWT: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_DWT_CIDR3 | 0x1FFC | DWT: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
| M33_FP_CTRL | 0x2000 | FPB: число компараторов и включение точек останова | 0x6000 5580 |
| M33_FP_REMAP | 0x2004 | FPB: подмена кода во флеш-памяти | 0x0000 0000 |
| M33_FP_COMPn | 0x2008 + n · 0x04 | FPB: компаратор n — адрес точки останова | 0x0000 0000 |
| M33_FP_DEVARCH | 0x2FBC | FPB: архитектура компонента CoreSight | 0x4770 1A03 |
| M33_FP_DEVTYPE | 0x2FCC | FPB: тип компонента CoreSight | 0x0000 0000 |
| M33_FP_PIDR4 | 0x2FD0 | FPB: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_FP_PIDR5 | 0x2FD4 | FPB: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_FP_PIDR6 | 0x2FD8 | FPB: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_FP_PIDR7 | 0x2FDC | FPB: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_FP_PIDR0 | 0x2FE0 | FPB: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_FP_PIDR1 | 0x2FE4 | FPB: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_FP_PIDR2 | 0x2FE8 | FPB: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 000B |
| M33_FP_PIDR3 | 0x2FEC | FPB: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_FP_CIDR0 | 0x2FF0 | FPB: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_FP_CIDR1 | 0x2FF4 | FPB: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_FP_CIDR2 | 0x2FF8 | FPB: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_FP_CIDR3 | 0x2FFC | FPB: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
| M33_ICTR | 0xE004 | Число групп регистров NVIC | 0x0000 0001 |
| M33_ACTLR | 0xE008 | Дополнительное управление ядром Cortex-M33 | 0x0000 0000 |
| M33_SYST_CSR | 0xE010 | SysTick: управление и состояние | 0x0000 0000 |
| M33_SYST_RVR | 0xE014 | SysTick: значение перезагрузки | 0x0000 0000 |
| M33_SYST_CVR | 0xE018 | SysTick: текущее значение | 0x0000 0000 |
| M33_SYST_CALIB | 0xE01C | SysTick: калибровка | 0x0000 0000 |
| M33_NVIC_ISER0 | 0xE100 | NVIC: разрешение прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_ISER1 | 0xE104 | NVIC: разрешение прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_ICER0 | 0xE180 | NVIC: запрет прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_ICER1 | 0xE184 | NVIC: запрет прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_ISPR0 | 0xE200 | NVIC: установка ожидания прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_ISPR1 | 0xE204 | NVIC: установка ожидания прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_ICPR0 | 0xE280 | NVIC: снятие ожидания прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_ICPR1 | 0xE284 | NVIC: снятие ожидания прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_IABR0 | 0xE300 | NVIC: активность прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_IABR1 | 0xE304 | NVIC: активность прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_ITNS0 | 0xE380 | NVIC: состояние защиты прерываний 0–31 | 0x0000 0000 |
| M33_NVIC_ITNS1 | 0xE384 | NVIC: состояние защиты прерываний 32–51 | 0x0000 0000 |
| M33_NVIC_IPRn | 0xE400 + n · 0x04 | NVIC: приоритеты прерываний 4n…4n + 3; у номеров выше 51 поля читаются как 0 | 0x0000 0000 |
| M33_CPUID | 0xED00 | Идентификатор ядра: Arm Cortex-M33, ревизия r1p0 | 0x411F D210 |
| M33_ICSR | 0xED04 | Состояние исключений и ожидание NMI, PendSV и SysTick | 0x0000 0000 |
| M33_VTOR | 0xED08 | Адрес таблицы векторов прерываний | 0x0000 0000 |
| M33_AIRCR | 0xED0C | Сброс ядра, группы приоритетов и приоритет защищённых исключений | 0x0000 0000 |
| M33_SCR | 0xED10 | Режимы сна | 0x0000 0000 |
| M33_CCR | 0xED14 | Конфигурация ядра: ловушки отказов и кеши | 0x0000 0201 |
| M33_SHPR1 | 0xED18 | Приоритеты обработчиков MemManage, BusFault, UsageFault и SecureFault | 0x0000 0000 |
| M33_SHPR2 | 0xED1C | Приоритет обработчика SVCall | 0x0000 0000 |
| M33_SHPR3 | 0xED20 | Приоритеты обработчиков DebugMonitor, PendSV и SysTick | 0x0000 0000 |
| M33_SHCSR | 0xED24 | Системные исключения: включение, ожидание и активность | 0x0000 0000 |
| M33_CFSR | 0xED28 | Причины отказов UsageFault, BusFault и MemManage | 0x0000 0000 |
| M33_HFSR | 0xED2C | Причины отказа HardFault | 0x0000 0000 |
| M33_DFSR | 0xED30 | Причина события отладки | 0x0000 0000 |
| M33_MMFAR | 0xED34 | Адрес, вызвавший отказ MemManage | 0x0000 0000 |
| M33_BFAR | 0xED38 | Адрес, вызвавший отказ BusFault | 0x0000 0000 |
| M33_ID_PFR0 | 0xED40 | Поддерживаемые наборы команд | 0x0000 0030 |
| M33_ID_PFR1 | 0xED44 | Модель программиста и расширение безопасности | 0x0000 0520 |
| M33_ID_DFR0 | 0xED48 | Архитектура отладки | 0x0020 0000 |
| M33_ID_AFR0 | 0xED4C | Признаки, определяемые реализацией | 0x0000 0000 |
| M33_ID_MMFR0 | 0xED50 | Модель памяти: защита памяти, совместный доступ, TCM | 0x0010 1F40 |
| M33_ID_MMFR1 | 0xED54 | Модель памяти: зарезервирован, 0 | 0x0000 0000 |
| M33_ID_MMFR2 | 0xED58 | Модель памяти: остановка по WFI | 0x0100 0000 |
| M33_ID_MMFR3 | 0xED5C | Модель памяти: обслуживание кешей и предсказателя переходов | 0x0000 0000 |
| M33_ID_ISAR0 | 0xED60 | Команды: деление, сопроцессор, сравнение с переходом, битовые поля | 0x0809 2300 |
| M33_ID_ISAR1 | 0xED64 | Команды: переключение наборов, непосредственные значения, IT, расширение | 0x0572 5000 |
| M33_ID_ISAR2 | 0xED68 | Команды: перестановка байтов, умножение, подсказки памяти | 0x3017 3426 |
| M33_ID_ISAR3 | 0xED6C | Команды: NOP, табличные переходы, синхронизация, SVC, SIMD, насыщение | 0x0789 5729 |
| M33_ID_ISAR4 | 0xED70 | Команды: регистры PSR, барьеры, режимы адресации | 0x0131 0132 |
| M33_ID_ISAR5 | 0xED74 | Команды: зарезервирован, 0 | 0x0000 0000 |
| M33_CTR | 0xED7C | Сведения о кешах ядра | 0x8000 C000 |
| M33_CPACR | 0xED88 | Доступ к FPU и сопроцессорам | 0x0000 0000 |
| M33_NSACR | 0xED8C | Доступ незащищённого кода к FPU и сопроцессорам | 0x0000 0000 |
| M33_MPU_TYPE | 0xED90 | MPU: число областей | 0x0000 0800 |
| M33_MPU_CTRL | 0xED94 | MPU: включение и карта памяти по умолчанию | 0x0000 0000 |
| M33_MPU_RNR | 0xED98 | MPU: номер выбранной области | 0x0000 0000 |
| M33_MPU_RBAR | 0xED9C | MPU: начальный адрес и права выбранной области | 0x0000 0000 |
| M33_MPU_RLAR | 0xEDA0 | MPU: конечный адрес и атрибуты выбранной области | 0x0000 0000 |
| M33_MPU_RBAR_A1 | 0xEDA4 | MPU, псевдоним 1: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 1 | 0x0000 0000 |
| M33_MPU_RLAR_A1 | 0xEDA8 | MPU, псевдоним 1: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 1 | 0x0000 0000 |
| M33_MPU_RBAR_A2 | 0xEDAC | MPU, псевдоним 2: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 2 | 0x0000 0000 |
| M33_MPU_RLAR_A2 | 0xEDB0 | MPU, псевдоним 2: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 2 | 0x0000 0000 |
| M33_MPU_RBAR_A3 | 0xEDB4 | MPU, псевдоним 3: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 3 | 0x0000 0000 |
| M33_MPU_RLAR_A3 | 0xEDB8 | MPU, псевдоним 3: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 3 | 0x0000 0000 |
| M33_MPU_MAIR0 | 0xEDC0 | MPU: наборы атрибутов памяти 0–3 | 0x0000 0000 |
| M33_MPU_MAIR1 | 0xEDC4 | MPU: наборы атрибутов памяти 4–7 | 0x0000 0000 |
| M33_SAU_CTRL | 0xEDD0 | SAU: включение и атрибут памяти по умолчанию | 0x0000 0000 |
| M33_SAU_TYPE | 0xEDD4 | SAU: число областей | 0x0000 0008 |
| M33_SAU_RNR | 0xEDD8 | SAU: номер выбранной области | 0x0000 0000 |
| M33_SAU_RBAR | 0xEDDC | SAU: начальный адрес выбранной области | 0x0000 0000 |
| M33_SAU_RLAR | 0xEDE0 | SAU: конечный адрес и тип выбранной области | 0x0000 0000 |
| M33_SFSR | 0xEDE4 | Причины отказа SecureFault | 0x0000 0000 |
| M33_SFAR | 0xEDE8 | Адрес, вызвавший отказ SecureFault | 0x0000 0000 |
| M33_DHCSR | 0xEDF0 | Отладка с остановкой ядра: управление и состояние | 0x0000 0000 |
| M33_DCRSR | 0xEDF4 | Отладка: выбор регистра ядра для чтения или записи | 0x0000 0000 |
| M33_DCRDR | 0xEDF8 | Отладка: данные регистра ядра | 0x0000 0000 |
| M33_DEMCR | 0xEDFC | Отладка: перехват векторов, монитор отладки и включение DWT и ITM | 0x0000 0000 |
| M33_DSCSR | 0xEE08 | Отладка: состояние защиты и выбор банковых регистров | 0x0000 0000 |
| M33_STIR | 0xEF00 | Программный вызов прерывания | 0x0000 0000 |
| M33_FPCCR | 0xEF34 | FPU: сохранение контекста | 0x2000 0472 |
| M33_FPCAR | 0xEF38 | FPU: адрес места под регистры FPU в стеке | 0x0000 0000 |
| M33_FPDSCR | 0xEF3C | FPU: значения FPSCR по умолчанию | 0x0000 0000 |
| M33_MVFR0 | 0xEF40 | FPU: поддерживаемые операции | 0x6054 0601 |
| M33_MVFR1 | 0xEF44 | FPU: поддерживаемые операции и режимы | 0x8500 0089 |
| M33_MVFR2 | 0xEF48 | FPU: прочие возможности | 0x0000 0060 |
| M33_DDEVARCH | 0xEFBC | SCS: архитектура компонента CoreSight | 0x4770 2A04 |
| M33_DDEVTYPE | 0xEFCC | SCS: тип компонента CoreSight | 0x0000 0000 |
| M33_DPIDR4 | 0xEFD0 | SCS: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_DPIDR5 | 0xEFD4 | SCS: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DPIDR6 | 0xEFD8 | SCS: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DPIDR7 | 0xEFDC | SCS: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_DPIDR0 | 0xEFE0 | SCS: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_DPIDR1 | 0xEFE4 | SCS: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_DPIDR2 | 0xEFE8 | SCS: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 000B |
| M33_DPIDR3 | 0xEFEC | SCS: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_DCIDR0 | 0xEFF0 | SCS: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_DCIDR1 | 0xEFF4 | SCS: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_DCIDR2 | 0xEFF8 | SCS: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_DCIDR3 | 0xEFFC | SCS: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
| M33_TRCPRGCTLR | 0x41004 | ETM: включение | 0x0000 0000 |
| M33_TRCSTATR | 0x4100C | ETM: состояние | 0x0000 0000 |
| M33_TRCCONFIGR | 0x41010 | ETM: основные параметры трассировки | 0x0000 0000 |
| M33_TRCEVENTCTL0R | 0x41020 | ETM: выбор событий | 0x0000 0000 |
| M33_TRCEVENTCTL1R | 0x41024 | ETM: поведение событий | 0x0000 0000 |
| M33_TRCSTALLCTLR | 0x4102C | ETM: остановка ядра при заполнении FIFO | 0x0000 0000 |
| M33_TRCTSCTLR | 0x41030 | ETM: вставка глобальных меток времени | 0x0000 0000 |
| M33_TRCSYNCPR | 0x41034 | ETM: период синхронизации потока | 0x0000 000A |
| M33_TRCCCCTLR | 0x41038 | ETM: порог счёта тактов | 0x0000 0000 |
| M33_TRCVICTLR | 0x41080 | ETM: фильтрация трассировки команд | 0x0000 0000 |
| M33_TRCCNTRLDVR0 | 0x41140 | ETM: значение перезагрузки счётчика 0 | 0x0000 0000 |
| M33_TRCIDR8 | 0x41180 | ETM: идентификатор TRCIDR8 — глубина спекуляции | 0x0000 0000 |
| M33_TRCIDR9 | 0x41184 | ETM: идентификатор TRCIDR9 — число ключей P0 | 0x0000 0000 |
| M33_TRCIDR10 | 0x41188 | ETM: идентификатор TRCIDR10 — число ключей P1 | 0x0000 0000 |
| M33_TRCIDR11 | 0x4118C | ETM: идентификатор TRCIDR11 — число особых ключей P1 | 0x0000 0000 |
| M33_TRCIDR12 | 0x41190 | ETM: идентификатор TRCIDR12 — число ключей условных команд | 0x0000 0001 |
| M33_TRCIDR13 | 0x41194 | ETM: идентификатор TRCIDR13 — число особых ключей условных команд | 0x0000 0000 |
| M33_TRCIMSPEC | 0x411C0 | ETM: особые функции реализации | 0x0000 0000 |
| M33_TRCIDR0 | 0x411E0 | ETM: идентификатор TRCIDR0 — возможности трассировки | 0x2800 06E1 |
| M33_TRCIDR1 | 0x411E4 | ETM: идентификатор TRCIDR1 — разработчик и версия архитектуры | 0x4100 F421 |
| M33_TRCIDR2 | 0x411E8 | ETM: идентификатор TRCIDR2 — размеры адресов, данных и счётчика тактов | 0x0000 0004 |
| M33_TRCIDR3 | 0x411EC | ETM: идентификатор TRCIDR3 — остановка, синхронизация, уровни исключений | 0x0F09 0004 |
| M33_TRCIDR4 | 0x411F0 | ETM: идентификатор TRCIDR4 — число компараторов и селекторов ресурсов | 0x0011 4000 |
| M33_TRCIDR5 | 0x411F4 | ETM: идентификатор TRCIDR5 — счётчики, секвенсор, внешние входы | 0x90C7 0004 |
| M33_TRCIDR6 | 0x411F8 | ETM: идентификатор TRCIDR6 — зарезервирован, 0 | 0x0000 0000 |
| M33_TRCIDR7 | 0x411FC | ETM: идентификатор TRCIDR7 — зарезервирован, 0 | 0x0000 0000 |
| M33_TRCRSCTLR2 | 0x41208 | ETM: селектор ресурсов 2 | 0x0000 0000 |
| M33_TRCRSCTLR3 | 0x4120C | ETM: селектор ресурсов 3 | 0x0000 0000 |
| M33_TRCSSCSR | 0x412A0 | ETM: состояние компаратора однократного срабатывания | 0x0000 0000 |
| M33_TRCSSPCICR | 0x412C0 | ETM: входы компараторов ядра для однократного срабатывания | 0x0000 0000 |
| M33_TRCPDCR | 0x41310 | ETM: запрос питания | 0x0000 0000 |
| M33_TRCPDSR | 0x41314 | ETM: состояние питания | 0x0000 0003 |
| M33_TRCITATBIDR | 0x41EE4 | ETM, режим интеграции: идентификатор на шине ATB | 0x0000 0000 |
| M33_TRCITIATBINR | 0x41EF4 | ETM, режим интеграции: входы шины ATB | 0x0000 0000 |
| M33_TRCITIATBOUTR | 0x41EFC | ETM, режим интеграции: выходы шины ATB | 0x0000 0000 |
| M33_TRCCLAIMSET | 0x41FA0 | ETM: установка меток захвата | 0x0000 000F |
| M33_TRCCLAIMCLR | 0x41FA4 | ETM: сброс меток захвата | 0x0000 0000 |
| M33_TRCAUTHSTATUS | 0x41FB8 | ETM: разрешённые виды отладки | 0x0000 0000 |
| M33_TRCDEVARCH | 0x41FBC | ETM: архитектура компонента CoreSight | 0x4772 4A13 |
| M33_TRCDEVID | 0x41FC8 | ETM: конфигурация компонента — 0 | 0x0000 0000 |
| M33_TRCDEVTYPE | 0x41FCC | ETM: тип компонента CoreSight | 0x0000 0013 |
| M33_TRCPIDR4 | 0x41FD0 | ETM: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_TRCPIDR5 | 0x41FD4 | ETM: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_TRCPIDR6 | 0x41FD8 | ETM: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_TRCPIDR7 | 0x41FDC | ETM: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_TRCPIDR0 | 0x41FE0 | ETM: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_TRCPIDR1 | 0x41FE4 | ETM: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_TRCPIDR2 | 0x41FE8 | ETM: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 002B |
| M33_TRCPIDR3 | 0x41FEC | ETM: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_TRCCIDR0 | 0x41FF0 | ETM: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_TRCCIDR1 | 0x41FF4 | ETM: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_TRCCIDR2 | 0x41FF8 | ETM: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_TRCCIDR3 | 0x41FFC | ETM: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
| M33_CTICONTROL | 0x42000 | CTI: включение | 0x0000 0000 |
| M33_CTIINTACK | 0x42010 | CTI: подтверждение выходов триггеров | 0x0000 0000 |
| M33_CTIAPPSET | 0x42014 | CTI: программное событие в каналах | 0x0000 0000 |
| M33_CTIAPPCLEAR | 0x42018 | CTI: сброс программных событий | 0x0000 0000 |
| M33_CTIAPPPULSE | 0x4201C | CTI: программный импульс в каналах | 0x0000 0000 |
| M33_CTIINENn | 0x42020 + n · 0x04 | CTI: каналы, в которые передаётся вход триггера n | 0x0000 0000 |
| M33_CTIOUTENn | 0x420A0 + n · 0x04 | CTI: каналы, которые включают выход триггера n | 0x0000 0000 |
| M33_CTITRIGINSTATUS | 0x42130 | CTI: состояние входов триггеров | 0x0000 0000 |
| M33_CTITRIGOUTSTATUS | 0x42134 | CTI: состояние выходов триггеров | 0x0000 0000 |
| M33_CTICHINSTATUS | 0x42138 | CTI: состояние каналов | 0x0000 0000 |
| M33_CTIGATE | 0x42140 | CTI: пропуск каналов на выходы | 0x0000 000F |
| M33_ASICCTL | 0x42144 | CTI: управление внешними мультиплексорами — их нет, DEVID.EXTMUXNUM = 0 | 0x0000 0000 |
| M33_ITCHOUT | 0x42EE4 | CTI, режим интеграции: выходы каналов | 0x0000 0000 |
| M33_ITTRIGOUT | 0x42EE8 | CTI, режим интеграции: выходы триггеров | 0x0000 0000 |
| M33_ITCHIN | 0x42EF4 | CTI, режим интеграции: входы каналов | 0x0000 0000 |
| M33_ITCTRL | 0x42F00 | CTI: включение режима интеграции | 0x0000 0000 |
| M33_DEVARCH | 0x42FBC | CTI: архитектура компонента CoreSight | 0x4770 1A14 |
| M33_DEVID | 0x42FC8 | CTI: число каналов, триггеров и мультиплексоров | 0x0004 0800 |
| M33_DEVTYPE | 0x42FCC | CTI: тип компонента CoreSight | 0x0000 0014 |
| M33_PIDR4 | 0x42FD0 | CTI: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика | 0x0000 0004 |
| M33_PIDR5 | 0x42FD4 | CTI: идентификатор PIDR5 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_PIDR6 | 0x42FD8 | CTI: идентификатор PIDR6 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_PIDR7 | 0x42FDC | CTI: идентификатор PIDR7 — зарезервирован, читается как 0 | 0x0000 0000 |
| M33_PIDR0 | 0x42FE0 | CTI: идентификатор PIDR0 — номер компонента, биты 7:0 | 0x0000 0021 |
| M33_PIDR1 | 0x42FE4 | CTI: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика | 0x0000 00BD |
| M33_PIDR2 | 0x42FE8 | CTI: идентификатор PIDR2 — ревизия и часть кода разработчика | 0x0000 000B |
| M33_PIDR3 | 0x42FEC | CTI: идентификатор PIDR3 — исправления ревизии и изменения заказчика | 0x0000 0000 |
| M33_CIDR0 | 0x42FF0 | CTI: идентификатор CIDR0 — преамбула, биты 7:0 | 0x0000 000D |
| M33_CIDR1 | 0x42FF4 | CTI: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8 | 0x0000 0090 |
| M33_CIDR2 | 0x42FF8 | CTI: идентификатор CIDR2 — преамбула, биты 23:16 | 0x0000 0005 |
| M33_CIDR3 | 0x42FFC | CTI: идентификатор CIDR3 — преамбула, биты 31:24 | 0x0000 00B1 |
M33_ITM_STIMn — iTM: порт стимулов n — запись отправляет пакет инструментальной трассировки
32 регистра, n = 0…31: смещение 0x00 + n · 0x04, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_STIMn_…
- STIMULUS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Данные для FIFO порта; размер записи — байт, полуслово или слово — задаёт тип пакета.
M33_ITM_TER0 — iTM: разрешение портов стимулов 0–31
Смещение 0x0E00, адрес 0xE000 0E00, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_TER0_…
- STIMENA (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Бит m разрешает порт стимулов ITM_STIMm.
M33_ITM_TPR — iTM: доступ непривилегированного кода к портам стимулов
Смещение 0x0E40, адрес 0xE000 0E40, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_TPR_…
- PRIVMASK (биты 3:0, чтение и запись, после сброса 0x0) — По биту на восемь портов стимулов: 1 — порты доступны только привилегированному коду.
M33_ITM_TCR — iTM: управление и метки времени
Смещение 0x0E80, адрес 0xE000 0E80, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_TCR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BUSY | TRACEBUSID | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | GTSFREQ | TSPRESCALE | — | STALLENA | SWOENA | TXENA | SYNCENA | TSENA | ITMENA | ||||||
- BUSY (бит 23, только чтение, после сброса 0x0) — ITM обрабатывает события.
- TRACEBUSID (биты 22:16, чтение и запись, после сброса 0x00) — Идентификатор источника в общем потоке трассировки; при нескольких источниках отладчик пишет уникальное ненулевое значение.
- GTSFREQ (биты 11:10, чтение и запись, после сброса 0x0) — Как часто выдавать глобальную метку времени, 0 — не выдавать.
- TSPRESCALE (биты 9:8, чтение и запись, после сброса 0x0) — Предделитель локальной метки времени.
- STALLENA (бит 5, чтение и запись, после сброса 0x0) — Останавливать ядро, чтобы пакеты трассировки данных не терялись.
- SWOENA (бит 4, чтение и запись, после сброса 0x0) — Асинхронное тактирование счётчика меток времени.
- TXENA (бит 3, чтение и запись, после сброса 0x0) — Передавать пакеты аппаратных событий DWT через ITM в TPIU.
- SYNCENA (бит 2, чтение и запись, после сброса 0x0) — Пакеты синхронизации для синхронного TPIU.
- TSENA (бит 1, чтение и запись, после сброса 0x0) — Локальные метки времени.
- ITMENA (бит 0, чтение и запись, после сброса 0x0) — Включение ITM.
M33_INT_ATREADY — iTM, режим интеграции: чтение сигналов шины ATB
Смещение 0x0EF0, адрес 0xE000 0EF0, после сброса 0x0000 0000. Макросы pico-sdk: M33_INT_ATREADY_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | AFVALID | ATREADY | |||||||||||||
- AFVALID (бит 1, только чтение, после сброса 0x0) — Чтение сигнала AFVALID.
- ATREADY (бит 0, только чтение, после сброса 0x0) — Чтение сигнала ATREADY.
M33_INT_ATVALID — iTM, режим интеграции: запись сигналов шины ATB
Смещение 0x0EF8, адрес 0xE000 0EF8, после сброса 0x0000 0000. Макросы pico-sdk: M33_INT_ATVALID_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | AFREADY | ATREADY | |||||||||||||
- AFREADY (бит 1, чтение и запись, после сброса 0x0) — Запись задаёт сигнал AFREADY.
- ATREADY (бит 0, чтение и запись, после сброса 0x0) — Запись задаёт сигнал ATVALID; в заголовке поле названо ATREADY.
M33_ITM_ITCTRL — iTM: включение режима интеграции
Смещение 0x0F00, адрес 0xE000 0F00, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_ITCTRL_…
- IME (бит 0, чтение и запись, после сброса 0x0) — 1 — режим интеграции: для поиска компонентов отладчиком и проверки соединений.
M33_ITM_DEVARCH — iTM: архитектура компонента CoreSight
Смещение 0x0FBC, адрес 0xE000 0FBC, после сброса 0x4770 1A01. Макросы pico-sdk: M33_ITM_DEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHVER | ARCHPART | ||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x0) — Ревизия архитектуры компонента.
- ARCHVER (биты 15:12, только чтение, после сброса 0x1) — Версия архитектуры компонента.
- ARCHPART (биты 11:0, только чтение, после сброса 0xA01) — Номер архитектуры компонента.
M33_ITM_DEVTYPE — iTM: тип компонента CoreSight
Смещение 0x0FCC, адрес 0xE000 0FCC, после сброса 0x0000 0043. Макросы pico-sdk: M33_ITM_DEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x4) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x3) — Основной тип компонента.
M33_ITM_PIDR4 — iTM: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0x0FD0, адрес 0xE000 0FD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_ITM_PIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_ITM_PIDR5 — iTM: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0x0FD4, адрес 0xE000 0FD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ITM_PIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_ITM_PIDR6 — iTM: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0x0FD8, адрес 0xE000 0FD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ITM_PIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_ITM_PIDR7 — iTM: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0x0FDC, адрес 0xE000 0FDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ITM_PIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_ITM_PIDR0 — iTM: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0x0FE0, адрес 0xE000 0FE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_ITM_PIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_ITM_PIDR1 — iTM: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0x0FE4, адрес 0xE000 0FE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_ITM_PIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_1 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_1 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента.
M33_ITM_PIDR2 — iTM: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0x0FE8, адрес 0xE000 0FE8, после сброса 0x0000 000B. Макросы pico-sdk: M33_ITM_PIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_1 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x0) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_1 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm.
M33_ITM_PIDR3 — iTM: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0x0FEC, адрес 0xE000 0FEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITM_PIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_ITM_CIDR0 — iTM: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0x0FF0, адрес 0xE000 0FF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_ITM_CIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_ITM_CIDR1 — iTM: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0x0FF4, адрес 0xE000 0FF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_ITM_CIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_ITM_CIDR2 — iTM: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0x0FF8, адрес 0xE000 0FF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_ITM_CIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_ITM_CIDR3 — iTM: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0x0FFC, адрес 0xE000 0FFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_ITM_CIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
M33_DWT_CTRL — dWT: конфигурация, счётчики и пакеты трассировки
Смещение 0x1000, адрес 0xE000 1000, после сброса 0x7374 1824. Макросы pico-sdk: M33_DWT_CTRL_…
- NUMCOMP (биты 31:28, только чтение, после сброса 0x7) — Число компараторов DWT.
- NOTRCPKT (бит 27, только чтение, после сброса 0x0) — 1 — пакеты трассировки не поддерживаются.
- NOEXTTRIG (бит 26, только чтение, после сброса 0x0) — Зарезервирован, читается как 0.
- NOCYCCNT (бит 25, только чтение, после сброса 0x1) — 1 — счётчика тактов CYCCNT нет.
- NOPRFCNT (бит 24, только чтение, после сброса 0x1) — 1 — счётчиков профилирования нет.
- CYCDISS (бит 23, чтение и запись, после сброса 0x0) — Останавливать счётчик тактов в защищённом состоянии.
- CYCEVTENA (бит 22, чтение и запись, после сброса 0x1) — Пакеты счётчика событий при опустошении POSTCNT.
- FOLDEVTENA (бит 21, чтение и запись, после сброса 0x1) — Включение счётчика DWT_FOLDCNT.
- LSUEVTENA (бит 20, чтение и запись, после сброса 0x1) — Включение счётчика DWT_LSUCNT.
- SLEEPEVTENA (бит 19, чтение и запись, после сброса 0x0) — Включение счётчика тактов сна DWT_SLEEPCNT.
- EXCEVTENA (бит 18, чтение и запись, после сброса 0x1) — Включение счётчика DWT_EXCCNT.
- CPIEVTENA (бит 17, чтение и запись, после сброса 0x0) — Включение счётчика DWT_CPICNT.
- EXTTRCENA (бит 16, чтение и запись, после сброса 0x0) — Пакеты трассировки исключений.
- PCSAMPLENA (бит 12, чтение и запись, после сброса 0x1) — Периодическая выборка счётчика команд по таймеру POSTCNT.
- SYNCTAP (биты 11:10, чтение и запись, после сброса 0x2) — Отвод счётчика CYCCNT для пакетов синхронизации — задаёт их частоту.
- CYCTAP (бит 9, чтение и запись, после сброса 0x0) — Отвод счётчика CYCCNT для таймера POSTCNT.
- POSTINIT (биты 8:5, чтение и запись, после сброса 0x1) — Начальное значение таймера POSTCNT.
- POSTPRESET (биты 4:1, чтение и запись, после сброса 0x2) — Значение перезагрузки таймера POSTCNT.
- CYCCNTENA (бит 0, чтение и запись, после сброса 0x0) — Включение счётчика тактов CYCCNT; нужен и бит DEMCR.TRCENA.
M33_DWT_CYCCNT — dWT: счётчик тактов ядра CYCCNT
Смещение 0x1004, адрес 0xE000 1004, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_CYCCNT_…
- CYCCNT (биты 31:0, чтение и запись, после сброса 0x0000 0000) — +1 за каждый такт ядра при CYCCNTENA = 1 и DEMCR.TRCENA = 1; при переполнении переходит через 0.
M33_DWT_EXCCNT — dWT: счётчик тактов обработки исключений
Смещение 0x100C, адрес 0xE000 100C, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_EXCCNT_…
- EXCCNT (биты 7:0, чтение и запись, после сброса 0x00) — 8-битный счётчик тактов, когда ядро не выполняет команд, а входит в исключение или выходит из него.
M33_DWT_LSUCNT — dWT: счётчик дополнительных тактов загрузок и сохранений
Смещение 0x1014, адрес 0xE000 1014, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_LSUCNT_…
- LSUCNT (биты 7:0, чтение и запись, после сброса 0x00) — 8-битный счётчик дополнительных тактов команд загрузки и сохранения.
M33_DWT_FOLDCNT — dWT: счётчик сдвоенных команд
Смещение 0x1018, адрес 0xE000 1018, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_FOLDCNT_…
- FOLDCNT (биты 7:0, чтение и запись, после сброса 0x00) — 8-битный счётчик: за такт, в котором выполнено несколько команд, прибавляется их число минус одна.
M33_DWT_COMPn — dWT: компаратор n — адрес или значение данных для сравнения
4 регистра, n = 0…3: смещение 0x1020 + n · 0x10, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DWT_COMPn_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DWT_FUNCTION0 — dWT: компаратор 0 — тип совпадения и действие
Смещение 0x1028, адрес 0xE000 1028, после сброса 0x5800 0000. Макросы pico-sdk: M33_DWT_FUNCTION0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ID | — | MATCHED | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DATAVSIZE | — | ACTION | MATCH | |||||||||||
- ID (биты 31:27, только чтение, после сброса 0x0B) — Какие типы совпадения MATCH поддерживает компаратор.
- MATCHED (бит 24, только чтение, после сброса 0x0) — Устанавливается в 1, когда компаратор срабатывает.
- DATAVSIZE (биты 11:10, чтение и запись, после сброса 0x0) — Размер наблюдаемого объекта при сравнении данных и адресов данных.
- ACTION (биты 5:4, чтение и запись, после сброса 0x0) — Действие при совпадении — событие отладки или пакет трассировки; не действует, если MATCH выключает компаратор.
- MATCH (биты 3:0, чтение и запись, после сброса 0x0) — Тип сравнения: адрес команды, адрес данных, значение данных; 0 — компаратор выключен.
M33_DWT_FUNCTION1 — dWT: компаратор 1 — тип совпадения и действие
Смещение 0x1038, адрес 0xE000 1038, после сброса 0x8900 0828. Макросы pico-sdk: M33_DWT_FUNCTION1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ID | — | MATCHED | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DATAVSIZE | — | ACTION | MATCH | |||||||||||
- ID (биты 31:27, только чтение, после сброса 0x11) — Какие типы совпадения MATCH поддерживает компаратор.
- MATCHED (бит 24, только чтение, после сброса 0x1) — Устанавливается в 1, когда компаратор срабатывает.
- DATAVSIZE (биты 11:10, чтение и запись, после сброса 0x2) — Размер наблюдаемого объекта при сравнении данных и адресов данных.
- ACTION (биты 5:4, чтение и запись, после сброса 0x2) — Действие при совпадении — событие отладки или пакет трассировки; не действует, если MATCH выключает компаратор.
- MATCH (биты 3:0, чтение и запись, после сброса 0x8) — Тип сравнения: адрес команды, адрес данных, значение данных; 0 — компаратор выключен.
M33_DWT_FUNCTION2 — dWT: компаратор 2 — тип совпадения и действие
Смещение 0x1048, адрес 0xE000 1048, после сброса 0x5000 0000. Макросы pico-sdk: M33_DWT_FUNCTION2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ID | — | MATCHED | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DATAVSIZE | — | ACTION | MATCH | |||||||||||
- ID (биты 31:27, только чтение, после сброса 0x0A) — Какие типы совпадения MATCH поддерживает компаратор.
- MATCHED (бит 24, только чтение, после сброса 0x0) — Устанавливается в 1, когда компаратор срабатывает.
- DATAVSIZE (биты 11:10, чтение и запись, после сброса 0x0) — Размер наблюдаемого объекта при сравнении данных и адресов данных.
- ACTION (биты 5:4, чтение и запись, после сброса 0x0) — Действие при совпадении — событие отладки или пакет трассировки; не действует, если MATCH выключает компаратор.
- MATCH (биты 3:0, чтение и запись, после сброса 0x0) — Тип сравнения: адрес команды, адрес данных, значение данных; 0 — компаратор выключен.
M33_DWT_FUNCTION3 — dWT: компаратор 3 — тип совпадения и действие
Смещение 0x1058, адрес 0xE000 1058, после сброса 0x2000 0800. Макросы pico-sdk: M33_DWT_FUNCTION3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ID | — | MATCHED | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DATAVSIZE | — | ACTION | MATCH | |||||||||||
- ID (биты 31:27, только чтение, после сброса 0x04) — Какие типы совпадения MATCH поддерживает компаратор.
- MATCHED (бит 24, только чтение, после сброса 0x0) — Устанавливается в 1, когда компаратор срабатывает.
- DATAVSIZE (биты 11:10, чтение и запись, после сброса 0x2) — Размер наблюдаемого объекта при сравнении данных и адресов данных.
- ACTION (биты 5:4, чтение и запись, после сброса 0x0) — Действие при совпадении — событие отладки или пакет трассировки; не действует, если MATCH выключает компаратор.
- MATCH (биты 3:0, чтение и запись, после сброса 0x0) — Тип сравнения: адрес команды, адрес данных, значение данных; 0 — компаратор выключен.
M33_DWT_DEVARCH — dWT: архитектура компонента CoreSight
Смещение 0x1FBC, адрес 0xE000 1FBC, после сброса 0x4770 1A02. Макросы pico-sdk: M33_DWT_DEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHVER | ARCHPART | ||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x0) — Ревизия архитектуры компонента.
- ARCHVER (биты 15:12, только чтение, после сброса 0x1) — Версия архитектуры компонента.
- ARCHPART (биты 11:0, только чтение, после сброса 0xA02) — Номер архитектуры компонента.
M33_DWT_DEVTYPE — dWT: тип компонента CoreSight
Смещение 0x1FCC, адрес 0xE000 1FCC, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_DEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x0) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x0) — Основной тип компонента.
M33_DWT_PIDR4 — dWT: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0x1FD0, адрес 0xE000 1FD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_DWT_PIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_DWT_PIDR5 — dWT: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0x1FD4, адрес 0xE000 1FD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DWT_PIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DWT_PIDR6 — dWT: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0x1FD8, адрес 0xE000 1FD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DWT_PIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DWT_PIDR7 — dWT: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0x1FDC, адрес 0xE000 1FDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DWT_PIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DWT_PIDR0 — dWT: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0x1FE0, адрес 0xE000 1FE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_DWT_PIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_DWT_PIDR1 — dWT: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0x1FE4, адрес 0xE000 1FE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_DWT_PIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_1 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_1 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента.
M33_DWT_PIDR2 — dWT: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0x1FE8, адрес 0xE000 1FE8, после сброса 0x0000 000B. Макросы pico-sdk: M33_DWT_PIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_1 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x0) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_1 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm.
M33_DWT_PIDR3 — dWT: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0x1FEC, адрес 0xE000 1FEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_DWT_PIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_DWT_CIDR0 — dWT: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0x1FF0, адрес 0xE000 1FF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_DWT_CIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_DWT_CIDR1 — dWT: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0x1FF4, адрес 0xE000 1FF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_DWT_CIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_DWT_CIDR2 — dWT: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0x1FF8, адрес 0xE000 1FF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_DWT_CIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_DWT_CIDR3 — dWT: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0x1FFC, адрес 0xE000 1FFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_DWT_CIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
M33_FP_CTRL — fPB: число компараторов и включение точек останова
Смещение 0x2000, адрес 0xE000 2000, после сброса 0x6000 5580. Макросы pico-sdk: M33_FP_CTRL_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REV | — | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | NUM_CODE_14_12_ | NUM_LIT | NUM_CODE_7_4_ | — | KEY | ENABLE | |||||||||
- REV (биты 31:28, только чтение, после сброса 0x6) — Ревизия архитектуры блока FPB.
- NUM_CODE_14_12_ (биты 14:12, только чтение, после сброса 0x5) — Биты 6:4 числа компараторов адресов команд NUM_CODE.
- NUM_LIT (биты 11:8, только чтение, после сброса 0x5) — Число компараторов адресов литералов; их номера идут после NUM_CODE.
- NUM_CODE_7_4_ (биты 7:4, только чтение, после сброса 0x8) — Биты 3:0 числа компараторов адресов команд NUM_CODE.
- KEY (бит 1, чтение и запись, после сброса 0x0) — Запись в FP_CTRL действует, только если одновременно пишется KEY = 1.
- ENABLE (бит 0, чтение и запись, после сброса 0x0) — Включение блока точек останова FPB.
M33_FP_REMAP — fPB: подмена кода во флеш-памяти
Смещение 0x2004, адрес 0xE000 2004, после сброса 0x0000 0000. Макросы pico-sdk: M33_FP_REMAP_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RMPSPT | REMAP | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REMAP | — | ||||||||||||||
- RMPSPT (бит 29, только чтение, после сброса 0x0) — 1 — подмена кода во флеш-памяти поддерживается.
- REMAP (биты 28:5, только чтение, после сброса 0x000000) — Биты 28:5 адреса таблицы подмены кода.
M33_FP_COMPn — fPB: компаратор n — адрес точки останова
8 регистров, n = 0…7: смещение 0x2008 + n · 0x04, после сброса 0x0000 0000. Макросы pico-sdk: M33_FP_COMPn_…
- BE (бит 0, чтение и запись, после сброса 0x0) — Выбор между подменой кода и точкой останова: 1 — точка останова.
M33_FP_DEVARCH — fPB: архитектура компонента CoreSight
Смещение 0x2FBC, адрес 0xE000 2FBC, после сброса 0x4770 1A03. Макросы pico-sdk: M33_FP_DEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHVER | ARCHPART | ||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x0) — Ревизия архитектуры компонента.
- ARCHVER (биты 15:12, только чтение, после сброса 0x1) — Версия архитектуры компонента.
- ARCHPART (биты 11:0, только чтение, после сброса 0xA03) — Номер архитектуры компонента.
M33_FP_DEVTYPE — fPB: тип компонента CoreSight
Смещение 0x2FCC, адрес 0xE000 2FCC, после сброса 0x0000 0000. Макросы pico-sdk: M33_FP_DEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x0) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x0) — Основной тип компонента.
M33_FP_PIDR4 — fPB: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0x2FD0, адрес 0xE000 2FD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_FP_PIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_FP_PIDR5 — fPB: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0x2FD4, адрес 0xE000 2FD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_FP_PIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_FP_PIDR6 — fPB: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0x2FD8, адрес 0xE000 2FD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_FP_PIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_FP_PIDR7 — fPB: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0x2FDC, адрес 0xE000 2FDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_FP_PIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_FP_PIDR0 — fPB: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0x2FE0, адрес 0xE000 2FE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_FP_PIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_FP_PIDR1 — fPB: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0x2FE4, адрес 0xE000 2FE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_FP_PIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_1 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_1 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента.
M33_FP_PIDR2 — fPB: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0x2FE8, адрес 0xE000 2FE8, после сброса 0x0000 000B. Макросы pico-sdk: M33_FP_PIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_1 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x0) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_1 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm.
M33_FP_PIDR3 — fPB: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0x2FEC, адрес 0xE000 2FEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_FP_PIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_FP_CIDR0 — fPB: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0x2FF0, адрес 0xE000 2FF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_FP_CIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_FP_CIDR1 — fPB: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0x2FF4, адрес 0xE000 2FF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_FP_CIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_FP_CIDR2 — fPB: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0x2FF8, адрес 0xE000 2FF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_FP_CIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_FP_CIDR3 — fPB: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0x2FFC, адрес 0xE000 2FFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_FP_CIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
M33_ICTR — число групп регистров NVIC
Смещение 0xE004, адрес 0xE000 E004, после сброса 0x0000 0001. Макросы pico-sdk: M33_ICTR_…
- INTLINESNUM (биты 3:0, только чтение, после сброса 0x1) — Номер старшего регистра в каждой группе NVIC: 1 — по два регистра ISER, ICER и других, до 64 прерываний.
M33_ACTLR — дополнительное управление ядром Cortex-M33
Смещение 0xE008, адрес 0xE000 E008, после сброса 0x0000 0000. Макросы pico-sdk: M33_ACTLR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | EXTEXCLALL | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DISITMATBFLUSH | — | FPEXCODIS | DISOOFP | — | DISFOLD | — | DISMCYCINT | |||||||
- EXTEXCLALL (бит 29, чтение и запись, после сброса 0x0) — Внешние монопольные обращения разрешены и без MPU.
- DISITMATBFLUSH (бит 12, чтение и запись, после сброса 0x0) — Отключить сброс шины ATB у ITM.
- FPEXCODIS (бит 10, чтение и запись, после сброса 0x0) — Отключить выходы исключений FPU.
- DISOOFP (бит 9, чтение и запись, после сброса 0x0) — Отключить завершение команд FPU не по порядку.
- DISFOLD (бит 2, чтение и запись, после сброса 0x0) — Отключить сдвоенную выдачу команд (dual issue).
- DISMCYCINT (бит 0, чтение и запись, после сброса 0x0) — Запретить прерывание многотактных команд; в таблице даташита у поля описание от DISFOLD.
M33_SYST_CSR — sysTick: управление и состояние
Смещение 0xE010, адрес 0xE000 E010, после сброса 0x0000 0000. Макросы pico-sdk: M33_SYST_CSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | COUNTFLAG | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLKSOURCE | TICKINT | ENABLE | ||||||||||||
- COUNTFLAG (бит 16, только чтение, после сброса 0x0) — 1, если счётчик дошёл до 0 после прошлого чтения; чтение сбрасывает.
- CLKSOURCE (бит 2, чтение и запись, после сброса 0x0) — Источник счёта: 0 — опорные тики из блока TICKS, 1 — такты ядра; при NOREF = 1 всегда 1.
- TICKINT (бит 1, чтение и запись, после сброса 0x0) — Исключение SysTick при достижении 0.
- ENABLE (бит 0, чтение и запись, после сброса 0x0) — Включение счётчика.
M33_SYST_RVR — sysTick: значение перезагрузки
Смещение 0xE014, адрес 0xE000 E014, после сброса 0x0000 0000. Макросы pico-sdk: M33_SYST_RVR_…
- RELOAD (биты 23:0, чтение и запись, после сброса 0x000000) — Значение, загружаемое при достижении 0, до 0xFFFFFF: для периода N импульсов — N − 1; после сброса не определено.
M33_SYST_CVR — sysTick: текущее значение
Смещение 0xE018, адрес 0xE000 E018, после сброса 0x0000 0000. Макросы pico-sdk: M33_SYST_CVR_…
- CURRENT (биты 23:0, чтение и запись, после сброса 0x000000) — Текущее значение счётчика; любая запись обнуляет его и сбрасывает COUNTFLAG; после сброса не определено.
M33_SYST_CALIB — sysTick: калибровка
Смещение 0xE01C, адрес 0xE000 E01C, после сброса 0x0000 0000. Макросы pico-sdk: M33_SYST_CALIB_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| NOREF | SKEW | — | TENMS | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TENMS | |||||||||||||||
- NOREF (бит 31, только чтение, после сброса 0x0) — 1 — опорного сигнала нет и CLKSOURCE всегда 1.
- SKEW (бит 30, только чтение, после сброса 0x0) — 1 — значение для 10 мс неточное.
- TENMS (биты 23:0, только чтение, после сброса 0x000000) — Значение перезагрузки для 10 мс; 0 — неизвестно.
M33_NVIC_ISER0 — nVIC: разрешение прерываний 0–31
Смещение 0xE100, адрес 0xE000 E100, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ISER0_…
- SETENA (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 разрешает прерывание, чтение показывает разрешённые; бит m — прерывание m.
M33_NVIC_ISER1 — nVIC: разрешение прерываний 32–51
Смещение 0xE104, адрес 0xE000 E104, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ISER1_…
- SETENA (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 разрешает прерывание, чтение показывает разрешённые; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_ICER0 — nVIC: запрет прерываний 0–31
Смещение 0xE180, адрес 0xE000 E180, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ICER0_…
- CLRENA (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 запрещает прерывание, чтение показывает разрешённые; бит m — прерывание m.
M33_NVIC_ICER1 — nVIC: запрет прерываний 32–51
Смещение 0xE184, адрес 0xE000 E184, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ICER1_…
- CLRENA (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 запрещает прерывание, чтение показывает разрешённые; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_ISPR0 — nVIC: установка ожидания прерываний 0–31
Смещение 0xE200, адрес 0xE000 E200, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ISPR0_…
- SETPEND (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 ставит прерывание в ожидание, чтение показывает ожидающие; бит m — прерывание m.
M33_NVIC_ISPR1 — nVIC: установка ожидания прерываний 32–51
Смещение 0xE204, адрес 0xE000 E204, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ISPR1_…
- SETPEND (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 ставит прерывание в ожидание, чтение показывает ожидающие; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_ICPR0 — nVIC: снятие ожидания прерываний 0–31
Смещение 0xE280, адрес 0xE000 E280, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ICPR0_…
- CLRPEND (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 снимает ожидание, чтение показывает ожидающие; бит m — прерывание m.
M33_NVIC_ICPR1 — nVIC: снятие ожидания прерываний 32–51
Смещение 0xE284, адрес 0xE000 E284, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ICPR1_…
- CLRPEND (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Запись 1 снимает ожидание, чтение показывает ожидающие; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_IABR0 — nVIC: активность прерываний 0–31
Смещение 0xE300, адрес 0xE000 E300, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_IABR0_…
- ACTIVE (биты 31:0, чтение и запись, после сброса 0x0000 0000) — 1 — прерывание активно: обработчик выполняется или вытеснен; бит m — прерывание m.
M33_NVIC_IABR1 — nVIC: активность прерываний 32–51
Смещение 0xE304, адрес 0xE000 E304, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_IABR1_…
- ACTIVE (биты 31:0, чтение и запись, после сброса 0x0000 0000) — 1 — прерывание активно: обработчик выполняется или вытеснен; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_ITNS0 — nVIC: состояние защиты прерываний 0–31
Смещение 0xE380, адрес 0xE000 E380, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ITNS0_…
- ITNS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Куда направляется прерывание: 0 — в защищённое состояние, 1 — в незащищённое; бит m — прерывание m.
M33_NVIC_ITNS1 — nVIC: состояние защиты прерываний 32–51
Смещение 0xE384, адрес 0xE000 E384, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_ITNS1_…
- ITNS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Куда направляется прерывание: 0 — в защищённое состояние, 1 — в незащищённое; бит m — прерывание 32 + m, реализованы биты 0–19.
M33_NVIC_IPRn — nVIC: приоритеты прерываний 4n…4n + 3; у номеров выше 51 поля читаются как 0
16 регистров, n = 0…15: смещение 0xE400 + n · 0x04, после сброса 0x0000 0000. Макросы pico-sdk: M33_NVIC_IPRn_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_N3 | — | PRI_N2 | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_N1 | — | PRI_N0 | — | ||||||||||||
- PRI_N3 (биты 31:28, чтение и запись, после сброса 0x0) — Приоритет прерывания 4n + 3: 0 — наивысший, 15 — низший.
- PRI_N2 (биты 23:20, чтение и запись, после сброса 0x0) — Приоритет прерывания 4n + 2.
- PRI_N1 (биты 15:12, чтение и запись, после сброса 0x0) — Приоритет прерывания 4n + 1.
- PRI_N0 (биты 7:4, чтение и запись, после сброса 0x0) — Приоритет прерывания 4n.
M33_CPUID — идентификатор ядра: Arm Cortex-M33, ревизия r1p0
Смещение 0xED00, адрес 0xE000 ED00, после сброса 0x411F D210. Макросы pico-sdk: M33_CPUID_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| IMPLEMENTER | VARIANT | ARCHITECTURE | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PARTNO | REVISION | ||||||||||||||
- IMPLEMENTER (биты 31:24, только чтение, после сброса 0x41) — Код разработчика ядра: 0x41 — Arm.
- VARIANT (биты 23:20, только чтение, после сброса 0x1) — Старший номер ревизии r: 1.
- ARCHITECTURE (биты 19:16, только чтение, после сброса 0xF) — Архитектура: 0xF — описана регистрами ID_….
- PARTNO (биты 15:4, только чтение, после сброса 0xD21) — Номер ядра: 0xD21 — Cortex-M33.
- REVISION (биты 3:0, только чтение, после сброса 0x0) — Младший номер ревизии p: 0.
M33_ICSR — состояние исключений и ожидание NMI, PendSV и SysTick
Смещение 0xED04, адрес 0xE000 ED04, после сброса 0x0000 0000. Макросы pico-sdk: M33_ICSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PENDNMISET | PENDNMICLR | — | PENDSVSET | PENDSVCLR | PENDSTSET | PENDSTCLR | STTNS | ISRPREEMPT | ISRPENDING | — | VECTPENDING | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VECTPENDING | RETTOBASE | — | VECTACTIVE | ||||||||||||
- PENDNMISET (бит 31, только чтение, после сброса 0x0) — NMI ожидает обработки; по архитектуре запись 1 вызывает NMI, хотя в таблице поле помечено RO.
- PENDNMICLR (бит 30, чтение и запись, после сброса 0x0) — Запись 1 снимает ожидание NMI.
- PENDSVSET (бит 28, только чтение, после сброса 0x0) — PendSV ожидает обработки; по архитектуре запись 1 ставит его в ожидание, хотя поле помечено RO.
- PENDSVCLR (бит 27, чтение и запись, после сброса 0x0) — Запись 1 снимает ожидание PendSV.
- PENDSTSET (бит 26, только чтение, после сброса 0x0) — SysTick ожидает обработки; по архитектуре запись 1 ставит его в ожидание, хотя поле помечено RO.
- PENDSTCLR (бит 25, чтение и запись, после сброса 0x0) — Запись 1 снимает ожидание SysTick.
- STTNS (бит 24, чтение и запись, после сброса 0x0) — Если SysTick в ядре один — чей он: 0 — защищённого состояния, 1 — незащищённого.
- ISRPREEMPT (бит 23, только чтение, после сброса 0x0) — Ожидающее исключение будет принято при выходе из остановки отладчиком.
- ISRPENDING (бит 22, только чтение, после сброса 0x0) — Есть ожидающее внешнее прерывание.
- VECTPENDING (биты 20:12, только чтение, после сброса 0x000) — Номер ожидающего разрешённого исключения с наивысшим приоритетом; 0 — нет.
- RETTOBASE (бит 11, только чтение, после сброса 0x0) — В режиме обработчика: 1 — других активных исключений нет.
- VECTACTIVE (биты 8:0, только чтение, после сброса 0x000) — Номер выполняемого исключения; 0 — режим потока.
M33_VTOR — адрес таблицы векторов прерываний
Смещение 0xED08, адрес 0xE000 ED08, после сброса 0x0000 0000. Макросы pico-sdk: M33_VTOR_…
- TBLOFF (биты 31:7, чтение и запись, после сброса 0x0000000) — Биты 31:7 адреса таблицы векторов; у защищённого и незащищённого состояния свои VTOR.
M33_AIRCR — сброс ядра, группы приоритетов и приоритет защищённых исключений
Смещение 0xED0C, адрес 0xE000 ED0C, после сброса 0x0000 0000. Макросы pico-sdk: M33_AIRCR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| VECTKEY | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ENDIANESS | PRIS | BFHFNMINS | — | PRIGROUP | — | SYSRESETREQS | SYSRESETREQ | VECTCLRACTIVE | — | ||||||
- VECTKEY (биты 31:16, чтение и запись, после сброса 0x0000) — Ключ: запись в AIRCR действует, только если здесь 0x05FA.
- ENDIANESS (бит 15, только чтение, после сброса 0x0) — Порядок байтов: 0 — от младшего к старшему (little-endian).
- PRIS (бит 14, чтение и запись, после сброса 0x0) — 1 — понизить приоритет незащищённых исключений, чтобы защищённые шли первыми.
- BFHFNMINS (бит 13, чтение и запись, после сброса 0x0) — 0 — BusFault, HardFault и NMI защищённые; 1 — BusFault и NMI незащищённые, а исключения могут попадать в незащищённый HardFault.
- PRIGROUP (биты 10:8, чтение и запись, после сброса 0x0) — Деление приоритета на группу, которая вытесняет, и подгруппу.
- SYSRESETREQS (бит 3, чтение и запись, после сброса 0x0) — 1 — запрос сброса SYSRESETREQ доступен только защищённому коду.
- SYSRESETREQ (бит 2, чтение и запись, после сброса 0x0) — Сброс ядра: по таблице даташита RP2350 — только того, на котором бит установлен; в заголовке pico-sdk 2.1.1 осталось описание Arm о сбросе всех блоков, кроме отладки.
- VECTCLRACTIVE (бит 1, чтение и запись, после сброса 0x0) — Сброс активных исключений и возврат в режим потока; устанавливает только отладчик при остановленном ядре, после этого стек настраивают заново.
M33_SCR — режимы сна
Смещение 0xED10, адрес 0xE000 ED10, после сброса 0x0000 0000. Макросы pico-sdk: M33_SCR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SEVONPEND | SLEEPDEEPS | SLEEPDEEP | SLEEPONEXIT | — | ||||||||||
- SEVONPEND (бит 4, чтение и запись, после сброса 0x0) — 1 — пробуждать из WFE любым прерыванием, включая запрещённые; 0 — только разрешёнными.
- SLEEPDEEPS (бит 3, чтение и запись, после сброса 0x0) — 1 — бит SLEEPDEEP доступен только защищённому коду.
- SLEEPDEEP (бит 2, чтение и запись, после сброса 0x0) — Режим сна: 0 — обычный сон, 1 — глубокий.
- SLEEPONEXIT (бит 1, чтение и запись, после сброса 0x0) — Засыпать после выхода из обработчика прерывания в режим потока.
M33_CCR — конфигурация ядра: ловушки отказов и кеши
Смещение 0xED14, адрес 0xE000 ED14, после сброса 0x0000 0201. Макросы pico-sdk: M33_CCR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BP | IC | DC | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | STKOFHFNMIGN | RES1 | BFHFNMIGN | — | DIV_0_TRP | UNALIGN_TRP | — | USERSETMPEND | RES1_1 | ||||||
- BP (бит 18, только чтение, после сброса 0x0) — Предсказание переходов; только чтение, 0.
- IC (бит 17, только чтение, после сброса 0x0) — Кеш команд; только чтение, 0.
- DC (бит 16, только чтение, после сброса 0x0) — Кеш данных; только чтение, 0.
- STKOFHFNMIGN (бит 10, чтение и запись, после сброса 0x0) — 1 — игнорировать нарушение предела стека в обработчиках с приоритетом ниже 0: HardFault, NMI и при FAULTMASK.
- RES1 (бит 9, только чтение, после сброса 0x1) — Зарезервирован, 1.
- BFHFNMIGN (бит 8, чтение и запись, после сброса 0x0) — 1 — игнорировать точные BusFault в обработчиках с приоритетом ниже 0.
- DIV_0_TRP (бит 4, чтение и запись, после сброса 0x0) — UsageFault при целочисленном делении на ноль.
- UNALIGN_TRP (бит 3, чтение и запись, после сброса 0x0) — UsageFault при любом невыровненном обращении к слову или полуслову.
- USERSETMPEND (бит 1, чтение и запись, после сброса 0x0) — Разрешить непривилегированному коду вызывать прерывания через STIR.
- RES1_1 (бит 0, только чтение, после сброса 0x1) — Зарезервирован, 1.
M33_SHPR1 — приоритеты обработчиков MemManage, BusFault, UsageFault и SecureFault
Смещение 0xED18, адрес 0xE000 ED18, после сброса 0x0000 0000. Макросы pico-sdk: M33_SHPR1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_7_3 | — | PRI_6_3 | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_5_3 | — | PRI_4_3 | — | ||||||||||||
- PRI_7_3 (биты 31:29, чтение и запись, после сброса 0x0) — Приоритет SecureFault (исключение 7).
- PRI_6_3 (биты 23:21, чтение и запись, после сброса 0x0) — Приоритет UsageFault (исключение 6).
- PRI_5_3 (биты 15:13, чтение и запись, после сброса 0x0) — Приоритет BusFault (исключение 5).
- PRI_4_3 (биты 7:5, чтение и запись, после сброса 0x0) — Приоритет MemManage (исключение 4).
M33_SHPR2 — приоритет обработчика SVCall
Смещение 0xED1C, адрес 0xE000 ED1C, после сброса 0x0000 0000. Макросы pico-sdk: M33_SHPR2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_11_3 | — | PRI_10 | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_9 | PRI_8 | ||||||||||||||
- PRI_11_3 (биты 31:29, чтение и запись, после сброса 0x0) — Приоритет SVCall (исключение 11).
- PRI_n, n = 8…10 (биты 7:0, 15:8, 23:16; только чтение, после сброса 0x00) — Зарезервировано, 0.
M33_SHPR3 — приоритеты обработчиков DebugMonitor, PendSV и SysTick
Смещение 0xED20, адрес 0xE000 ED20, после сброса 0x0000 0000. Макросы pico-sdk: M33_SHPR3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_15_3 | — | PRI_14_3 | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_13 | PRI_12_3 | — | |||||||||||||
- PRI_15_3 (биты 31:29, чтение и запись, после сброса 0x0) — Приоритет SysTick (исключение 15).
- PRI_14_3 (биты 23:21, чтение и запись, после сброса 0x0) — Приоритет PendSV (исключение 14).
- PRI_13 (биты 15:8, только чтение, после сброса 0x00) — Зарезервировано, 0.
- PRI_12_3 (биты 7:5, чтение и запись, после сброса 0x0) — Приоритет DebugMonitor (исключение 12).
M33_SHCSR — системные исключения: включение, ожидание и активность
Смещение 0xED24, адрес 0xE000 ED24, после сброса 0x0000 0000. Макросы pico-sdk: M33_SHCSR_…
- HARDFAULTPENDED (бит 21, чтение и запись, после сброса 0x0) — HardFault ожидает обработки.
- SECUREFAULTPENDED (бит 20, чтение и запись, после сброса 0x0) — SecureFault ожидает обработки.
- SECUREFAULTENA (бит 19, чтение и запись, после сброса 0x0) — Включение исключения SecureFault.
- USGFAULTENA (бит 18, чтение и запись, после сброса 0x0) — Включение UsageFault; выключенный отказ переходит в HardFault.
- BUSFAULTENA (бит 17, чтение и запись, после сброса 0x0) — Включение BusFault; выключенный отказ переходит в HardFault.
- MEMFAULTENA (бит 16, чтение и запись, после сброса 0x0) — Включение MemManage; выключенный отказ переходит в HardFault.
- SVCALLPENDED (бит 15, чтение и запись, после сброса 0x0) — SVCall ожидает обработки.
- BUSFAULTPENDED (бит 14, чтение и запись, после сброса 0x0) — BusFault ожидает обработки.
- MEMFAULTPENDED (бит 13, чтение и запись, после сброса 0x0) — MemManage ожидает обработки.
- USGFAULTPENDED (бит 12, чтение и запись, после сброса 0x0) — UsageFault ожидает обработки; у каждого состояния защиты свой.
- SYSTICKACT (бит 11, чтение и запись, после сброса 0x0) — Обработчик SysTick активен.
- PENDSVACT (бит 10, чтение и запись, после сброса 0x0) — Обработчик PendSV активен.
- MONITORACT (бит 8, чтение и запись, после сброса 0x0) — Обработчик DebugMonitor активен.
- SVCALLACT (бит 7, чтение и запись, после сброса 0x0) — Обработчик SVCall активен.
- NMIACT (бит 5, чтение и запись, после сброса 0x0) — Обработчик NMI активен.
- SECUREFAULTACT (бит 4, чтение и запись, после сброса 0x0) — Обработчик SecureFault активен.
- USGFAULTACT (бит 3, чтение и запись, после сброса 0x0) — Обработчик UsageFault активен.
- HARDFAULTACT (бит 2, чтение и запись, после сброса 0x0) — Обработчик HardFault активен.
- BUSFAULTACT (бит 1, чтение и запись, после сброса 0x0) — Обработчик BusFault активен.
- MEMFAULTACT (бит 0, чтение и запись, после сброса 0x0) — Обработчик MemManage активен.
M33_CFSR — причины отказов UsageFault, BusFault и MemManage
Смещение 0xED28, адрес 0xE000 ED28, после сброса 0x0000 0000. Макросы pico-sdk: M33_CFSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | UFSR_DIVBYZERO | UFSR_UNALIGNED | — | UFSR_STKOF | UFSR_NOCP | UFSR_INVPC | UFSR_INVSTATE | UFSR_UNDEFINSTR | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BFSR_BFARVALID | — | BFSR_LSPERR | BFSR_STKERR | BFSR_UNSTKERR | BFSR_IMPRECISERR | BFSR_PRECISERR | BFSR_IBUSERR | MMFSR | |||||||
- UFSR_DIVBYZERO (бит 25, чтение и запись, после сброса 0x0) — UsageFault: деление на ноль при CCR.DIV_0_TRP = 1.
- UFSR_UNALIGNED (бит 24, чтение и запись, после сброса 0x0) — UsageFault: недопустимое невыровненное обращение.
- UFSR_STKOF (бит 20, чтение и запись, после сброса 0x0) — UsageFault: переполнение стека — выход за предел MSPLIM или PSPLIM.
- UFSR_NOCP (бит 19, чтение и запись, после сброса 0x0) — UsageFault: обращение к выключенному или отсутствующему сопроцессору.
- UFSR_INVPC (бит 18, чтение и запись, после сброса 0x0) — UsageFault: ошибка проверки целостности при возврате из исключения.
- UFSR_INVSTATE (бит 17, чтение и запись, после сброса 0x0) — UsageFault: недопустимое состояние EPSR.T или EPSR.IT — например, вектор с нулевым битом 0.
- UFSR_UNDEFINSTR (бит 16, чтение и запись, после сброса 0x0) — UsageFault: неопределённая команда.
- BFSR_BFARVALID (бит 15, чтение и запись, после сброса 0x0) — В BFAR — адрес, вызвавший BusFault.
- BFSR_LSPERR (бит 13, чтение и запись, после сброса 0x0) — BusFault при ленивом сохранении состояния FPU.
- BFSR_STKERR (бит 12, чтение и запись, после сброса 0x0) — BusFault при сохранении контекста в стек на входе в исключение.
- BFSR_UNSTKERR (бит 11, чтение и запись, после сброса 0x0) — BusFault при восстановлении контекста из стека на выходе из исключения.
- BFSR_IMPRECISERR (бит 10, чтение и запись, после сброса 0x0) — Неточная ошибка доступа к данным: адрес неизвестен.
- BFSR_PRECISERR (бит 9, чтение и запись, после сброса 0x0) — Точная ошибка доступа к данным: адрес — в BFAR.
- BFSR_IBUSERR (бит 8, чтение и запись, после сброса 0x0) — BusFault при выборке команды.
- MMFSR (биты 7:0, чтение и запись, после сброса 0x00) — Причины отказа MemManage: бит 0 — выборка команды, 1 — доступ к данным, 3 и 4 — работа со стеком, 5 — ленивое сохранение FPU, 7 — адрес в MMFAR действителен.
M33_HFSR — причины отказа HardFault
Смещение 0xED2C, адрес 0xE000 ED2C, после сброса 0x0000 0000. Макросы pico-sdk: M33_HFSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DEBUGEVT | FORCED | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | VECTTBL | — | |||||||||||||
- DEBUGEVT (бит 31, чтение и запись, после сброса 0x0) — HardFault вызван событием отладки.
- FORCED (бит 30, чтение и запись, после сброса 0x0) — Отказ с настраиваемым приоритетом перешёл в HardFault: его нельзя было активировать из-за приоритета или он выключен.
- VECTTBL (бит 1, чтение и запись, после сброса 0x0) — HardFault из-за ошибки чтения таблицы векторов.
M33_DFSR — причина события отладки
Смещение 0xED30, адрес 0xE000 ED30, после сброса 0x0000 0000. Макросы pico-sdk: M33_DFSR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | EXTERNAL | VCATCH | DWTTRAP | BKPT | HALTED | ||||||||||
- EXTERNAL (бит 4, чтение и запись, после сброса 0x0) — Внешний запрос отладки.
- VCATCH (бит 3, чтение и запись, после сброса 0x0) — Перехват вектора (vector catch).
- DWTTRAP (бит 2, чтение и запись, после сброса 0x0) — Сработала точка наблюдения DWT.
- BKPT (бит 1, чтение и запись, после сброса 0x0) — Точка останова.
- HALTED (бит 0, чтение и запись, после сброса 0x0) — Запрос остановки или шаг отладки.
M33_MMFAR — адрес, вызвавший отказ MemManage
Смещение 0xED34, адрес 0xE000 ED34, после сброса 0x0000 0000. Макросы pico-sdk: M33_MMFAR_…
- ADDRESS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Адрес, вызвавший отказ MemManage; действителен при бите 7 MMFSR (MMARVALID).
M33_BFAR — адрес, вызвавший отказ BusFault
Смещение 0xED38, адрес 0xE000 ED38, после сброса 0x0000 0000. Макросы pico-sdk: M33_BFAR_…
- ADDRESS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Адрес, вызвавший точный BusFault; действителен при BFSR_BFARVALID = 1.
M33_ID_PFR0 — поддерживаемые наборы команд
Смещение 0xED40, адрес 0xE000 ED40, после сброса 0x0000 0030. Макросы pico-sdk: M33_ID_PFR0_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | STATE1 | STATE0 | |||||||||||||
- STATE1 (биты 7:4, только чтение, после сброса 0x3) — Набор команд T32 (Thumb).
- STATE0 (биты 3:0, только чтение, после сброса 0x0) — Набор команд A32: 0 — не поддерживается.
M33_ID_PFR1 — модель программиста и расширение безопасности
Смещение 0xED44, адрес 0xE000 ED44, после сброса 0x0000 0520. Макросы pico-sdk: M33_ID_PFR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | MPROGMOD | SECURITY | — | ||||||||||||
- MPROGMOD (биты 11:8, только чтение, после сброса 0x5) — Модель программиста M-профиля.
- SECURITY (биты 7:4, только чтение, после сброса 0x2) — Расширение безопасности TrustZone.
M33_ID_DFR0 — архитектура отладки
Смещение 0xED48, адрес 0xE000 ED48, после сброса 0x0020 0000. Макросы pico-sdk: M33_ID_DFR0_…
- MPROFDBG (биты 23:20, только чтение, после сброса 0x2) — Архитектура отладки M-профиля.
M33_ID_AFR0 — признаки, определяемые реализацией
Смещение 0xED4C, адрес 0xE000 ED4C, после сброса 0x0000 0000. Макросы pico-sdk: M33_ID_AFR0_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| IMPDEF3 | IMPDEF2 | IMPDEF1 | IMPDEF0 | ||||||||||||
- IMPDEFn, n = 0…3 (биты 3:0, 7:4, 11:8, 15:12; только чтение, после сброса 0x0) — Признак n, определяемый реализацией.
M33_ID_MMFR0 — модель памяти: защита памяти, совместный доступ, TCM
Смещение 0xED50, адрес 0xE000 ED50, после сброса 0x0010 1F40. Макросы pico-sdk: M33_ID_MMFR0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | AUXREG | TCM | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SHARELVL | OUTERSHR | PMSA | — | ||||||||||||
- AUXREG (биты 23:20, только чтение, после сброса 0x1) — Вспомогательный регистр управления ACTLR.
- TCM (биты 19:16, только чтение, после сброса 0x0) — Тесно связанная память (TCM).
- SHARELVL (биты 15:12, только чтение, после сброса 0x1) — Число уровней совместного доступа.
- OUTERSHR (биты 11:8, только чтение, после сброса 0xF) — Внешний домен совместного доступа.
- PMSA (биты 7:4, только чтение, после сброса 0x4) — Архитектура защиты памяти PMSA.
M33_ID_MMFR1 — модель памяти: зарезервирован, 0
Смещение 0xED54, адрес 0xE000 ED54, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ID_MMFR1_…
Значение занимает регистр целиком, отдельных полей нет.
M33_ID_MMFR2 — модель памяти: остановка по WFI
Смещение 0xED58, адрес 0xE000 ED58, после сброса 0x0100 0000. Макросы pico-sdk: M33_ID_MMFR2_…
- WFISTALL (биты 27:24, только чтение, после сброса 0x1) — Остановка ядра командой WFI.
M33_ID_MMFR3 — модель памяти: обслуживание кешей и предсказателя переходов
Смещение 0xED5C, адрес 0xE000 ED5C, после сброса 0x0000 0000. Макросы pico-sdk: M33_ID_MMFR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | BPMAINT | CMAINTSW | CMAINTVA | ||||||||||||
- BPMAINT (биты 11:8, только чтение, после сброса 0x0) — Обслуживание предсказателя переходов.
- CMAINTSW (биты 7:4, только чтение, после сброса 0x0) — Обслуживание кеша по набору и пути.
- CMAINTVA (биты 3:0, только чтение, после сброса 0x0) — Обслуживание кеша по адресу.
M33_ID_ISAR0 — команды: деление, сопроцессор, сравнение с переходом, битовые поля
Смещение 0xED60, адрес 0xE000 ED60, после сброса 0x0809 2300. Макросы pico-sdk: M33_ID_ISAR0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | DIVIDE | DEBUG | COPROC | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CMPBRANCH | BITFIELD | BITCOUNT | — | ||||||||||||
- DIVIDE (биты 27:24, только чтение, после сброса 0x8) — Команды деления SDIV и UDIV.
- DEBUG (биты 23:20, только чтение, после сброса 0x0) — Команды отладки.
- COPROC (биты 19:16, только чтение, после сброса 0x9) — Команды сопроцессора.
- CMPBRANCH (биты 15:12, только чтение, после сброса 0x2) — Сравнение с переходом CBZ и CBNZ.
- BITFIELD (биты 11:8, только чтение, после сброса 0x3) — Команды битовых полей BFC, BFI, SBFX, UBFX.
- BITCOUNT (биты 7:4, только чтение, после сброса 0x0) — Подсчёт бит CLZ.
M33_ID_ISAR1 — команды: переключение наборов, непосредственные значения, IT, расширение
Смещение 0xED64, адрес 0xE000 ED64, после сброса 0x0572 5000. Макросы pico-sdk: M33_ID_ISAR1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | INTERWORK | IMMEDIATE | IFTHEN | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXTEND | — | ||||||||||||||
- INTERWORK (биты 27:24, только чтение, после сброса 0x5) — Команды переключения наборов команд.
- IMMEDIATE (биты 23:20, только чтение, после сброса 0x7) — Команды обработки данных с длинными непосредственными значениями.
- IFTHEN (биты 19:16, только чтение, после сброса 0x2) — Команда IT.
- EXTEND (биты 15:12, только чтение, после сброса 0x5) — Команды расширения SXTB, UXTH и подобные.
M33_ID_ISAR2 — команды: перестановка байтов, умножение, подсказки памяти
Смещение 0xED68, адрес 0xE000 ED68, после сброса 0x3017 3426. Макросы pico-sdk: M33_ID_ISAR2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REVERSAL | — | MULTU | MULTS | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MULT | MULTIACCESSINT | MEMHINT | LOADSTORE | ||||||||||||
- REVERSAL (биты 31:28, только чтение, после сброса 0x3) — Перестановка байтов и бит REV, RBIT.
- MULTU (биты 23:20, только чтение, после сброса 0x1) — Расширенное беззнаковое умножение UMULL, UMLAL.
- MULTS (биты 19:16, только чтение, после сброса 0x7) — Расширенное знаковое умножение.
- MULT (биты 15:12, только чтение, после сброса 0x3) — Дополнительные команды умножения MLA, MLS.
- MULTIACCESSINT (биты 11:8, только чтение, после сброса 0x4) — Прерываемые команды множественного доступа.
- MEMHINT (биты 7:4, только чтение, после сброса 0x2) — Подсказки памяти PLD, PLI.
- LOADSTORE (биты 3:0, только чтение, после сброса 0x6) — Дополнительные команды загрузки и сохранения LDRD, STRD.
M33_ID_ISAR3 — команды: NOP, табличные переходы, синхронизация, SVC, SIMD, насыщение
Смещение 0xED6C, адрес 0xE000 ED6C, после сброса 0x0789 5729. Макросы pico-sdk: M33_ID_ISAR3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TRUENOP | T32COPY | TABBRANCH | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SYNCHPRIM | SVC | SIMD | SATURATE | ||||||||||||
- TRUENOP (биты 27:24, только чтение, после сброса 0x7) — Настоящая команда NOP.
- T32COPY (биты 23:20, только чтение, после сброса 0x8) — Команда MOV между младшими регистрами без изменения флагов.
- TABBRANCH (биты 19:16, только чтение, после сброса 0x9) — Табличные переходы TBB и TBH.
- SYNCHPRIM (биты 15:12, только чтение, после сброса 0x5) — Примитивы синхронизации; вместе с ID_ISAR4.SYNCPRIM_FRAC.
- SVC (биты 11:8, только чтение, после сброса 0x7) — Команда SVC.
- SIMD (биты 7:4, только чтение, после сброса 0x2) — Команды SIMD.
- SATURATE (биты 3:0, только чтение, после сброса 0x9) — Команды с насыщением.
M33_ID_ISAR4 — команды: регистры PSR, барьеры, режимы адресации
Смещение 0xED70, адрес 0xE000 ED70, после сброса 0x0131 0132. Макросы pico-sdk: M33_ID_ISAR4_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PSR_M | SYNCPRIM_FRAC | BARRIER | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | WRITEBACK | WITHSHIFTS | UNPRIV | ||||||||||||
- PSR_M (биты 27:24, только чтение, после сброса 0x1) — Команды для регистров PSR: CPS, MRS, MSR.
- SYNCPRIM_FRAC (биты 23:20, только чтение, после сброса 0x3) — Примитивы синхронизации; вместе с ID_ISAR3.SYNCHPRIM.
- BARRIER (биты 19:16, только чтение, после сброса 0x1) — Барьеры DMB, DSB, ISB.
- WRITEBACK (биты 11:8, только чтение, после сброса 0x1) — Режимы адресации с обратной записью.
- WITHSHIFTS (биты 7:4, только чтение, после сброса 0x3) — Сдвиги в командах загрузки и сохранения; в таблице у поля описание от WRITEBACK.
- UNPRIV (биты 3:0, только чтение, после сброса 0x2) — Непривилегированные команды LDRT, STRT.
M33_ID_ISAR5 — команды: зарезервирован, 0
Смещение 0xED74, адрес 0xE000 ED74, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ID_ISAR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_CTR — сведения о кешах ядра
Смещение 0xED7C, адрес 0xE000 ED7C, после сброса 0x8000 C000. Макросы pico-sdk: M33_CTR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RES1 | — | CWG | ERG | DMINLINE | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RES1_1 | — | IMINLINE | |||||||||||||
- RES1 (бит 31, только чтение, после сброса 0x1) — Зарезервирован, 1.
- CWG (биты 27:24, только чтение, после сброса 0x0) — log₂ наибольшего числа слов, перезаписываемых при вытеснении изменённой строки кеша.
- ERG (биты 23:20, только чтение, после сброса 0x0) — log₂ размера гранулы монопольного доступа в словах.
- DMINLINE (биты 19:16, только чтение, после сброса 0x0) — log₂ числа слов в самой короткой строке кешей данных.
- RES1_1 (биты 15:14, только чтение, после сброса 0x3) — Зарезервирован, 1.
- IMINLINE (биты 3:0, только чтение, после сброса 0x0) — log₂ числа слов в самой короткой строке кешей команд.
M33_CPACR — доступ к FPU и сопроцессорам
Смещение 0xED88, адрес 0xE000 ED88, после сброса 0x0000 0000. Макросы pico-sdk: M33_CPACR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CP11 | CP10 | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CP7 | CP6 | CP5 | CP4 | CP3 | CP2 | CP1 | CP0 | ||||||||
- CP11 (биты 23:22, чтение и запись, после сброса 0x0) — Значение игнорируется; записывают то же, что в CP10, иначе значение не определено.
- CP10 (биты 21:20, чтение и запись, после сброса 0x0) — Доступ к FPU: 0 — нет, 1 — только привилегированный код, 3 — полный.
- CP7 (биты 15:14, чтение и запись, после сброса 0x0) — Доступ к сопроцессору контроля избыточности RCP (раздел 3.6.3).
- CPn, n = 1, 2, 3, 6 (биты 3:2, 5:4, 7:6, 13:12; чтение и запись, после сброса 0x0) — Доступ к сопроцессору n — свободный номер.
- CP5 (биты 11:10, чтение и запись, после сброса 0x0) — Доступ к сопроцессору 5 — незащищённой копии DCP, которой пользуется только защищённый код.
- CP4 (биты 9:8, чтение и запись, после сброса 0x0) — Доступ к сопроцессору двойной точности DCP своего состояния (раздел 3.6.2).
- CP0 (биты 1:0, чтение и запись, после сброса 0x0) — Доступ к сопроцессору GPIOC — порту GPIO: 0 — нет, 1 — только привилегированный код, 3 — полный.
M33_NSACR — доступ незащищённого кода к FPU и сопроцессорам
Смещение 0xED8C, адрес 0xE000 ED8C, после сброса 0x0000 0000. Макросы pico-sdk: M33_NSACR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CP11 | CP10 | — | CP7 | CP6 | CP5 | CP4 | CP3 | CP2 | CP1 | CP0 | ||||
- CP11 (бит 11, чтение и запись, после сброса 0x0) — Незащищённый доступ к FPU; записывают так же, как CP10.
- CP10 (бит 10, чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к FPU.
- CP7 (бит 7, чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к сопроцессору RCP.
- CPn, n = 1, 2, 3, 6 (биты 1, 2, 3, 6; чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к сопроцессору n — свободный номер.
- CP5 (бит 5, чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к сопроцессору 5 — незащищённой копии DCP.
- CP4 (бит 4, чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к сопроцессору DCP.
- CP0 (бит 0, чтение и запись, после сброса 0x0) — Разрешить незащищённый доступ к сопроцессору GPIOC.
M33_MPU_TYPE — mPU: число областей
Смещение 0xED90, адрес 0xE000 ED90, после сброса 0x0000 0800. Макросы pico-sdk: M33_MPU_TYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DREGION | — | SEPARATE | |||||||||||||
- DREGION (биты 15:8, только чтение, после сброса 0x08) — Число областей MPU: 8.
- SEPARATE (бит 0, только чтение, после сброса 0x0) — 0 — области общие для команд и данных.
M33_MPU_CTRL — mPU: включение и карта памяти по умолчанию
Смещение 0xED94, адрес 0xE000 ED94, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_CTRL_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PRIVDEFENA | HFNMIENA | ENABLE | ||||||||||||
- PRIVDEFENA (бит 2, чтение и запись, после сброса 0x0) — Привилегированный код вне областей пользуется картой памяти по умолчанию.
- HFNMIENA (бит 1, чтение и запись, после сброса 0x0) — MPU действует и в обработчиках с приоритетом ниже 0 — HardFault, NMI и при FAULTMASK = 1.
- ENABLE (бит 0, чтение и запись, после сброса 0x0) — Включение MPU.
M33_MPU_RNR — mPU: номер выбранной области
Смещение 0xED98, адрес 0xE000 ED98, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RNR_…
- REGION (биты 2:0, чтение и запись, после сброса 0x0) — Номер области для MPU_RBAR и MPU_RLAR, 0–7.
M33_MPU_RBAR — mPU: начальный адрес и права выбранной области
Смещение 0xED9C, адрес 0xE000 ED9C, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RBAR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| BASE | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BASE | SH | AP | XN | ||||||||||||
- BASE (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 начального адреса области — шаг 32 байта.
- SH (биты 4:3, чтение и запись, после сброса 0x0) — Совместный доступ для памяти Normal: 0 — нет, 2 — внешний домен, 3 — внутренний.
- AP (биты 2:1, чтение и запись, после сброса 0x0) — Права: 0 — чтение и запись только привилегированному коду, 1 — любому, 2 — только чтение привилегированному, 3 — только чтение любому.
- XN (бит 0, чтение и запись, после сброса 0x0) — 1 — выполнять код из области нельзя.
M33_MPU_RLAR — mPU: конечный адрес и атрибуты выбранной области
Смещение 0xEDA0, адрес 0xE000 EDA0, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RLAR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LIMIT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LIMIT | — | ATTRINDX | EN | ||||||||||||
- LIMIT (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 конечного адреса области, включительно: младшие биты дополняются до 0x1F.
- ATTRINDX (биты 3:1, чтение и запись, после сброса 0x0) — Номер набора атрибутов ATTRn в MPU_MAIR0 и MPU_MAIR1.
- EN (бит 0, чтение и запись, после сброса 0x0) — Включение области.
M33_MPU_RBAR_A1 — mPU, псевдоним 1: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 1
Смещение 0xEDA4, адрес 0xE000 EDA4, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RBAR_A1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| BASE | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BASE | SH | AP | XN | ||||||||||||
- BASE (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 начального адреса области — шаг 32 байта.
- SH (биты 4:3, чтение и запись, после сброса 0x0) — Совместный доступ для памяти Normal: 0 — нет, 2 — внешний домен, 3 — внутренний.
- AP (биты 2:1, чтение и запись, после сброса 0x0) — Права: 0 — чтение и запись только привилегированному коду, 1 — любому, 2 — только чтение привилегированному, 3 — только чтение любому.
- XN (бит 0, чтение и запись, после сброса 0x0) — 1 — выполнять код из области нельзя.
M33_MPU_RLAR_A1 — mPU, псевдоним 1: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 1
Смещение 0xEDA8, адрес 0xE000 EDA8, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RLAR_A1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LIMIT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LIMIT | — | ATTRINDX | EN | ||||||||||||
- LIMIT (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 конечного адреса области, включительно: младшие биты дополняются до 0x1F.
- ATTRINDX (биты 3:1, чтение и запись, после сброса 0x0) — Номер набора атрибутов ATTRn в MPU_MAIR0 и MPU_MAIR1.
- EN (бит 0, чтение и запись, после сброса 0x0) — Включение области.
M33_MPU_RBAR_A2 — mPU, псевдоним 2: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 2
Смещение 0xEDAC, адрес 0xE000 EDAC, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RBAR_A2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| BASE | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BASE | SH | AP | XN | ||||||||||||
- BASE (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 начального адреса области — шаг 32 байта.
- SH (биты 4:3, чтение и запись, после сброса 0x0) — Совместный доступ для памяти Normal: 0 — нет, 2 — внешний домен, 3 — внутренний.
- AP (биты 2:1, чтение и запись, после сброса 0x0) — Права: 0 — чтение и запись только привилегированному коду, 1 — любому, 2 — только чтение привилегированному, 3 — только чтение любому.
- XN (бит 0, чтение и запись, после сброса 0x0) — 1 — выполнять код из области нельзя.
M33_MPU_RLAR_A2 — mPU, псевдоним 2: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 2
Смещение 0xEDB0, адрес 0xE000 EDB0, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RLAR_A2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LIMIT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LIMIT | — | ATTRINDX | EN | ||||||||||||
- LIMIT (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 конечного адреса области, включительно: младшие биты дополняются до 0x1F.
- ATTRINDX (биты 3:1, чтение и запись, после сброса 0x0) — Номер набора атрибутов ATTRn в MPU_MAIR0 и MPU_MAIR1.
- EN (бит 0, чтение и запись, после сброса 0x0) — Включение области.
M33_MPU_RBAR_A3 — mPU, псевдоним 3: начальный адрес области с номером из MPU_RNR, у которого биты 1:0 равны 3
Смещение 0xEDB4, адрес 0xE000 EDB4, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RBAR_A3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| BASE | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BASE | SH | AP | XN | ||||||||||||
- BASE (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 начального адреса области — шаг 32 байта.
- SH (биты 4:3, чтение и запись, после сброса 0x0) — Совместный доступ для памяти Normal: 0 — нет, 2 — внешний домен, 3 — внутренний.
- AP (биты 2:1, чтение и запись, после сброса 0x0) — Права: 0 — чтение и запись только привилегированному коду, 1 — любому, 2 — только чтение привилегированному, 3 — только чтение любому.
- XN (бит 0, чтение и запись, после сброса 0x0) — 1 — выполнять код из области нельзя.
M33_MPU_RLAR_A3 — mPU, псевдоним 3: конечный адрес и атрибуты области с номером из MPU_RNR, у которого биты 1:0 равны 3
Смещение 0xEDB8, адрес 0xE000 EDB8, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_RLAR_A3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LIMIT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LIMIT | — | ATTRINDX | EN | ||||||||||||
- LIMIT (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 конечного адреса области, включительно: младшие биты дополняются до 0x1F.
- ATTRINDX (биты 3:1, чтение и запись, после сброса 0x0) — Номер набора атрибутов ATTRn в MPU_MAIR0 и MPU_MAIR1.
- EN (бит 0, чтение и запись, после сброса 0x0) — Включение области.
M33_MPU_MAIR0 — mPU: наборы атрибутов памяти 0–3
Смещение 0xEDC0, адрес 0xE000 EDC0, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_MAIR0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ATTR3 | ATTR2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ATTR1 | ATTR0 | ||||||||||||||
- ATTRn, n = 0…3 (биты 7:0, 15:8, 23:16, 31:24; чтение и запись, после сброса 0x00) — Атрибуты памяти для областей с ATTRINDX = n: тип и политика кеширования.
M33_MPU_MAIR1 — mPU: наборы атрибутов памяти 4–7
Смещение 0xEDC4, адрес 0xE000 EDC4, после сброса 0x0000 0000. Макросы pico-sdk: M33_MPU_MAIR1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ATTR7 | ATTR6 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ATTR5 | ATTR4 | ||||||||||||||
- ATTRn, n = 4…7 (биты 7:0, 15:8, 23:16, 31:24; чтение и запись, после сброса 0x00) — Атрибуты памяти для областей с ATTRINDX = n: тип и политика кеширования.
M33_SAU_CTRL — sAU: включение и атрибут памяти по умолчанию
Смещение 0xEDD0, адрес 0xE000 EDD0, после сброса 0x0000 0000. Макросы pico-sdk: M33_SAU_CTRL_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ALLNS | ENABLE | |||||||||||||
- ALLNS (бит 1, чтение и запись, после сброса 0x0) — При выключенном SAU: 1 — вся память незащищённая, 0 — защищённая.
- ENABLE (бит 0, чтение и запись, после сброса 0x0) — Включение SAU.
M33_SAU_TYPE — sAU: число областей
Смещение 0xEDD4, адрес 0xE000 EDD4, после сброса 0x0000 0008. Макросы pico-sdk: M33_SAU_TYPE_…
- SREGION (биты 7:0, только чтение, после сброса 0x08) — Число областей SAU: 8.
M33_SAU_RNR — sAU: номер выбранной области
Смещение 0xEDD8, адрес 0xE000 EDD8, после сброса 0x0000 0000. Макросы pico-sdk: M33_SAU_RNR_…
- REGION (биты 7:0, чтение и запись, после сброса 0x00) — Номер области для SAU_RBAR и SAU_RLAR.
M33_SAU_RBAR — sAU: начальный адрес выбранной области
Смещение 0xEDDC, адрес 0xE000 EDDC, после сброса 0x0000 0000. Макросы pico-sdk: M33_SAU_RBAR_…
- BADDR (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 начального адреса области.
M33_SAU_RLAR — sAU: конечный адрес и тип выбранной области
Смещение 0xEDE0, адрес 0xE000 EDE0, после сброса 0x0000 0000. Макросы pico-sdk: M33_SAU_RLAR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| LADDR | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| LADDR | — | NSC | ENABLE | ||||||||||||
- LADDR (биты 31:5, чтение и запись, после сброса 0x0000000) — Биты 31:5 конечного адреса области.
- NSC (бит 1, чтение и запись, после сброса 0x0) — Область вызываемая из незащищённого кода (NSC): в ней можно выполнить команду SG.
- ENABLE (бит 0, чтение и запись, после сброса 0x0) — Включение области.
M33_SFSR — причины отказа SecureFault
Смещение 0xEDE4, адрес 0xE000 EDE4, после сброса 0x0000 0000. Макросы pico-sdk: M33_SFSR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | LSERR | SFARVALID | LSPERR | INVTRAN | AUVIOL | INVER | INVIS | INVEP | |||||||
- LSERR (бит 7, чтение и запись, после сброса 0x0) — Ошибка при включении или выключении ленивого сохранения состояния.
- SFARVALID (бит 6, чтение и запись, после сброса 0x0) — В SFAR — действительный адрес; бит могут сбросить другие исключения, например BusFault.
- LSPERR (бит 5, чтение и запись, после сброса 0x0) — Нарушение SAU или IDAU при ленивом сохранении состояния FPU.
- INVTRAN (бит 4, чтение и запись, после сброса 0x0) — Переход из защищённой памяти в незащищённую ветвлением без пометки о смене домена.
- AUVIOL (бит 3, чтение и запись, после сброса 0x0) — Незащищённое обращение к защищённой области адресов.
- INVER (бит 2, чтение и запись, после сброса 0x0) — Недопустимый возврат из исключения в незащищённом состоянии: неверные биты EXC_RETURN.DCRS или ES.
- INVIS (бит 1, чтение и запись, после сброса 0x0) — Неверная подпись целостности в кадре стека исключения.
- INVEP (бит 0, чтение и запись, после сброса 0x0) — Вход в защищённый код не через команду SG или вне области NSC.
M33_SFAR — адрес, вызвавший отказ SecureFault
Смещение 0xEDE8, адрес 0xE000 EDE8, после сброса 0x0000 0000. Макросы pico-sdk: M33_SFAR_…
- ADDRESS (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Адрес, вызвавший нарушение атрибуции; действителен при SFSR.SFARVALID = 1.
M33_DHCSR — отладка с остановкой ядра: управление и состояние
Смещение 0xEDF0, адрес 0xE000 EDF0, после сброса 0x0000 0000. Макросы pico-sdk: M33_DHCSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | S_RESTART_ST | S_RESET_ST | S_RETIRE_ST | — | S_SDE | S_LOCKUP | S_SLEEP | S_HALT | S_REGRDY | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | C_SNAPSTALL | — | C_MASKINTS | C_STEP | C_HALT | C_DEBUGEN | |||||||||
- S_RESTART_ST (бит 26, только чтение, после сброса 0x0) — Ядро обработало запрос снять C_HALT.
- S_RESET_ST (бит 25, только чтение, после сброса 0x0) — Ядро сбрасывалось после прошлого чтения DHCSR.
- S_RETIRE_ST (бит 24, только чтение, после сброса 0x0) — Ядро выполнило одну или несколько команд.
- S_SDE (бит 20, только чтение, после сброса 0x0) — Инвазивная отладка защищённого кода разрешена.
- S_LOCKUP (бит 19, только чтение, после сброса 0x0) — Ядро в состоянии блокировки (lockup).
- S_SLEEP (бит 18, только чтение, после сброса 0x0) — Ядро спит.
- S_HALT (бит 17, только чтение, после сброса 0x0) — Ядро остановлено в режиме отладки.
- S_REGRDY (бит 16, только чтение, после сброса 0x0) — Квитирование обмена через DCRDR: передача завершена.
- C_SNAPSTALL (бит 5, чтение и запись, после сброса 0x0) — Разрешить неточный вход в режим отладки.
- C_MASKINTS (бит 3, чтение и запись, после сброса 0x0) — Маскировать PendSV, SysTick и внешние прерывания при отладке.
- C_STEP (бит 2, чтение и запись, после сброса 0x0) — Пошаговое выполнение.
- C_HALT (бит 1, чтение и запись, после сброса 0x0) — Запрос остановки ядра.
- C_DEBUGEN (бит 0, чтение и запись, после сброса 0x0) — Включение отладки с остановкой ядра.
M33_DCRSR — отладка: выбор регистра ядра для чтения или записи
Смещение 0xEDF4, адрес 0xE000 EDF4, после сброса 0x0000 0000. Макросы pico-sdk: M33_DCRSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | REGWNR | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REGSEL | ||||||||||||||
- REGWNR (бит 16, чтение и запись, после сброса 0x0) — Направление обмена: 0 — чтение регистра, 1 — запись.
- REGSEL (биты 6:0, чтение и запись, после сброса 0x00) — Номер регистра ядра, специального регистра или регистра FPU.
M33_DCRDR — отладка: данные регистра ядра
Смещение 0xEDF8, адрес 0xE000 EDF8, после сброса 0x0000 0000. Макросы pico-sdk: M33_DCRDR_…
- DBGTMP (биты 31:0, чтение и запись, после сброса 0x0000 0000) — Данные обмена с регистром ядра; ещё и канал сообщений между отладчиком и программой.
M33_DEMCR — отладка: перехват векторов, монитор отладки и включение DWT и ITM
Смещение 0xEDFC, адрес 0xE000 EDFC, после сброса 0x0000 0000. Макросы pico-sdk: M33_DEMCR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | TRCENA | — | SDME | MON_REQ | MON_STEP | MON_PEND | MON_EN | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | VC_SFERR | VC_HARDERR | VC_INTERR | VC_BUSERR | VC_STATERR | VC_CHKERR | VC_NOCPERR | VC_MMERR | — | VC_CORERESET | |||||
- TRCENA (бит 24, чтение и запись, после сброса 0x0) — Общее включение DWT и ITM.
- SDME (бит 20, только чтение, после сброса 0x0) — Монитор отладки работает в защищённом состоянии, и события отладки в нём разрешены.
- MON_REQ (бит 19, чтение и запись, после сброса 0x0) — Флаг-семафор монитора отладки.
- MON_STEP (бит 18, чтение и запись, после сброса 0x0) — Пошаговое выполнение через монитор отладки.
- MON_PEND (бит 17, чтение и запись, после сброса 0x0) — Ожидание исключения DebugMonitor.
- MON_EN (бит 16, чтение и запись, после сброса 0x0) — Включение исключения DebugMonitor.
- VC_SFERR (бит 11, чтение и запись, после сброса 0x0) — Останавливать ядро при SecureFault.
- VC_HARDERR (бит 10, чтение и запись, после сброса 0x0) — Останавливать ядро при HardFault.
- VC_INTERR (бит 9, чтение и запись, после сброса 0x0) — Останавливать ядро при отказах на входе в исключение и выходе из него.
- VC_BUSERR (бит 8, чтение и запись, после сброса 0x0) — Останавливать ядро при BusFault.
- VC_STATERR (бит 7, чтение и запись, после сброса 0x0) — Останавливать ядро при UsageFault из-за ошибки состояния, например неопределённой команды.
- VC_CHKERR (бит 6, чтение и запись, после сброса 0x0) — Останавливать ядро при UsageFault из-за ошибки проверки, например выравнивания.
- VC_NOCPERR (бит 5, чтение и запись, после сброса 0x0) — Останавливать ядро при UsageFault из-за обращения к сопроцессору.
- VC_MMERR (бит 4, чтение и запись, после сброса 0x0) — Останавливать ядро при MemManage.
- VC_CORERESET (бит 0, чтение и запись, после сброса 0x0) — Останавливать ядро сразу после тёплого сброса.
M33_DSCSR — отладка: состояние защиты и выбор банковых регистров
Смещение 0xEE08, адрес 0xE000 EE08, после сброса 0x0000 0000. Макросы pico-sdk: M33_DSCSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CDSKEY | CDS | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SBRSEL | SBRSELEN | |||||||||||||
- CDSKEY (бит 17, чтение и запись, после сброса 0x0) — Запись в CDS действует, только если CDSKEY одновременно пишется 0.
- CDS (бит 16, чтение и запись, после сброса 0x0) — Текущее состояние защиты ядра.
- SBRSEL (бит 1, чтение и запись, после сброса 0x0) — При SBRSELEN = 1 — какую копию банковых регистров видит отладчик: защищённую или незащищённую.
- SBRSELEN (бит 0, чтение и запись, после сброса 0x0) — Копию банковых регистров для отладчика выбирает SBRSEL, а не текущее состояние ядра.
M33_STIR — программный вызов прерывания
Смещение 0xEF00, адрес 0xE000 EF00, после сброса 0x0000 0000. Макросы pico-sdk: M33_STIR_…
- INTID (биты 8:0, чтение и запись, после сброса 0x000) — Номер прерывания для программного вызова: номер исключения минус 16.
M33_FPCCR — fPU: сохранение контекста
Смещение 0xEF34, адрес 0xE000 EF34, после сброса 0x2000 0472. Макросы pico-sdk: M33_FPCCR_…
- ASPEN (бит 31, чтение и запись, после сброса 0x0) — Команда FPU устанавливает CONTROL.FPCA — контекст FPU сохраняется при входе в исключение.
- LSPEN (бит 30, чтение и запись, после сброса 0x0) — Ленивое сохранение контекста FPU.
- LSPENS (бит 29, чтение и запись, после сброса 0x1) — Можно ли менять LSPEN из незащищённого состояния.
- CLRONRET (бит 28, чтение и запись, после сброса 0x0) — Очищать регистры FPU, сохраняемые вызывающим, при возврате из исключения.
- CLRONRETS (бит 27, чтение и запись, после сброса 0x0) — Можно ли менять CLRONRET из незащищённого состояния.
- TS (бит 26, чтение и запись, после сброса 0x0) — Считать регистры FPU защищёнными.
- UFRDY (бит 10, чтение и запись, после сброса 0x1) — Когда выделялся кадр FPU, программа могла поставить в ожидание UsageFault.
- SPLIMVIOL (бит 9, чтение и запись, после сброса 0x0) — Кадр FPU нарушает предел стека, действовавший при начале ленивого сохранения; свой у каждого состояния.
- MONRDY (бит 8, чтение и запись, после сброса 0x0) — Когда выделялся кадр FPU, программа могла поставить в ожидание DebugMonitor.
- SFRDY (бит 7, чтение и запись, после сброса 0x0) — Когда выделялся кадр FPU, программа могла поставить в ожидание SecureFault; только в защищённой копии.
- BFRDY (бит 6, чтение и запись, после сброса 0x1) — Когда выделялся кадр FPU, программа могла поставить в ожидание BusFault.
- MMRDY (бит 5, чтение и запись, после сброса 0x1) — Когда выделялся кадр FPU, программа могла поставить в ожидание MemManage.
- HFRDY (бит 4, чтение и запись, после сброса 0x1) — Когда выделялся кадр FPU, программа могла поставить в ожидание HardFault.
- THREAD (бит 3, чтение и запись, после сброса 0x0) — Кадр FPU выделен в режиме потока.
- S (бит 2, чтение и запись, после сброса 0x0) — Контекст FPU защищённый; только в защищённой копии регистра.
- USER (бит 1, чтение и запись, после сброса 0x1) — Кадр FPU выделен непривилегированным кодом.
- LSPACT (бит 0, чтение и запись, после сброса 0x0) — Ленивое сохранение состояния FPU активно.
M33_FPCAR — fPU: адрес места под регистры FPU в стеке
Смещение 0xEF38, адрес 0xE000 EF38, после сброса 0x0000 0000. Макросы pico-sdk: M33_FPCAR_…
- ADDRESS (биты 31:3, чтение и запись, после сброса 0x0000 0000) — Биты 31:3 адреса места под регистры FPU в кадре стека исключения.
M33_FPDSCR — fPU: значения FPSCR по умолчанию
Смещение 0xEF3C, адрес 0xE000 EF3C, после сброса 0x0000 0000. Макросы pico-sdk: M33_FPDSCR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | AHP | DN | FZ | RMODE | — | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
- AHP (бит 26, чтение и запись, после сброса 0x0) — Значение FPSCR.AHP для нового контекста FPU.
- DN (бит 25, чтение и запись, после сброса 0x0) — Значение FPSCR.DN — режим NaN по умолчанию — для нового контекста.
- FZ (бит 24, чтение и запись, после сброса 0x0) — Значение FPSCR.FZ — сброс денормализованных чисел в ноль — для нового контекста.
- RMODE (биты 23:22, чтение и запись, после сброса 0x0) — Значение FPSCR.RMode — режим округления — для нового контекста.
M33_MVFR0 — fPU: поддерживаемые операции
Смещение 0xEF40, адрес 0xE000 EF40, после сброса 0x6054 0601. Макросы pico-sdk: M33_MVFR0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FPROUND | — | FPSQRT | FPDIVIDE | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | FPDP | FPSP | SIMDREG | ||||||||||||
- FPROUND (биты 31:28, только чтение, после сброса 0x6) — Поддержка всех режимов округления.
- FPSQRT (биты 23:20, только чтение, после сброса 0x5) — Аппаратный квадратный корень.
- FPDIVIDE (биты 19:16, только чтение, после сброса 0x4) — Аппаратное деление.
- FPDP (биты 11:8, только чтение, после сброса 0x6) — Операции двойной точности.
- FPSP (биты 7:4, только чтение, после сброса 0x0) — Операции одинарной точности.
- SIMDREG (биты 3:0, только чтение, после сброса 0x1) — Размер файла регистров FPU.
M33_MVFR1 — fPU: поддерживаемые операции и режимы
Смещение 0xEF44, адрес 0xE000 EF44, после сброса 0x8500 0089. Макросы pico-sdk: M33_MVFR1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FMAC | FPHP | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | FPDNAN | FPFTZ | |||||||||||||
- FMAC (биты 31:28, только чтение, после сброса 0x8) — Слитное умножение с накоплением.
- FPHP (биты 27:24, только чтение, после сброса 0x5) — Преобразования половинной точности.
- FPDNAN (биты 7:4, только чтение, после сброса 0x8) — Распространение NaN.
- FPFTZ (биты 3:0, только чтение, после сброса 0x9) — Денормализованные числа всегда сбрасываются в ноль.
M33_MVFR2 — fPU: прочие возможности
Смещение 0xEF48, адрес 0xE000 EF48, после сброса 0x0000 0060. Макросы pico-sdk: M33_MVFR2_…
- FPMISC (биты 7:4, только чтение, после сброса 0x6) — Прочие операции FPU.
M33_DDEVARCH — sCS: архитектура компонента CoreSight
Смещение 0xEFBC, адрес 0xE000 EFBC, после сброса 0x4770 2A04. Макросы pico-sdk: M33_DDEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHVER | ARCHPART | ||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x0) — Ревизия архитектуры компонента.
- ARCHVER (биты 15:12, только чтение, после сброса 0x2) — Версия архитектуры компонента.
- ARCHPART (биты 11:0, только чтение, после сброса 0xA04) — Номер архитектуры компонента.
M33_DDEVTYPE — sCS: тип компонента CoreSight
Смещение 0xEFCC, адрес 0xE000 EFCC, после сброса 0x0000 0000. Макросы pico-sdk: M33_DDEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x0) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x0) — Основной тип компонента.
M33_DPIDR4 — sCS: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0xEFD0, адрес 0xE000 EFD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_DPIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_DPIDR5 — sCS: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0xEFD4, адрес 0xE000 EFD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DPIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DPIDR6 — sCS: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0xEFD8, адрес 0xE000 EFD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DPIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DPIDR7 — sCS: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0xEFDC, адрес 0xE000 EFDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_DPIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_DPIDR0 — sCS: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0xEFE0, адрес 0xE000 EFE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_DPIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_DPIDR1 — sCS: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0xEFE4, адрес 0xE000 EFE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_DPIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_1 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_1 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента.
M33_DPIDR2 — sCS: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0xEFE8, адрес 0xE000 EFE8, после сброса 0x0000 000B. Макросы pico-sdk: M33_DPIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_1 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x0) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_1 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm.
M33_DPIDR3 — sCS: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0xEFEC, адрес 0xE000 EFEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_DPIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_DCIDR0 — sCS: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0xEFF0, адрес 0xE000 EFF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_DCIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_DCIDR1 — sCS: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0xEFF4, адрес 0xE000 EFF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_DCIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_DCIDR2 — sCS: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0xEFF8, адрес 0xE000 EFF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_DCIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_DCIDR3 — sCS: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0xEFFC, адрес 0xE000 EFFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_DCIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
M33_TRCPRGCTLR — eTM: включение
Смещение 0x41004, адрес 0xE004 1004, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCPRGCTLR_…
- EN (бит 0, чтение и запись, после сброса 0x0) — Включение блока трассировки ETM.
M33_TRCSTATR — eTM: состояние
Смещение 0x4100C, адрес 0xE004 100C, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCSTATR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PMSTABLE | IDLE | |||||||||||||
- PMSTABLE (бит 1, только чтение, после сброса 0x0) — Регистры ETM стабильны и их можно читать.
- IDLE (бит 0, только чтение, после сброса 0x0) — Блок трассировки неактивен.
M33_TRCCONFIGR — eTM: основные параметры трассировки
Смещение 0x41010, адрес 0xE004 1010, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCCONFIGR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RS | TS | COND | CCI | BB | — | |||||||||
- RS (бит 12, чтение и запись, после сброса 0x0) — Стек возвратов.
- TS (бит 11, чтение и запись, после сброса 0x0) — Глобальные метки времени в трассировке.
- COND (биты 10:5, чтение и запись, после сброса 0x00) — Трассировка условных команд.
- CCI (бит 4, чтение и запись, после сброса 0x0) — Счёт тактов в трассировке команд.
- BB (бит 3, чтение и запись, после сброса 0x0) — Трансляция всех ветвлений (branch broadcast).
M33_TRCEVENTCTL0R — eTM: выбор событий
Смещение 0x41020, адрес 0xE004 1020, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCEVENTCTL0R_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TYPE1 | — | SEL1 | TYPE0 | — | SEL0 | ||||||||||
- TYPE1 (бит 15, чтение и запись, после сброса 0x0) — Тип ресурса события 1: 0 — одиночный ресурс, 1 — пара ресурсов с логической комбинацией.
- SEL1 (биты 10:8, чтение и запись, после сброса 0x0) — Номер ресурса или пары ресурсов для события 1.
- TYPE0 (бит 7, чтение и запись, после сброса 0x0) — Тип ресурса события 0: 0 — одиночный ресурс, 1 — пара ресурсов с логической комбинацией.
- SEL0 (биты 2:0, чтение и запись, после сброса 0x0) — Номер ресурса или пары ресурсов для события 0.
M33_TRCEVENTCTL1R — eTM: поведение событий
Смещение 0x41024, адрес 0xE004 1024, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCEVENTCTL1R_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | LPOVERRIDE | ATB | — | INSTEN1 | INSTEN0 | ||||||||||
- LPOVERRIDE (бит 12, чтение и запись, после сброса 0x0) — Особое поведение блока трассировки, когда ядро в режиме пониженного потребления.
- ATB (бит 11, чтение и запись, после сброса 0x0) — Выдавать триггер по шине ATB.
- INSTEN1 (бит 1, чтение и запись, после сброса 0x0) — Вставлять элемент события 1 в поток трассировки команд.
- INSTEN0 (бит 0, чтение и запись, после сброса 0x0) — Вставлять элемент события 0 в поток трассировки команд.
M33_TRCSTALLCTLR — eTM: остановка ядра при заполнении FIFO
Смещение 0x4102C, адрес 0xE004 102C, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCSTALLCTLR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | INSTPRIORITY | — | ISTALL | — | LEVEL | — | |||||||||
- INSTPRIORITY (бит 10, только чтение, после сброса 0x0) — Зарезервирован, 0.
- ISTALL (бит 8, чтение и запись, после сброса 0x0) — Останавливать ядро, когда в буфере трассировки команд мало места.
- LEVEL (биты 3:2, чтение и запись, после сброса 0x0) — Порог остановок из четырёх уровней: больший сильнее вмешивается в работу ядра, но снижает риск переполнения FIFO.
M33_TRCTSCTLR — eTM: вставка глобальных меток времени
Смещение 0x41030, адрес 0xE004 1030, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCTSCTLR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TYPE0 | — | SEL0 | ||||||||||||
- TYPE0 (бит 7, чтение и запись, после сброса 0x0) — Тип ресурса события, вставляющего метку времени: одиночный или пара.
- SEL0 (биты 1:0, чтение и запись, после сброса 0x0) — Номер ресурса события, вставляющего метку времени.
M33_TRCSYNCPR — eTM: период синхронизации потока
Смещение 0x41034, адрес 0xE004 1034, после сброса 0x0000 000A. Макросы pico-sdk: M33_TRCSYNCPR_…
- PERIOD (биты 4:0, только чтение, после сброса 0x0A) — Период синхронизации — 2ᴺ байт трассировки, N от 8 до 20; 0 — без периодической синхронизации; по таблице только чтение, 10 — 1 КБ.
M33_TRCCCCTLR — eTM: порог счёта тактов
Смещение 0x41038, адрес 0xE004 1038, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCCCCTLR_…
- THRESHOLD (биты 11:0, чтение и запись, после сброса 0x000) — Наименьший интервал в тактах между пакетами счёта тактов.
M33_TRCVICTLR — eTM: фильтрация трассировки команд
Смещение 0x41080, адрес 0xE004 1080, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCVICTLR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | EXLEVEL_S3 | — | EXLEVEL_S0 | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TRCERR | TRCRESET | SSSTATUS | — | TYPE0 | — | SEL0 | ||||||||
- EXLEVEL_S3 (бит 19, чтение и запись, после сброса 0x0) — Трассировка команд защищённого кода на уровне исключений 3.
- EXLEVEL_S0 (бит 16, чтение и запись, после сброса 0x0) — Трассировка команд защищённого кода на уровне исключений 0.
- TRCERR (бит 11, чтение и запись, после сброса 0x0) — Всегда трассировать исключение системной ошибки.
- TRCRESET (бит 10, чтение и запись, после сброса 0x0) — Всегда трассировать исключение сброса.
- SSSTATUS (бит 9, чтение и запись, после сброса 0x0) — Текущее состояние логики старт-стоп.
- TYPE0 (бит 7, чтение и запись, после сброса 0x0) — Тип ресурса события, разрешающего трассировку команд.
- SEL0 (биты 1:0, чтение и запись, после сброса 0x0) — Номер ресурса события, разрешающего трассировку команд.
M33_TRCCNTRLDVR0 — eTM: значение перезагрузки счётчика 0
Смещение 0x41140, адрес 0xE004 1140, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCCNTRLDVR0_…
- VALUE (биты 15:0, чтение и запись, после сброса 0x0000) — Значение, загружаемое в счётчик при каждом событии перезагрузки.
M33_TRCIDR8 — eTM: идентификатор TRCIDR8 — глубина спекуляции
Смещение 0x41180, адрес 0xE004 1180, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIDR8_…
- MAXSPEC (биты 31:0, только чтение, после сброса 0x0000 0000) — Наибольшая глубина спекуляции.
M33_TRCIDR9 — eTM: идентификатор TRCIDR9 — число ключей P0
Смещение 0x41184, адрес 0xE004 1184, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIDR9_…
- NUMP0KEY (биты 31:0, только чтение, после сброса 0x0000 0000) — Число ключей P0.
M33_TRCIDR10 — eTM: идентификатор TRCIDR10 — число ключей P1
Смещение 0x41188, адрес 0xE004 1188, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIDR10_…
- NUMP1KEY (биты 31:0, только чтение, после сброса 0x0000 0000) — Число ключей P1.
M33_TRCIDR11 — eTM: идентификатор TRCIDR11 — число особых ключей P1
Смещение 0x4118C, адрес 0xE004 118C, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIDR11_…
- NUMP1SPC (биты 31:0, только чтение, после сброса 0x0000 0000) — Число особых ключей P1.
M33_TRCIDR12 — eTM: идентификатор TRCIDR12 — число ключей условных команд
Смещение 0x41190, адрес 0xE004 1190, после сброса 0x0000 0001. Макросы pico-sdk: M33_TRCIDR12_…
- NUMCONDKEY (биты 31:0, только чтение, после сброса 0x0000 0001) — Число ключей условных команд.
M33_TRCIDR13 — eTM: идентификатор TRCIDR13 — число особых ключей условных команд
Смещение 0x41194, адрес 0xE004 1194, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIDR13_…
- NUMCONDSPC (биты 31:0, только чтение, после сброса 0x0000 0000) — Число особых ключей условных команд.
M33_TRCIMSPEC — eTM: особые функции реализации
Смещение 0x411C0, адрес 0xE004 11C0, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCIMSPEC_…
- SUPPORT (биты 3:0, только чтение, после сброса 0x0) — Зарезервирован, 0.
M33_TRCIDR0 — eTM: идентификатор TRCIDR0 — возможности трассировки
Смещение 0x411E0, адрес 0xE004 11E0, после сброса 0x2800 06E1. Макросы pico-sdk: M33_TRCIDR0_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | COMMOPT | TSSIZE | — | TRCEXDATA | QSUPP | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| QSUPP | QFILT | CONDTYPE | NUMEVENT | RETSTACK | — | TRCCCI | TRCCOND | TRCBB | TRCDATA | INSTP0 | RES1 | ||||
- COMMOPT (бит 29, только чтение, после сброса 0x1) — Режим подтверждения (commit).
- TSSIZE (биты 28:24, только чтение, после сброса 0x08) — Размер глобальной метки времени.
- TRCEXDATA (бит 17, только чтение, после сброса 0x0) — Трассировка данных при исключениях.
- QSUPP (биты 16:15, только чтение, после сброса 0x0) — Поддержка элементов Q.
- QFILT (бит 14, только чтение, после сброса 0x0) — Фильтрация элементов Q.
- CONDTYPE (биты 13:12, только чтение, после сброса 0x0) — Как трассируются условные команды.
- NUMEVENT (биты 11:10, только чтение, после сброса 0x1) — Число событий минус 1.
- RETSTACK (бит 9, только чтение, после сброса 0x1) — Стек возвратов.
- TRCCCI (бит 7, только чтение, после сброса 0x1) — Счёт тактов в трассировке команд.
- TRCCOND (бит 6, только чтение, после сброса 0x1) — Трассировка условных команд.
- TRCBB (бит 5, только чтение, после сброса 0x1) — Трансляция всех ветвлений.
- TRCDATA (биты 4:3, только чтение, после сброса 0x0) — Трассировка данных.
- INSTP0 (биты 2:1, только чтение, после сброса 0x0) — Трассировка загрузок и сохранений элементами P0.
- RES1 (бит 0, только чтение, после сброса 0x1) — Зарезервирован, 1.
M33_TRCIDR1 — eTM: идентификатор TRCIDR1 — разработчик и версия архитектуры
Смещение 0x411E4, адрес 0xE004 11E4, после сброса 0x4100 F421. Макросы pico-sdk: M33_TRCIDR1_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DESIGNER | — | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RES1 | TRCARCHMAJ | TRCARCHMIN | REVISION | ||||||||||||
- DESIGNER (биты 31:24, только чтение, после сброса 0x41) — Разработчик блока трассировки: 0x41 — Arm.
- RES1 (биты 15:12, только чтение, после сброса 0xF) — Зарезервировано, единицы.
- TRCARCHMAJ (биты 11:8, только чтение, после сброса 0x4) — Старший номер версии архитектуры ETM: 4.
- TRCARCHMIN (биты 7:4, только чтение, после сброса 0x2) — Младший номер версии архитектуры ETM: 2 — ETMv4.2 (раздел 3.7.3.4); в описании поля в заголовке — 0b0000.
- REVISION (биты 3:0, только чтение, после сброса 0x1) — Ревизия реализации.
M33_TRCIDR2 — eTM: идентификатор TRCIDR2 — размеры адресов, данных и счётчика тактов
Смещение 0x411E8, адрес 0xE004 11E8, после сброса 0x0000 0004. Макросы pico-sdk: M33_TRCIDR2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CCSIZE | DVSIZE | DASIZE | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DASIZE | VMIDSIZE | CIDSIZE | IASIZE | ||||||||||||
- CCSIZE (биты 28:25, только чтение, после сброса 0x0) — Разрядность счётчика тактов.
- DVSIZE (биты 24:20, только чтение, после сброса 0x00) — Размер значения данных.
- DASIZE (биты 19:15, только чтение, после сброса 0x00) — Размер адреса данных.
- VMIDSIZE (биты 14:10, только чтение, после сброса 0x00) — Размер идентификатора виртуальной машины.
- CIDSIZE (биты 9:5, только чтение, после сброса 0x00) — Размер идентификатора контекста.
- IASIZE (биты 4:0, только чтение, после сброса 0x04) — Размер адреса команд.
M33_TRCIDR3 — eTM: идентификатор TRCIDR3 — остановка, синхронизация, уровни исключений
Смещение 0x411EC, адрес 0xE004 11EC, после сброса 0x0F09 0004. Макросы pico-sdk: M33_TRCIDR3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| NOOVERFLOW | NUMPROC | SYSSTALL | STALLCTL | SYNCPR | TRCERR | EXLEVEL_NS | EXLEVEL_S | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CCITMIN | ||||||||||||||
- NOOVERFLOW (бит 31, только чтение, после сброса 0x0) — Есть ли режим трассировки без переполнения.
- NUMPROC (биты 30:28, только чтение, после сброса 0x0) — Число трассируемых ядер минус 1.
- SYSSTALL (бит 27, только чтение, после сброса 0x1) — Система поддерживает остановку ядра.
- STALLCTL (бит 26, только чтение, после сброса 0x1) — Есть регистр TRCSTALLCTLR.
- SYNCPR (бит 25, только чтение, после сброса 0x1) — Период синхронизации TRCSYNCPR только читается.
- TRCERR (бит 24, только чтение, после сброса 0x1) — Есть бит TRCVICTLR.TRCERR.
- EXLEVEL_NS (биты 23:20, только чтение, после сброса 0x0) — Уровни исключений незащищённого состояния.
- EXLEVEL_S (биты 19:16, только чтение, после сброса 0x9) — Уровни исключений защищённого состояния.
- CCITMIN (биты 11:0, только чтение, после сброса 0x004) — Наименьший порог счёта тактов в TRCCCCTLR.
M33_TRCIDR4 — eTM: идентификатор TRCIDR4 — число компараторов и селекторов ресурсов
Смещение 0x411F0, адрес 0xE004 11F0, после сброса 0x0011 4000. Макросы pico-sdk: M33_TRCIDR4_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| NUMVMIDC | NUMCIDC | NUMSSCC | NUMRSPAIR | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| NUMPC | — | SUPPDAC | NUMDVC | NUMACPAIRS | |||||||||||
- NUMVMIDC (биты 31:28, только чтение, после сброса 0x0) — Число компараторов идентификатора виртуальной машины.
- NUMCIDC (биты 27:24, только чтение, после сброса 0x0) — Число компараторов идентификатора контекста.
- NUMSSCC (биты 23:20, только чтение, после сброса 0x1) — Число компараторов однократного срабатывания.
- NUMRSPAIR (биты 19:16, только чтение, после сброса 0x1) — Число пар селекторов ресурсов минус 1.
- NUMPC (биты 15:12, только чтение, после сброса 0x4) — Число входов компараторов ядра.
- SUPPDAC (бит 8, только чтение, после сброса 0x0) — Сравнение адресов данных.
- NUMDVC (биты 7:4, только чтение, после сброса 0x0) — Число компараторов значений данных.
- NUMACPAIRS (биты 3:0, только чтение, после сброса 0x0) — Число пар компараторов адресов.
M33_TRCIDR5 — eTM: идентификатор TRCIDR5 — счётчики, секвенсор, внешние входы
Смещение 0x411F4, адрес 0xE004 11F4, после сброса 0x90C7 0004. Макросы pico-sdk: M33_TRCIDR5_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REDFUNCNTR | NUMCNTR | NUMSEQSTATE | — | LPOVERRIDE | ATBTRIG | TRACEIDSIZE | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | NUMEXTINSEL | NUMEXTIN | |||||||||||||
- REDFUNCNTR (бит 31, только чтение, после сброса 0x1) — Счётчик 0 с урезанными функциями.
- NUMCNTR (биты 30:28, только чтение, после сброса 0x1) — Число счётчиков.
- NUMSEQSTATE (биты 27:25, только чтение, после сброса 0x0) — Число состояний секвенсора.
- LPOVERRIDE (бит 23, только чтение, после сброса 0x1) — Есть бит TRCEVENTCTL1R.LPOVERRIDE.
- ATBTRIG (бит 22, только чтение, после сброса 0x1) — Есть бит TRCEVENTCTL1R.ATB.
- TRACEIDSIZE (биты 21:16, только чтение, после сброса 0x07) — Разрядность идентификатора трассировки: 7 бит.
- NUMEXTINSEL (биты 11:9, только чтение, после сброса 0x0) — Число селекторов внешних входов.
- NUMEXTIN (биты 8:0, только чтение, после сброса 0x004) — Число внешних входов.
M33_TRCIDR6 — eTM: идентификатор TRCIDR6 — зарезервирован, 0
Смещение 0x411F8, адрес 0xE004 11F8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCIDR7 — eTM: идентификатор TRCIDR7 — зарезервирован, 0
Смещение 0x411FC, адрес 0xE004 11FC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCRSCTLR2 — eTM: селектор ресурсов 2
Смещение 0x41208, адрес 0xE004 1208, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCRSCTLR2_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PAIRINV | INV | — | GROUP | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SELECT | ||||||||||||||
- PAIRINV (бит 21, чтение и запись, после сброса 0x0) — Инвертировать результат пары ресурсов; бит есть только у младшего регистра пары.
- INV (бит 20, чтение и запись, после сброса 0x0) — Инвертировать выбранные ресурсы.
- GROUP (биты 18:16, чтение и запись, после сброса 0x0) — Группа ресурсов.
- SELECT (биты 7:0, чтение и запись, после сброса 0x00) — Ресурсы выбранной группы — по биту на ресурс.
M33_TRCRSCTLR3 — eTM: селектор ресурсов 3
Смещение 0x4120C, адрес 0xE004 120C, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCRSCTLR3_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | PAIRINV | INV | — | GROUP | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SELECT | ||||||||||||||
- PAIRINV (бит 21, чтение и запись, после сброса 0x0) — Инвертировать результат пары ресурсов; бит есть только у младшего регистра пары.
- INV (бит 20, чтение и запись, после сброса 0x0) — Инвертировать выбранные ресурсы.
- GROUP (биты 18:16, чтение и запись, после сброса 0x0) — Группа ресурсов.
- SELECT (биты 7:0, чтение и запись, после сброса 0x00) — Ресурсы выбранной группы — по биту на ресурс.
M33_TRCSSCSR — eTM: состояние компаратора однократного срабатывания
Смещение 0x412A0, адрес 0xE004 12A0, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCSSCSR_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STATUS | — | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PC | DV | DA | INST | |||||||||||
- STATUS (бит 31, чтение и запись, после сброса 0x0) — Компаратор однократного срабатывания сработал.
- PC (бит 3, только чтение, после сброса 0x0) — Зарезервирован: по описанию единица, по таблице после сброса 0.
- DV (бит 2, только чтение, после сброса 0x0) — Зарезервирован, 0.
- DA (бит 1, только чтение, после сброса 0x0) — Зарезервирован, 0.
- INST (бит 0, только чтение, после сброса 0x0) — Зарезервирован, 0.
M33_TRCSSPCICR — eTM: входы компараторов ядра для однократного срабатывания
Смещение 0x412C0, адрес 0xE004 12C0, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCSSPCICR_…
- PC (биты 3:0, чтение и запись, после сброса 0x0) — Входы компараторов ядра для однократного срабатывания — по биту на вход.
M33_TRCPDCR — eTM: запрос питания
Смещение 0x41310, адрес 0xE004 1310, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCPDCR_…
- PU (бит 3, чтение и запись, после сброса 0x0) — Запрос питания блока трассировки.
M33_TRCPDSR — eTM: состояние питания
Смещение 0x41314, адрес 0xE004 1314, после сброса 0x0000 0003. Макросы pico-sdk: M33_TRCPDSR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | OSLK | — | STICKYPD | POWER | |||||||||||
- OSLK (бит 5, только чтение, после сброса 0x0) — Включена блокировка ОС (OS Lock).
- STICKYPD (бит 1, только чтение, после сброса 0x1) — Питание блока пропадало — состояние его регистров потеряно.
- POWER (бит 0, только чтение, после сброса 0x1) — Блок трассировки запитан.
M33_TRCITATBIDR — eTM, режим интеграции: идентификатор на шине ATB
Смещение 0x41EE4, адрес 0xE004 1EE4, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCITATBIDR_…
- ID (биты 6:0, чтение и запись, после сброса 0x00) — Идентификатор трассировки на шине ATB.
M33_TRCITIATBINR — eTM, режим интеграции: входы шины ATB
Смещение 0x41EF4, адрес 0xE004 1EF4, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCITIATBINR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | AFVALIDM | ATREADYM | |||||||||||||
- AFVALIDM (бит 1, чтение и запись, после сброса 0x0) — Вход AFVALIDM.
- ATREADYM (бит 0, чтение и запись, после сброса 0x0) — Вход ATREADYM.
M33_TRCITIATBOUTR — eTM, режим интеграции: выходы шины ATB
Смещение 0x41EFC, адрес 0xE004 1EFC, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCITIATBOUTR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | AFREADY | ATVALID | |||||||||||||
- AFREADY (бит 1, чтение и запись, после сброса 0x0) — Выход AFREADY.
- ATVALID (бит 0, чтение и запись, после сброса 0x0) — Выход ATVALID.
M33_TRCCLAIMSET — eTM: установка меток захвата
Смещение 0x41FA0, адрес 0xE004 1FA0, после сброса 0x0000 000F. Макросы pico-sdk: M33_TRCCLAIMSET_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SET3 | SET2 | SET1 | SET0 | |||||||||||
- SETn, n = 0…3 (биты 0, 1, 2, 3; чтение и запись, после сброса 0x1) — Метка захвата n: запись 1 устанавливает её, чтение показывает, что бит есть.
M33_TRCCLAIMCLR — eTM: сброс меток захвата
Смещение 0x41FA4, адрес 0xE004 1FA4, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCCLAIMCLR_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLR3 | CLR2 | CLR1 | CLR0 | |||||||||||
- CLRn, n = 0…3 (биты 0, 1, 2, 3; чтение и запись, после сброса 0x0) — Метка захвата n: запись 1 сбрасывает её, чтение — текущее значение.
M33_TRCAUTHSTATUS — eTM: разрешённые виды отладки
Смещение 0x41FB8, адрес 0xE004 1FB8, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCAUTHSTATUS_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SNID | SID | NSNID | NSID | |||||||||||
- SNID (биты 7:6, только чтение, после сброса 0x0) — Защищённая неинвазивная отладка — трассировка.
- SID (биты 5:4, только чтение, после сброса 0x0) — Защищённая инвазивная отладка.
- NSNID (биты 3:2, только чтение, после сброса 0x0) — Незащищённая неинвазивная отладка — трассировка.
- NSID (биты 1:0, только чтение, после сброса 0x0) — Незащищённая инвазивная отладка.
M33_TRCDEVARCH — eTM: архитектура компонента CoreSight
Смещение 0x41FBC, адрес 0xE004 1FBC, после сброса 0x4772 4A13. Макросы pico-sdk: M33_TRCDEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHID | |||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x2) — Ревизия архитектуры компонента.
- ARCHID (биты 15:0, только чтение, после сброса 0x4A13) — Архитектура компонента: версия в битах 15:12 и номер в битах 11:0.
M33_TRCDEVID — eTM: конфигурация компонента — 0
Смещение 0x41FC8, адрес 0xE004 1FC8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCDEVID_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCDEVTYPE — eTM: тип компонента CoreSight
Смещение 0x41FCC, адрес 0xE004 1FCC, после сброса 0x0000 0013. Макросы pico-sdk: M33_TRCDEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x1) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x3) — Основной тип компонента.
M33_TRCPIDR4 — eTM: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0x41FD0, адрес 0xE004 1FD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_TRCPIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_TRCPIDR5 — eTM: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0x41FD4, адрес 0xE004 1FD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCPIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCPIDR6 — eTM: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0x41FD8, адрес 0xE004 1FD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCPIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCPIDR7 — eTM: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0x41FDC, адрес 0xE004 1FDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_TRCPIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_TRCPIDR0 — eTM: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0x41FE0, адрес 0xE004 1FE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_TRCPIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_TRCPIDR1 — eTM: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0x41FE4, адрес 0xE004 1FE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_TRCPIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_0 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_0 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента; в заголовке поле названо PART_0, как в PIDR0.
M33_TRCPIDR2 — eTM: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0x41FE8, адрес 0xE004 1FE8, после сброса 0x0000 002B. Макросы pico-sdk: M33_TRCPIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_0 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x2) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_0 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm; в заголовке поле названо DES_0, как в PIDR1.
M33_TRCPIDR3 — eTM: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0x41FEC, адрес 0xE004 1FEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_TRCPIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_TRCCIDR0 — eTM: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0x41FF0, адрес 0xE004 1FF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_TRCCIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_TRCCIDR1 — eTM: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0x41FF4, адрес 0xE004 1FF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_TRCCIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_TRCCIDR2 — eTM: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0x41FF8, адрес 0xE004 1FF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_TRCCIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_TRCCIDR3 — eTM: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0x41FFC, адрес 0xE004 1FFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_TRCCIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
M33_CTICONTROL — cTI: включение
Смещение 0x42000, адрес 0xE004 2000, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTICONTROL_…
- GLBEN (бит 0, чтение и запись, после сброса 0x0) — Включение CTI.
M33_CTIINTACK — cTI: подтверждение выходов триггеров
Смещение 0x42010, адрес 0xE004 2010, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIINTACK_…
- INTACK (биты 7:0, чтение и запись, после сброса 0x00) — Запись 1 подтверждает и сбрасывает выход триггера ctitrigout — бит на выход.
M33_CTIAPPSET — cTI: программное событие в каналах
Смещение 0x42014, адрес 0xE004 2014, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIAPPSET_…
- APPSET (биты 3:0, чтение и запись, после сброса 0x0) — Запись 1 вызывает событие в канале — бит на канал.
M33_CTIAPPCLEAR — cTI: сброс программных событий
Смещение 0x42018, адрес 0xE004 2018, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIAPPCLEAR_…
- APPCLEAR (биты 3:0, чтение и запись, после сброса 0x0) — Запись 1 сбрасывает бит канала в CTIAPPSET.
M33_CTIAPPPULSE — cTI: программный импульс в каналах
Смещение 0x4201C, адрес 0xE004 201C, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIAPPPULSE_…
- APPULSE (биты 3:0, чтение и запись, после сброса 0x0) — Запись 1 даёт импульс события в канале.
M33_CTIINENn — cTI: каналы, в которые передаётся вход триггера n
8 регистров, n = 0…7: смещение 0x42020 + n · 0x04, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIINENn_…
- TRIGINEN (биты 3:0, чтение и запись, после сброса 0x0) — Каналы — бит на каждый из четырёх, — в которые передаётся вход ctitrigin n.
M33_CTIOUTENn — cTI: каналы, которые включают выход триггера n
8 регистров, n = 0…7: смещение 0x420A0 + n · 0x04, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTIOUTENn_…
- TRIGOUTEN (биты 3:0, чтение и запись, после сброса 0x0) — Каналы, событие в которых включает выход ctitrigout n.
M33_CTITRIGINSTATUS — cTI: состояние входов триггеров
Смещение 0x42130, адрес 0xE004 2130, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTITRIGINSTATUS_…
- TRIGINSTATUS (биты 7:0, только чтение, после сброса 0x00) — Состояние входов ctitrigin — бит на вход; после сброса не определено.
M33_CTITRIGOUTSTATUS — cTI: состояние выходов триггеров
Смещение 0x42134, адрес 0xE004 2134, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTITRIGOUTSTATUS_…
- TRIGOUTSTATUS (биты 7:0, только чтение, после сброса 0x00) — Состояние выходов ctitrigout — бит на выход.
M33_CTICHINSTATUS — cTI: состояние каналов
Смещение 0x42138, адрес 0xE004 2138, после сброса 0x0000 0000. Макросы pico-sdk: M33_CTICHINSTATUS_…
- CTICHOUTSTATUS (биты 3:0, только чтение, после сброса 0x0) — По описанию поля — состояние выходов каналов ctichout, хотя регистр назван по входам.
M33_CTIGATE — cTI: пропуск каналов на выходы
Смещение 0x42140, адрес 0xE004 2140, после сброса 0x0000 000F. Макросы pico-sdk: M33_CTIGATE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CTIGATEEN3 | CTIGATEEN2 | CTIGATEEN1 | CTIGATEEN0 | |||||||||||
- CTIGATEENn, n = 0…3 (биты 0, 1, 2, 3; чтение и запись, после сброса 0x1) — Пропускать канал n на выход ctichout n; 0 — не распространять событие.
M33_ASICCTL — cTI: управление внешними мультиплексорами — их нет, DEVID.EXTMUXNUM = 0
Смещение 0x42144, адрес 0xE004 2144, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_ASICCTL_…
Значение занимает регистр целиком, отдельных полей нет.
M33_ITCHOUT — cTI, режим интеграции: выходы каналов
Смещение 0x42EE4, адрес 0xE004 2EE4, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITCHOUT_…
- CTCHOUT (биты 3:0, чтение и запись, после сброса 0x0) — Значения выходов каналов ctichout.
M33_ITTRIGOUT — cTI, режим интеграции: выходы триггеров
Смещение 0x42EE8, адрес 0xE004 2EE8, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITTRIGOUT_…
- CTTRIGOUT (биты 7:0, чтение и запись, после сброса 0x00) — Значения выходов триггеров ctitrigout.
M33_ITCHIN — cTI, режим интеграции: входы каналов
Смещение 0x42EF4, адрес 0xE004 2EF4, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITCHIN_…
- CTCHIN (биты 3:0, только чтение, после сброса 0x0) — Чтение входов каналов ctichin.
M33_ITCTRL — cTI: включение режима интеграции
Смещение 0x42F00, адрес 0xE004 2F00, после сброса 0x0000 0000. Макросы pico-sdk: M33_ITCTRL_…
- IME (бит 0, чтение и запись, после сброса 0x0) — Включение режима интеграции.
M33_DEVARCH — cTI: архитектура компонента CoreSight
Смещение 0x42FBC, адрес 0xE004 2FBC, после сброса 0x4770 1A14. Макросы pico-sdk: M33_DEVARCH_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARCHITECT | PRESENT | REVISION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARCHID | |||||||||||||||
- ARCHITECT (биты 31:21, только чтение, после сброса 0x23B) — Разработчик архитектуры по JEP106: биты 31:28 — код продолжения, 27:21 — код; 0x23B — Arm.
- PRESENT (бит 20, только чтение, после сброса 0x1) — 1 — регистр DEVARCH есть.
- REVISION (биты 19:16, только чтение, после сброса 0x0) — Ревизия архитектуры компонента.
- ARCHID (биты 15:0, только чтение, после сброса 0x1A14) — Архитектура компонента: версия в битах 15:12 и номер в битах 11:0.
M33_DEVID — cTI: число каналов, триггеров и мультиплексоров
Смещение 0x42FC8, адрес 0xE004 2FC8, после сброса 0x0004 0800. Макросы pico-sdk: M33_DEVID_…
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | NUMCH | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| NUMTRIG | — | EXTMUXNUM | |||||||||||||
- NUMCH (биты 19:16, только чтение, после сброса 0x4) — Число каналов: 4.
- NUMTRIG (биты 15:8, только чтение, после сброса 0x08) — Число триггеров: 8.
- EXTMUXNUM (биты 4:0, только чтение, после сброса 0x00) — Число внешних мультиплексоров на входах и выходах триггеров: 0 — нет.
M33_DEVTYPE — cTI: тип компонента CoreSight
Смещение 0x42FCC, адрес 0xE004 2FCC, после сброса 0x0000 0014. Макросы pico-sdk: M33_DEVTYPE_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SUB | MAJOR | |||||||||||||
- SUB (биты 7:4, только чтение, после сброса 0x1) — Подтип компонента.
- MAJOR (биты 3:0, только чтение, после сброса 0x4) — Основной тип компонента.
M33_PIDR4 — cTI: идентификатор PIDR4 — размер и код продолжения JEP106 разработчика
Смещение 0x42FD0, адрес 0xE004 2FD0, после сброса 0x0000 0004. Макросы pico-sdk: M33_PIDR4_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SIZE | DES_2 | |||||||||||||
- SIZE (биты 7:4, только чтение, после сброса 0x0) — 0 — компонент занимает 4 КБ адресов.
- DES_2 (биты 3:0, только чтение, после сброса 0x4) — Код продолжения JEP106 разработчика: 4 у Arm.
M33_PIDR5 — cTI: идентификатор PIDR5 — зарезервирован, читается как 0
Смещение 0x42FD4, адрес 0xE004 2FD4, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_PIDR5_…
Значение занимает регистр целиком, отдельных полей нет.
M33_PIDR6 — cTI: идентификатор PIDR6 — зарезервирован, читается как 0
Смещение 0x42FD8, адрес 0xE004 2FD8, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_PIDR6_…
Значение занимает регистр целиком, отдельных полей нет.
M33_PIDR7 — cTI: идентификатор PIDR7 — зарезервирован, читается как 0
Смещение 0x42FDC, адрес 0xE004 2FDC, после сброса 0x0000 0000, чтение и запись. Макросы pico-sdk: M33_PIDR7_…
Значение занимает регистр целиком, отдельных полей нет.
M33_PIDR0 — cTI: идентификатор PIDR0 — номер компонента, биты 7:0
Смещение 0x42FE0, адрес 0xE004 2FE0, после сброса 0x0000 0021. Макросы pico-sdk: M33_PIDR0_…
- PART_0 (биты 7:0, только чтение, после сброса 0x21) — Биты 7:0 номера компонента.
M33_PIDR1 — cTI: идентификатор PIDR1 — номер компонента, биты 11:8, и часть кода разработчика
Смещение 0x42FE4, адрес 0xE004 2FE4, после сброса 0x0000 00BD. Макросы pico-sdk: M33_PIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DES_0 | PART_1 | |||||||||||||
- DES_0 (биты 7:4, только чтение, после сброса 0xB) — Биты 3:0 кода JEP106 разработчика: 0xB у Arm.
- PART_1 (биты 3:0, только чтение, после сброса 0xD) — Биты 11:8 номера компонента.
M33_PIDR2 — cTI: идентификатор PIDR2 — ревизия и часть кода разработчика
Смещение 0x42FE8, адрес 0xE004 2FE8, после сброса 0x0000 000B. Макросы pico-sdk: M33_PIDR2_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVISION | JEDEC | DES_1 | ||||||||||||
- REVISION (биты 7:4, только чтение, после сброса 0x0) — Ревизия компонента.
- JEDEC (бит 3, только чтение, после сброса 0x1) — Всегда 1: код разработчика назначен JEDEC.
- DES_1 (биты 2:0, только чтение, после сброса 0x3) — Биты 6:4 кода JEP106 разработчика: 3 у Arm.
M33_PIDR3 — cTI: идентификатор PIDR3 — исправления ревизии и изменения заказчика
Смещение 0x42FEC, адрес 0xE004 2FEC, после сброса 0x0000 0000. Макросы pico-sdk: M33_PIDR3_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REVAND | CMOD | |||||||||||||
- REVAND (биты 7:4, только чтение, после сброса 0x0) — Мелкие исправления ревизии, обычно 0.
- CMOD (биты 3:0, только чтение, после сброса 0x0) — Изменения, внесённые заказчиком: 0 — нет.
M33_CIDR0 — cTI: идентификатор CIDR0 — преамбула, биты 7:0
Смещение 0x42FF0, адрес 0xE004 2FF0, после сброса 0x0000 000D. Макросы pico-sdk: M33_CIDR0_…
- PRMBL_0 (биты 7:0, только чтение, после сброса 0x0D) — Преамбула, биты 7:0: 0x0D.
M33_CIDR1 — cTI: идентификатор CIDR1 — класс компонента и преамбула, биты 11:8
Смещение 0x42FF4, адрес 0xE004 2FF4, после сброса 0x0000 0090. Макросы pico-sdk: M33_CIDR1_…
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CLASS | PRMBL_1 | |||||||||||||
- CLASS (биты 7:4, только чтение, после сброса 0x9) — Класс компонента: 0x9 — компонент отладки CoreSight.
- PRMBL_1 (биты 3:0, только чтение, после сброса 0x0) — Преамбула, биты 11:8: 0.
M33_CIDR2 — cTI: идентификатор CIDR2 — преамбула, биты 23:16
Смещение 0x42FF8, адрес 0xE004 2FF8, после сброса 0x0000 0005. Макросы pico-sdk: M33_CIDR2_…
- PRMBL_2 (биты 7:0, только чтение, после сброса 0x05) — Преамбула, биты 23:16: 0x05.
M33_CIDR3 — cTI: идентификатор CIDR3 — преамбула, биты 31:24
Смещение 0x42FFC, адрес 0xE004 2FFC, после сброса 0x0000 00B1. Макросы pico-sdk: M33_CIDR3_…
- PRMBL_3 (биты 7:0, только чтение, после сброса 0xB1) — Преамбула, биты 31:24: 0xB1.
Частые вопросы
Как измерить время выполнения кода в тактах на RP2350?
Установите TRCENA в DEMCR, обнулите DWT_CYCCNT и включите CYCCNTENA в DWT_CTRL; затем прочитайте DWT_CYCCNT до и после участка кода — разность и есть число тактов ядра. Счётчик 32-битный и переходит через ноль: на 150 МГц — примерно каждые 28,6 с.
Перезагружает ли AIRCR.SYSRESETREQ весь RP2350?
Нет: по таблице даташита RP2350 запись бита SYSRESETREQ с ключом 0x05FA в VECTKEY сбрасывает только то ядро, на котором его установили, — это тёплый сброс ядра. Остальную систему перезагружают сторожевым таймером: какие блоки он сбрасывает, задают регистры PSM и POWMAN.
Сколько уровней приоритета у прерываний RP2350?
Шестнадцать: у ядер Cortex-M33 в RP2350 4 бита приоритета — старшие биты 7:4 каждого байта NVIC_IPRn, где 0 — наивысший уровень. Поле PRIGROUP в AIRCR делит приоритет на группу и подгруппу, а бит PRIS понижает все незащищённые исключения относительно защищённых.
Как разрешить FPU и сопроцессоры RP2350?
Запишите 3 — полный доступ — в поля CP10 и CP11 регистра CPACR, а для сопроцессоров Raspberry Pi — в CP0 (GPIOC), CP4 (DCP, двойная точность) и CP7 (RCP, контроль избыточности). Незащищённому коду нужны ещё биты в NSACR и в незащищённой копии CPACR (даташит RP2350, раздел 3.6).
Источники
- Raspberry Pi. RP2350 Datasheet (release 8, build 80d627281ed5) — раздел 3.7.5: список регистров, назначение полей, тип доступа и значения после сброса
- Raspberry Pi. pico-sdk 2.1.1: заголовки src/rp2350/hardware_regs/include/hardware/regs/*.h (коммит bddd20f) — смещения, биты, тип доступа и значение после сброса каждого поля, базовые адреса из addressmap.h; лицензия BSD-3-Clause
Нашли ошибку в регистрах?
Другие регистры RP2350
- Все регистры RP2350Блоки периферии и базовые адреса
- SHA256 — ускоритель SHA-256SHA256_CSR, SHA256_WDATA, SHA256_SUMn
- TICKS — генераторы тиковTICKS_PROC0_CTRL, TICKS_PROC0_CYCLES, TICKS_PROC0_COUNT, TICKS_PROC1_CTRL, TICKS_PROC1_CYCLES, TICKS_PROC1_COUNT
- TRNG — генератор случайных чиселTRNG_RNG_IMR, TRNG_RNG_ISR, TRNG_RNG_ICR, TRNG_TRNG_CONFIG, TRNG_TRNG_VALID, TRNG_EHR_DATA0
- GLITCH_DETECTOR — детектор сбоевGLITCH_DETECTOR_ARM, GLITCH_DETECTOR_DISARM, GLITCH_DETECTOR_SENSITIVITY, GLITCH_DETECTOR_LOCK, GLITCH_DETECTOR_TRIG_STATUS, GLITCH_DETECTOR_TRIG_FORCE
- HSTX — быстрый последовательный выводHSTX_CTRL_CSR, HSTX_CTRL_BITn, HSTX_CTRL_EXPAND_SHIFT, HSTX_CTRL_EXPAND_TMDS
- HSTX_FIFO — FIFO быстрого выводаHSTX_FIFO_STAT, HSTX_FIFO_FIFO
- QMI — интерфейс QSPI-памятиQMI_DIRECT_CSR, QMI_DIRECT_TX, QMI_DIRECT_RX, QMI_M0_TIMING, QMI_M0_RFMT, QMI_M0_RCMD
- XIP_AUX — быстрый порт FIFO XIPXIP_AUX_STREAM, XIP_AUX_QMI_DIRECT_TX, XIP_AUX_QMI_DIRECT_RX
- BOOTRAM — регистры загрузочной памятиBOOTRAM_WRITE_ONCE0, BOOTRAM_WRITE_ONCE1, BOOTRAM_BOOTLOCK_STAT, BOOTRAM_BOOTLOCKn
- CORESIGHT_TRACE — FIFO трассировкиCORESIGHT_TRACE_CTRL_STATUS, CORESIGHT_TRACE_TRACE_CAPTURE_FIFO
- EPPB — регистры ядра от Raspberry PiM33_EPPB_NMI_MASK0, M33_EPPB_NMI_MASK1, M33_EPPB_SLEEPCTRL
- OTP — однократно программируемая памятьOTP_SW_LOCKn, OTP_SBPI_INSTR, OTP_SBPI_WDATA_0, OTP_SBPI_WDATA_1, OTP_SBPI_WDATA_2, OTP_SBPI_WDATA_3
- POWMAN — менеджер питанияPOWMAN_BADPASSWD, POWMAN_VREG_CTRL, POWMAN_VREG_STS, POWMAN_VREG, POWMAN_VREG_LP_ENTRY, POWMAN_VREG_LP_EXIT
- ACCESSCTRL — права доступа к шинеACCESSCTRL_LOCK, ACCESSCTRL_FORCE_CORE_NS, ACCESSCTRL_CFGRESET, ACCESSCTRL_GPIO_NSMASK0, ACCESSCTRL_GPIO_NSMASK1, ACCESSCTRL_ROM
- TIMER — системные таймерыTIMER_TIMEHW, TIMER_TIMELW, TIMER_TIMEHR, TIMER_TIMELR, TIMER_ALARMn, TIMER_ARMED
- WATCHDOG — сторожевой таймерWATCHDOG_CTRL, WATCHDOG_LOAD, WATCHDOG_REASON, WATCHDOG_SCRATCHn
- ADC — аналого-цифровой преобразовательADC_CS, ADC_RESULT, ADC_FCS, ADC_FIFO, ADC_DIV, ADC_INTR
- PWM — широтно-импульсная модуляцияPWM_CHn_CSR, PWM_CHn_DIV, PWM_CHn_CTR, PWM_CHn_CC, PWM_CHn_TOP, PWM_EN
- XOSC — кварцевый генераторXOSC_CTRL, XOSC_STATUS, XOSC_DORMANT, XOSC_STARTUP, XOSC_COUNT
- PLL — умножители частотыPLL_CS, PLL_PWR, PLL_FBDIV_INT, PLL_PRIM, PLL_INTR, PLL_INTE
- PADS_BANK0 — электрические настройки GPIOPADS_BANK0_VOLTAGE_SELECT, PADS_BANK0_GPIOn, PADS_BANK0_SWCLK, PADS_BANK0_SWD
- PADS_QSPI — электрические настройки выводов QSPIPADS_QSPI_VOLTAGE_SELECT, PADS_QSPI_GPIO_QSPI_SCLK, PADS_QSPI_GPIO_QSPI_SD0, PADS_QSPI_GPIO_QSPI_SD1, PADS_QSPI_GPIO_QSPI_SD2, PADS_QSPI_GPIO_QSPI_SD3
- RESETS — сброс подсистемRESETS_RESET, RESETS_WDSEL, RESETS_RESET_DONE
- PSM — автомат включения питанияPSM_FRCE_ON, PSM_FRCE_OFF, PSM_WDSEL, PSM_DONE
- SYSINFO — сведения о чипеSYSINFO_CHIP_ID, SYSINFO_PACKAGE_SEL, SYSINFO_PLATFORM, SYSINFO_GITREF_RP2350
- BUSCTRL — управление шинойBUSCTRL_BUS_PRIORITY, BUSCTRL_BUS_PRIORITY_ACK, BUSCTRL_PERFCTR_EN, BUSCTRL_PERFCTRn, BUSCTRL_PERFSELn
- ROSC — кольцевой генераторROSC_CTRL, ROSC_FREQA, ROSC_FREQB, ROSC_RANDOM, ROSC_DORMANT, ROSC_DIV
- SYSCFG — системные настройкиSYSCFG_PROC_CONFIG, SYSCFG_PROC_IN_SYNC_BYPASS, SYSCFG_PROC_IN_SYNC_BYPASS_HI, SYSCFG_DBGFORCE, SYSCFG_MEMPOWERDOWN, SYSCFG_AUXCTRL
- XIP_CTRL — кеш выполнения из флеш-памятиXIP_CTRL, XIP_STAT, XIP_CTR_HIT, XIP_CTR_ACC, XIP_STREAM_ADDR, XIP_STREAM_CTR
- USB — контроллер USBUSB_ADDR_ENDP, USB_ADDR_ENDPn, USB_MAIN_CTRL, USB_SOF_WR, USB_SOF_RD, USB_SIE_CTRL
- PIO — программируемый ввод-выводPIO_CTRL, PIO_FSTAT, PIO_FDEBUG, PIO_FLEVEL, PIO_TXFn, PIO_RXFn
- DMA — прямой доступ к памятиDMA_CHn_READ_ADDR, DMA_CHn_WRITE_ADDR, DMA_CHn_TRANS_COUNT, DMA_CHn_CTRL_TRIG, DMA_CHn_AL1_CTRL, DMA_CHn_AL1_READ_ADDR
- SIO — однотактный ввод-вывод ядерSIO_CPUID, SIO_GPIO_IN, SIO_GPIO_HI_IN, SIO_GPIO_OUT, SIO_GPIO_HI_OUT, SIO_GPIO_OUT_SET
- CLOCKS — тактированиеCLOCKS_CLK_GPOUT0_CTRL, CLOCKS_CLK_GPOUTn_DIV, CLOCKS_CLK_GPOUTn_SELECTED, CLOCKS_CLK_GPOUT1_CTRL, CLOCKS_CLK_GPOUT2_CTRL, CLOCKS_CLK_GPOUT3_CTRL
- IO_BANK0 — мультиплексор GPIOIO_BANK0_GPIOn_STATUS, IO_BANK0_GPIOn_CTRL, IO_BANK0_IRQSUMMARY_PROC0_SECURE0, IO_BANK0_IRQSUMMARY_PROC0_SECURE1, IO_BANK0_IRQSUMMARY_PROC0_NONSECURE0, IO_BANK0_IRQSUMMARY_PROC0_NONSECURE1
- IO_QSPI — мультиплексор выводов QSPI и USBIO_QSPI_USBPHY_DP_STATUS, IO_QSPI_USBPHY_DP_CTRL, IO_QSPI_USBPHY_DM_STATUS, IO_QSPI_USBPHY_DM_CTRL, IO_QSPI_GPIO_QSPI_SCLK_STATUS, IO_QSPI_GPIO_QSPI_SCLK_CTRL
Статьи и термины
- SysTick24-битный таймер ядра Cortex-M для системного тика
- ПрерываниеЗапрос периферии, вектор и обработчик прерывания
- SWDSerial Wire Debug: отладка и прошивка Cortex-M по двум проводам
- Система команд Thumb-2Команды по группам, Operand2, флаги и условия, IT, переходы, DSP и FPU, M0
- RP2350: выводы и функции GPIO30 или 48 GPIO: выводы QFN-60 и QFN-80, функции F0–F11, АЦП, 5 В, токи