Microprocesador WH V3

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.
- 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.
- 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.
- 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.
- 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.
- Se unha excepción é causada por un acceso á memoria, o hardware almacenará o enderezo do acceso á memoria no momento da excepción en mtval.
- Se a excepción é causada por unha instrución ilegal, o hardware almacenará o código de instrución da instrución en mtval.
- 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.
- Para outras excepcións, o hardware establece o valor de mtval en 0, como break, a excepción causada pola instrución de chamada.
- 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.
- 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.
- 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.
- 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.

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:
- NMI, EXC, ECALL-M, ECALL-U e BREAKPOINT sempre están activados por defecto.
- ECALL-M, ECALL-U e BREAKPOINT son un caso de EXC.
- 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 0V3B: [31:8]: Reservado, fixado en 0 [7:5]: Limiar de prioridade [4:0]: Reservado, fixado en 0V3C: [31:8]: Reservado, fixado en 0 [7:5]: Limiar de prioridade [4:0]: Reservado, fixado en 0Nota: 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; |
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.

Nota:
- 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"))).
- 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.

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 pmpcfg0
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 pmaddr
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:
- 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).
- Ao tentar escribir datos na área PMP sen permiso escrito, provocará unha excepción de erro (mcause=7) no acceso á instrución da tenda.
- 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):
- Se B _ ADDR–A_ADDR = = 22, adóptase o modo NA4;
- Se B _ ADDR–A_ADDR = = 2(G+2), G≥1 e un enderezo _ é 2(g+2), adóptase o método NAPOT;
- 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
- 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.
- 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.
- Eventos internos ou externos, cando non hai que configurar o controlador de interrupción, esperta e continúa executando o programa.
- 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.
- 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.
- 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 |





