Logotipo WH

Microprocesador WH V3

WH-V3-Microprocesador-PRO

Especificacións

  • Modelo de microprocesador: QingKeV3
  • Versión: V1.2
  • Características ISA:
    • Pipeline FPU
    • Predición de ramas
    • Interrupción de apoio
    • Protección de memoria física HPE (PMP)
    • Modo de baixo consumo de enerxía
    • Depuración de conxuntos de instrucións estendidos

Instrucións de uso do produto

Acabadoview do microprocesador QingKe V3

Os microprocesadores da serie QingKe V3 inclúen os modelos V3A, V3B e V3C. Cada modelo ten características específicas e diferenzas en función da súa aplicación.

Conxunto de instrucións

O conxunto de instrucións RV32I inclúe 32 conxuntos de rexistros de x0 a x31. A serie V3 non admite a extensión de coma flotante (F). Cada rexistro ten un tamaño de 32 bits.

Set de rexistro

O conxunto de rexistros RV32I consta dos seguintes rexistros.

  • x0: Codificado 0
  • x1: Enderezo de devolución
  • x2: punteiro de pila
  • x3: Punteiro global
  • x4: Punteiro de fío
  • x5-x7: Rexistros temporais
  • x8: Gardar rexistro/punteiro de marco
  • x9: Garda os parámetros de rexistro/función/valores de retorno
  • x10-x11: Parámetros de función
  • x12-x17: Gardar rexistros
  • x18-x27: Rexistros temporais
  • x28-x31: Rexistros de chamadas/as

Modo privilexio

A arquitectura estándar RISC-V inclúe tres modos privilexiados: modo máquina, modo supervisor e modo usuario. Os microprocesadores da serie QingKe V3 admiten o modo máquina e o modo supervisor.

Preguntas frecuentes

P: Cales son os diferentes modelos dos microprocesadores da serie QingKe V3?

A: A serie QingKe V3 inclúe os modelos V3A, V3B e V3C, cada un con características e diferenzas específicas detalladas no manual de usuario.

P: Cantos conxuntos de rexistros están dispoñibles no conxunto de instrucións RV32I?

A: O conxunto de instrucións RV32I proporciona 32 conxuntos de rexistros de x0 a x31.

P: Que modos privilexiados son compatibles co microprocesador QingKe V3?

A: Os microprocesadores da serie QingKe V3 admiten o modo Máquina e o modo Supervisor como parte da arquitectura RISC-V.

Acabadoview

Os microprocesadores da serie QingKe V3 son microprocesadores MCU de propósito xeral de 32 bits de desenvolvemento propio baseados na arquitectura estándar de conxunto de instrucións RISC-V. Esta serie inclúe V3A, V3B e V3C, dos cales V3A admite a extensión do conxunto de instrucións estándar RV32IMAC e V3B/C admite a extensión do conxunto de instrucións estándar RV32IMCB e a extensión do conxunto de instrucións personalizado XW. Ambos admiten a multiplicación dun só ciclo e a división de hardware, ademais da pila de presión de hardware (HPE), interrupción sen táboas (VTF), interfaces de depuración simplificadas de 1 e 2 fíos, instrucións "WFE" e outras funcións especiais. Ademais, tamén admite Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), interface de depuración simplificada de 1/2 fíos e soporte para instrucións "WFE".

Características

Características Descrición
ISA RV32IM[A]C[B]
Gasoduto 3
FPU Non é compatible
Predición de ramas Predición de ramas estáticas
Interrupción Admite un total de 256 interrupcións, incluídas excepcións, e admite VTF
HPE Admite 2 niveis de HPE
Protección da memoria física (PMP) Soportado
Modo de baixo consumo de enerxía Admite os modos de sono e sono profundo e admite os métodos de sono WFI e WFE
Conxunto de instrucións ampliado Soportado
Depurar SDI de 1/2 cables, depuración estándar RISC-V

Acabadoview

Os microprocesadores da serie QingKe V3 inclúen V3A, V3B e V3C, hai algunhas diferenzas entre a serie segundo a aplicación, as diferenzas específicas detállanse na Táboa 1-1.

Táboa 1-1 Sobreview do microprocesador QingKe V3

Característica Modelo ISA Número de niveis HPE Interrupcións anidando número de niveis VTF número de canles Gasoduto Vector modo táboa Instrución ampliada (XW) Número de áreas de protección de memoria
V3A RV32IMAC 2 2 4 3 Instrución × ×
V3B RV32IMCB 2 2 4 3 Enderezo/Instrución ×
V3C RV32IMCB 2 2 4 3 Enderezo/Instrución 4

Nota: A conmutación de tarefas do sistema operativo xeralmente usa o push push, que non se limita ao número de niveis

Conxunto de instrucións

  • Os microprocesadores da serie QingKe V3 seguen o estándar RISC-V Instruction Set Architecture (ISA). A documentación detallada do estándar pódese atopar en "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2" on the RISC-V International websitio. O conxunto de instrucións RISC-V ten unha arquitectura sinxela e admite un deseño modular, o que permite combinacións flexibles en función de diferentes necesidades, e a serie V3 admite as seguintes extensións do conxunto de instrucións.
  • RV32: Arquitectura de 32 bits, ancho de bit de rexistro de propósito xeral de 32 bits
  • I: Soporta operación de conformación, con 32 rexistros de conformación
  • M: Admite instrucións de multiplicación e división de moldes
  • A: Soporta comandos atómicos
  • C: Admite instrucións de compresión de 16 bits
  • B: Soporte para instrucións de manipulación de bits
  • XW: Instrucións de compresión de 16 bits para operacións de bytes e medias palabras de autoextensión

Nota:

  • O subconxunto de instrucións admitidas por diferentes modelos pode ser diferente; consulte a Táboa 1-1 para obter máis información;
  • Para mellorar aínda máis a densidade de código, estende o subconxunto XW, engade as seguintes instrucións de compresión c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , cuxo uso debe basearse no compilador MRS ou na cadea de ferramentas que proporciona;
  • V3B admite a extracción dunha instrución de palabra (32 bits) dunha palabra dobre (64 bits) e a extracción dunha instrución de palabra (32 bits) a partir dun resultado de multiplicación (64 bits). O método de uso específico pode referirse á función de biblioteca e cooperar co compilador MRS ou coa cadea de ferramentas proporcionada por este;
  • V3B/C admite instrucións de copia de memoria. Para un uso específico, consulte a función de biblioteca e coopere co compilador MRS ou a súa cadea de ferramentas.

Set de rexistro

O RV32I ten 32 conxuntos de rexistros de x0-x31. A serie V3 non admite a extensión "F", é dicir, non hai un conxunto de rexistros de coma flotante. No RV32, cada rexistro é de 32 bits. A Táboa 1-2 a continuación enumera os rexistros de RV32I e as súas descricións.

Táboa 1-2 Rexistros RISC-V

Rexístrate Nome ABI Descrición Almacenador
x0 cero Codificado 0
x1 ra Enderezo de devolución Chamando
x2 sp Punteiro de pila Callee
x3 GP Punteiro global
x4 tp Punteiro de fío
x5-7 t0-2 Rexistro temporal Chamando
x8 s0/fp Gardar rexistro/punteiro de marco Callee
x9 s1 Gardar rexistro Callee
x10-11 a0-1 Parámetros de función/valores de retorno Chamando
x12-17 a2-7 Parámetros de función Chamando
x18-27 a2-11 Gardar rexistro Callee
X28-31 t3-6 Rexistro temporal Chamando

O atributo Caller da táboa anterior significa que o procedemento chamado non garda o valor do rexistro, e o atributo Callee significa que o procedemento chamado garda o rexistro.

Modo privilexio

  • A arquitectura estándar RISC-V inclúe tres modos privilexiados: modo máquina, modo supervisor e modo usuario, como se mostra na táboa 1-3 a continuación.
  • O modo máquina é obrigatorio e os outros modos son opcionais. Para obter máis información, podes consultar The RISC-V Instruction Set Manual Volume II: Privileged Architecture”, que se pode descargar gratuitamente desde RISC-V International. websitio.

Táboa 1-3 Modo de privilexio da arquitectura RISC-V

Código Nome Abreviaturas
0b00 Modo Usuario U
0b01 Modelo de supervisor S
0b10 Reservado Reservado
0b11 Modo máquina M
  • Os microprocesadores da serie QingKe V3 admiten dous destes modos privilexiados.

Modo máquina

  • O modo máquina ten a máxima autoridade, o programa neste modo pode acceder a todos os rexistros de control e estado (CSR), pero tamén pode acceder a todas as áreas de enderezos físicos.
  • O predeterminado de encendido está no modo máquina, cando volve a execución de mret (instrución de retorno do modo máquina), segundo o estado do rexistro CSR (rexistro de estado do modo máquina) no bit MPP, se MPP = 0b00, entón sae do modo máquina. no modo Usuario, MPP = 0b11 e, a continuación, continúe mantendo o modo Máquina.

Modo usuario

  • O modo de usuario ten o privilexio máis baixo e só se pode acceder a uns rexistros CSR limitados neste modo. Cando se produce unha excepción ou interrupción, o microprocesador pasa do modo Usuario ao modo Máquina para xestionar excepcións e interrupcións.

Rexistro de RSE

Na arquitectura RISC-V defínense unha serie de rexistros CSR para controlar e rexistrar o estado de funcionamento do microprocesador. Estes CSR pódense ampliar con 4096 rexistros utilizando un espazo de codificación de enderezos interno dedicado de 12 bits. E use os dous CSR[11:10] altos para definir o permiso de lectura/escritura deste rexistro, 0b00, 0b01, 0b10 para lectura/escritura permitido e 0b11 para só lectura. Use os dous bits CSR[9:8] para definir o nivel de privilexio máis baixo que pode acceder a este rexistro, e o valor corresponde ao modo de privilexios definido na Táboa 1-3. Os rexistros CSR implementados no microprocesador QingKe V3 detállanse no capítulo 8.

Excepción

Mecanismo de excepción, que é un mecanismo para interceptar e xestionar "eventos de operación inusual". Os microprocesadores da serie QingKe V3 están equipados cun sistema de resposta de excepción que pode xestionar ata 256 excepcións, incluíndo interrupcións. Cando se produce unha excepción ou interrupción, o microprocesador pode responder rapidamente e xestionar os eventos de excepción e interrupción.

Tipos de excepción

O comportamento do hardware do microprocesador é o mesmo se se produce unha excepción ou unha interrupción. O microprocesador suspende o programa actual, móvese ao controlador de excepcións ou interrupcións e volve ao programa suspendido anteriormente cando se complete o procesamento. En liñas xerais, as interrupcións tamén forman parte das excepcións. Pode ser exactamente se a ocorrencia actual é unha interrupción ou unha excepción viewed a través da excepción do modo máquina causa rexistro causa. O mcause[31] é o campo de interrupción, que se usa para indicar se a causa da excepción é unha interrupción ou unha excepción. mcause[31]=1 significa interrupción, mcause[31]=0 significa excepción. mcause[30:0] é o código de excepción, que se usa para indicar a causa específica da excepción ou o número de interrupción, como se mostra na seguinte táboa.

Táboa 2-1 Códigos de excepción do microprocesador V3

Interrupción Excepción códigos Sincrónico/Asincrónico Motivo de excepción
1 0-1 Reservado
1 2 Asíncrono preciso NMI interrompe
1 3-11 Reservado
1 12 Asíncrono preciso SysTick interrompe
1 13 Reservado
1 14 Sincrónico O software interrompe
1 15 Reservado
1 16-255 Asíncrono preciso Interrupción externa 16-255
0 0 Sincrónico Desalineación de direccións de instrucións
0 1 Sincrónico Erro de acceso ao comando Fetch
0 2 Sincrónico Instrucións ilegais
0 3 Sincrónico Puntos de interrupción
0 4 Sincrónico Cargar o desalineamento do enderezo de acceso á instrución
0 5 Asíncrono de non precisión Erro de acceso ao comando de carga
0 6 Sincrónico Desalineación do enderezo de acceso ás instrucións Store/AMO
0 7 Asíncrono de non precisión Erro de acceso ao comando Store/AMO
0 8 Sincrónico Chamada de entorno no modo Usuario
0 11 Sincrónico Chamada de entorno no modo Máquina
  • Sincrónico” na táboa significa que unha instrución pode situarse exactamente onde se executa, como unha instrución de interrupción ou chamada, e cada execución desa instrución desencadeará unha excepción. "Asincrónico" significa que non é posible identificar unha instrución e que o valor da PC da instrución pode ser diferente cada vez que se produce unha excepción. "Asincrónico preciso" significa que unha excepción pode situarse exactamente no límite dunha instrución, é dicir, o estado despois da execución dunha instrución, como unha interrupción externa. "Asincrónico non preciso" significa que o límite dunha instrución non se pode localizar con precisión, e quizais o estado despois de que unha instrución se interrompese na metade da execución, como un erro de acceso á memoria.
  • O acceso á memoria leva tempo, e o microprocesador normalmente non agarda ao final do acceso ao acceder á memoria senón que continúa executando a instrución, cando se produce de novo a excepción do erro de acceso, o microprocesador xa executou as instrucións posteriores e non pode ser con precisión. localizado.

Entrando a excepción

Cando o programa está en proceso de funcionamento normal se por algún motivo, desencadea unha excepción ou interrupción. O comportamento do hardware do microprocesador neste punto pódese resumir do seguinte xeito.

  1. Suspender o fluxo do programa actual e pasar á execución de funcións de manexo de excepcións ou interrupcións. O enderezo base de entrada e o modo de enderezo da función de excepción ou interrupción están definidos polo rexistro de enderezos base de entrada de excepción mtvec. mtvec[31:2] define o enderezo base da función de excepción ou interrupción. mtvec[1:0] define o modo de direccionamento da función controladora. cando mtvec[1:0]=0, todas as excepcións e interrupcións usan unha entrada unificada, é dicir, cando se produce unha excepción ou interrupción, recorre ao mtvec[31:2] que define o enderezo base a executar. Cando mtvec[1:0]=1, as excepcións e interrupcións usan o modo de táboa vectorial, é dicir, cada excepción e interrupción está numerada, e o enderezo desprázase segundo o número de interrupción*4, e cando se produce unha excepción ou interrupción, desprázase. ao enderezo base definido por mtvec[31:2] + número de interrupción*4 Execución. A táboa de vectores de interrupcións contén unha instrución para saltar á función do controlador de interrupcións, ou pode ser outras instrucións.
  2. Actualizar o rexistro de RSE
    • Cando se introduce unha excepción ou interrupción, o microprocesador actualiza automaticamente os rexistros CSR relevantes, incluíndo o rexistro de causa de excepción do modo Máquina mcause, o rexistro do punteiro de excepción do modo Máquina mepc, o rexistro de valor de excepción do modo Máquina e o estado do rexistro de estado do modo Máquina.

Actualizar mcause

Como se mencionou antes, despois de introducir unha excepción ou interrupción, o seu valor reflicte o tipo de excepción ou o número de interrupción actual, e o software pode ler este valor de rexistro para comprobar a causa da excepción ou determinar a orixe da interrupción, como se detalla na Táboa 2. -1.

Actualizar mepc

  • A definición estándar do enderezo de retorno do microprocesador despois de saír dunha excepción ou interrupción almacénase en mepc.
  • Así, cando se produce unha excepción ou interrupción, o hardware actualiza automaticamente o valor mepc ao valor da instrución actual do PC cando se atopa a excepción, ou ao seguinte valor do PC da instrución preexecutada antes da interrupción.
  • Despois de procesar a excepción ou interrupción, o microprocesador usa o seu valor gardado como enderezo de retorno para volver á localización da interrupción e continuar coa execución.
  • Non obstante, paga a pena sinalar que.
  1. MEPC é un rexistro lexible e escribible e o software tamén pode modificar o valor para modificar a localización do punteiro do PC que se executa despois da devolución.
  2. Cando se produce unha interrupción, é dicir, cando a causa da excepción rexistra mcause[31]=1, o valor dos mapas actualízase ao valor de PC da seguinte instrución non executada no momento da interrupción.
    • Cando se produce unha excepción, o valor dos mapas actualízase ao valor da instrución PC da excepción actual cando a excepción provoca o rexistro mcause[31]=0. Polo tanto, neste momento no que volve a excepción, se volvemos directamente usando o valor de mepc, seguimos executando a instrución que xerou a excepción antes e, neste momento, seguiremos introducindo a excepción. Normalmente, despois de xestionar a excepción, podemos modificar o valor de mepc ao valor da seguinte instrución non executada e despois devolver. Por example, se provocamos unha excepción debido a chamada/interrupción, despois de manexar a excepción, xa que recall/break (c.ebreak é de 2 bytes) é unha instrución de 4 bytes, só necesitamos o software para modificar o valor de mepc a mepc +4 (c.ebreak é mepc+2) e despois regresa.

Actualizar mtval

Cando se introducen excepcións e interrupcións, o hardware actualizará automaticamente o valor de mtval, que é o valor que causou a excepción. O valor é normalmente.

  1. Se unha excepción é causada por un acceso á memoria, o hardware almacenará o enderezo do acceso á memoria no momento da excepción en mtval.
  2. Se a excepción é causada por unha instrución ilegal, o hardware almacenará o código de instrución da instrución en mtval.
  3. Se a excepción é causada por un punto de interrupción de hardware, o hardware almacenará o valor da PC no punto de interrupción en mtval.
  4. Para outras excepcións, o hardware establece o valor de mtval en 0, como break, a excepción causada pola instrución de chamada.
  5. Ao introducir a interrupción, o hardware establece o valor de mtval en 0.

Actualizar mstatus

Ao introducir excepcións e interrupcións, o hardware actualiza certos bits en mstatus.

  1. MPIE actualízase ao valor MIE antes de introducir a excepción ou interrupción, e MPIE utilízase para restaurar o MIE despois de que a excepción e a interrupción rematen.
  2. MPP actualízase ao modo privilexiado antes de introducir excepcións e interrupcións, e despois de rematar as excepcións e interrupcións, MPP utilízase para restaurar o modo privilexiado anterior.
  3. O microprocesador QingKe V3 admite a anidación de interrupcións no modo Máquina e o MIE non se borrará despois de introducir excepcións e interrupcións.

Actualizar o modo de privilexio do microprocesador

  • Cando se producen excepcións e interrupcións, o modo privilexiado do microprocesador actualízase ao modo Máquina.

Funcións de manexo de excepcións

  • Ao introducir unha excepción ou interrupción, o microprocesador executa o programa desde o enderezo e o modo definidos polo rexistro mtvec. Ao usar a entrada unificada, o microprocesador toma unha instrución de salto do enderezo base definido por mtvec[31:2] baseada no valor de mtvec[1], ou obtén o enderezo de entrada da función de manexo de interrupcións e excepcións e vai executala no seu lugar . Neste momento, a función de manexo de excepcións e interrupcións pode determinar se a causa é unha excepción ou unha interrupción en función do valor de mcause[31], e o tipo e a causa da excepción ou a interrupción correspondente poden ser xulgados polo código de excepción. e tratadas en consecuencia.
  • Cando se utiliza o enderezo base + número de interrupción *4 para a compensación, o hardware salta automaticamente á táboa de vectores para obter o enderezo de entrada da función de excepción ou interrupción en función do número de interrupción e salta para executalo.

Saída de excepción

  • Despois de completar o manejador de excepcións ou interrupcións, é necesario saír do programa de servizo. Despois de introducir excepcións e interrupcións, o microprocesador pasa ao modo Máquina desde o modo Usuario e o procesamento de excepcións e interrupcións tamén se completa no modo Máquina. Cando é necesario saír de excepcións e interrupcións, é necesario utilizar a instrución mret para volver. Neste momento, o hardware do microprocesador realizará automaticamente as seguintes operacións.
  • O punteiro do PC restablece o valor do rexistro CSR mepc, é dicir, a execución comeza no enderezo da instrución gardado por mepc. É necesario prestar atención á operación de compensación de mepc despois de que se complete o manexo de excepcións.
  • Actualice o estado do rexistro CSR, MIE restablece a MPIE e MPP úsase para restaurar o modo privilexiado do microprocesador anterior.
  • Todo o proceso de resposta de excepción pódese describir na seguinte Figura 2-1.WH-V3-Microprocesador-fig-1

PFIC e control de interrupcións

  • O microprocesador QingKe V3 está deseñado cun controlador de interrupcións rápidas programables (PFIC) que pode xestionar ata 256 interrupcións, incluíndo excepcións.
  • As 16 primeiras delas están fixadas como interrupcións internas do microprocesador, e o resto son interrupcións externas, é dicir, o número máximo de interrupcións externas pódese ampliar ata 240. As súas principais características son as seguintes.
  • 240 interrupcións externas, cada solicitude de interrupción ten bits de control de máscara e disparador independentes, con bits de estado dedicados
  • A prioridade de interrupción programable admite 2 niveis de aniñamento
  • Interrupción rápida especial de entrada/salida do mecanismo, apilado automático de hardware e recuperación, profundidade máxima de HPE de 2 niveis
  • Mecanismo de resposta ás interrupcións sen táboas de vectores (VTF), acceso directo programable de 2 canles a enderezos de vectores de interrupción
  • Nota: A profundidade máxima de aniñamento e a profundidade HPE admitidas polos controladores de interrupción varían segundo os diferentes modelos de microprocesador, que se poden atopar na Táboa 1-1.
  • A táboa vectorial de interrupcións e excepcións móstrase na táboa 3-1 a continuación.

Táboa 3-1 Táboa de vectores de excepción e interrupción

Número Prioridade Tipo Nome Descrición
0
1
2 -5 Fixo NMI Interrupción non enmascarable
3 -4 Fixo EXC Interrupción de excepción
4
5 -3 Fixo ECALL-M Interrupción de devolución de chamada en modo máquina
6-7
8 -2 Fixo ECALL-U Interrupción de devolución de chamada do modo de usuario
9 -1 Fixo PUNTO DE RUPTURA Interrupción de devolución de chamada do punto de interrupción
10-11
12 0 Programable SysTick Interrupción do temporizador do sistema
13
14 1 Programable SWI Interrupción de software
15
16-255 2-241 Programable Interrupción externa Interrupción externa 16-255

Nota: ECALL-M, ECALL-U e BREAKPOINT son distintos tipos de excepción EXC, que son independentes en V3B/C para facilitar o seu uso, e os tres enderezos de entrada anteriores compártense con EXC en V3A.

Conxunto de rexistro PFIC

Táboa 3-2 Rexistros PFIC

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_ISRx 0xE000E000

-0xE000E01C

RO Interrupción do rexistro de estado de habilitación x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO Interrupción do rexistro de estado pendente x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW Rexistro de configuración de limiar de prioridade de interrupción 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW Rexistro de enderezos base VTF

Nota: Válido só para V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Interrupción do rexistro de configuración

Nota: Válido só para V3A

0x00000000
PFIC_GISR 0xE000E04C RO Interrupción do rexistro de estado global 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

Rexistro de configuración de ID de interrupción VTF

Nota: Válido só para V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x rexistro de enderezos compensados 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO Rexistro de configuración de habilitación de interrupción x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO Activar interrupción borrar o rexistro x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Interrompe o rexistro de configuración pendente x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Interrupción pendente de borrar o rexistro x 0x00000000
PFIC_IACTRx 0xE000E300

-0xE000E31C

RO Rexistro de estado de activación de interrupción x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW Rexistro de configuración de prioridade de interrupción 0x00000000
PFIC_SCTLR 0xE000ED10 RW Rexistro de control do sistema 0x00000000

Nota:

  1. NMI, EXC, ECALL-M, ECALL-U e BREAKPOINT sempre están activados por defecto.
  2. ECALL-M, ECALL-U e BREAKPOINT son un caso de EXC.
  3. NMI, EXC, ECALL-M, ECALL-U e BREAKPOINT admiten a interrupción pendente da operación de borrado e configuración, pero non interrompe a activación da operación de borrado e configuración.

Cada rexistro descríbese do seguinte xeito:

Interrupción de estado de activación e interrupción de rexistros de estado pendentes (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
 PFIC_ISR0  0xE000E000  RO A interrupción 0-31 activa o rexistro de estado, un total de 32 bits de estado [n], o que indica que a interrupción #n habilita o estado

Nota: NMI e EXC están habilitados por defecto

 Para V3A: 0x0000000C

Para V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO A interrupción 32-63 activa o rexistro de estado, un total de 32 bits de estado 0x00000000
PFIC_ISR7 0xE000E01C RO A interrupción 224-255 activa o rexistro de estado, un total de 32 bits de estado 0x00000000
PFIC_IPR0 0xE000E020 RO Interrupción 0-31 estado pendente 0x00000000
rexistro, un total de 32 bits de estado [n], que indican o estado pendente da interrupción #n
PFIC_IPR1 0xE000E024 RO Interrupción 32-63 rexistros de estado pendentes, 32 bits de estado en total 0x00000000
PFIC_IPR7 0xE000E03C RO Interrupción 244-255 pendente do rexistro de estado, 32 bits de estado en total 0x00000000

Utilízanse dous conxuntos de rexistros para activar e desactivar as interrupcións correspondentes.

Interrupción da configuración de habilitación e borrado de rexistros (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_IENR0 0xE000E100 WO A interrupción 0-31 permite configurar o rexistro, un total de 32 bits de configuración [n], para a configuración de habilitación da interrupción #n

Nota: NMI e EXC son activado por defecto

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Interrumpe 32-63 para activar o rexistro de configuración, un total de 32 bits de configuración 0x00000000
PFIC_IENR7 0xE000E11C WO Configuración de activación da interrupción 224-255

rexistro, un total de 32 bits de configuración

0x00000000
 PFIC_IRER0  0xE000E180  WO As interrupcións 0-31 activan o rexistro de borrado, un total de 32 bits de borrado [n], para a interrupción #n habilita o borrado Nota: NMI e EXC non poden ser operado  

 

0x00000000

PFIC_IRER1 0xE000E184 WO A interrupción 32-63 permite un rexistro claro, un total de 32 bits claros 0x00000000
PFIC_IRER7 0xE000E19C WO A interrupción 244-255 permite un rexistro claro, un total de 32 bits claros 0x00000000

Utilízanse dous conxuntos de rexistros para activar e desactivar as interrupcións correspondentes.

Interrupción da configuración pendente e borrar rexistros (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
 

PFIC_IPSR0

 

0xE000E200

 

WO

Interrupción 0-31 rexistro pendente de configuración, 32

bits de configuración [n], para a interrupción #n pendente de configuración

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Interrupción 32-63 pendente do rexistro de configuración,

total de 32 bits de configuración

0x00000000
PFIC_IPSR7 0xE000E21C WO Interrupción 224-255 pendente de configuración

rexistro, 32 bits de configuración en total

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Interrupción 0-31 pendente de rexistro de borrado, un total de 32 bits de borrado [n], para a interrupción #n

pendente de aclarar

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Interrupción 32-63 pendente de borrar o rexistro,

total de 32 bits claros

0x00000000
PFIC_IPRR7 0xE000E29C WO Interrupción 244-255 pendente de borrar o rexistro,

total de 32 bits claros

0x00000000

Cando o microprocesador activa unha interrupción, pódese configurar directamente a través do rexistro pendente de interrupción para activar a interrupción. Use o rexistro de borrado pendente de interrupción para borrar o disparador pendente.

Rexistro de estado de activación de interrupcións (PFIC_IACTR<0-7>)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
 PFIC_IACTR0  0xE000E300  RO A interrupción 0-31 activa o rexistro de estado con 32 bits de estado [n], indicando que se está a executar a interrupción #n  0x00000000
 PFIC_IACTR1  0xE000E304  RO Interrupción 32-63 rexistros de estado de activación, 32 bits de estado dentro

total

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Interrompe 224-255 rexistros de estado de activación, un total de 32 bits de estado  0x00000000

Cada interrupción ten un bit de estado activo que se configura cando se introduce a interrupción e borra o hardware cando volve o mercado.

Rexistros de prioridade de interrupción e limiar de prioridade (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_IPRIOR0 0xE000E400 RW Interrupción da configuración de prioridade 0. V3A: [7:4]: Bits de control prioritarios Se a configuración non está aniñada, non hai bit de preferencia Se se configura o aniñamento, o bit7 é o bit de preferencia. [3:0]: reservado, fixado en 0  V3B: [7:6]: Bits de control prioritarios Se a configuración non está aniñada, non se configuran bits preventivos aniñados, todos os bits son preemprados, pero permítense que se produzan ata dous niveis de interrupcións [5:0]: Reservado, fixado en 0
V3C:
[7:5]: bits de control prioritarios
Se a configuración non está aniñada, non hai bits preventivos
Se se configura aniñado, todos os bits preséntanse, pero permítense que se produzan ata dous niveis de interrupcións [4:0]: Reservado, fixado en 0 Nota: Canto menor sexa o valor de prioridade, maior será a prioridade. Se a mesma interrupción de prioridade de preferencia se bloquea ao mesmo tempo, primeiro executarase a interrupción con prioridade máis alta.
0x00
PFIC_IPRIOR1 0xE000E401 RW Configuración de prioridade de interrupción 1, mesma función que PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW Configuración de prioridade de interrupción 2, mesma función que PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW Axuste de prioridade de interrupción 254, mesma función que PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW Configuración de prioridade de interrupción 255, mesma función que PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW Configuración do limiar de prioridade de interrupción

V3A:

[31:8]: Reservado, fixado en 0 [7:4]: Limiar de prioridade [3:0]: Reservado, fixado en 0

 V3B:

[31:8]: Reservado, fixado en 0 [7:5]: Limiar de prioridade [4:0]: Reservado, fixado en 0

 V3C:

[31:8]: Reservado, fixado en 0 [7:5]: Limiar de prioridade [4:0]: Reservado, fixado en 0

Nota: Para interrupcións cun valor de prioridade ≥ limiar, a función de servizo de interrupcións non se executa cando se produce un bloqueo e, cando este rexistro é 0, significa que o rexistro de limiar non é válido.

0x00

Rexistro de configuración de interrupcións (PFIC_CFGR)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_CFGR 0xE000E048 RW Interrupción do rexistro de configuración 0x00000000

Este rexistro só é válido para V3A, os seus bits defínense como:

Bit Nome Acceso Descrición Restablecer o valor
[31:16] CÓDIGO DE CLAVE WO Correspondente a diferentes bits de control de destino, os datos de identificación de acceso de seguridade correspondentes deben escribirse simultáneamente para modificar e os datos de lectura fixaranse en 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. 0
[15:8] Reservado RO Reservado 0
7 SYSRESET WO Restablecemento do sistema (escritura simultánea en KEY3). Borrado automático 0.

Escribir 1 é válido, escribir 0 non é válido.

Nota: A mesma función que o bit SYSRESET do rexistro PFIC_SCTLR.

0
6 PFICRESET WO Reinicio do módulo PFIC. Borrado automático 0.

Escribir 1 é válido, escribir 0 non é válido.

0
5 EXPRESO WO Interrupción de excepción pendente de borrar (escritura simultánea en KEY2)

Escribir 1 é válido, escribir 0 non é válido.

0
4 EXCSET WO Configuración pendente de interrupción de excepción (escritura simultánea en KEY2)

Escribir 1 é válido, escribir 0 non é válido.

0
3 NMIRESET WO Interrupción NMI pendente de borrar (escritura simultánea en KEY2)

Escribir 1 é válido, escribir 0 non é válido.

0
2 NMISET WO Configuración pendente de interrupción NMI (escritura simultánea en KEY2)

Escribir 1 é válido, escribir 0 non é válido.

0
1 NESTCTRL RW A anidación de interrupcións permite o control.

1: apagado; 0: activado (escritura síncrona en KEY1)

0
0 HWSTKCTRL RW Control de activación de HPE

1: apagado; 0: activado (escritura síncrona en KEY1)

0

Interrupción do rexistro de estado global (PFIC_GISR)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_GISR 0xE000E04C RO Interrupción do rexistro de estado global 0x00000000

A súa xente defínese como

Bit Nome Acceso Descrición Restablecer o valor
[31:14] Reservado RO Reservado 0
 

 

13

 

 

LOCKSTA

 

 

RO

Se o procesador está actualmente nun estado bloqueado:

1: estado bloqueado;

0: estado non bloqueado.

Nota: Este bit só é válido para V3B/C.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

Se o procesador está actualmente en estado de depuración: 1: Estado de depuración;

0: estado non depurado.

Nota: Este bit só é válido para V3B/C.

 

 

0

 

 

11

 

 

GLOBIO

 

 

RO

Activación da interrupción global:

1: Activar a interrupción;

0: Desactivar a interrupción.

Nota: Este bit só é válido para V3B/C.

10 Reservado RO Reservado 0
9 GPENDSTA RO Indica se hai unha interrupción pendente actualmente.

1: Si; 0: Non.

0
8 GACTSTA RO Indica se se está a executar unha interrupción.

1: Si; 0: Non.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

Estado actual de anidación das interrupcións. 0x03: en interrupción de nivel 2.

0x01: en interrupción de nivel 1. 0x00: non se producen interrupcións.

Outros: situación imposible.

 

 

0

Enderezo base de ID VTF e rexistros de enderezos compensados ​​(PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: 4 bits altos do enderezo de destino de VTF [27:0]: reservado

Este rexistro é válido só para V3A.

 

 

0x00000000

 

 

 

PFIC_VTFIDR

 

 

 

0xE000E050

 

 

 

RW

[31:24]: Número de VTF 3 [23:16]: Número de VTF 2 [15:8]: Número de VTF 1 [7:0]: Número de VTF 0

Este rexistro é válido só para V3B/C.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: número de interrupción VTF 0 [23:0]: os 24 bits baixos do enderezo de destino VTF, dos cales os 20 bits baixos están configurados para ser válidos, e [23:20] está fixado en 0 .

 V3B/C:

[31:1]: enderezo VTF 0, aliñado a 2 bytes [0]:

1: Activar a canle VTF 0

0: desactivar

 

 

 

 

 

 

 

Para V3A: 0x00000000

Para V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: número de interrupción VTF 1 [23:0]: os 24 bits baixos do enderezo de destino VTF, dos cales os 20 bits baixos están configurados para ser válidos e [23:20] está fixado en 0.

 

V3B/C:

[31:1]: enderezo VTF 1, aliñado a 2 bytes [0]:

1: Activar a canle VTF 1

0: desactivar

 

 

 

 

 

 

 

Para V3A: 0x00000000

Para V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: número de interrupción VTF 2 [23:0]: os 24 bits baixos do enderezo de destino VTF, dos cales os 20 bits baixos están configurados para ser válidos, e [23:20] está fixado en 0 .

 

V3B/C:

[31:1]: enderezo VTF 2, aliñado a 2 bytes [0]:

1: Activar a canle VTF 2

0: desactivar

 

 

 

 

 

 

 

Para V3A: 0x00000000

Para V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: Para V3A:
[31:24]: número de interrupción VTF 3 [23:0]: os 24 bits baixos do enderezo de destino VTF, dos cales os 20 bits baixos están configurados para ser válidos, e [23:20] está fixado en 0.

 V3B/C:

[31:1]: enderezo VTF 3, aliñado a 2 bytes [0]:

1: Activar a canle VTF 3

0: desactivar

0x00000000

Para V3B/C: 0xXXXXXXXXX

Rexistro de control do sistema (PFIC_SCTLR)

Nome Enderezo de acceso Acceso Descrición Restablecer o valor
PFIC_SCTLR 0xE000ED10 RW Rexistro de control do sistema 0x00000000

Cada un deles defínese do seguinte xeito.

Bit Nome Acceso Descrición Restablecer o valor
31 SYSRESET WO Restablecemento do sistema, borrado automático 0. Escribir 1 é válido e escribir 0 non é válido.

Nota: Este bit só é válido para V3B/C

0
[30:6] Reservado RO Reservado 0
5 SEVENTO WO Establece o evento para espertar o caso WFE. 0
 

4

SEVONPEND RW Cando se produce un evento ou interrompe un estado pendente, o sistema pódese espertar despois da instrución WFE ou, se a instrución WFE non se executa, o sistema activarase inmediatamente despois da seguinte execución da instrución.

1: Os eventos activados e todas as interrupcións (incluídas as interrupcións non activadas) poden activar o sistema.

0: só eventos activados e activados

As interrupcións poden espertar o sistema.

 

 

 

0

3 WFITOWFE RW Execute o comando WFI coma se fose un WFE.

1: Trate a instrución WFI posterior como unha instrución WFE.

0: Sen efecto.

0
2 DURMIR PROFUNDO RW Modo de baixa potencia do sistema de control. 0
1: sono profundo 0: sono
1 SLEEPONEXI T RW Estado do sistema despois de que o control abandone o programa de servizo de interrupción.

1: O sistema entra en modo de baixa potencia.

0: O sistema entra no programa principal.

0
0 Reservado RO Reservado 0

Rexistros de RSE relacionados coas interrupcións

Ademais, os seguintes rexistros de RSE tamén teñen un impacto significativo no tratamento das interrupcións. Rexistro de control do sistema de interrupción (intsyscr)

Este rexistro non é válido só para V3A:

Nome RSE Enderezo Acceso Descrición Restablecer o valor
intsyscr 0x804 URW Interrupción do rexistro de control do sistema 0x0000E002

A súa xente defínese como:

Bit Nome Acceso Descrición Restablecer o valor
 

 

 

31

 

 

 

BLOQUEO

 

 

 

URO

0: Este rexistro pódese ler e escribir en modo usuario;

1: Este rexistro só se pode ler e escribir en modo máquina.

Nota: Este bit de configuración é válido desde

versión 1.0 en diante.

 

 

 

0

[30:6] Reservado URO Reservado 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

A interrupción global e o apagado da pila de hardware están activados.

Nota: este bit úsase a miúdo nos sistemas operativos en tempo real. Cando se cambia o contexto durante unha interrupción, establecer este bit pode desactivar a interrupción global e empurrar a pila de hardware. Cando se complete o cambio de contexto e regrese a interrupción, o hardware farao

borrar automaticamente este bit.

 

 

 

 

 

0

4 Reservado URO Reservado 0
[3:2] PMTCFG URW Configuración de bits de prioridade:

00: O número de bits de preferencia é 0; 01: O número de bits de preferencia é 1; 10: O número de bits de preferencia é 2; 11: O número de bits de preferencia é 3; Nota: este bit de configuración é válido despois 1.0.

0
1 ESCOITA URW A función de anidamento de interrupcións está activada e o valor fixo é 1: 1
0: Desactivar;

1: Activar.

Nota: 1. O nivel de anidación real está controlado por NEST_LVL en CSR 0xBC1;

2. Só as versións posteriores á 1.0 poden ser

escrito.

0 HWSTKEN URW Activación da pila de hardware:

0: a función de prensado da pila de hardware está desactivada;

1: a función de prensado da pila de hardware está activada.

0

Rexistro de enderezos base de excepción do modo máquina (mtvec)

Nome RSE Enderezo Acceso Descrición Restablecer o valor
mtvec 0x305 MRW Rexistro de enderezos base de excepción 0x00000000

A súa xente defínese como

Bit Nome Acceso Descrición Restablecer o valor
[31:2] BASEADDR[31:2] MRW Enderezo base da táboa de vectores de interrupción, onde

os bits [9:2] están fixados en 0.

0
1 MODO 1  

MRO

Modo de recoñecemento da táboa de vectores de interrupción: 0: identifique mediante instrución de salto, con alcance limitado e admite instrucións sen salto;

1: Identifique por enderezo absoluto, admita a gama completa, pero debe saltar.

Nota: Este bit só é válido para V3B/C.

0
0 MODO 0 MRW Selección do modo de enderezo de entrada de interrupción ou excepción.

0: Uso do enderezo de entrada uniforme.

1: Desprazamento do enderezo baseado no número de interrupción *4.

0

Para MCU con microprocesadores da serie V3, MODE0 está configurado para ser 1 por defecto no inicio file, e as entradas para excepcións ou interrupcións son compensadas segundo o número de interrupción *4. Teña en conta que o microprocesador V3A almacena unha instrución de salto na táboa de vectores, mentres que o microprocesador V3B/C pode unha instrución de salto ou usar o enderezo absoluto da función de interrupción, que está configurado como un enderezo absoluto no inicio predeterminado. file.

Rexistro de configuración do microprocesador (corrector)

Este rexistro non é válido para V3A:

Nome RSE Enderezo Acceso Descrición Restablecer o valor
corecfgr 0xBC0 MRW Rexistro de configuración do microprocesador 0x00000001

A súa xente defínese como

Bit Nome Acceso Descrición Restablecer o valor
[31:8] Reservado MRO Reservado 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

Activación da interrupción do erro de estado do núcleo:

0: En caso de erro de estado, non se xera ningunha interrupción NMI;

1: En caso de erro de estado, a interrupción do NMI é

xerado.

 

 

0

6 Reservado MRO Mantéñase 0. 0
5 IE_REMAP_EN MRW A asignación do rexistro MIE permite:

0: o enderezo CSR 0x800 é un rexistro de só lectura e o valor de retorno é o valor de ESTADO;

1: Os bits 3 e 7 do enderezo CSR 0x800 están mapeados ao bit MIE do rexistro STATUS e ao bit MPIE do rexistro STATUS, respectivamente.

 

 

 

 

0

4 Reservado MRO Reservado 0
3 ROM_LOOP_ACC MRW Activación da aceleración do bucle de instrucións da área ROM:

0: Desactiva a función de aceleración cíclica na área ROM;

1: as instrucións continuas cun corpo de bucle dentro de 128 bytes aceleraranse totalmente, mentres que aquelas cun corpo de bucle dentro de 256 bytes aceleraranse parcialmente;

0
2 ROM_JUMP_ACC MRW Aceleración de salto de instrucións da área ROM habilitada:

0: Desactivar a aceleración de salto de instrucións da área ROM;

1: activa a aceleración de salto de instrucións na área ROM.

0
[1:0] FETCH_MODE MRW Modo de obtención:

00: a captura previa está desactivada. A función de obtención previa de instrucións está desactivada para evitar operacións de obtención de instrucións non válidas, e hai como máximo unha instrución válida na canalización da CPU. Este modelo ten o menor consumo de enerxía e o seu rendemento cae unhas 2 ~ 3 veces. 01: Modo de captación previa 1. Cando a función de captación previa de instrucións está activada, a CPU continuará accedendo á memoria de instrucións ata que o número de instrucións que se van executar no búfer de instrucións interno supere un determinado número ou o búfer de instrucións estea cheo e suspenderase a obtención de instrucións; (O fracaso da predición da CPU levará a unha operación de recuperación redundante e, nalgúns casos, a unidade de execución introducirá 0 ~ 2 ciclos de burbullas e o rendemento da maioría dos programas non diminuirá obviamente); 10: Reservado;
11: Modo de captación previa 2. Cando a función de captación previa de instrucións estea activada, a CPU continuará accedendo á memoria de instrucións e, se o búfer de instrucións está cheo, a CPU continuará intentando o enderezo. Este modo ten o maior rendemento e consumo de enerxía. O fallo da predición da CPU e o reintento introducirá operacións de recuperación redundantes e é posible que siga ocupando o ancho de banda da memoria. (Para a área ROM, reintento significa acceso discontinuo ao enderezo, polo que se recomenda activar ROM_ACC_EN).

0x1

Interrupción do rexistro de control anidado (inestcr)

Este rexistro non é válido só para V3A:

Nome RSE Enderezo Acceso Descrición Restablecer o valor
investidor 0xBC1 MRW Interrompe o rexistro de control anidado 0x00000000

A súa xente defínese como

Bit Nome Acceso Descrición Restablecer o valor
31 Reservado MRO Reservado 0
30 NEST_OV MRW Bit de marca de desbordamento anidado de interrupción/excepción, escriba 1 para borrar:

0: a interrupción non se desbordou; 1: Interrupción da bandeira de desbordamento.

Nota: O desbordamento da interrupción só se producirá cando se execute a función de servizo de interrupción secundaria para xerar unha excepción de instrución ou unha interrupción NMI. Neste momento, a excepción e a interrupción NMI entran normalmente, pero a pila da CPU desborda, polo que non pode saír desta excepción e

Interrupción do NMI.

0
[29:12] Reservado MRO Reservado 0
[11:8] NEST_STA MRO Bit de marca de estado anidado:

0000: sen interrupción;

0001: interrupción de nivel 1;

0011: interrupción de nivel 2 (anidamento de 1 nivel);

0
0111: interrupción de nivel 3 (desbordamento);

1111: interrupción de nivel 4 (desbordamento).

[7:2] Reservado MRO Reservado 0
[1:0] NEST_LVL MRW Nivel de nidificación:

00: a anidación está prohibida e a función de anidación está desactivada;

01: Aniñación de primeiro nivel, que activa a función de anidación;

Outro: non válido.

Nota: Escriba 10 ou 11 neste campo e o campo establecerase como 01. Ao escribir 11 neste campo, lea este rexistro para obter o nivel de anidamento máis alto do chip.

0

Rexistro de habilitación de interrupción global do modo de usuario (interno)

Este rexistro non é válido só para V3A:

Nome RSE Enderezo Acceso Descrición Restablecer o valor
gintenr 0x800 URW Rexistro de activación de interrupción global 0x00000000

Este rexistro úsase para controlar a activación e a máscara da interrupción global. A habilitación e a máscara da interrupción global no modo máquina poden controlarse polos bits MIE e MPIE no estado, pero este rexistro non se pode operar no modo usuario.
O rexistro de activación da interrupción global gintenr é a asignación de MIE e MPIE en mstatus, e pódese usar para configurar e borrar MIE e MPIE operando gintenr no modo de usuario.

Cada un deles defínese como:

Bit Nome Acceso Descrición Restablecer o valor
[31:13] Reservado URO Reservado 0
[12:11] MPP URO Introduza o modo privilexiado antes da interrupción. 0
[10:8] Reservado URO Reservado 0
7 MPIE URW Cando 0xBC0(CSR)bit5 está activado, este bit

pódese ler e escribir en modo usuario.

0
[6:4] Reservado URO Reservado 0
3 MIE URW Cando 0xBC0(CSR)bit5 está activado, este bit

pódese ler e escribir en modo usuario.

0
[1:0] Reservado URO Reservado 0

Interrupción da anidación

En conxunto co rexistro de interrupción, o rexistro de configuración PFIC_CFGR e o rexistro de prioridade de interrupción PFIC_IPRIOR, pódese permitir que se produza o aniñamento de interrupcións. Active o aniñamento no rexistro de configuración de interrupcións (o anidamento está activado por defecto para os microprocesadores da serie V3) e configure a prioridade da interrupción correspondente. Canto menor sexa o valor de prioridade, maior será a prioridade. Canto menor sexa o valor do bit de preferencia, maior será a prioridade de preferencia. Se hai interrupcións pendentes ao mesmo tempo baixo a mesma prioridade de preferencia, o microprocesador responde primeiro á interrupción co valor de prioridade máis baixo (prioridade máis alta).

Prólogo/epílogo de hardware (HPE)

  • Cando se produce unha excepción ou interrupción, o microprocesador detén o fluxo do programa actual e pasa á execución da función de manexo de excepción ou interrupción, é necesario gardar o sitio do fluxo do programa actual. Despois de que se produza a excepción ou a interrupción, é necesario restaurar o sitio e continuar coa execución do fluxo do programa detido. Para os microprocesadores da serie V3, o "sitio" aquí refírese a todos os rexistros de chamadas gardados na Táboa 1-2.
  • Os microprocesadores da serie V3 admiten o aforro automático de hardware dun ciclo único de 16 dos rexistros con forma gardados pola chamada nunha área de pila interna que non é visible para o usuario. Cando volve unha excepción ou interrupción, o ciclo único de hardware restaura automaticamente os datos da área de pila interna aos rexistros en forma de 16. HPE admite anidamento de ata 2 niveis de profundidade.
  • Na seguinte figura móstrase un esquema da pila de presión do microprocesador.WH-V3-Microprocesador-fig-2

Nota:

  1. As funcións de interrupción que utilizan o HPE deben compilarse mediante MRS ou a súa cadea de ferramentas proporcionada e a función de interrupción debe declararse con __attribute__((interrupt ("WCH-Interrupt-fast"))).
  2. A función de interrupción que usa stack push declárase por __attribute__((interrupt())).

Táboa Vectorial Libre (VTF)

  • O controlador de interrupción rápida programable (PFIC) ofrece 4 canles VTF, é dicir, acceso directo á entrada da función de interrupción sen pasar polo proceso de busca da táboa de vectores de interrupción.
  • A canle VTF pódese habilitar escribindo o seu número de interrupción, o enderezo base da función de interrupción e o enderezo de compensación no rexistro correspondente do controlador PFIC mentres se configura unha función de interrupción normalmente.
  • O proceso de resposta PFIC para interrupcións rápidas e sen táboas móstrase na Figura 3-2 a continuación.WH-V3-Microprocesador-fig-3

Protección da memoria física PMP

  • Para mellorar a seguridade do sistema, o módulo de protección da memoria física (PMP) está deseñado segundo o estándar de arquitectura RISC-V para os microprocesadores da serie V3 de cebada de montaña. Admítese a xestión de dereitos de acceso de ata 4 rexións físicas. Os permisos inclúen atributos de lectura (R), escritura (W) e execución (X), e a lonxitude da área protexida pódese establecer como mínimo en 4 bytes. O módulo PMP sempre ten efecto no modo de usuario, pero pode ter efecto opcionalmente bloqueando o atributo (L) no modo máquina.
  • Se o acceso viola o límite de permisos actual, provocará unha interrupción anormal. O módulo PMP inclúe catro grupos de rexistros de configuración de 8 bits (un grupo de 32 bits) e catro grupos de rexistros de enderezos, aos que se debe acceder a todos en modo máquina mediante instrucións CSR.
  • Nota: O número de áreas protexidas soportadas por PMP en diferentes modelos de microprocesadores pode ser diferente e o número admitido polos rexistros pmpcfg e pmpaddr tamén é diferente. Consulte a Táboa 1-1 para obter máis información.

Conxunto de rexistro PMP

A lista de rexistros CSR admitidos polo módulo PMP do microprocesador V3 móstrase na Táboa 4-1 a continuación.

Táboa 4-1 Conxunto de rexistros do módulo PMP

Nome Dirección de RSE Acceso Descrición Restablecer o valor
pmpcfg0 0x3A0 MRW Rexistro de configuración PMP 0 0x00000000
pmpaddr0 0x3B0 MRW Rexistro de enderezos PMP 0 0xXXXXXXXXX
pmpaddr1 0x3B1 MRW Rexistro de enderezos PMP 1 0xXXXXXXXXX
pmpaddr2 0x3B2 MRW Rexistro de enderezos PMP 2 0xXXXXXXXXX
pmpaddr3 0x3B3 MRW Rexistro de enderezos PMP 3 0xXXXXXXXXX

Pmp

pmpcfg é o rexistro de configuración da unidade PMP, e cada rexistro contén catro campos de bombeo de 8 bits, correspondentes á configuración de catro rexións, e o bombeo representa o valor de configuración da rexión i. O seu formato móstrase na seguinte táboa 4-2.

Táboa 4-2 rexistro pmpcfg0WH-V3-Microprocesador-fig-4

pmpcfg úsase para configurar a área I e a súa definición de bit descríbese na seguinte táboa 4-3.

Táboa 4-3

Bit Nome Descrición
7 L O bloqueo está activado e pódese desbloquear no modo máquina. 0: Non bloqueado;

1: Bloquear o rexistro correspondente.

[6:5] Reservado
[4:3] A Aliñación de enderezos e selección de intervalos de área de protección. 00: DESACTIVADO (PMP desactivado)

01: TOR (protección de aliñamento superior) 10: NA4 (protección fixa de catro bytes)

11: NAPOT (2(G+2) protección de bytes, G≥1)

2 X Atributo executable.
0: Sen permiso de execución;

1: Executar permiso.

 

1

 

W

Atributo escribible.

0: Sen permiso de escritura 1: Permiso de escritura.

 

0

 

R

Atributo lexible

0: Sen permiso de lectura 1: Permiso de lectura.

pmaddr

O rexistro pmpaddr utilízase para configurar o enderezo da área I. A definición estándar está baixo a arquitectura RV32, que é a codificación dos 32 bits superiores dun enderezo físico de 34 bits, e o seu formato móstrase na seguinte táboa 4-4 .
Todo o espazo de enderezos físicos do microprocesador V3 é 4G, polo que non se usan os dous bits superiores deste rexistro.

Táboa 4-4 pmaddrWH-V3-Microprocesador-fig-5

Cando se selecciona NAPOT, o bit baixo do rexistro de enderezos tamén se usa para indicar o tamaño da área de protección actual, como se mostra na seguinte táboa, onde "y" é un bit do rexistro.
Táboa 4-5 Táboa de relacións entre a configuración PMP e o rexistro de enderezos e a área protexida.

pmpaddr pmpcfg. A Correspondencia de enderezo base e tamaño
aaaaaaaaaaaaa NA4 Con 'yy...yyyy00' como enderezo base, a área de 4 bytes está protexida.
aaaaaaaaaaa0 NAPOT Con 'yy...yyy000' como enderezo base, a área de 8 bytes está protexida.
aaaa... aaa01 NAPOT Con 'yy...yy0000' como enderezo base, a área de 16 bytes está protexida.
aaaa... a011 NAPOT Con 'yy...y00000' como enderezo base, a área de 16 bytes está protexida.
aaa01...111 NAPOT Con 'y0...000000' como enderezo base, a área de 231 bytes está protexida.
aa011...111 NAPOT Protexa toda a área de 232 bytes.

Mecanismo de protección

X/W/R en pmpcfg utilízase para establecer a autoridade de protección da área I, e a violación da autoridade pertinente provocará unha excepción correspondente:

  1. Ao tentar obter instrucións na área PMP sen autorización de execución, provocará unha excepción de erro de acceso á obtención de instrucións (mcause=1).
  2. Ao tentar escribir datos na área PMP sen permiso escrito, provocará unha excepción de erro (mcause=7) no acceso á instrución da tenda.
  3. Ao tentar ler datos na área PMP sen permiso de lectura, provocará un erro de acceso á memoria anormal (mcause=5) para a instrución de carga.

A en pmpcfg utilízase para establecer o rango de protección e o aliñamento de enderezos da rexión I, e para protexer a memoria de A_ADDR ≤ rexión < i > < B_ADDR (que tanto A_ADDR como B_ADDR deben estar aliñados en 4 bytes):

  1. Se B _ ADDR–A_ADDR = = 22, adóptase o modo NA4;
  2. Se B _ ADDR–A_ADDR = = 2(G+2), G≥1 e un enderezo _ é 2(g+2), adóptase o método NAPOT;
  3. En caso contrario, adóptase o modo TOP.

Táboa 4-6 Métodos de coincidencia de enderezos PMP

Un valor Nome Descrición
0b00 DESACTIVADO Non hai zona que protexer
0b01 TOR Protección da área aliñada superior.

Baixo pmp

pmpaddri = B_ADDR >> 2.

Nota: Se a área 0 de PMP está configurada como modo TOR (i=0), o límite inferior da área de protección é o enderezo 0, é dicir, 0 ≤ addr < pmpaddr0, todo dentro do intervalo coincidente.

0b10 NA4 Protección de área fixa de 4 bytes.

pmp

0b11 NAPOT Protexa a rexión 2(G+2) con G ≥ 1, cando A_ADDR estea aliñada 2(G+2). pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< > 1.
  • O bit L en pmp
  • Os microprocesadores da serie QingKe V3 admiten a protección de varias zonas. Cando a mesma operación coincide con varias zonas ao mesmo tempo, a zona co número menor corresponde primeiro.

Temporizador do sistema (SysTick)

  • O microprocesador da serie QingKe V3 está deseñado cun contador de 32 ou 64 bits (SysTick) no seu interior. A súa fonte de reloxo é o reloxo do sistema ou a súa división de 8 frecuencias, e V3A só admite a división de 8 frecuencias.
  • Pode proporcionar unha base de tempo, temporización e tempo de medición para un sistema operativo en tempo real. Os distintos tipos de rexistros implicados no temporizador teñen diferentes enderezos de asignación, como se mostra nas seguintes táboas 5-1 e 5-2.

Táboa 5-1 Lista de rexistros SysTick V3A

Nome Enderezo de acceso Descrición Restablecer o valor
STK_CTLR 0xE000F000 Rexistro de control do contador do sistema 0x00000000
STK_CNTL 0xE000F004 Rexistro baixo do contador do sistema 0xXXXXXXXXX
STK_CNTH 0xE000F008 Contador do sistema de rexistro alto

Nota: Só válido para V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C Rexistro baixo do valor de comparación do conteo do sistema 0xXXXXXXXXX
STK_CMPHR 0xE000F010 Rexistro alto do valor de comparación do conteo do sistema

Nota: Só válido para V3A.

0xXXXXXXXXX

Táboa 5-2 Lista de rexistros SysTick V3 doutros modelos

Nome Enderezo de acceso Descrición Restablecer o valor
STK_CTLR 0xE000F000 Rexistro de control do contador do sistema 0x00000000
STK_SR 0xE000F004 Rexistro de estado do contador do sistema 0x00000000
STK_CNTL 0xE000F008 O rexistro baixo do contador do sistema 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Rexistro baixo de valor de comparación de conta 0xXXXXXXXXX

Cada rexistro descríbese detalladamente como segue.

Rexistro de control do contador do sistema (STK_CTLR)

Táboa 5-3 Rexistros de control SysTick

Bit Nome Acceso Descrición Restablecer o valor
[31:5] Reservado RO Reservado 0
 

 

4

 

 

MODO

 

 

RW

Modo de conta: 1: conta atrás;

0: Conta arriba.

Nota: non válido para V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Bit de habilitación do reconto automático de recargas:

1: Conta desde 0 de novo despois de contar ata o valor de comparación e conta de novo desde o valor de comparación despois de contar ata 0;

0: continúa contando cara arriba/abaixo.

Nota: non válido para V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Bit de selección de fonte de contrarreloxo:

1: HCLK como base de tempo; 0: HCLK/8 como base de tempo.

Nota: non é válido para V3A, que só é compatible

HCLK/8 como base de tempo.

 

 

0

1 SITIO RW Bits de control de habilitación de contador de interrupción: 0
1: Activar a interrupción do contador; 0: Desactivar a interrupción do contador.

Nota: non válido para V3A.

0 STE RW O contador do sistema activa un bit de control. 1: Activar o contador do sistema STK;

0: Desactive o contador do sistema STK e o contador deixará de contar.

0

Rexistro de estado do contador do sistema (STK_SR)

Este rexistro non se aplica a V3A.

Táboa 5-4 Rexistro baixo do contador SysTick

Bit Nome Acceso Descrición Restablecer o valor
 

 

31

 

 

SWIE

 

 

RW

Activación de activación de interrupción de software (SWI): 1: activación de interrupción de software;

0: Apague o gatillo.

Nota: Este bit debe borrarse despois de introducir a interrupción do software, se non, sempre se activará.

 

 

0

[30:1] Reservado RO Reservado 0
 

 

0

 

 

CNTIF

 

 

RW

Indicador de comparación de contas, escriba 0 claramente, escriba 1 non é válido:

1: Conta ata o valor de comparación e conta ata 0;

0: non se alcanza o valor de comparación.

 

 

0

Rexistro baixo do contador do sistema (STK_CNTL)

Táboa 5-5 Rexistro baixo do contador SysTick

Bit Nome Acceso Descrición Restablecer o valor
[31:0] CNTL RW O valor de contador actual é 32 bits máis baixo. Para V3A, este rexistro pódese ler como 8-bit/16-bit

/32 bits, pero só se pode escribir como 8 bits e outros

modelos non están limitados.

0xXXXXXX XXX

Nota: Rexistrar STK_CNTL e rexistrar STK_CNTH en V3A xuntos constitúen un contador de sistema de 64 bits.

Rexistro alto do contador do sistema (STK_CNTH)

Táboa 5-6 Rexistro alto do contador SysTick

Bit Nome Acceso Descrición Restablecer o valor
[31:0] CNTH RW O valor do contador actual é 32 bits máis alto. Este rexistro pódese ler en 8 bits/16 bits/32 bits, pero só se pode escribir en 8 bits.

Nota: Só válido para V3A.

0xXXXXXX XXX

Nota: Rexistrar STK_CNTL e rexistrar STK_CNTH en V3A xuntos constitúen un contador de sistema de 64 bits.

Rexistro baixo do valor de comparación do conteo do sistema (STK_CMPLR)

Táboa 5-7 Rexistro baixo do valor de comparación de SysTick

Bit Nome Acceso Descrición Restablecer o valor
[31:0] CMPL RW Establece o valor de comparación do contador en 32 bits máis baixo. Cando o valor CMP e o valor CNT son iguais, activarase unha interrupción STK. Para V3A, este rexistro pódese ler como 8 bits/16 bits/32 bits, pero só pode ser

escrito como 8 bits, e outros modelos non están limitados.

0xXXXXXX XXX

Nota: O rexistro STK_CMPLR e o rexistro STK_CMPHR en V3A constitúen xuntos o valor de comparación do contador de 64 bits.

Rexistro alto do valor de comparación do reconto do sistema (STK_CMPHR)

Táboa 5-8 Rexistro alto do valor de comparación de SysTick

Bit Nome Acceso Descrición Restablecer o valor
[31:0] CMPH RW Establece o valor de comparación do contador 32 bits máis alto. A interrupción STK activarase cando o valor CMP e o valor CNT sexan iguais.

Este rexistro pódese ler en 8 bits/16 bits/32 bits, pero só se pode escribir en 8 bits.

Nota: Só válido para V3A.

0xXXXXXX XXX

Nota: O rexistro STK_CMPLR e o rexistro STK_CMPHR en V3A constitúen xuntos o valor de comparación do contador de 64 bits.

Configuración de baixo consumo do procesador

  • Os microprocesadores da serie QingKe V3 admiten o estado de suspensión mediante instrucións WFI (Wait for Interrupt) para lograr un baixo consumo de enerxía estática.
  • Xunto co rexistro de control do sistema de PFIC (PFIC_SCTLR), pódense implementar varios modos de suspensión e instrucións WFE.

Entra a durmir

  • Os microprocesadores da serie QingKe V3 poden durmir de dous xeitos, Wait for Interrupt (WFI) e Wait For Event (WFE). O método WFI significa que o microprocesador pasa a durmir, espera a que se esperte unha interrupción e despois esperta a interrupción correspondente para executarse. O método WFE significa que o microprocesador pasa a durmir, espera a que se esperte un evento e esperta para continuar executando o fluxo do programa detido anteriormente.
  • O estándar RISC-V admite instrucións WFI e o comando WFI pódese executar directamente para entrar en suspensión polo método WFI. Para o método WFE, o bit WFITOWFE no rexistro de control do sistema PFIC_SCTLR utilízase para controlar os comandos WFI posteriores como procesamento WFE para conseguir o método WFE para entrar en suspensión.
  • A profundidade do sono contrólase segundo o bit SLEEPDEEP en PFIC_SCTLR.
  • Se o SLEEPDEEP no rexistro PFIC_SCTLR queda a cero, o microprocesador entra no modo de suspensión e o reloxo da unidade interna pódese desactivar excepto SysTick e parte da lóxica de activación.
  • Se se define SLEEPDEEP no rexistro PFIC_SCTLR, o microprocesador entra no modo de suspensión profunda e pode desactivar todos os reloxos celulares.
  • Cando o microprocesador está en modo Depuración, non é posible entrar en ningún tipo de modo de suspensión.

Despertar do sono

Os microprocesadores da serie QingKe V3 pódense espertar despois do soño debido a WFI e WFE das seguintes formas.

Despois de que o método WFI se durmise, pódese espertar

  1. O microprocesador pode ser espertado pola fonte de interrupción á que responde o controlador de interrupción. Despois de espertar, o microprocesador executa primeiro a función de interrupción.
  2. Entra no modo de suspensión, a solicitude de depuración pode facer que o microprocesador se esperte e entre en suspensión profunda, a solicitude de depuración non pode espertar o microprocesador.

Despois de que o método WFE vaise a durmir, o microprocesador pódese espertar mediante o seguinte.

  1. Eventos internos ou externos, cando non hai que configurar o controlador de interrupción, esperta e continúa executando o programa.
  2. Se se activa unha fonte de interrupción, o microprocesador espertarase cando se xera unha interrupción e, despois de espertar, o microprocesador executa primeiro a función de interrupción.
  3. Se se configura o bit SEVONPEND en PFIC_SCTLR, o controlador de interrupción non activa a interrupción, pero cando se xera un novo sinal pendente de interrupción (o sinal pendente xerado anteriormente non ten efecto), tamén pode facer que o microprocesador esperte e o A bandeira pendente de interrupción correspondente debe borrarse manualmente despois de espertar.
  4. A solicitude de depuración do modo Suspensión pode activar o microprocesador e entrar en suspensión profunda; a solicitude de depuración non pode activar o microprocesador.
  • Ademais, o estado do microprocesador despois do espertar pódese controlar configurando o bit SLEEPONEXIT en PFIC_SCTLR.
  • SLEEPONEXIT está configurado e a instrución de retorno de interrupción de último nivel (mret) activará o modo de suspensión WFI.

SELEPONEXIT borrarase sen efecto.

Varios produtos MCU equipados con microprocesadores da serie V3 poden adoptar diferentes modos de suspensión, apagar diferentes periféricos e reloxos, implementar diferentes políticas de xestión de enerxía e métodos de activación segundo as diferentes configuracións de PFIC_SCTLR e realizar varios modos de baixa potencia.

Soporte para depuración

  • Os microprocesadores da serie QingKe V3 inclúen un módulo de depuración de hardware que admite operacións de depuración complexas. Cando se suspende o microprocesador, o módulo de depuración pode acceder aos GPR, CSR, memoria, dispositivos externos, etc. do microprocesador mediante comandos abstractos, instrucións de despregamento do búfer de programa, etc. O módulo de depuración pode suspender e retomar o funcionamento do microprocesador.
  • O módulo de depuración segue a especificación RISC-V External Debug Support Version 0.13.2, a documentación detallada pódese descargar desde RISC-V International websitio.

Módulo de depuración

  • O módulo de depuración dentro do microprocesador, capaz de realizar operacións de depuración emitidas polo host de depuración, inclúe.
  • Acceso aos rexistros a través da interface de depuración
  • Restablece, suspende e retoma o microprocesador a través da interface de depuración
  • Ler e escribir memoria, rexistros de instrucións e dispositivos externos a través da interface de depuración
  • Implementa varias instrucións arbitrarias a través da interface de depuración
  • Establecer puntos de interrupción do software a través da interface de depuración
  • Establecer puntos de interrupción de hardware a través da interface de depuración
  • Admite a execución automática de comandos abstractos
  • Admite a depuración dun só paso
  • Nota: V3A non admite puntos de interrupción de hardware, os puntos de interrupción de hardware V3B admiten a coincidencia de enderezos de instrucións e os puntos de interrupción de hardware V3C admiten a coincidencia de enderezos de instrucións e de datos.
  • Os rexistros internos do módulo de depuración usan un código de enderezo de 7 bits e os seguintes rexistros están implementados dentro dos microprocesadores da serie QingKe V3.

Táboa 7-1 Lista de rexistros de módulos de depuración

Nome Enderezo de acceso Descrición
datos 0 0x04 O rexistro de datos 0, pódese utilizar para o almacenamento temporal de datos
datos 1 0x05 O rexistro de datos 1, pódese utilizar para o almacenamento temporal de datos
descontrol 0x10 Rexistro de control do módulo de depuración
dmstatus 0x11 Rexistro de estado do módulo de depuración
hartinfo 0x12 Rexistro de estado do microprocesador
resumos 0x16 Rexistro de estado do comando abstracto
mando 0x17 Rexistro de comandos abstractos
auto abstracto 0x18 Execución automática de comandos abstractos
progbuf0-7 0x20-0x27 Rexistros da caché de instrucións 0-7
parada0 0x40 Pausa o rexistro de estado
  • O servidor de depuración pode controlar a suspensión, reinicio, reinicio, etc. do microprocesador configurando o rexistro de descontrol. O estándar RISC-V define tres tipos de comandos abstractos: rexistro de acceso, acceso rápido e memoria de acceso.
  • O microprocesador QingKe V3A só admite o acceso ao rexistro, outros modelos admiten o acceso ao rexistro e á memoria, pero non o acceso rápido. O acceso aos rexistros (GPR, CSR) e o acceso continuo á memoria pódese realizar mediante comandos abstractos.
  • O módulo de depuración implementa 8 rexistros de caché de instrucións progbuf0-7, e o servidor de depuración pode almacenar na caché varias instrucións (que poden ser instrucións comprimidas) no búfer e pode optar por seguir executando as instrucións nos rexistros da caché de instrucións despois de executar o comando abstracto ou executar directamente as instrucións almacenadas na caché.
  • Nota que a última instrución dos programas debe ser unha instrución "ebreak" ou "c.ebreak". Tamén é posible o acceso ao almacenamento, periféricos, etc. mediante comandos abstractos e instrucións almacenadas en caché nos programas.
  • Cada rexistro descríbese detalladamente como segue.
  • Rexistro de datos 0 (data0)

Táboa 7-2 Definición do rexistro de datos

Bit Nome Acceso Descrición Restablecer o valor
[31:0] datos 0 RW Rexistro de datos 0, usado para o almacenamento temporal de datos 0

Rexistro de datos 1 (data1)

Táboa 7-3 Definición do rexistro de datos 1

Bit Nome Acceso Descrición Restablecer o valor
[31:0] datos 1 RW Rexistro de datos 1, usado para o almacenamento temporal de datos 0

Rexistro de control do módulo de depuración (descontrol)

Este rexistro controla a pausa, o reinicio e a reanudación do microprocesador. O servidor de depuración escribe os datos no campo correspondente para facer unha pausa (haltreq), restablecer (ndmreset), retomar (resumereq). Vostede describe o seguinte.

Táboa 7-4 definición do rexistro de descontrol

Bit Nome Acceso Descrición Restablecer o valor
31 haltreq WO 0: borre a solicitude de pausa

1: Envía unha solicitude de pausa

0
30 resumeq W1 0: non válido

1: Restaurar o microprocesador actual

Nota: Escribir 1 é válido e o hardware borrarase despois de recuperar o microprocesador

0
29 Reservado RO Reservado 0
28 ackhavereset W1 0: non válido

1: Borra o bit de estado da colleita do microprocesador

0
[27:2] Reservado RO Reservado 0
1 ndmreset RW 0: Borrar reinicio

1: Restablece todo o sistema, excepto o módulo de depuración

 

0

0 desactivar RW 0: restablece o módulo de depuración

1: O módulo Depuración funciona correctamente

0

Rexistro de estado do módulo de depuración (estado dm)

  • Este rexistro úsase para indicar o estado do módulo de depuración e é un rexistro de só lectura coa seguinte descrición de cada bit.

Táboa 7-5 Definición do rexistro dmstatus

Bit Nome Acceso Descrición Restablecer o valor
[31:20] Reservado RO Reservado 0
19 todo haireset RO 0: non válido

1: Restablecemento do microprocesador

0
18 anyhavereset RO 0: non válido

1: Restablecemento do microprocesador

0
17 todoresumeack RO 0: non válido

1: Restablecemento do microprocesador

0
16 calqueraresumeack RO 0: non válido

1: Restablecemento do microprocesador

0
[15:14] Reservado RO Reservado 0
13 aluvial RO 0: non válido

1: O microprocesador non está dispoñible

0
12 calquera proveito RO 0: non válido

1: O microprocesador non está dispoñible

0
11 todos correndo RO 0: non válido

1: O microprocesador está funcionando

0
10 calquera carreira RO 0: non válido

1: O microprocesador está funcionando

0
9 detido RO 0: non válido

1: O microprocesador está en suspensión

0
8 calquera detido RO 0: non válido

1: Microprocesador fóra de suspensión

0
7 autenticado  

RO

0: é necesaria a autenticación antes de usar o módulo de depuración

1: o módulo de depuración foi certificado

 

0x1

[6:4] Reservado RO Reservado 0
[3:0] versión RO Versión de arquitectura de soporte do sistema de depuración 0010: V0.13 0x2

Rexistro de estado do microprocesador (hartinfo)

Este rexistro úsase para proporcionar información sobre o microprocesador ao host de depuración e é un rexistro de só lectura con cada bit descrito a continuación.

Táboa 7-6 Definición do rexistro hartinfo

Bit Nome Acceso Descrición Restablecer o valor
[31:24] Reservado RO Reservado 0
[23:20] rascar RO Número de rexistros scratch admitidos 0x3
[19:17] Reservado RO Reservado 0
16 Acceso a datos RO 0: o rexistro de datos está asignado ao enderezo CSR

1: O rexistro de datos está asignado ao enderezo de memoria

0x1
[15:12] tamaño dos datos RO Número de rexistros de datos 0x2
  [11:0] agregar datos  

RO

O enderezo de compensación do rexistro de datos data0,

cuxo enderezo base é 0xe0000000, está suxeito a lectura específica.

0xXXX

Control de comandos abstractos e rexistros de estado (resúmenes)

Este rexistro úsase para indicar a execución do comando abstracto. O servidor de depuración pode ler este rexistro para saber se se executa ou non o último comando abstracto e pode comprobar se se xera un erro durante a execución do comando abstracto e o tipo de erro, que se describe detalladamente a continuación.

Táboa 7-7 definicións do rexistro de resumos

Bit Nome Acceso Descrición Restablecer o valor
[31:29] Reservado RO Reservado 0
[28:24] progbufsize RO Indica o número de programa de memoria intermedia do programa

rexistros de caché

0x8
[23:13] Reservado RO Reservado 0
12 ocupado RO 0: non se está executando ningún comando abstracto

1: Hai ordes abstractas que se están executando

Nota: despois da execución, borrarase o hardware.

 

0

11 Reservado RO Reservado 0
[10:8] cmder RW Tipo de erro do comando abstracto 000: ningún erro

001: Execución de comandos abstractos para escribir en comandos, resumos, rexistros automáticos abstractos ou ler e escribir nos rexistros de datos e progbuf

010: Non admite o comando abstracto actual 011: Execución do comando abstracto coa excepción 100: O microprocesador non está suspendido ou non está dispoñible e non pode executar comandos abstractos 101: Erro de bus

110: Erro de bit de paridade durante a comunicación 111: Outros erros

Nota: Para a escritura de bits úsase 1 para borrar o cero.

 

 

 

 

 

 

 

0

[7:4] Reservado RO Reservado 0
[3:0] desconto RO Número de rexistros de datos 0x2
  • Os hosts de depuración poden acceder a GPR, rexistros CSR e memoria escribindo diferentes valores de configuración no rexistro de comandos abstractos.
  • Ao acceder aos rexistros, os bits do rexistro de comandos defínense do seguinte xeito.
  • Táboa 7-8 Definición de rexistro de comandos ao acceder aos rexistros
Bit Nome Acceso Descrición Restablecer o valor
[31:24] tipo cmd WO Comando abstracto tipo 0: rexistro de acceso;

1: Acceso rápido (non compatible);

2: Acceso á memoria.

0
23 Reservado WO Reservado 0
[22:20] aarsize WO Ancho de bit de datos do rexistro de acceso 000: 8 bits

001: 16 bit

010: 32 bit

0
011: 64 bits (non compatible) 100: 128 bits (non compatible)

Nota: ao acceder aos rexistros de coma flotante

FPR, só se admite o acceso de 32 bits.

19 aarpostincrement WO 0: Sen efecto

1: Aumenta automaticamente o valor de regno despois de acceder ao rexistro

 

0

18 Post exec WO 0: Sen efecto

1:Executar o comando abstracto e despois executar o comando en progbuf

 

0

17 transferencia WO 0: non execute a operación especificada por write

1: Executa a manipulación especificada por write

0
16 escribir WO 0: Copiar datos do rexistro especificado a data0 1: Copiar datos do rexistro data0 ao rexistro especificado  

0

[15:0] reino WO Especifique os rexistros de acceso 0x0000-0x0fff son CSR 0x1000-0x101f son GPR  

0

Ao acceder á memoria, os bits do rexistro de comandos defínense do seguinte xeito.

Táboa 7-9 Definición do comando Rexistrarse ao acceder á memoria

Bit Nome Acceso Descrición Restablecer o valor
[31:24] tipo cmd WO Comando abstracto tipo 0: rexistro de acceso;

1: Acceso rápido (non compatible);

2: Acceso á memoria.

0
23 aamvirtual WO 0: acceso ao enderezo físico;

1: Acceda ao enderezo virtual.

0
[22:20] tamaño do brazo WO Ancho de bits de datos de memoria de acceso 000: 8 bits;

001: 16 bits;

010: 32 bits;

011: 64 bits (non compatible); 100: 128 bits (non compatible);

 

0

19 aampostincrement WO 0: Sen influencia;

1: Despois de acceder á memoria con éxito, aumente o enderezo almacenado no rexistro data1 polo número de bytes correspondentes ao ancho de bit configurado polo tamaño do brazo.

Aamsize=0, ao que se accede por byte, data1 máis 1.

Aamsize=1, ao que se accede por media palabra, data1 máis 2. aamsize=2, ao que se accede por bit, data1 máis 4.

 

0

18 Post exec WO 0: Sen influencia;

1: Executar o comando en progbuf despois de executar o comando abstracto.

0
17 Reserva RO Reservado 0
 

 

16

 

 

escribir

 

 

WO

0: le os datos desde o enderezo especificado por data1 ata data0

1: Escriba os datos en data0 no enderezo especificado por

datos 1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

específico de destino

 

 

 

 

 

 

WO

Definición do modo de lectura e escritura Escribir:

00, 01: Escribe directamente na memoria;

10: despois de que os datos de data0 sexan OU cos bits de datos na memoria, o resultado escribe na memoria (só se admite o acceso á palabra).

11: Despois de sumar os datos en data0 cos bits de datos na memoria, escriba o resultado na memoria (só se admite o acceso á palabra).

Ler:

00, 01, 10, 11: Le 0 directamente da memoria.

 

 

 

 

 

 

0

[13:0] Reserva RO Reservado

Rexistro de execución automática de comandos abstractos (abstract auto)

Este rexistro úsase para configurar o módulo de depuración. Ao ler e escribir progbufx e datos do módulo de depuración, o comando abstracto pódese executar de novo.

A descrición deste rexistro é a seguinte:

Táboa 7-10 Definición de rexistro automático abstracto

Bit Nome Acceso Descrición Restablecer o valor
[31:16] autoexecprogbuf RW Se se establece un bit, a lectura e escritura correspondentes de progbufx fará que o comando abstracto no rexistro de comandos se execute de novo.

Nota: a serie V3 está deseñada con 8 progbufs, correspondente a bits [23:16].

 

0

[15:12] Reserva RO Reservado 0
[11:0] autoexecdata  

RW

Se un bit está configurado en 1, a lectura e escritura correspondentes do rexistro de datos fará que o comando abstracto no rexistro de comandos se execute de novo.

Nota: a serie V3 está deseñada con dous datos rexistros, correspondentes a bits [1:0].

0

Rexistro da caché de instrucións (progbufx)

Este rexistro utilízase para almacenar calquera instrución, e despregar a operación correspondente, incluída a 8, que precisa prestar atención á última execución que debe ser "break" ou "c.ebreak".

Táboa 7-11 Definición do rexistro progbuf

Bit Nome Acceso Descrición Restablecer o valor
[31:0] progbuf RW Codificación de instrucións para operacións de caché, que

pode incluír instrucións de compresión

0

Pausa o rexistro de estado (haltsum0)

Este rexistro úsase para indicar se o microprocesador está suspendido ou non. Cada bit indica o estado suspendido dun microprocesador e, cando só hai un núcleo, só se utiliza o bit máis baixo deste rexistro para indicalo.

Táboa 7-12 definición do rexistro haltsum0

Bit Nome Acceso Descrición Restablecer o valor
[31:1] Reservado RO Reservado 0
0 parada0 RO 0: o microprocesador funciona normalmente

1: Parada do microprocesador

0
  • Ademais dos rexistros mencionados anteriormente do módulo de depuración, a función de depuración tamén implica algúns rexistros CSR, principalmente o control de depuración e o rexistro de estado dcsr e o punteiro de instrucións de depuración dpc, que se describen en detalle a continuación.
  • Control de depuración e rexistro de estado (dcsr)

Táboa 7-13 definición de rexistro dcsr

Bit Nome Acceso Descrición Restablecer o valor
[31:28] xdebugver DRO 0000: Non se admite a depuración externa 0100: Admite a depuración externa estándar

1111: A depuración externa é compatible, pero non se cumpre

a especificación

 

 

0x4

[27:16] Reservado DRO Reservado 0
15 romper DRW 0: o comando break no modo máquina compórtase como se describe no privilexio file

1: O comando break no modo máquina pode entrar no modo de depuración

 

 

0

[14:13] Reservado DRO Reservado 0
12 ruptura  

DRW

0: o comando break no modo de usuario compórtase como se describe no privilexio file

1: O comando break no modo de usuario pode entrar no modo de depuración

 

 

0

11 paso DRW 0: as interrupcións están desactivadas na depuración dun só paso

1: activa as interrupcións na depuración dun só paso

0
10 Reservado DRO Reservado 0
9 parar o tempo DRW 0: o temporizador do sistema funciona no modo de depuración

1: o temporizador do sistema detense no modo de depuración

0
  [8:6] causa DRO Motivos para entrar na depuración

001: introducindo a depuración en forma de comando break (prioridade 3)

010: introducindo a depuración en forma de módulo de activación (prioridade 4, a máis alta)

011: introducindo a depuración en forma de solicitude de pausa (prioridade 1)

100: depuración en forma de depuración dun só paso

(prioridade 0, a máis baixa)

0
101: ingresa ao modo de depuración directamente despois do reinicio do microprocesador (prioridade 2) Outros: reservado
[5:3] Reservado DRO Reservado 0
2 paso DRW 0: Desactiva a depuración dun só paso

1: Activa a depuración dun só paso

0
[1:0] Prev DRW Modo privilexio 00: Modo usuario

01: Modo supervisor (non compatible) 10: Reservado

11: Modo máquina

Nota: rexistre o modo privilexiado ao entrar no modo de depuración, o depurador pode modificar este valor para modificar o modo privilexiado ao saír da depuración

 

 

 

 

0

Punteiro do programa do modo de depuración (DPC)

  • Este rexistro utilízase para almacenar o enderezo da seguinte instrución que se executará despois de que o microprocesador entre no modo de depuración, e o seu valor actualízase con regras diferentes dependendo do motivo polo que se introduza a depuración. O rexistro dpc descríbese en detalle como segue.

Táboa 7-14 Definicións do rexistro dpc

Bit Nome Acceso Descrición Restablecer o valor
[31:0] DPC DRW Dirección de instrución 0

As normas para a actualización dos rexistros recóllense na seguinte táboa.

Táboa 7-15 Regras de actualización de dpc

Introduza o método de depuración Regras de actualización de dpc
romper Enderezo da instrución Ebreak
único paso Enderezo de instrución da seguinte instrución da instrución actual
módulo disparador Non é compatible temporalmente
solicitude de parada Enderezo da seguinte instrución que se vai executar ao entrar en Depuración

Interface de depuración

  • Diferente do estándar JTAG interface definida por RISC-V, o microprocesador da serie QingKe V3 adopta unha interface de depuración en serie de fíos/1 fíos e segue o protocolo de interface de depuración WCH V2.
  • A interface de depuración é responsable da comunicación entre o host de depuración e o módulo de depuración e realiza a operación de lectura/escritura do host de depuración nos rexistros do módulo de depuración.
  • WCH deseñou WCH_Link e de código aberto o seu esquema binario e o seu programa files, que se pode usar para depurar todos os microprocesadores da arquitectura RISC-V.
  • Consulte o Manual do protocolo de depuración WCH para obter protocolos de interface de depuración específicos.

Lista de rexistro de RSE

  • A arquitectura RISC-V define unha serie de rexistros de control e estado (CSR) para controlar e rexistrar o estado operativo do microprocesador.
  • Algúns dos CSR introducíronse na sección anterior, e neste capítulo detallaranse os rexistros CSR implementados nos microprocesadores da serie QingKe V3.

Lista de rexistro de RSE

Táboa 8-1 Lista de rexistros CSR de microprocesadores

Tipo Nome RSE Enderezo Acceso Descrición
RISC-V

RSE estándar

Marchid 0xF12 MRO Rexistro do número de arquitectura
mímica 0xF13 MRO Rexistro de numeración de implementación de hardware
mstatus 0x300 MRW Rexistro de estado
misa 0x301 MRW Rexistro do conxunto de instrucións de hardware
mtvec 0x305 MRW Rexistro de enderezos base de excepción
mscratch 0x340 MRW Modo máquina stagrexistro de ing
MEPC 0x341 MRW Rexistro de punteiros do programa de excepción
mcausa 0x342 MRW Rexistro de causas de excepción
mtval 0x343 MRW Rexistro de valores de excepción
pmpcfg 0x3A0+i MRW Rexistro de configuración PMP
pmpaddr 0x3B0+i MRW Rexistro de enderezos PMP
tselect 0x7A0 MRW Rexistro de selección de activador de depuración
tdata1 0x7A1 MRW Rexistro de datos de activación de depuración 1
tdata2 0x7A2 MRW Rexistro de datos de activación de depuración 2
dcsr 0x7B0 DRW Control de depuración e rexistros de estado
dpc 0x7B1 DRW Rexistro do punteiro do programa do modo de depuración
dscratch0 0x7B2 DRW Modo de depuración stagrexistro 0
dscratch1 0x7B3 DRW Modo de depuración stagrexistro 1
 

RSE definida polo provedor

gintenr 0x800 URW Rexistro de activación de interrupción global
intsyscr 0x804 URW Interrupción do rexistro de control do sistema
corecfgr 0xBC0 MRW Rexistro de configuración do microprocesador
inestcr 0xBC1 MRW Interrompe o rexistro de control anidado

Rexistros estándar de RSC RISC-V

  • Rexistro de números de arquitectura (marchid)
  • Este rexistro é un rexistro de só lectura para indicar o número actual de arquitectura de hardware do microprocesador, que está composto principalmente por código de provedor, código de arquitectura, código de serie e código de versión. Cada un deles defínese do seguinte xeito.

Táboa 8-2 Definición do rexistro de marchas

Bit Nome Acceso Descrición Restablecer o valor
31 Reservado MRO Reservado 1
[30:26] Vendedor 0 MRO Código do fabricante 0

Fixado no código da letra "W".

0x17
[25:21] Vendedor 1 MRO Código do fabricante 1

Fixado no código da letra "C".

0x03
[20:16] Vendedor 2 MRO Código do fabricante 2

Fixado no código da letra "H".

0x08
15 Reservado MRO Reservado 1
[14:10] Arco MRO Código de arquitectura 0x16
A arquitectura RISC-V está fixada no código da letra "V".
[9:5] Serial MRO Código de serie

Serie QingKe V3, fixada no número "3"

0x03
[4:0] Versión MRO Código de versión

Pode ser a versión "A", "B", "C" e outras letras do código

x

O número de fabricante e o número de versión son alfabéticos e o número de serie é numérico. A táboa de codificación das letras móstrase na seguinte táboa.

Táboa 8-3 Táboa de cartografía alfabética

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
  • Entre eles, o microprocesador QingKe V3A, o rexistro lee de novo a 0.

Rexistro de numeración de implementación de hardware (límpido)

  • Este rexistro está composto principalmente por códigos de provedores, cada un dos cales se define como segue.

Táboa 8-4 Definición do rexistro límpido

Bit Nome Acceso Descrición Restablecer o valor
31 Reservado MRO Reservado 1
[30:26] Vendedor 0 MRO Código do fabricante 0

Fixado no código da letra "W".

0x17
[25:21] Vendedor 1 MRO Código do fabricante 1

Fixado no código da letra "C".

0x03
[20:16] Vendedor 2 MRO Código do fabricante 2

Fixado no código da letra "H".

0x08
15 Reservado MRO Reservado 1
[14:8] Reservado MRO Reservado 0
[7:4] Menor MRO Número de subversión 0xX
[3:0] Maior MR0 Número de versión principal 0xX
  • Este rexistro é lexible en calquera implementación da máquina, e no procesador da serie QingKe V3A, este rexistro le a cero.

Rexistro de estado do modo máquina (mstatus)

  • Este rexistro foi parcialmente descrito na sección anterior, e os seus usuarios sitúanse do seguinte xeito.

Táboa 8-5 Definición do rexistro mstatus

Bit Nome Acceso Descrición Restablecer o valor
[31:13] Reservado MRO Reservado 0
[12:11] MPP MRW Modo privilexiado antes de entrar no descanso 0
[10:8] Reservado MRO Reservado 0
7 MPIE MRW Estado de activación da interrupción antes de introducir unha interrupción 0
[6:4] Reservado MRO Reservado 0
3 MIE MRW Activación da interrupción do modo máquina 0
[2:0] Reservado MRO Reservado 0
  • O campo MPP úsase para gardar o modo privilexiado antes de introducir a excepción ou interrupción e úsase para restaurar o modo privilexiado despois de saír da excepción ou interrupción. MIE é o bit de habilitación de interrupción global, e ao introducir a excepción ou interrupción, o valor de MPIE actualízase ao valor de MIE, e hai que ter en conta que nos microprocesadores da serie QingKe V3, MIE non se actualizará a 0 antes do último nivel de interrupcións aniñadas para garantir que a aniñación de interrupcións no modo Máquina continúe executándose. Cando se sae dunha excepción ou interrupción, o microprocesador volve ao modo Máquina gardado por MPP e o MIE restablece o valor MPIE.
  • O microprocesador QingKe V3 admite o modo Máquina e o modo Usuario, se precisa facer que o microprocesador só funcione no modo Máquina, pode configurar o MPP en 0x3 na inicialización do arranque. file, é dicir, despois de regresar, sempre permanecerá en modo Máquina.

Rexistro de conxunto de instrucións de hardware (misa)

  • Este rexistro úsase para indicar a arquitectura do microprocesador e as extensións do conxunto de instrucións admitidas, cada unha das cales se describe a continuación.

Táboa 8-6 Definición do rexistro misa

Bit Nome Acceso Descrición Restablecer o valor
[31:30] MXL MRO Duración da palabra máquina 1:32

2:64

3:128

1
[29:26] Reservado MRO Reservado 0
[25:0] Extensións MRO Extensións do conxunto de instrucións x
  • O MXL úsase para indicar a lonxitude da palabra do microprocesador, QingKe V3 son microprocesadores de 32 bits e o dominio está fixado en 1.
  • As extensións úsanse para indicar que o microprocesador admite detalles de conxunto de instrucións estendidos, cada unha indica unha clase de extensións, a súa descrición detallada móstrase na seguinte táboa.

Táboa 8-7 Detalles da extensión do conxunto de instrucións

Bit Nome Descrición
0 A Extensión atómica
1 B Reservado provisionalmente para a extensión Bit-Manipulation
2 C Extensión comprimida
3 D Extensión de punto flotante de dobre precisión
4 E RV32E base ISA
5 F Extensión de punto flotante de precisión única
6 G Existen extensións estándar adicionais
7 H Extensión de hipervisor
8 I RV32I/64I/128I base ISA
9 J Reservado provisionalmente para a extensión Linguas traducidas dinámicamente
10 K Reservado
11 L Reservado provisionalmente para a extensión decimal de coma flotante
12 M Extensión Multiplicar/Dividir enteiros
13 N Admítense interrupcións a nivel de usuario
14 O Reservado
15 P Reservado provisionalmente para a extensión Packed-SIMD
16 Q Extensión de punto flotante de precisión cuádruple
17 R Reservado
18 S Implementouse o modo supervisor
19 T Reservado provisionalmente para a extensión de memoria transaccional
20 U Implementouse o modo de usuario
21 V Reservado provisionalmente para a extensión vectorial
22 W Reservado
23 X Existen extensións non estándar
24 Y Reservado
25 Z Reservado
  • Por example, para o microprocesador QingKe V3A, o valor do rexistro é 0x401001105, o que significa que a arquitectura de conxunto de instrucións admitida é RV32IMAC e ten implementación do modo Usuario.

Rexistro de enderezos base de excepción do modo máquina (mtvec)

  • Este rexistro utilízase para almacenar o enderezo base do manejador de excepcións ou interrupcións e os dous bits inferiores utilízanse para configurar o modo e o método de identificación da táboa vectorial como se describe na Sección 3.2.

Modo máquina stagrexistro ing (mscratch)

Táboa 8-8 Definicións do rexistro mscratch

Bit Nome Acceso Descrición Restablecer o valor
[31:0] mscratch MRW Almacenamento de datos 0

Este rexistro é un rexistro lexible e escribible de 32 bits en modo máquina para o almacenamento temporal de datos. Por example, ao introducir unha excepción ou un controlador de interrupcións, o punteiro de pila de usuarios SP almacénase neste rexistro e o punteiro de pila de interrupcións asígnase ao rexistro SP. Despois de saír da excepción ou interrupción, restaure o valor do punteiro de pila de usuarios SP desde cero. É dicir, a pila de interrupcións e a pila de usuarios pódense illar.

Rexistro de punteiro do programa de excepción do modo máquina (mapa)

Táboa 8-9 Definicións do rexistro mepc

Bit Nome Acceso Descrición Restablecer o valor
[31:0] mepc MRW Punteiro do procedemento de excepción 0
  • Este rexistro úsase para gardar o punteiro do programa cando se introduce unha excepción ou interrupción.
  • Utilízase para gardar o punteiro do PC de instrucións antes de introducir unha excepción cando se xera unha excepción ou interrupción, e mepc úsase como enderezo de retorno cando se manexa a excepción ou interrupción e úsase para unha excepción ou interrupción.
  • Non obstante, é importante ter en conta que.
  • Cando se produce unha excepción, mepc actualízase ao valor de PC da instrución que xera actualmente a excepción.
  • Cando se produce unha interrupción, mepc actualízase ao valor de PC da seguinte instrución.
  • Cando necesites devolver unha excepción despois de procesar a excepción, debes prestar atención á modificación do valor do mepc, e pódense atopar máis detalles no Capítulo 2 Excepcións.

Rexistro de causa de excepción do modo máquina (mcause)

Táboa 8-10 Definición do rexistro de causas

Bit Nome Acceso Descrición Restablecer o valor
31 Interrupción MRW Campo de indicación de interrupción 0: excepción

1: Interrupción

 

0

[30:0] Código de excepción MRW Para os códigos de excepción, consulte a Táboa 2-1 para obter detalles 0
  • Este rexistro utilízase principalmente para almacenar a causa da excepción ou o número de interrupción da interrupción. O seu bit máis alto é o campo Interrupción, que se usa para indicar se a ocorrencia actual é unha excepción ou unha interrupción.
  • O bit inferior é o código de excepción, que se usa para indicar a causa específica. Os seus detalles pódense atopar no capítulo 2 Excepcións.

Rexistro de valores de excepción do modo máquina (mtval)

Táboa 8-11 Definición do rexistro mtval

Bit Nome Acceso Descrición Restablecer o valor
[31:0] mtval MRW Valor de excepción 0
  • Este rexistro úsase para manter o valor que causou a excepción cando se produce unha excepción. Para obter detalles como o valor e o tempo do seu almacenamento, consulte o Capítulo 2 Excepcións.

Rexistro de configuración PMP (pmpcfg

  • Este rexistro utilízase principalmente para configurar a unidade de protección da memoria física, e cada 8 bits deste rexistro úsanse para configurar a protección dunha área. Consulte o capítulo 4 para a definición detallada.

Rexistro de enderezos PMP (pmpaddr

  • Este rexistro utilízase principalmente para a configuración de enderezos da unidade de protección da memoria física, que codifica os 32 bits superiores dun enderezo físico de 34 bits. Consulte o capítulo 4 para coñecer o método de configuración específico.

Rexistro de punteiro de programa de modo de depuración (DPC)

  • Este rexistro úsase para almacenar o enderezo da seguinte instrución que se executará despois de que entre o microprocesador
  • O modo de depuración e o seu valor actualízanse con regras diferentes dependendo do motivo polo que se introduce a depuración. Consulte a Sección 6.1 para unha descrición detallada.

Rexistro de selección de disparador de depuración (seleccionar)

  • Só é válido para microprocesadores que admiten puntos de interrupción de hardware e admiten puntos de interrupción de 4 canles como máximo, e os seus 2 bits inferiores son válidos.
  • Ao configurar cada punto de interrupción da canle, cómpre seleccionar a canle correspondente a través deste rexistro antes da configuración.

Táboa 8-12 seleccione a definición do rexistro

Bit Nome Acceso Descrición Restablecer o valor
[31:2] Reservado MRO Reservado 0
[1:0]  

SELECCIONAR

 

MRW

O rexistro de selección de canles de punto de interrupción está configurado, é dicir, despois de seleccionar a canle correspondente, os rexistros tdata1 e tdata2 pódense operar para configurar un punto de interrupción.

información.

 

X

Rexistro de datos de activación de depuración 1 (tdata1)

Só é válido para microprocesadores que admiten puntos de interrupción de hardware. Os microprocesadores só admiten enderezos de instrucións e puntos de interrupción de enderezos de datos, onde o TIPO de bit do rexistro tdata1 é un valor fixo de 2 e outros bits axústanse á definición de control no estándar de depuración.

Táboa 8-13 Definición do rexistro tdata1

Bit Nome Acceso Descrición Restablecer o valor
[31:28] TIPO MRO Definición do tipo de punto de interrupción, tipo de control. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: os rexistros relevantes do flip-flop pódense modificar tanto no modo máquina como no modo depuración;

1: Só o modo depuración pode modificar os rexistros relevantes do flip-flop.

 

 

1

  [26:21]  

MÁSCARA MAX

 

MRO

Cando MATCH=1, permítese o rango máximo de potencia exponencial de coincidencia, é dicir, o rango de coincidencia máximo permitido é de 231 bytes.  

0x1F

[20:13] Reservado MRO Reservado 0
 

 

12

 

 

ACCIÓN

 

 

MRW

Establece o modo de procesamento ao activar un punto de interrupción:

0: ao disparar, introduza o punto de interrupción e chame de novo a interrupción;

1: Ingrese ao modo de depuración cando se active.

 

 

0

[11:8] Reservado MRO Reservado 0
 

 

 

7

 

 

 

PARTIDO

 

 

 

MRW

Configuración da política coincidente:

0: Coincide cando o valor de activación é igual a TDATA2;

1: O valor de activación coincide co bit m alto de TDATA2, onde m = 31–n, e n é a primeira cita 0 de TDATA2 (a partir do bit baixo).

 

 

 

0

 

6

 

M

 

MRW

Activar flip-flop no modo M:

0: Desactivar o disparador no modo M; 1: activa o disparador no modo M.

 

0

[5:4] Reservado MRO Reservado 0
 

3

 

U

 

MRW

Activar o disparador no modo U:

0: Desactivar o disparador no modo U; 1: activa o disparador no modo U.

 

0

 

2

 

EXECUTAR

 

MRW

Activación do disparador de enderezo de lectura de instrucións: 0: Desactivar;

1: Activar.

 

0

 

1

 

TENDA

 

MRW

Activador de enderezo de escritura de datos activado: 0: Desactivado;

1: Activar.

 

0

 

0

 

CARGA

 

MRW

Activación do disparador do enderezo de lectura de datos: 0: Desactivar;

1: Activar.

 

0

Rexistro de datos de activación de depuración 2 (tdata2)

Só é válido para microprocesadores que admiten puntos de interrupción de hardware e úsase para gardar o valor coincidente do disparador.

Táboa 8-14 Definición do rexistro tdata2

Bit Nome Acceso Descrición Restablecer o valor
[31:0] TDATA2 MRW Utilízase para gardar valores coincidentes. X

Control de depuración e rexistro de estado (dcsr)

Este rexistro úsase para controlar e rexistrar o estado de execución do modo de depuración. Consulte a Sección 7.1 para obter máis detalles.

Punteiro do programa do modo de depuración (DPC)

Este rexistro úsase para almacenar o enderezo da seguinte instrución que se executará despois de que o microprocesador entre no modo de depuración, o seu valor é diferente segundo os motivos para entrar no modo de depuración e as regras de actualización tamén son diferentes. Consulte a Sección 7.1 para unha descrición detallada.

Modo de depuración stagrexistro ing (dscratch0-1)

Este grupo de rexistros úsase para o almacenamento temporal de datos no modo Depuración.

Táboa 8-15 Definicións do rexistro dscratch0-1

Bit Nome Acceso Descrición Restablecer o valor
[31:0] dscratch DRW Modo de depuración de datos stagvalor ing 0
Rexistro de RSC definido polo usuario

Rexistro de activación de interrupción global do modo de usuario (gintenr)

  • Este rexistro úsase para controlar a activación e a máscara da interrupción global. A habilitación e a máscara da interrupción global no modo máquina poden controlarse polos bits MIE e MPIE no estado, pero este rexistro non se pode operar no modo usuario.
  • Mentres que a interrupción global permite o rexistro, gintenr é o mapeamento de MIE e MPIE no estado.
  • No modo de usuario, a intención pódese usar para configurar e borrar MIE e MPIE, como se describe na Sección 3.2 para obter máis información.

Nota

  • As interrupcións globais non inclúen interrupcións sen máscara NMI e excepcións.

Rexistro de control do sistema de interrupción (intsyscr)

Este rexistro utilízase principalmente para configurar a profundidade de aniñamento das interrupcións, a presión da pila de hardware e outras funcións relacionadas, como se describe na Sección 3.2 para obter máis detalles.

Rexistro de configuración do microprocesador (corecfgr)

Este rexistro úsase para controlar se se permite a interrupción NMI despois de que a interrupción se desborde e se a solicitude de interrupción se borra cando se executa a instrución de cercado. Consulte a Sección 3.2 para a definición específica.

Interrupción do rexistro de control anidado (inestcr)

Este rexistro utilízase para indicar o estado de anidación de interrupción e se se desborda ou non, e para controlar o nivel máximo de anidación. Consulte a Sección 3.2 para a definición específica.

Documentos/Recursos

Microprocesador WH V3 [pdfManual do usuario
V3 Microprocesador, V3, Microprocesador

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *