WH-logo

Microprocessore WH V3

WH-V3-Microprocessore-PRO

Specificazioni

  • Modellu di microprocessore: QingKeV3
  • Versione: V1.2
  • Caratteristiche ISA:
    • Pipeline FPU
    • Previsione di ramu
    • Interrompe u sustegnu
    • HPE Prutezzione di Memoria Fisica (PMP)
    • Modu di cunsumu di bassa energia
    • Debug di Instruction Set Extended

Istruzzioni per l'usu di u produttu

Overview di u microprocessore QingKe V3

I microprocessori di a serie QingKe V3 includenu mudelli V3A, V3B è V3C. Ogni mudellu hà caratteristiche specifiche è differenze basate nantu à a so applicazione.

Set di istruzioni

U set di istruzioni RV32I include 32 setti di registru da x0 à x31. A serie V3 ùn sustene micca l'estensione in virgule flottante (F). Ogni registru hè di 32 bits.

Registru Set

U set di registri RV32I hè custituitu da i seguenti registri.

  • x0: Hardcoded 0
  • x1: Indirizzu di ritornu
  • x2: puntatore di stack
  • x3: Puntatore globale
  • x4: Puntatore di filu
  • x5-x7: Registri pruvisorii
  • x8: Salvà u registru / puntatore di quadru
  • x9: Salvà registru / paràmetri di funzione / valori di ritornu
  • x10-x11: Paràmetri di funzione
  • x12-x17: Salvà i registri
  • x18-x27: Registri pruvisorii
  • x28-x31: Registri di chjamante / Callee

Modu Privilege

L'architettura standard RISC-V include trè modi privilegiati: Modu Machine, Modu Supervisore è Modu User. I microprocessori di a serie QingKe V3 supportanu u modu Machine è u modu Supervisor.

Domande Frequenti

Q: Chì sò i diversi mudelli in i microprocessori di a serie QingKe V3?

A: A serie QingKe V3 include mudelli V3A, V3B è V3C, ognunu cù caratteristiche specifiche è differenze dettagliate in u manuale d'utilizatore.

Q: Quanti setti di registru sò dispunibili in u set di struzzioni RV32I?

A: U set di struzzioni RV32I furnisce 32 setti di registru da x0 à x31.

Q: Quali modi privilegiati sò supportati da u microprocessore QingKe V3?

A: I microprocessori di a serie QingKe V3 supportanu u Modu Machine è u Modu Supervisor cum'è parte di l'architettura RISC-V.

Overview

I microprocessori di a serie QingKe V3 sò microprocessori MCU per scopi generali di 32 bit auto-sviluppati basati nantu à l'architettura standard di set di istruzioni RISC-V. Questa serie include V3A, V3B è V3C, di quale V3A supporta l'estensione di set di istruzioni standard RV32IMAC è V3B / C supporta l'estensione di set di istruzioni standard RV32IMCB è l'estensione di set d'istruzzioni persunalizati XW. Tramindui supportanu a multiplicazione in un ciclu è a divisione hardware, in più di stack di pressione di hardware (HPE), interruzzione senza table (VTF), interfacce di debugging simplificate 1 è 2 fili, struzzioni "WFE" è altre funziunalità speciale. Inoltre, supporta ancu Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), interfaccia di debugging simplificata 1-/2-wire, è supportu per l'istruzzioni "WFE".

Features

Features Descrizzione
ISA RV32IM[A]C[B]
Pipeline 3
FPU Ùn hè micca supportatu
Previsione di ramu Previsione di ramu staticu
Interruzzione Supporta un totale di 256 interruzioni cumprese eccezioni, è supporta VTF
HPE Supporta 2 livelli di HPE
Prutezzione di a Memoria Fisica (PMP) Supportatu
Modu di cunsumu di bassa energia Supporta i modi Sleep è Deep, è sustene i metudi di sonnu WFI è WFE
Set di istruzioni estensi Supportatu
Debug 1/2-wire SDI, standard RISC-V debug

Overview

I microprocessori di a serie QingKe V3 includenu V3A, V3B è V3C, ci sò parechje differenzi trà a serie secondu l'applicazione, e differenzi specifiche sò detallati in a Tabella 1-1.

Table 1-1 Overview di u microprocessore QingKe V3

Feature Mudellu ISA HPE numeru di livelli Interruzzioni nidificazione numeru di livelli VTF numeru di canali Pipeline Vettore modu di tavulinu Istruzzioni estesa (XW) Numero di spazii di prutezzione di memoria
V3A RV32IMAC 2 2 4 3 Istruzzioni × ×
V3B RV32IMCB 2 2 4 3 Indirizzu / Istruzzioni ×
V3C RV32IMCB 2 2 4 3 Indirizzu / Istruzzioni 4

Nota: U cambiamentu di u travagliu di u SO generalmente usa stack push, chì ùn hè micca limitatu à u numeru di livelli

Set di istruzioni

  • I microprocessori di a serie QingKe V3 seguenu l'architettura standard di RISC-V Instruction Set Architecture (ISA). A documentazione dettagliata di u standard pò esse truvata in "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2" in u RISC-V International. websitu. U set d'istruzzioni RISC-V hà una architettura simplice è sustene un disignu modulare, chì permette combinazioni flessibili basate nantu à e diverse esigenze, è a serie V3 supporta e seguenti estensioni di set di struzzioni.
  • RV32: Architettura a 32 bit, larghezza di bit di registru generale di 32 bit
  • I: Supporta l'operazione di formatura, cù 32 registri di formatura
  • M: Supporta l'istruzzioni di multiplicazione è divisione
  • A: Supporta cumandamenti atomichi
  • C: Supporta l'istruzzioni di compressione 16-bit
  • B: Supportu per l'istruzzioni di manipulazione di bit
  • XW: Istruzzioni di compressione di 16 bit per operazioni di byte è mezze parole auto-estensione

Nota:

  • U sottumessu di struzzioni supportati da mudelli diffirenti pò esse sfarenti, per piacè riferite à a Tabella 1-1 per i dettagli;
  • Per migliurà ulteriormente a densità di codice, estende u subset XW, aghjunghje e seguenti struzzioni di compressione c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.lhusp/c.sbsp/c.shop, l'usu di quale deve esse basatu annantu à u compilatore MRS o a catena di strumenti chì furnisce;
  • V3B supporta l'estrazione di una parolla (32 bit) da una doppia parola (64 bit) è l'estrazione di una parola (32 bit) da un risultatu di multiplicazione (64 bit). U metudu di usu specificu pò riferite à a funzione di a biblioteca è cooperate cù u compilatore MRS o a catena di strumenti furnita da questu;
  • V3B/C supporta l'istruzzioni di copia di memoria. Per un usu specificu, fate riferimentu à a funzione di a biblioteca è cooperate cù u compilatore MRS o a so catena di strumenti.

Registru Set

L'RV32I hà 32 gruppi di registri da x0-x31. A serie V3 ùn sustene micca l'estensione "F", vale à dì, ùn ci hè micca un settore di registru à virgule flottante. In l'RV32, ogni registru hè 32 bit. A Tabella 1-2 sottu elenca i registri di RV32I è e so descrizzioni.

Tabella 1-2 Registri RISC-V

Registrate Nome ABI Descrizzione Storer
x0 zeru Hardcoded 0
x1 ra Indirizzu di ritornu Chjamatore
x2 sp Puntatore di stack Callee
x3 GP Puntatore globale
x4 tp Puntatore di filu
x5-7 t0-2 Registru pruvisoriu Chjamatore
x8 s0/fp Salvà u registru / puntatore di quadru Callee
x9 s1 Salvà u registru Callee
x10-11 a0-1 Parametri di funzione / valori di ritornu Chjamatore
x12-17 a2-7 Paràmetri di funzione Chjamatore
x18-27 a2-11 Salvà u registru Callee
X28-31 t3-6 Registru pruvisoriu Chjamatore

L'attributu Caller in a tabella sopra significa chì a prucedura chjamata ùn salva micca u valore di u registru, è l'attributu Callee significa chì a prucedura chjamata salva u registru.

Modu Privilege

  • L'architettura standard RISC-V include trè modi privilegiati: Modu Machine, Modu Supervisore è Modu User, cum'è mostra in a Tabella 1-3 sottu.
  • U modu di macchina hè ubligatoriu, è l'altri modi sò opzionali. Per i dettagli, pudete riferite à The RISC-V Instruction Set Manual Volume II: Privileged Architecture ", chì pò esse scaricatu gratuitamente da RISC-V International. websitu.

Tabella 1-3 Modu di privilegiu di l'architettura RISC-V

Codice Nome Abbreviazioni
0b00 Modu User U
0b01 U mudellu di supervisore S
0b10 Riservatu Riservatu
0b11 Modu macchina M
  • I microprocessori di a serie QingKe V3 supportanu dui di sti modi privilegiati.

Modu macchina

  • U modu di a macchina hà a più alta autorità, u prugramma in questu modu pò accede à tutti i Controlli è Status Register (CSR), ma ancu ponu accede à tutti l'indirizzi fisici.
  • U predeterminatu di putenza hè in u modu di a macchina, quandu l'esekzione di mret (istruzzioni di ritornu in modalità Machine) torna, secondu u statutu di u registru CSR (registru di u statu di a macchina) in u bit MPP, se MPP = 0b00, allora esce da u modu Machine in u modu User, MPP = 0b11, poi cuntinuà à mantene u modu Machine.

Modu d'utilizatore

  • U modu d'utilizatore hà u privilegiu più bassu, è solu i registri CSR limitati ponu accede in questu modu. Quandu si verifica una eccezzioni o interruzzione, u microprocessore passa da u Modu User à u Modu Machine per trattà l'eccezzioni è l'interruzioni.

Registre CSR

Una serie di registri CSR sò definiti in l'architettura RISC-V per cuntrullà è registrà u statu di u funziunamentu di u microprocessore. Questi CSR ponu esse allargati da 4096 registri utilizendu un spaziu internu di codificazione di indirizzu di 12 bit dedicatu. È utilizate l'alti dui CSR [11:10] per definisce u permessu di lettura / scrittura di stu registru, 0b00, 0b01, 0b10 per lettura / scrittura permessa è 0b11 per sola lettura. Aduprate i dui bits CSR[9:8] per definisce u livellu di privilegiu più bassu chì pò accede à stu registru, è u valore currisponde à u modu di privilegiu definitu in a Tabella 1-3. I registri CSR implementati in u microprocessore QingKe V3 sò detallati in Capitulu 8.

Eccezzioni

Meccanisimu d'eccezzioni, chì hè un mecanismu per intercepte è trattà "avvenimenti di operazione inusual". I microprocessori di a serie QingKe V3 sò dotati di un sistema di risposta d'eccezzioni chì ponu trattà finu à 256 eccezzioni, cumprese interruzioni. Quandu si verifica una eccezzioni o interruzzione, u microprocessore pò risponde rapidamente è gestisce l'eccezzioni è l'interruzzione.

Tipi di eccezzioni

U cumpurtamentu di u hardware di u microprocessore hè u stessu sia una eccezzioni o una interruzzione. U microprocessatore suspende u prugramma attuale, si move à l'eccezzioni o l'interruzzione di u gestore, è torna à u prugramma suspesu prima quandu u prucessu hè cumpletu. In generale, l'interruzioni sò ancu parte di l'eccezzioni. Sia esattamente l'occurrenza attuale hè una interruzzione o una eccezzioni pò esse viewed through the Machine mode exception cause register cause. L'mcause[31] hè u campu di interruzzione, chì hè utilizatu per indicà se a causa di l'eccezzioni hè una interruzzione o una eccezzioni. mcause[31]=1 significa interruzzione, mcause[31]=0 significa eccezzioni. mcause[30: 0] hè u codice d'eccezzioni, chì hè utilizatu per indicà a causa specifica di l'eccezzioni o u numeru di interruzzione, cum'è mostra in a tabella seguente.

Tabella 2-1 Codici d'eccezzioni di microprocessore V3

Interruzzione Eccezzioni codici Sincronu / Asynchrone Ragione per eccezzioni
1 0-1 Riservatu
1 2 Asynchrone precisu NMI interrompe
1 3-11 Riservatu
1 12 Asynchrone precisu SysTick interrompe
1 13 Riservatu
1 14 Sincronu U software interrompe
1 15 Riservatu
1 16-255 Asynchrone precisu Interrupt esterna 16-255
0 0 Sincronu Disalignamentu di l'indirizzu di l'istruzzioni
0 1 Sincronu Errore d'accessu di cumandamentu Fetch
0 2 Sincronu Istruzzioni illegali
0 3 Sincronu Punti d'interruzione
0 4 Sincronu Disalignamentu di l'indirizzu di accessu à l'istruzzioni di carica
0 5 Asynchrone senza precisione Errore di accessu à u cumandamentu di carica
0 6 Sincronu Disalignamentu di l'indirizzu di accessu à l'istruzzioni Store / AMO
0 7 Asynchrone senza precisione Errore di accessu à u cumandamentu Store / AMO
0 8 Sincronu Chjama di l'ambiente in u modu User
0 11 Sincronu Chjama di l'ambiente in modu Machine
  • Sincronu" in a tavula significa chì una struzzione pò esse situata esattamente induve hè eseguita, cum'è una struzzione di pausa o di chjama, è ogni esecuzione di quella struzzione attivarà una eccezzioni. "Asynchronous" significa chì ùn hè micca pussibule di identificà una struzzione, è u valore di l'istruzzioni PC pò esse diversu ogni volta chì una eccezzioni si trova. "Asincrona precisa" significa chì una eccezzioni pò esse situata esattamente à u cunfini di una struzzione, vale à dì, u statu dopu l'esekzione di una struzzione, cum'è una interruzzione esterna. "Non-precision asynchronous" significa chì u cunfini di una struzzione ùn pò esse situatu precisamente, è forse u statu dopu chì una struzzione hè stata interrotta à a mità di l'esekzione, cum'è un errore d'accessu à a memoria.
  • L'accessu à a memoria piglia u tempu, è u microprocessore ùn aspetta micca a fine di l'accessu quandu accede à a memoria, ma cuntinueghja à eseguisce l'istruzzioni, quandu l'eccezzioni d'errore d'accessu si ripresentanu, u microprocessore hà digià eseguitu l'istruzzioni sussegwenti, è ùn pò esse precisamente. situatu.

Entra in Eccezzioni

Quandu u prugramma hè in u prucessu di u funziunamentu normale, se per una certa ragione, attiva una eccezzioni o interrupzione. U cumpurtamentu hardware di u microprocessore à questu puntu pò esse riassuntu cum'è seguitu.

  1. Suspende u flussu di u prugramma attuale è passa à l'esekzione di e funzioni di gestione d'eccezzioni o interruzzione. L'indirizzu di basa di l'ingressu è u modu di indirizzu di l'eccezzioni o a funzione di interruzzione sò definiti da u registru di l'indirizzu di basa di l'eccezzioni mtvec. mtvec[31:2] definisce l'indirizzu di basa di l'eccezzioni o a funzione di interruzzione. mtvec[1:0] definisce u modu di indirizzu di a funzione di gestione. quandu mtvec [1: 0] = 0, tutte l'eccezzioni è l'interruzioni utilizanu una entrata unificata, vale à dì, quandu una eccezzioni o interruzzione si trova, turna à u mtvec [31: 2] definisce l'indirizzu di basa per eseguisce. Quandu mtvec [1: 0] = 1, l'eccezzioni è l'interruzioni utilizanu u modu di tabella di vettore, vale à dì, ogni eccezzioni è interruzzione hè numerata, è l'indirizzu hè offset secondu u numeru d'interruzzione * 4, è quandu si trova una eccezzioni o interruzzione, hè cambiatu. à l'indirizzu di basa definitu da mtvec[31:2] + numero d'interruzzione * 4 Esecuzione. A tavola di vettore di interruzzione cuntene una struzzione per saltà à a funzione di gestione di l'interruzzione, o pò esse altre struzzioni.
  2. Aghjurnate u registru CSR
    • Quandu una eccezzioni o interruzzione hè inserita, u microprocessore aghjurnà automaticamente i registri CSR pertinenti, cumpresu u registru di causa di l'eccezzioni di u Modu Machine, u registru di l'indicatore di l'eccezzioni di u Modu Machine, u registru di u valore di l'eccezzioni di u Modu Machine, è u Statu di u Statu di u Statu di Machine.

Aghjurnà mcause

Cumu l'anu dettu prima, dopu avè inseritu una eccezzioni o interruzzione, u so valore riflette u tipu d'eccezzioni attuale o u numeru di interruzzione, è u software pò leghje stu valore di registru per verificà a causa di l'eccezzioni o determinà a fonte di l'interruzzione, cum'è detallatu in a Tabella 2-1.

Aghjurnà mepc

  • A definizione standard di l'indirizzu di ritornu di u microprocessore dopu l'uscita di una eccezzioni o interruzzione hè almacenata in mepc.
  • Allora quandu una eccezzioni o una interruzzione si trova, u hardware aghjurnà automaticamente u valore mepc à u valore attuale di l'istruzzioni PC quandu l'eccezzioni hè scontru, o u prossimu valore di PC di istruzzioni pre-eseguita prima di l'interruzzione.
  • Dopu chì l'eccezzioni o l'interruzzione hè processata, u microprocessore usa u so valore salvatu cum'è l'indirizzu di ritornu per vultà à u locu di l'interruzzione per cuntinuà l'esekzione.
  • Tuttavia, vale a pena nutà chì.
  1. MEPC hè un registru leggibile è scrivibile, è u software pò ancu mudificà u valore per mudificà u locu di u puntatore di PC chì curreghja dopu à u ritornu.
  2. Quandu si verifica una interruzzione, vale à dì, quandu a causa di l'eccezzioni registra mcause[31]=1, u valore di e carte hè aghjurnatu à u valore di u PC di a prossima struzzione ineseguita à u mumentu di l'interruzzione.
    • Quandu si trova una eccezzioni, u valore di e carte hè aghjurnatu à u valore di l'istruzzioni PC di l'eccezzioni attuale quandu l'eccezzioni provoca registru mcause[31]=0. Allora in questu tempu quandu l'eccezzioni torna, se vultemu direttamente cù u valore di mepc, cuntinuemu à eseguisce l'istruzzioni chì hà generatu l'eccezzioni prima, è à questu tempu, continueremu à entre in l'eccezzioni. Di solitu, dopu avè trattatu l'eccezzioni, pudemu mudificà u valore di mepc à u valore di a prossima struzzione ineseguita è poi vultà. Per esample, s'è no pruvucamu una eccezzioni a causa di call / break, dopu à a gestione di l'eccezzioni, postu chì ricurdà / pause (c.ebreak hè 2 byte) hè una struzzione di 4 byte, avemu solu bisognu di u software per mudificà u valore di mepc à mepc + 4 (c.ebreak hè mepc + 2) è poi torna.

Aghjurnà mtval

Quandu l'eccezzioni è l'interruzioni sò inseriti, u hardware aghjurnà automaticamente u valore di mtval, chì hè u valore chì hà causatu l'eccezzioni. U valore hè tipicamenti.

  1. Se una eccezzioni hè causata da un accessu di memoria, u hardware guarda l'indirizzu di l'accessu di memoria à u mumentu di l'eccezzioni in mtval.
  2. Se l'eccezzioni hè causata da una struzzione illegale, u hardware guardarà u codice d'istruzzioni di l'istruzzioni in mtval.
  3. Se l'eccezzioni hè causata da un puntu di ruptura di hardware, u hardware guardà u valore di u PC à u puntu di ruptura in mtval.
  4. Per altri eccezzioni, u hardware stabilisce u valore di mtval à 0, cum'è break, l'eccezzioni causata da l'istruzzioni di chjama.
  5. Quandu entra in l'interruzzione, u hardware stabilisce u valore di mtval à 0.

Aghjurnà mstatus

À l'entrata di eccezzioni è interruzioni, u hardware aghjurnà certi bit in mstatus.

  1. MPIE hè aghjurnatu à u valore MIE prima di entre in l'eccezzioni o l'interruzzione, è MPIE hè utilizatu per restaurà u MIE dopu chì l'eccezzioni è l'interruzzione sò finite.
  2. MPP hè aghjurnatu à u modu privilegiatu prima di inserisce eccezzioni è interruzioni, è dopu chì l'eccezzioni è l'interruzioni sò finite, MPP hè utilizatu per restaurà u modu privilegiatu precedente.
  3. U microprocessore QingKe V3 supporta l'interruzzione di nidificazione in u modu Machine, è MIE ùn serà micca sguassatu dopu avè inseritu eccezzioni è interruzioni.

Aghjurnate u modu di privilegiu di u microprocessore

  • Quandu si verificanu eccezzioni è interruzioni, u modu privilegiatu di u microprocessore hè aghjurnatu à u modu Machine.

Funzioni di gestione di eccezzioni

  • Dopu à inserisce una eccezzioni o interruzzione, u microprocessore eseguisce u prugramma da l'indirizzu è u modu definitu da u registru mtvec. Quandu si usa l'entrata unificata, u microprocessore piglia una struzzione di salto da l'indirizzu di basa definitu da mtvec [31: 2] basatu annantu à u valore di mtvec [1], o riceve l'eccezzioni è l'indirizzu di gestione di a funzione di interruzzione è va à eseguisce invece. À questu tempu, a funzione di gestione di l'eccezzioni è di l'interruzzione pò determinà se a causa hè una eccezzioni o una interruzzione basatu annantu à u valore di mcause [31], è u tipu è a causa di l'eccezzioni o l'interruzzione currispundenti pò esse ghjudicati da u codice d'eccezzioni è trattatu in cunseguenza.
  • Quandu si usa l'indirizzu di basa + u numeru di interruzzione * 4 per l'offset, u hardware salta automaticamente à a tavola di vettore per uttene l'indirizzu d'ingressu di l'eccezzioni o a funzione di interruzzione basatu annantu à u numeru di interruzzione è salta per eseguisce.

Eccezzioni Exit

  • Dopu chì l'eccezzioni o l'interruzzione di u gestore hè cumpletu, hè necessariu di esce da u prugramma di serviziu. Dopu avè inseritu l'eccezzioni è l'interruzioni, u microprocessore entra in u Modu Machine da u Modu User, è u trattamentu di l'eccezzioni è l'interruzioni hè ancu cumpletu in u Modu Machine. Quandu hè necessariu di esce da l'eccezzioni è l'interruzioni, hè necessariu di utilizà l'istruzzioni mret per vultà. À questu tempu, u hardware di u microprocessore realizà automaticamente e seguenti operazioni.
  • L'indicatore di u PC hè restauratu à u valore di u registru CSR mepc, vale à dì, l'esekzione principia à l'indirizzu d'istruzzioni salvatu da mepc. Hè necessariu attentu à l'operazione offset di mepc dopu chì a gestione di l'eccezzioni hè finita.
  • Aghjurnate u statutu di u registru CSR, MIE hè restauratu à MPIE, è MPP hè utilizatu per restaurà u modu privilegiatu di u microprocessore precedente.
  • U prucessu di risposta d'eccezzioni tutale pò esse descrittu da a seguente Figura 2-1.WH-V3-Microprocessore-fig-1

PFIC è Interrupt Control

  • U microprocessore QingKe V3 hè cuncepitu cù un Controller d'Interruzione Rapida Programmable (PFIC) chì pò gestisce finu à 256 interruzioni cumprese eccezioni.
  • I primi 16 di elli sò fissi cum'è interruzioni internu di u microprocessatore, è u restu sò interruzioni esterni, vale à dì chì u numeru massimu di interruzioni esterni pò esse allargatu à 240. E so caratteristiche principali sò i seguenti.
  • 240 interruzioni esterne, ogni dumanda di interruzzione hà bit di cuntrollu indipendente di trigger è maschera, cù bit di statu dedicatu
  • A priorità di interruzzione programmabile supporta 2 livelli di nidificazione
  • Interruzzione rapida speciale in / out u mecanismu, impilamentu automaticu di hardware è ricuperazione, prufundità massima HPE di 2 livelli
  • Meccanismo di risposta à l'interruzzione di Vector Table Free (VTF), accessu direttu programmabile à 2 canali à l'indirizzi di vettori di interruzzione
  • Nota: A prufundità massima di nidificazione è a prufundità HPE supportata da i cuntrolli di interruzzione varienu per diversi mudelli di microprocessori, chì ponu esse truvati in a Tabella 1-1.
  • A tabella di vettori di interruzioni è eccezzioni hè mostrata in a Tabella 3-1 sottu.

Tabella 3-1 Eccezzioni è tavula di vettori di interruzzione

numeru Priurità Tipu Nome Descrizzione
0
1
2 -5 Fixed NMI Interruzzione non-maskable
3 -4 Fixed EXC Interruzzione di eccezzioni
4
5 -3 Fixed ECALL-M Interruzzione di callback in modalità macchina
6-7
8 -2 Fixed ECALL-U Interruzzione di callback in u modu d'utilizatore
9 -1 Fixed BREAKPOINT Interruzzione di callback di Breakpoint
10-11
12 0 Programmable SysTick Interruzzione di u timer di u sistema
13
14 1 Programmable SWI Interruzzione di u software
15
16-255 2-241 Programmable Interruzzione esterna Interrupt esterna 16-255

Nota: ECALL-M, ECALL-U, è BREAKPOINT sò tutti i sfarenti tippi di eccezzioni EXC, chì sò indipindenti in V3B / C per facilità d'utilizazione, è l'indirizzi di entrata 3 sopra sò spartuti cù EXC in V3A.

Set di Registri PFIC

Tabella 3-2 Registri PFIC

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_ISRx 0xE000E000

-0xE000E01C

RO Interruzzione di attivazione di u registru di status x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO Interrupt in pending status register x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW Interrompe u registru di cunfigurazione di u sogliu di priorità 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW Registru di l'indirizzu di basa VTF

Nota: validu solu per V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Interrompe u registru di cunfigurazione

Nota: validu solu per V3A

0x00000000
PFIC_GISR 0xE000E04C RO Interrompe u registru di u statu globale 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

Registru di cunfigurazione di l'ID di interruzzione VTF

Nota: validu solu per V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x registru di indirizzu offset 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO L'interruzzione di attivazione di u registru x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO L'interruzzione attiva u registru x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Interrompe u registru di impostazione in attesa x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Interruzzione in attesa di u registru chjaru x 0x00000000
PFIC_IACTRx 0xE000E300

-0xE000E31C

RO Interrompe u registru di statutu di attivazione x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW Interrompe u registru di cunfigurazione di priorità 0x00000000
PFIC_SCTLR 0xE000ED10 RW Registru di cuntrollu di u sistema 0x00000000

Nota:

  1. NMI, EXC, ECALL-M, ECALL-U è BREAKPOINT sò sempre attivati ​​per difettu.
  2. ECALL-M, ECALL-U è BREAKPOINT sò un casu di EXC.
  3. NMI, EXC, ECALL-M, ECALL-U, è BREAKPOINT supportanu l'interruzzione in attesa di l'operazione di cancellazione è di impostazione, ma micca di interrompe l'attivazione di l'operazione di cancellazione è impostazione.

Ogni registru hè descrittu cusì:

Statu di attivazione di l'interruzzione è interrompe i registri di statu in attesa (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
 PFIC_ISR0  0xE000E000  RO L'interruzzione 0-31 permette u registru di statutu, un totale di 32 bit di status [n], chì indicanu #n l'interruzzione permette u statu

Nota: NMI è EXC sò attivati per difettu

 Per V3A: 0x0000000C

Per V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO L'interruzzione 32-63 attiva u registru di statutu, un totale di 32 bit di status 0x00000000
PFIC_ISR7 0xE000E01C RO L'interruzzione 224-255 attiva u registru di statutu, un totale di 32 bit di statutu 0x00000000
PFIC_IPR0 0xE000E020 RO Interrupt 0-31 statu pendente 0x00000000
registru, un totale di 32 bit di status [n], chì indicanu u statu pendente di l'interruzzione #n
PFIC_IPR1 0xE000E024 RO Interrupt 32-63 registri di statu in attesa, 32 bit di statu in totale 0x00000000
PFIC_IPR7 0xE000E03C RO Interrupt 244-255 registru di statu in attesa, 32 bit di statu in totale 0x00000000

Dui setti di registri sò usati per attivà è disattivà l'interruzioni currispundenti.

Interrompe l'impostazione di attivazione e cancella i registri (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_IENR0 0xE000E100 WO L'interruzione 0-31 abilita l'impostazione di u registru, un totale di 32 bit di impostazione [n], per l'impostazione di attivazione di interruzione #n

Nota: NMI è EXC attivatu per difettu

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Interrupt 32-63 per attivà u registru di paràmetru, un totale di 32 bit di paràmetru 0x00000000
PFIC_IENR7 0xE000E11C WO Interrupt 224-255 enable setting

registru, un totale di 32 bit di impostazione

0x00000000
 PFIC_IRER0  0xE000E180  WO L'interruzioni 0-31 attivanu u registru di cancellazione, un totale di 32 bit di cancellazione [n], per l'interruzione #n attivate di cancellazione Nota: NMI è EXC ùn ponu esse operatu  

 

0x00000000

PFIC_IRER1 0xE000E184 WO L'interruzzione 32-63 permette un registru chjaru, un totale di 32 bit chiari 0x00000000
PFIC_IRER7 0xE000E19C WO L'interruzzione 244-255 permette un registru chjaru, un totale di 32 bits chjaru 0x00000000

Dui setti di registri sò usati per attivà è disattivà l'interruzioni currispundenti.

Interrompe l'impostazione pendente e cancella i registri (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
 

PFIC_IPSR0

 

0xE000E200

 

WO

Interrupt 0-31 in attesa di registru di impostazione, 32

impostazione bit [n], per l'interruzione #n in attesa di impostazione

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Interrupt 32-63 in attesa di u registru di installazione,

totale di 32 bit di configurazione

0x00000000
PFIC_IPSR7 0xE000E21C WO Interrupt 224-255 in attesa di paràmetru

registru, 32 bit di impostazione in totale

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Interruzione 0-31 in attesa di registrazione di cancellazione, un totale di 32 bit di cancellazione [n], per l'interruzione #n

in attesa di chjaru

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Interruzzione 32-63 in attesa di registru chjaru,

totale di 32 bit chiari

0x00000000
PFIC_IPRR7 0xE000E29C WO Interruzzione 244-255 in attesa di registru chjaru,

totale di 32 bit chiari

0x00000000

Quandu u microprocessore permette una interruzzione, pò esse stallata direttamente à traversu u registru pendente di interruzzione per attivà l'interruzzione. Aduprate u registru chjaru di interruzzione pendente per sguassà u trigger pendente.

Registru di statu di attivazione di l'interruzzione (PFIC_IACTR<0-7>)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
 PFIC_IACTR0  0xE000E300  RO L'interruzzione 0-31 attiva u registru di statutu cù 32 bit di status [n], chì indica chì l'interruzzione #n hè stata eseguita  0x00000000
 PFIC_IACTR1  0xE000E304  RO Interrompe 32-63 registri di status di attivazione, 32 bit di status in

tutale

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Interrupt 224-255 registri di status di attivazione, un totale di 32 bit di statutu  0x00000000

Ogni interruzzione hà un bit di statutu attivu chì hè stallatu quandu l'interruzzione hè entrata è sbulicata da u hardware quandu u mercatu torna.

Interrupt priority and priority threshold registers (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_IPRIOR0 0xE000E400 RW Interrupt 0 cunfigurazione di priorità. V3A: [7: 4]: Bits di cuntrollu di priorità Se a cunfigurazione ùn hè micca nidificata, senza bit di preemption Se nesting hè cunfiguratu, bit7 hè u bit preempted. [3:0]: Riservatu, fissu à 0  V3B: [7:6]: Bits di cuntrollu di priorità Se a cunfigurazione ùn hè micca nidificata, ùn ci hè micca un bit preemptive cunfiguratu nidificati, tutti i bit sò preempted, ma finu à dui livelli di interruzioni sò permessi di accade [5:0]: Riservatu, fissu à 0
V3C:
[7:5]: Bits di cuntrollu di priorità
Se a cunfigurazione ùn hè micca nidificata, ùn ci hè micca preemptive bits
Se cunfigurati nidificatu, tutti i bits sò preempted, ma finu à dui livelli di interruzioni sò permessi di accade [4: 0]: Riservatu, fissu à 0 Nota: U più chjucu u valore di priorità, u più altu a priorità. Se a listessa interruzzione di priorità di preemption pende à u stessu tempu, l'interruzzione cù a priorità più alta serà eseguita prima.
0x00
PFIC_IPRIOR1 0xE000E401 RW Interrupt 1 priorità, listessa funzione cum'è PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW Interrupt 2 priorità, listessa funzione cum'è PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW Interrupt 254 setting di priorità, stessa funzione cum'è PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW Interrupt 255 priorità, listessa funzione cum'è PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW Interruzzione di u sogliu di priorità

V3A:

[31:8]: Riservatu, fissu à 0 [7:4]: U limitu di priorità [3:0]: Riservatu, fissu à 0

 V3B:

[31:8]: Riservatu, fissu à 0 [7:5]: U limitu di priorità [4:0]: Riservatu, fissu à 0

 V3C:

[31:8]: Riservatu, fissu à 0 [7:5]: U limitu di priorità [4:0]: Riservatu, fissu à 0

Nota: Per interruzioni cù valore di priorità ≥ soglia, a funzione di serviziu di interruzzione ùn hè micca eseguita quandu si verifica un hang, è quandu stu registru hè 0, significa chì u registru di u soglia hè invalidu.

0x00

Registru di cunfigurazione di l'interruzzione (PFIC_CFGR)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_CFGR 0xE000E048 RW Interrompe u registru di cunfigurazione 0x00000000

Stu registru hè validu solu per V3A, i so bit sò definiti cum'è:

Bit Nome Accessu Descrizzione Resetta u valore
[31:16] KEYCODE WO In currispundenza à diversi bit di cuntrollu di destinazione, i dati di identificazione di l'accessu di sicurità currispundenti deve esse scritti simultaneamente per esse mudificate, è i dati di lettura sò fissati à 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. 0
[15:8] Riservatu RO Riservatu 0
7 SYSRESET WO Reset di u sistema (scrittura simultanea à KEY3). Cancellazione automatica 0.

A scrittura 1 hè valida, a scrittura 0 hè invalida.

Nota: Stessa funzione cum'è u bit SYSRESET di registru PFIC_SCTLR.

0
6 PFICRESET WO Reset di u modulu PFIC. Cancellazione automatica 0.

A scrittura 1 hè valida, a scrittura 0 hè invalida.

0
5 EXPRESS WO Interruzzione di eccezzioni in attesa di clarifica (scrittura simultanea à KEY2)

A scrittura 1 hè valida, a scrittura 0 hè invalida.

0
4 EXCSET WO Impostazione in attesa di interruzione di eccezzioni (scrittura simultanea à KEY2)

A scrittura 1 hè valida, a scrittura 0 hè invalida.

0
3 NMIRESET WO Interruzione NMI in attesa di cancellazione (scrittura simultanea à KEY2)

A scrittura 1 hè valida, a scrittura 0 hè invalida.

0
2 NMISET WO Impostazione in attesa di interruzione NMI (Scrittura simultanea su KEY2)

A scrittura 1 hè valida, a scrittura 0 hè invalida.

0
1 NESTCTRL RW L'interruzzione di nidificazione permette u cuntrollu.

1: off; 0: on (scrittura sincrona à KEY1)

0
0 HWSTKCTRL RW HPE permette u cuntrollu

1: off; 0: on (scrittura sincrona à KEY1)

0

Interrompe u registru di u statu globale (PFIC_GISR)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_GISR 0xE000E04C RO Interrompe u registru di u statu globale 0x00000000

I so ghjente sò definiti cum'è

Bit Nome Accessu Descrizzione Resetta u valore
[31:14] Riservatu RO Riservatu 0
 

 

13

 

 

LOCKSTA

 

 

RO

Se u processatore hè attualmente in un statu chjusu:

1: Statu chjusu;

0: Statu micca chjusu.

Nota: Stu bit hè validu solu per u V3B/C.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

Se u processatore hè attualmente in u statu di debug: 1: Debug state;

0: Statu senza debug.

Nota: Stu bit hè validu solu per u V3B/C.

 

 

0

 

 

11

 

 

GLOBLI

 

 

RO

Abilitazione di l'interruzzione globale:

1: Habilita l'interruzzione;

0: Disattiva l'interruzzione.

Nota: Stu bit hè validu solu per u V3B/C.

10 Riservatu RO Riservatu 0
9 GPENDSTA RO Se una interruzzione hè attualmente pendente.

1: Iè; 0: Innò.

0
8 GACTSTA RO Se una interruzzione hè attualmente eseguita.

1: Iè; 0: Innò.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

Statu di nidificazione di interruzzione attuale. 0x03: in u nivellu 2 interrupt.

0x01: in u nivellu 1 interruzzione. 0x00: ùn ci hè micca interruzzione.

Altru: Situazione impussibule.

 

 

0

L'indirizzu di basa di l'ID VTF è i registri di l'indirizzu offset (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: High 4 bits di l'indirizzu di destinazione di VTF [27:0]: Riservatu

Stu registru hè validu solu per V3A.

 

 

0x00000000

 

 

 

PFIC_VTFIDR

 

 

 

0xE000E050

 

 

 

RW

[31:24]: Number of VTF 3 [23:16]: Number of VTF 2 [15:8]: Number of VTF 1 [7:0]: Number of VTF 0

Stu registru hè validu solu per V3B/C.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: VTF 0 interrupt number [23:0]: i 24 bits bassi di l'indirizzu di destinazione VTF, di quale i 20 bits bassi sò cunfigurati per esse validi, è [23:20] hè fissatu à 0.

 V3B/C:

[31:1]: Indirizzu VTF 0, allineatu à 2 byte [0]:

1: Attivà u canali VTF 0

0: Disattivà

 

 

 

 

 

 

 

Per V3A: 0x00000000

Per V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 1 numero di interruzione [23:0]: I 24 bits bassi di l'indirizzu di destinazione VTF, di quale i 20 bits bassi sò cunfigurati per esse validi è [23:20] hè fissatu à 0.

 

V3B/C:

[31:1]: Indirizzu VTF 1, allineatu à 2 byte [0]:

1: Attivà u canali VTF 1

0: Disattivà

 

 

 

 

 

 

 

Per V3A: 0x00000000

Per V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 2 interrupt number [23:0]: i 24 bits bassi di l'indirizzu di destinazione VTF, di quale i 20 bits bassi sò cunfigurati per esse validi, è [23:20] hè fissatu à 0.

 

V3B/C:

[31:1]: Indirizzu VTF 2, allineatu à 2 byte [0]:

1: Attivà u canali VTF 2

0: Disattivà

 

 

 

 

 

 

 

Per V3A: 0x00000000

Per V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: Per V3A:
[31:24]: VTF 3 interrupt number [23:0]: i 24 bits bassi di l'indirizzu di destinazione VTF, di quale i 20 bits bassi sò cunfigurati per esse validi, è [23:20] hè fissatu à 0.

 V3B/C:

[31:1]: Indirizzu VTF 3, allineatu à 2 byte [0]:

1: Attivà u canali VTF 3

0: Disattivà

0x00000000

Per V3B/C: 0xXXXXXXXXX

Registru di cuntrollu di u sistema (PFIC_SCTLR)

Nome Indirizzu di accessu Accessu Descrizzione Resetta u valore
PFIC_SCTLR 0xE000ED10 RW Registru di cuntrollu di u sistema 0x00000000

Ognunu di elli hè definitu cusì.

Bit Nome Accessu Descrizzione Resetta u valore
31 SYSRESET WO Reset di u sistema, auto clear 0. Scrivite 1 hè validu, è scrive 0 hè invalidu.

Nota: Stu bit hè validu solu per V3B/C

0
[30:6] Riservatu RO Riservatu 0
5 SETEVENT WO Pone l'avvenimentu per svegliate u casu WFE. 0
 

4

SEVONPEND RW Quandu si verifica un avvenimentu o interrompe un statu pendente, u sistema pò esse svegliatu dopu à l'istruzzioni WFE, o se l'istruzzioni WFE ùn hè micca eseguita, u sistema sarà svegliatu immediatamente dopu a prossima esecuzione di l'istruzzioni.

1: L'avvenimenti attivati ​​è tutte l'interruzioni (Incluse l'interruzioni inattivate) ponu sveglià u sistema.

0: Solu l'avvenimenti attivati ​​è attivati

l'interruzioni ponu svegliate u sistema.

 

 

 

0

3 WFITOWFE RW Eseguite u cumandamentu WFI cum'è s'ellu era un WFE.

1: Tratta l'istruzione WFI successiva cum'è una struzzione WFE.

0: Nisun effettu.

0
2 DORMI PROFUNDU RW Modu di bassa putenza di u sistema di cuntrollu. 0
1 : sonnu prufondu 0 : dorme
1 SLEEPONEXI T RW U statutu di u sistema dopu u cuntrollu abbanduneghja u prugramma di serviziu di interruzzione.

1: U sistema entra in modu di bassa putenza.

0: U sistema entra in u prugramma principale.

0
0 Riservatu RO Riservatu 0

Registri CSR in relazione à l'interruzzione

Inoltre, i seguenti registri CSR anu ancu un impattu significativu nantu à u processu di interruzioni. Interrompe u registru di cuntrollu di u sistema (intsyscr)

Stu registru ùn hè micca validu solu per V3A:

Nome CSR Indirizzu Accessu Descrizzione Resetta u valore
intsyscr 0x804 URW Interrompe u registru di cuntrollu di u sistema 0x0000E002

I so ghjente sò definiti cum'è:

Bit Nome Accessu Descrizzione Resetta u valore
 

 

 

31

 

 

 

LOCK

 

 

 

URO

0: Stu registru pò esse lettu è scrittu in modu d'utilizatore;

1: Stu registru pò esse lettu è scrittu solu in modu macchina.

Nota: Stu bit di cunfigurazione hè validu da

versione 1.0 in poi.

 

 

 

0

[30:6] Riservatu URO Riservatu 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

L'interruzzione globale è l'arrestu di stack hardware sò attivati.

Nota: Stu bit hè spessu usatu in sistemi operativi in ​​tempu reale. Quandu u cuntestu hè cambiatu durante una interruzzione, stabilisce stu bit pò disattivà l'interruzzione globale è spinghje a pila di hardware. Quandu u cambiamentu di cuntestu hè cumpletu è l'interruzzione torna, u hardware serà

sguassate automaticamente stu bit.

 

 

 

 

 

0

4 Riservatu URO Riservatu 0
[3:2] PMTCFG URW Configurazione di i bit di prelazione di priorità:

00: U numaru di bit di preemption hè 0; 01: U numaru di bit di preemption hè 1; 10: U numaru di bits di preemption hè 2; 11: U numaru di bits di preemption hè 3; Nota: Stu bit di cunfigurazione hè validu dopu 1.0.

0
1 ASCOLTA URW A funzione di nidificazione di interruzzione hè attivata, è u valore fissu hè 1: 1
0: Disattivà;

1: Attivà.

Nota: 1. U nivellu di nidificazione attuale hè cuntrullatu da NEST_LVL in CSR 0xBC1;

2. Solu versioni dopu à 1.0 pò esse

scrittu.

0 HWSTKEN URW Abilitazione di stack hardware:

0: A funzione di pressa di stack hardware hè disattivata;

1: A funzione di pressa di stack hardware hè attivata.

0

Registru di l'indirizzu di basa di l'eccezzioni in modalità macchina (mtvec)

Nome CSR Indirizzu Accessu Descrizzione Resetta u valore
mtvec 0x305 MRW Eccezzioni registru di indirizzu di basa 0x00000000

I so ghjente sò definiti cum'è

Bit Nome Accessu Descrizzione Resetta u valore
[31:2] BASEADDR [31:2] MRW Interrompe l'indirizzu di basa di a tavola di vettore, induve

i bits [9:2] sò fissi à 0.

0
1 MODE 1  

MRO

Modu di ricunniscenza di a tavola vettoriali di interruzzione: 0: Identificà per l'istruzzioni di salto, cù un scopu limitatu, è sustene l'istruzzioni senza salti;

1: Identificà per indirizzu assolutu, sustene a gamma completa, ma deve saltà.

Nota: Stu bit hè validu solu per V3B/C.

0
0 MODE 0 MRW Selezzione di u modu d'indirizzu di entrata di interruzzione o eccezzioni.

0: Utilizazione di l'indirizzu d'entrata uniforme.

1: Offset di l'indirizzu basatu annantu à u numeru di interruzzione *4.

0

Per i MCU cù microprocessori di a serie V3, MODE0 hè cunfiguratu per esse 1 per difettu in l'iniziu. file, è l'entrata per l'eccezzioni o l'interruzioni sò offset secondu u numeru di interruzzione *4. Nota chì u microprocessore V3A guarda una struzzione di salto à a tavola di vettore, mentre chì u microprocessore V3B/C pò esse una struzzione di salta o aduprà l'indirizzu assolutu di a funzione di interruzzione, chì hè cunfigurata cum'è un indirizzu assolutu in l'iniziu predeterminatu. file.

Registru di cunfigurazione di u microprocessore (correttore)

Stu registru ùn hè micca validu per V3A:

Nome CSR Indirizzu Accessu Descrizzione Resetta u valore
corecfgr 0xBC0 MRW Registru di cunfigurazione di u microprocessore 0x00000001

I so ghjente sò definiti cum'è

Bit Nome Accessu Descrizzione Resetta u valore
[31:8] Riservatu MRO Riservatu 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

Attivazione di l'interruzzione di l'errore di statu di core:

0: In l'errore di statutu, ùn hè generata alcuna interruzzione NMI;

1: In errore di statutu, l'interruzzione NMI hè

generatu.

 

 

0

6 Riservatu MRO Mantene 0. 0
5 IE_REMAP_EN MRW A mappatura di u registru MIE permette:

0: L'indirizzu CSR 0x800 hè un registru di sola lettura è u valore di ritornu hè u valore di STATUS;

1: Bits 3 è 7 di l'indirizzu CSR 0x800 sò mappati à bit MIE di u registru STATUS è bit MPIE di u registru STATUS, rispettivamente.

 

 

 

 

0

4 Riservatu MRO Riservatu 0
3 ROM_LOOP_ACC MRW Attivazione di l'accelerazione di loop di istruzzioni di l'area ROM:

0: Spegne a funzione di accelerazione ciclica in l'area ROM;

1: L'istruzzioni cuntinui cù un corpu di loop in 128 byte seranu accelerati cumplettamente, mentre chì quelli chì anu un corpu di loop in 256 byte seranu parzialmente accelerati;

0
2 ROM_JUMP_ACC MRW Accelerazione di salto di l'area di ROM attivata:

0: Disattivà l'accelerazione di salto di l'istruzzioni di l'area ROM;

1: Abilita l'accelerazione di salto di istruzzioni in l'area ROM.

0
[1:0] FETCH_MODE MRW Modu di cattura:

00: Prefetch hè disattivatu. A funzione di prefetch di l'istruzzioni hè disattivata per evità operazioni di ricuperazione di istruzzioni invalide, è ci hè almenu una struzzione valida nantu à u pipeline CPU. Stu mudellu hà u cunsumu di energia più bassu, è u so rendimentu scende da circa 2 ~ 3 volte. 01: Modu Prefetch 1. Quandu a funzione di prefetch di l'istruzzioni hè attivata, u CPU continuarà à accede à a memoria di l'istruzzioni finu à chì u numeru di struzzioni per esse eseguitu in u buffer d'istruzzioni internu supera un certu nùmeru, o u buffer d'istruzzioni hè pienu, è a furmazione di struzzioni serà sospesa; (U fallimentu di a prediczione di CPU purterà à l'operazione di ricerca redundante, è in certi casi, l'unità di esecuzione introduverà 0 ~ 2 cicli di bolle, è a prestazione di a maiò parte di i prugrammi ùn diminuite ovviamente); 10: Riservatu;
11: Modu Prefetch 2. Quandu a funzione di prefetch di l'istruzzioni hè attivata, u CPU continuarà à accede à a memoria di l'istruzzioni, è se u buffer di l'istruzzioni hè pienu, u CPU continuarà à ritruvà l'indirizzu. Stu modu hà u più altu rendiment è u cunsumu di energia. U fallimentu di a previsione di CPU è a riprova introducerà operazioni di recuperu redundante è ponu cuntinuà à occupà a larghezza di banda di memoria. (Per l'area ROM, ripruvà significa accessu à l'indirizzu discontinuu, cusì hè cunsigliatu per attivà ROM_ACC_EN).

0x1

Interrompe u registru di cuntrollu nidificatu (inestcr)

Stu registru hè invalidu solu per V3A:

Nome CSR Indirizzu Accessu Descrizzione Resetta u valore
investitore 0xBC1 MRW Interrompe u registru di cuntrollu nidificatu 0x00000000

I so ghjente sò definiti cum'è

Bit Nome Accessu Descrizzione Resetta u valore
31 Riservatu MRO Riservatu 0
30 NEST_OV MRW Bit di bandiera di overflow nidificati di interruzione/eccezione, scrive 1 per sguassà:

0: L'interruzzione ùn hà micca overflow; 1: Interrompe a bandiera di overflow.

Nota: L'interruzione di overflow si verifica solu quandu eseguisce a funzione di serviziu di interruzzione secundaria per generà un'eccezzioni d'istruzione o una interruzzione NMI. À questu tempu, l'eccezzioni è l'interruzzione NMI entranu nurmale, ma u CPU stack overflows, cusì ùn pudete micca esce da questa eccezzioni è

NMI interrompu.

0
[29:12] Riservatu MRO Riservatu 0
[11:8] NEST_STA MRO Bit di bandiera di statu nidificatu:

0000: Nisuna interruzzione;

0001: Livellu 1 interruzzione;

0011: interruzzione di livellu 2 (nidificazione di 1 livellu);

0
0111: Livellu 3 interruzzione (overflow);

1111: Livellu 4 interruzzione (overflow).

[7:2] Riservatu MRO Riservatu 0
[1:0] NEST_LVL MRW Livellu di nidificazione:

00: A nidificazione hè pruibita è a funzione di nidificazione hè disattivata;

01: Nidificazione di primu livellu, chì attiva a funzione di nidificazione;

Altru: Invalidu.

Nota: Scrivite 10 o 11 à questu campu, è u campu serà stabilitu à 01. Quandu scrivite 11 à questu campu, leghjite stu registru per uttene u più altu livellu di nidificazione di u chip.

0

U modu di l'utilizatori di l'interruzzione globale di attivazione di u registru (intern)

Stu registru hè invalidu solu per V3A:

Nome CSR Indirizzu Accessu Descrizzione Resetta u valore
gintenr 0x800 URW U registru di attivazione di l'interruzzione globale 0x00000000

Stu registru hè adupratu per cuntrullà l'attivazione è a maschera di l'interruzzione globale. L'abilitazione è a maschera di l'interruzzione globale in u modu di a macchina pò esse cuntrullata da i bit MIE è MPIE in status, ma stu registru ùn pò micca esse operatu in u modu d'utilizatore.
L'interruzzione globale attivata u registru gintenr hè a mappatura di MIE è MPIE in mstatus, è pò esse usata per stabilisce è sguassate MIE è MPIE operandu gintenr in modu d'utilizatore.

Ognunu di elli hè definitu cum'è:

Bit Nome Accessu Descrizzione Resetta u valore
[31:13] Riservatu URO Riservatu 0
[12:11] MPP URO Entra in u modu privilegiatu prima di l'interruzzione. 0
[10:8] Riservatu URO Riservatu 0
7 MPIE URW Quandu 0xBC0 (CSR) bit5 hè attivatu, questu bit

pò esse lettu è scrittu in modu d'utilizatore.

0
[6:4] Riservatu URO Riservatu 0
3 Mie URW Quandu 0xBC0 (CSR) bit5 hè attivatu, questu bit

pò esse lettu è scrittu in modu d'utilizatore.

0
[1:0] Riservatu URO Riservatu 0

Interrupt Nesting

In cunjunzione cù l'interruzzione, u registru di cunfigurazione PFIC_CFGR è u registru di priorità d'interruzzione PFIC_IPRIOR, pò esse permessu di nidificazione di interruzioni. Abilita a nidificazione in u registru di cunfigurazione di l'interruzzione (A nidificazione hè attivata per difettu per i microprocessori di a serie V3) è cunfigurà a priorità di l'interruzzione currispondente. U più chjucu u valore di priorità, u più altu hè a priorità. U più chjucu u valore di u bit di preemption, u più altu a priorità di preemption. Se ci sò interruzioni appiccicate à u stessu tempu sottu a listessa priorità di preemption, u microprocessore risponde à l'interruzzione cù u valore di priorità più bassa (priorità più alta) prima.

Hardware Prologue/Epilogue (HPE)

  • Quandu si trova una eccezzioni o interruzzione, u microprocessore ferma u flussu di u prugramma attuale è passa à l'esekzione di l'eccezzioni o a funzione di gestione di l'interruzzione, u situ di u flussu di u prugramma attuale deve esse salvatu. Dopu à l'eccezzioni o l'interruzzione torna, hè necessariu di restaurà u situ è ​​cuntinuà l'esekzione di u flussu di u prugramma arrestatu. Per i microprocessori di a serie V3, u "situ" quì si riferisce à tutti i registri di Caller Saved in a Tabella 1-2.
  • I microprocessori di a serie V3 supportanu u salvamentu automaticu in un ciclu di hardware di 16 di i registri salvati in forma di chjamante in una zona di stack interna chì ùn hè micca visibile per l'utilizatore. Quandu una eccezzioni o una interruzzione torna, u ciculu unicu hardware restaura automaticamente e dati da l'area di stack interna à i registri in forma di 16. HPE supporta nidificazione finu à 2 livelli in profondità.
  • Un schematicu di a pila di pressione di u microprocessore hè mostratu in a figura seguente.WH-V3-Microprocessore-fig-2

Nota:

  1. E funzioni di interruzzione chì utilizanu l'HPE anu da esse compilate cù MRS o a so catena di strumenti furnita è a funzione di interruzzione deve esse dichjarata cù __attribute__((interrupt ("WCH-Interrupt-fast"))).
  2. A funzione di interruzzione cù stack push hè dichjarata da __attribute__((interrupt())).

Tabella Vector Free (VTF)

  • U Controller d'Interruzione Rapida Programmable (PFIC) furnisce 4 canali VTF, vale à dì, accessu direttu à l'entrata di a funzione di interruzzione senza passà per u prucessu di ricerca di a tabella di vettori di interruzzione.
  • U canali VTF pò esse attivatu scrivendu u so numeru di interruzzione, l'indirizzu di basa di a funzione di serviziu di interruzzione è l'indirizzu offset in u registru di u controller PFIC currispundente mentre cunfigurà una funzione di interruzzione nurmale.
  • U prucessu di risposta PFIC per interruzioni veloci è senza table hè mostratu in a Figura 3-2 sottu.WH-V3-Microprocessore-fig-3

Prutezzione di a memoria fisica PMP

  • Per migliurà a sicurità di u sistema, u modulu di prutezzione di memoria fisica (PMP) hè cuncepitu secondu u standard di l'architettura RISC-V per i microprocessori di a serie V3 d'orzu highland. A gestione di diritti d'accessu di finu à 4 regioni fisiche hè supportata. I permessi includenu attributi di lettura (R), scrittura (W) è esecutà (X), è a lunghezza di l'area prutetta pò esse stabilita à 4 bytes almenu. U modulu PMP hà sempre effettu in u modu di l'utilizatori, ma pò esse effettue opzionalmente chjudendu l'attributu (L) in u modu macchina.
  • Se l'accessu viola u limitu di permessu attuale, pruvucarà una interruzzione anormale. U modulu PMP include quattru gruppi di registri di cunfigurazione di 8-bit (Un gruppu di 32-bit) è quattru gruppi di registri d'indirizzu, tutti chì anu da esse accessu in modu di macchina da l'istruzzioni CSR.
  • Nota: U numaru di zoni prutetti supportati da PMP in diversi mudelli di microprocessori pò esse diversu, è u numeru supportatu da i registri pmpcfg è pmpaddr hè ancu diversu. Vede a Table 1-1 per i dettagli.

Set di registru PMP

A lista di i registri CSR supportati da u modulu PMP di u microprocessore V3 hè mostratu in a Tabella 4-1 sottu.

Tabella 4-1 Set di registri di moduli PMP

Nome indirizzu CSR Accessu Descrizzione Resetta u valore
pmpcfg0 Saulės sistemos kardaninis velenas MRW Registru di cunfigurazione PMP 0 0x00000000
pmpaddr0 Talpa: pritaikoma pagal poreikį MRW Registru di indirizzu PMP 0 0xXXXXXXXXX
pmpaddr1 Talpa: pritaikoma pagal poreikį MRW Registru di indirizzu PMP 1 0xXXXXXXXXX
pmpaddr2 Talpa: pritaikoma pagal poreikį MRW Registru di indirizzu PMP 2 0xXXXXXXXXX
pmpaddr3 Talpa: pritaikoma pagal poreikį MRW Registru di indirizzu PMP 3 0xXXXXXXXXX

Pmp

pmpcfg hè u registru di cunfigurazione di l'unità PMP, è ogni registru cuntene quattru campi di pumping 8-bit, chì currispondenu à a cunfigurazione di quattru regioni, è u pumping rapprisenta u valore di cunfigurazione di a regione i. U so furmatu hè mostratu in a tavula 4-2.

Tabella 4-2 registru pmpcfg0WH-V3-Microprocessore-fig-4

pmpcfg hè utilizatu per cunfigurà l'area I è a so definizione di bit hè descritta in a seguente tabella 4-3.

Table 4-3 pmp

Bit Nome Descrizzione
7 L A serratura hè attivata è pò esse sbloccata in modu di macchina. 0: Ùn chjusu;

1: Lock u registru pertinente.

[6:5] Riservatu
[4:3] A L'allineamentu di l'indirizzu è a selezzione di l'area di prutezzione. 00: OFF (PMP off)

01: TOR (Prutezzione di l'allineamentu superiore) 10: NA4 (Prutezzione fissa di quattru byte)

11: NAPOT (2 (G + 2) Byte prutezzione, G≥1)

2 X Attributu eseguibile.
0: Nisun permessu di eseguisce;

1: Eseguite permessu.

 

1

 

W

Attributu scrivibile.

0: Nisun permessu di scrittura 1: Permissione di scrittura.

 

0

 

R

Attributu leggibile

0: Nisun permessu di lettura 1: Permissione di lettura.

pmpaddr

U registru pmpaddr hè utilizatu per cunfigurà l'indirizzu di l'area I. A definizione standard hè sottu à l'architettura RV32, chì hè a codificazione di i 32 bits superiori di un indirizzu fisicu 34-bit, è u so formatu hè indicatu in a seguente tabella 4-4.
Tuttu u spaziu fisicu di l'indirizzu fisicu di u microprocessore V3 hè 4G, cusì i dui bits superiori di stu registru ùn sò micca usati.

Tabella 4-4 pmpaddrWH-V3-Microprocessore-fig-5

Quandu NAPOT hè sceltu, u bit bassu di u registru di l'indirizzu hè ancu utilizatu per indicà a dimensione di l'area di prutezzione attuale, cum'è mostra in a tabella chì seguita, induve "y" hè un pocu di u registru.
Tabella 4-5 Tabella di relazione trà a cunfigurazione PMP è u registru di indirizzu è l'area prutetta.

pmpaddr pmpcfg. A L'indirizzu di a basa è a dimensione currispondente
aaaaaaaaaaaaaaaaaaaaaaaaa NA4 Cù 'yy...yyyy00' cum'è l'indirizzu di basa, l'area di 4 byte hè prutetta.
aaaa... aaaa0 NAPOT Cù 'yy...yyy000' cum'è l'indirizzu di basa, l'area di 8 byte hè prutetta.
aaaa... aaa01 NAPOT Cù 'yy...yy0000' cum'è l'indirizzu di basa, l'area di 16 byte hè prutetta.
yyyy…y011 NAPOT Cù 'yy...y00000' cum'è l'indirizzu di basa, l'area di 16 byte hè prutetta.
aaa01…111 NAPOT Cù 'y0...000000' cum'è l'indirizzu di basa, l'area di 231 byte hè prutetta.
yy011…111 NAPOT Prutegge tutta l'area di 232 byte.

Meccanismu di prutezzione

X / W / R in pmpcfg hè utilizatu per stabilisce l'autorità di prutezzione di l'area I, è a violazione di l'autorità pertinente pruvucarà una eccezzioni currispondente:

  1. Quandu pruvate à piglià l'istruzzioni in l'area PMP senza l'autorità di esecuzione, pruvucarà una eccezzioni d'errore d'accessu à l'istruzzioni (mcause=1).
  2. Quandu pruvate di scrive dati in l'area PMP senza permessu scrittu, pruvucarà una eccezzioni d'errore (mcause = 7) in l'accessu à l'istruzzioni di a tenda.
  3. Quandu pruvate di leghje dati in l'area PMP senza permessu di lettura, pruvucarà un errore d'accessu di memoria anormali (mcause = 5) per l'istruzzioni di carica.

A in pmpcfg hè utilizatu per stabilisce a gamma di prutezzione è l'allineamentu di l'indirizzu di a regione I, è per prutege a memoria di A_ADDR ≤ regione < i > < B_ADDR (i dui A_ADDR è B_ADDR sò richiesti per esse allinati in 4 bytes):

  1. Se B _ ADDR–A_ADDR = = 22, u modu NA4 hè aduttatu;
  2. Se B _ ADDR–A_ADDR = = 2 (G+2), G≥1, è un indirizzu _ hè 2 (g+2), u metudu NAPOT hè aduttatu;
  3. Altrimenti, u modu TOP hè aduttatu.

Tabella 4-6 Metodi di currispundenza di l'indirizzu PMP

Un valore Nome Descrizzione
0b00 OFF Nisuna zona da prutege
0b01 TOR Prutezzione di l'Area Allineata Top.

Sottu pmp

pmpaddri = B_ADDR >> 2.

Nota: Se l'area 0 di PMP hè cunfigurata cum'è modalità TOR (i = 0), u limite inferiore di l'area di prutezzione hè l'indirizzu 0, vale à dì 0 ≤ addr < pmpaddr0, tuttu in u intervallu currispondente.

0b10 NA4 Prutezzione di zona fissa di 4 byte.

pmp

0b11 NAPOT Prutegge a regione 2 (G + 2) cù G ≥ 1, quandu A_ADDR hè 2 (G + 2) allineatu. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< > 1.
  • U bit L in pmp
  • I microprocessori di a serie QingKe V3 supportanu a prutezzione di parechje zone. Quandu a listessa operazione currisponde à parechje zoni à u stessu tempu, a zona cù u numeru più chjucu hè cumminata prima.

Timer di sistema (SysTick)

  • U microprocessore di a serie QingKe V3 hè cuncepitu cù un contatore 32-bit o 64-bit (SysTick) in l'internu. A so fonte di clock hè u clock di u sistema o a so divisione di 8 frequenze, è V3A sustene solu a divisione di 8 frequenze.
  • Pò furnisce una basa di u tempu, u timing, è u tempu di misurazione per un sistema operatore in tempu reale. Diversi tipi di registri implicati in u timer anu indirizzi di mappatura differenti, cum'è mostra in i seguenti tabelle 5-1 è 5-2.

Tabella 5-1 Lista di i registri V3A SysTick

Nome Indirizzu di accessu Descrizzione Resetta u valore
STK_CTLR 0xE000F000 Registru di cuntrollu di u contatore di u sistema 0x00000000
STK_CNTL 0xE000F004 Contatore di u sistema registru bassu 0xXXXXXXXXX
STK_CNTH 0xE000F008 Contatore di u sistema registru altu

Nota: Solu validu per V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C U valore di paraguni di u conte di u sistema registru bassu 0xXXXXXXXXX
STK_CMPHR 0xE000F010 U valore di paraguni di u conte di u sistema registru altu

Nota: Solu validu per V3A.

0xXXXXXXXXX

Tabella 5-2 Lista di registri V3 SysTick di altri mudelli

Nome Indirizzu di accessu Descrizzione Resetta u valore
STK_CTLR 0xE000F000 Registru di cuntrollu di u contatore di u sistema 0x00000000
STK_SR 0xE000F004 Registru di statutu di u contatore di u sistema 0x00000000
STK_CNTL 0xE000F008 U registru bassu di u contatore di u sistema 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Conte u valore di paragone registru bassu 0xXXXXXXXXX

Ogni registru hè descrittu in dettagliu cum'è seguita.

Registru di cuntrollu di u sistema (STK_CTLR)

Tabella 5-3 Registri di cuntrollu SysTick

Bit Nome Accessu Descrizzione Resetta u valore
[31:5] Riservatu RO Riservatu 0
 

 

4

 

 

MODE

 

 

RW

Modu di cunti: 1: Count down;

0: cunta.

Nota: Invalidu per V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Bit di attivazione di u conte di ricaricà automaticu:

1: Cuntate di novu da 0 dopu à cuntà finu à u valore di paraguni, è conta da u valore di paraguni di novu dopu à cuntà finu à 0;

0: Cuntinuà à cuntà up/down.

Nota: Invalidu per V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Bit di selezzione di fonti di contraclock:

1: HCLK cum'è basa di tempu; 0: HCLK/8 cum'è basa di tempu.

Nota: ùn hè micca validu per V3A, chì sustene solu

HCLK/8 cum'è basa di tempu.

 

 

0

1 SITE RW Bit di cuntrollu di attivazione di l'interruzzione di contatore: 0
1: Abilita l'interruzzione di u contatore; 0: Disattivà l'interruzzione di u contatore.

Nota: Invalidu per V3A.

0 STE RW U contatore di u sistema permette un bit di cuntrollu. 1: Abilita u contatore di u sistema STK;

0: Disattivate u contatore di u sistema STK è u contatore cessà di cuntà.

0

Registru di statutu di u contatore di u sistema (STK_SR)

Stu registru ùn hè micca applicatu à V3A.

Tabella 5-4 Registru bassu di u contatore SysTick

Bit Nome Accessu Descrizzione Resetta u valore
 

 

31

 

 

SWIE

 

 

RW

Activazione di l'interruzzione di u software (SWI): 1: Interruzzione di u software di attivazione;

0: Spegni u trigger.

Nota: Stu bit deve esse sguassatu dopu à entre in u software interruzzione, altrimenti sempre attivate.

 

 

0

[30:1] Riservatu RO Riservatu 0
 

 

0

 

 

CNTIF

 

 

RW

Cunta bandiera di paragone, scrive 0 chjaramente, scrive 1 hè invalidu:

1: Cuntate finu à u valore di paraguni è cuntate finu à 0;

0: U valore di paraguni ùn hè micca righjuntu.

 

 

0

Registru bassu di u contatore di u sistema (STK_CNTL)

Tabella 5-5 Registru bassu di u contatore SysTick

Bit Nome Accessu Descrizzione Resetta u valore
[31:0] CNTL RW U valore attuale di u conte di contatore hè 32 bit più bassu. Per V3A, stu registru pò esse leghje cum'è 8-bit / 16-bit

/32-bit, ma pò esse scrittu solu cum'è 8-bit, è altri

mudelli ùn sò micca limitati.

0xXXXXXX XXX

Nota: Registrate STK_CNTL è registrate STK_CNTH in V3A custituiscenu un contatore di sistema di 64 bit.

Registru altu di u contatore di u sistema (STK_CNTH)

Tabella 5-6 Registru altu di u contatore SysTick

Bit Nome Accessu Descrizzione Resetta u valore
[31:0] CNTH RW U valore attuale di u cuntatore hè 32 bit più altu. Stu registru pò esse lettu da 8-bit/16-bit/32-bit, ma pò esse scrittu solu da 8-bit.

Nota: Solu validu per V3A.

0xXXXXXX XXX

Nota: Registrate STK_CNTL è registrate STK_CNTH in V3A custituiscenu un contatore di sistema di 64 bit.

Registru bassu di u valore di cunfrontu di u sistema (STK_CMPLR)

Tabella 5-7 Registru bassu di valore di paragone SysTick

Bit Nome Accessu Descrizzione Resetta u valore
[31:0] CMPL RW Pone u valore di paragone di u contatore à 32 bit più bassu. Quandu u valore CMP è u valore CNT sò uguali, una interruzzione STK serà attivata. Per V3A, stu registru pò esse lettu cum'è 8-bit /16-bit /32-bit, ma pò esse solu

scrittu cum'è 8-bit, è altri mudelli ùn sò micca limitati.

0xXXXXXX XXX

Nota: U registru STK_CMPLR è u registru STK_CMPHR in V3A custituiscenu inseme u valore di paragone di u contatore di 64 bit.

Registru altu di u valore di cunfrontu di u sistema (STK_CMPHR)

Tabella 5-8 Registru altu di valore di paragone SysTick

Bit Nome Accessu Descrizzione Resetta u valore
[31:0] CMPH RW Pone u valore di paragone di u contatore 32 bit più altu. L'interruzzione STK serà attivata quandu u valore CMP è u valore CNT sò uguali.

Stu registru pò esse lettu da 8-bit/16-bit/32-bit, ma pò esse scrittu solu da 8-bit.

Nota: Solu validu per V3A.

0xXXXXXX XXX

Nota: U registru STK_CMPLR è u registru STK_CMPHR in V3A custituiscenu inseme u valore di paragone di u contatore di 64 bit.

Configurazione di prucessore di bassa putenza

  • I microprocessori di a serie QingKe V3 supportanu u statu di sonnu attraversu l'istruzzioni WFI (Wait for Interrupt) per ottene un bassu cunsumu di energia statica.
  • Inseme cù u registru di cuntrollu di u sistema di PFIC (PFIC_SCTLR), ponu esse implementati diversi modi di Sleep è istruzioni WFE.

Entre in u sonnu

  • I microprocessori di a serie QingKe V3 ponu andà à dorme in dui modi, Wait for Interrupt (WFI) è Wait For Event (WFE). U metudu WFI significa chì u microprocessore và à dorme, aspetta una interruzzione per svegliate, è poi si sveglia à l'interruzzione currispondente per eseguisce. U metudu WFE significa chì u microprocessore si mette in dorme, aspetta chì un avvenimentu si svegliate, è si sveglia per cuntinuà à eseguisce u flussu di prugramma precedente.
  • U standard RISC-V sustene l'istruzzioni WFI, è u cumandamentu WFI pò esse eseguitu direttamente per entra in u sonnu cù u metudu WFI. Per u metudu WFE, u bit WFITOWFE in u registru di cuntrollu di u sistema PFIC_SCTLR hè utilizatu per cuntrullà i cumandamenti WFI successivi cum'è u prucessu WFE per ottene u metudu WFE per entra in u sonnu.
  • A prufundità di u sonnu hè cuntrullata secondu u bit SLEEPDEEP in PFIC_SCTLR.
  • Se u SLEEPDEEP in u registru PFIC_SCTLR hè sbulicatu à cero, u microprocessore entra in modalità Sleep è u clock di l'unità interna hè permessu di esse disattivatu eccettu per SysTick è parte di a logica di sveglia.
  • Se SLEEPDEEP in u registru PFIC_SCTLR hè stabilitu, u microprocessore entra in u modu di sonnu profondu è tutti i clock clock sò permessi di esse disattivati.
  • Quandu u microprocessore hè in modu Debug, ùn hè micca pussibule entre in ogni modu di Sleep.

Sleep Wakeup

I microprocessori di a serie QingKe V3 ponu esse svegliati dopu à u sonnu per via di WFI è WFE in i seguenti modi.

Dopu à u mètudu WFI va à dorme, si pò esse svegliatu da

  1. U microprocessore pò esse svegliatu da a fonte di interruzzione rispostu da u controller di interruzzione. Dopu u svegliu, u microprocessore eseguisce prima a funzione di interruzzione.
  2. Entra in u modu Sleep, a dumanda di debug pò fà sveglià u microprocessore è entra in un sonnu profondu, a dumanda di debug ùn pò micca sveglià u microprocessore.

Dopu chì u metudu WFE va à dorme, u microprocessore pò esse svegliatu da i seguenti.

  1. Avvenimenti interni o esterni, quandu ùn ci hè micca bisognu di cunfigurà u controller di interruzzione, svegliate è cuntinueghja à eseguisce u prugramma.
  2. Se una fonte di interruzzione hè attivata, u microprocessore hè svegliatu quandu una interruzzione hè generata, è dopu u svegliu, u microprocessore eseguisce a funzione di interruzzione prima.
  3. Se u bit SEVONPEND in PFIC_SCTLR hè cunfiguratu, u cuntrollu di l'interruzzione ùn permette micca l'interruzzione, ma quandu un novu signalu in attesa di interruzzione hè generatu (u signale pendente generatu prima ùn hà micca effettu), pò ancu fà sveglià u microprocessore, è a bandiera pendente di interruzzione currispundente deve esse sbulicata manualmente dopu u svegliu.
  4. Entre a dumanda di debug in modalità Sleep pò fà sveglià u microprocessore è entra in un sonnu profondu, a dumanda di debug ùn pò micca sveglià u microprocessore.
  • Inoltre, u statu di u microprocessore dopu u svegliu pò esse cuntrullatu cunfigurà u bit SLEEPONEXIT in PFIC_SCTLR.
  • SLEEPONEXIT hè stabilitu è ​​l'ultimu livellu di istruzzioni di ritornu d'interruzione (mret) attivarà u modu di dorme WFI.

SLEEPONEXIT hè sguassatu senza effettu.

Diversi prudutti MCU dotati di microprocessori di a serie V3 ponu aduttà diverse modi di sonnu, disattivate diverse periferiche è orologi, implementà diverse politiche di gestione di l'energia è metudi di sveglia secondu diverse cunfigurazioni di PFIC_SCTLR, è realizà diversi modi di bassa putenza.

Debug Support

  • I microprocessori di a serie QingKe V3 includenu un modulu di debug hardware chì sustene operazioni cumplesse di debugging. Quandu u microprocessore hè suspesu, u modulu di debug pò accede à i GPR di u microprocessore, CSRs, Memoria, dispositi esterni, etc. attraversu cumandamenti astratti, struzzioni di implementazione di buffer di prugramma, etc. U modulu di debug pò suspende è ripiglià l'operazione di u microprocessore.
  • U modulu di debug segue a specificazione RISC-V External Debug Support Version0.13.2, a documentazione dettagliata pò esse scaricata da u RISC-V International. websitu.

Modulu di Debug

  • U modulu di debug in u microprocessore, capace di realizà operazioni di debug emesse da l'ospite di debug, include.
  • Accessu à i registri attraversu l'interfaccia di debug
  • Resettate, suspende è ripiglià u microprocessore attraversu l'interfaccia di debug
  • Leghjite è scrivite a memoria, i registri d'istruzzioni è i dispositi esterni attraversu l'interfaccia di debug
  • Implementa parechje struzzioni arbitrarie attraversu l'interfaccia di debug
  • Stabilisci i punti di rottura di u software attraversu l'interfaccia di debug
  • Stabilisci i punti di rottura hardware attraversu l'interfaccia di debug
  • Supporta l'esecuzione automatica di cumandamenti astratti
  • Support debugging unicu passu
  • Nota: V3A ùn supporta micca i punti di rottura di hardware, i punti di rottura di hardware V3B supportanu a corrispondenza di l'indirizzu di l'istruzzioni, è i punti di rottura di u hardware V3C supportanu l'indirizzu di istruzzioni è l'indirizzu di dati.
  • I registri interni di u modulu di debugging utilizanu un codice d'indirizzu 7-bit, è i seguenti registri sò implementati in i microprocessori di a serie QingKe V3.

Tabella 7-1 Lista di registru di moduli di debug

Nome Indirizzu di accessu Descrizzione
dati 0 0x04 U registru di dati 0, pò esse usatu per u almacenamiento temporale di dati
dati 1 0x05 U registru di dati 1, pò esse usatu per u almacenamiento temporale di dati
decontrol 0x10 Registru di cuntrollu di u modulu di debug
dmstatus 0x11 Registru di statutu di u modulu di debug
hartinfo 0x12 Registru di u statutu di u microprocessore
astratti 0x16 Registru di statutu di cumandamentu astrattu
cumanda 0x17 Registru di cumandamentu astrattu
auto astratta 0x18 Esecuzione automatica di u cumandamentu astrattu
progbuf0-7 0x20-0x27 I registri di cache di istruzzioni 0-7
stopsum0 0x40 Pausa u registru di statutu
  • L'ospite di debug pò cuntrullà a sospensione di u microprocessore, ripresa, resettata, etc. cunfigurà u registru di decontrol. U standard RISC-V definisce trè tippi di cumandamenti astratti: registru d'accessu, accessu veloce è memoria d'accessu.
  • U microprocessore QingKe V3A sustene solu l'accessu à u registru, altri mudelli supportanu l'accessu à u registru è à a memoria, ma micca un accessu veloce. L'accessu à i registri (GPR, CSR) è l'accessu cuntinuu à a memoria pò esse realizatu da cumandamenti astratti.
  • U modulu di debug implementa 8 registri di cache d'istruzzioni progbuf0-7, è l'ospite di debug pò cache parechje struzzioni (chì ponu esse struzzioni cumpressi) à u buffer è pò sceglie di cuntinuà à eseguisce l'istruzzioni in i registri di cache d'istruzzioni dopu avè eseguitu u cumandamentu astrattu o eseguite direttamente l'istruzzioni cached.
  • Nota chì l'ultima struzzione in i prugrammi deve esse una struzzione "ebreak" o "c.ebreak". L'accessu à l'almacenamiento, periferiche, etc. hè ancu pussibule attraversu cumandamenti astratti è struzzioni cache in i prugrammi.
  • Ogni registru hè descrittu in dettagliu cum'è seguita.
  • Registru di dati 0 (data0)

Tabella 7-2 definizione di u registru di dati

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] dati 0 RW Registru di dati 0, utilizatu per l'almacenamiento temporale di dati 0

Registru di dati 1 (data1)

Table 7-3 data1 definizione di u registru

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] dati 1 RW Registru di dati 1, utilizatu per l'almacenamiento temporale di dati 0

Registru di cuntrollu di u modulu di debug (decontrol)

Stu registru cuntrolla a pausa, resettore è ripresa di u microprocessore. L'ospite di debug scrive dati à u campu currispundenti per ottene una pausa (haltreq), reset (ndmreset), ripresa (resumereq). Discrivite i seguenti.

Table 7-4 definizione di u registru di decontrol

Bit Nome Accessu Descrizzione Resettate u Valore
31 haltreq WO 0: Cancella a dumanda di pausa

1: Mandate una dumanda di pausa

0
30 riprendereq W1 0: Invalidu

1: Ripristina u microprocessore attuale

Nota: Scrivite 1 hè validu è u hardware hè sbulicatu dopu chì u microprocessore hè ricuperatu

0
29 Riservatu RO Riservatu 0
28 ackhavereset W1 0: Invalidu

1: Sguassate u bit di statutu di cugliera di u microprocessore

0
[27:2] Riservatu RO Riservatu 0
1 ndmreset RW 0: Cancella reset

1: Resettate u sistema tutale altru da u modulu di debug

 

0

0 disattivà RW 0: Resettate u modulu di debug

1: U modulu Debug funziona bè

0

Registru di statutu di u modulu di debug (statu dm)

  • Stu registru hè utilizatu per indicà u statutu di u modulu di debug è hè un registru di sola lettura cù a seguente descrizzione di ogni bit.

Table 7-5 Definizione di u registru dmstatus

Bit Nome Accessu Descrizzione Resettate u Valore
[31:20] Riservatu RO Riservatu 0
19 allhavereset RO 0: Invalidu

1: Reset di u microprocessore

0
18 alcunu settu RO 0: Invalidu

1: Reset di u microprocessore

0
17 allresumeack RO 0: Invalidu

1: Reset di u microprocessore

0
16 anyresumeack RO 0: Invalidu

1: Reset di u microprocessore

0
[15:14] Riservatu RO Riservatu 0
13 alluviale RO 0: Invalidu

1: U microprocessore ùn hè micca dispunibule

0
12 ogni prufittu RO 0: Invalidu

1: U microprocessore ùn hè micca dispunibule

0
11 tutti in corsa RO 0: Invalidu

1: U microprocessore hè in esecuzione

0
10 ogni corsa RO 0: Invalidu

1: U microprocessore hè in esecuzione

0
9 arrestatu RO 0: Invalidu

1: U microprocessore hè in sospensjoni

0
8 ogni fermatu RO 0: Invalidu

1: Microprocessore fora di sospensjoni

0
7 autenticatu  

RO

0: L'autentificazione hè necessaria prima di utilizà u modulu di debug

1: U modulu di debugging hè statu certificatu

 

0x1

[6:4] Riservatu RO Riservatu 0
[3:0] versione RO Versione di l'architettura di supportu di u sistema di debugging 0010: V0.13 0x2

Registru di statutu di u microprocessore (hartinfo)

Stu registru hè utilizatu per furnisce infurmazioni nantu à u microprocessore à l'ospite di debug è hè un registru di sola lettura cù ogni bit descrittu cum'è seguita.

Tabella 7-6 definizione di registru hartinfo

Bit Nome Accessu Descrizzione Resettate u Valore
[31:24] Riservatu RO Riservatu 0
[23:20] scratch RO U numeru di registri di scratch supportatu 0x3
[19:17] Riservatu RO Riservatu 0
16 Accessu à i dati RO 0: U registru di dati hè mappatu à l'indirizzu CSR

1: U registru di dati hè mappatu à l'indirizzu di memoria

0x1
[15:12] dimensione di dati RO Numero di registri di dati 0x2
  [11:0] aghjunghje dati  

RO

L'indirizzu offset di i dati di u registru di dati 0,

chì l'indirizzu di basa hè 0xe0000000, hè sottumessu à una lettura specifica.

0xXXX

Controlu di cumandamentu astrattu è registri di statutu (astratti)

Stu registru hè utilizatu per indicà l'esekzione di u cumandamentu astrattu. L'ospite di debug pò leghje stu registru per sapè s'ellu l'ultimu cumandamentu astrattu hè eseguitu o micca è pò verificà se un errore hè generatu durante l'esekzione di u cumandamentu astrattu è u tipu di l'errore, chì hè descrittu in dettagliu cum'è seguita.

Tabella 7-7 astratti registru definizioni

Bit Nome Accessu Descrizzione Resettate u Valore
[31:29] Riservatu RO Riservatu 0
[28:24] prugbufsize RO Indica u numeru di prugramma buffer di prugramma

i registri di cache

0x8
[23:13] Riservatu RO Riservatu 0
12 occupatu RO 0: Nisun cumandamentu astrattu hè in esecuzione

1: Ci sò cumandamenti astratti chì sò eseguiti

Nota: Dopu l'esekzione, u hardware hè sguassatu.

 

0

11 Riservatu RO Riservatu 0
[10:8] cmder RW Errore di cumandamentu astrattu tippu 000: Nisun errore

001: Esecuzione di cumandamenti astratti per scrive à cumandamenti, astratti, registri auto astratti o leghje è scrive à dati è registri progbuf

010: Ùn supporta micca u cumandamentu astrattu attuale 011: Esecuzione di u cumandamentu astrattu cù eccezzioni 100: U microprocessore ùn hè micca sospesu o indisponibile è ùn pò micca eseguisce cumandamenti astratti 101: Errore di bus

110: Errore di bit di parità durante a cumunicazione 111: Altri errori

Nota: Per a scrittura di bit 1 hè utilizatu per sguassà u zero.

 

 

 

 

 

 

 

0

[7:4] Riservatu RO Riservatu 0
[3:0] scontu RO Numero di registri di dati 0x2
  • L'ospiti di debugging ponu accede à i GPR, i registri CSR, è a memoria scrivendu diversi valori di cunfigurazione in u registru di cumandamentu astrattu.
  • Quandu accede à i registri, i bit di registru di cumanda sò definiti cum'è seguita.
  • Tabella 7-8 Definizione di u registru di cumanda quandu accede à i registri
Bit Nome Accessu Descrizzione Resettate u Valore
[31:24] tipu cmd WO Tipu di cumanda astratta 0: Registru d'accessu;

1: Accessu rapidu (micca supportatu);

2: Accessu à a memoria.

0
23 Riservatu WO Riservatu 0
[22:20] aarsize WO Larghezza di bit di dati di u registru di accessu 000: 8-bit

001: 16-bit

010: 32-bit

0
011: 64-bit (micca supportatu) 100: 128-bit (micca supportatu)

Nota: Quandu accede à i registri in virgola flottante

FPR, solu l'accessu 32-bit hè supportatu.

19 aarpostincrement WO 0: Nisun effettu

1: Aumentà automaticamente u valore di u regno dopu à accede à u registru

 

0

18 post exec WO 0: Nisun effettu

1:Eseguite u cumandamentu astrattu è poi eseguite u cumandimu in progbuf

 

0

17 trasferimentu WO 0: Ùn eseguite micca l'operazione specificata da scrive

1: Eseguite a manipulazione specificata da scrive

0
16 scrive WO 0: Copia dati da u registru specificatu à data0 1: Copia dati da u registru data0 à u registru specificatu  

0

[15:0] regnu WO Specificate i registri di accessu 0x0000-0x0fff sò CSR 0x1000-0x101f sò GPR  

0

Quandu accede à a memoria, i bits in u registru di cumanda sò definiti cusì.

Table 7-9 Definizione di cumandamentu Registru quandu accede à a memoria

Bit Nome Accessu Descrizzione Resettate u Valore
[31:24] tipu cmd WO Tipu di cumanda astratta 0: Registru d'accessu;

1: Accessu rapidu (micca supportatu);

2: Accessu à a memoria.

0
23 aamvirtual WO 0: Accessu à l'indirizzu fisicu;

1: Accessu à l'indirizzu virtuale.

0
[22:20] taglia di bracciu WO Larghezza di bit di dati di memoria d'accessu 000: 8-bit;

001: 16-bit;

010: 32-bit;

011: 64-bit (micca supportatu); 100: 128-bit (micca supportatu);

 

0

19 aampostincrement WO 0: Nisuna influenza;

1: Dopu avè accede à a memoria cù successu, aumentate l'indirizzu guardatu in u registru di data1 da u numeru di bytes chì currispondenu à a larghezza di bit cunfigurata da a dimensione di u bracciu.

Aamsize = 0, accessu da byte, data1 plus 1.

Aamsize=1, accessed by half-word, data1 plus 2. aamsize=2, accessed by bit, data1 plus 4.

 

0

18 post exec WO 0: Nisuna influenza;

1: Eseguite u cumandamentu in progbuf dopu avè eseguitu u cumandamentu astrattu.

0
17 Riserva RO Riservatu 0
 

 

16

 

 

scrive

 

 

WO

0: Leghjite i dati da l'indirizzu specificatu da data1 à data0

1: Scrivite dati in data0 à l'indirizzu specificatu da

dati 1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

specificu à u scopu

 

 

 

 

 

 

WO

Definizione di u modu di lettura è scrittura Scrive:

00, 01: Scrivite direttamente à a memoria;

10: Dopu chì i dati in data0 sò OR cù i bits di dati in a memoria, u risultatu hè scrittu in a memoria (Solu l'accessu di a parolla hè supportatu).

11: Dopu a summa di i dati in data0 cù i bits di dati in a memoria, scrivite u risultatu in a memoria (Solu l'accessu à a parolla hè supportatu).

Leghjite:

00, 01, 10, 11: Leghjite 0 direttamente da a memoria.

 

 

 

 

 

 

0

[13:0] Riserva RO Riservatu

Registru di esecuzione automatica di cumandamentu astrattu (auto astrattu)

Stu registru hè utilizatu per cunfigurà u modulu di debugging. Quandu leghje è scrive progbufx è dati di u modulu di debugging, u cumandamentu astrattu pò esse eseguitu di novu.

A descrizzione di stu registru hè a siguenti:

Tabella 7-10 definizione di registru automaticu astrattu

Bit Nome Accessu Descrizzione Resettate u Valore
[31:16] autoexecprogbuf RW Se un bit hè stabilitu, a lettura è a scrittura currispondente di progbufx pruvucarà u cumandamentu astrattu in u registru di cumanda per esse eseguitu di novu.

Nota: A serie V3 hè cuncepita cù 8 progbufs, currispundenti à bits [23:16].

 

0

[15:12] Riserva RO Riservatu 0
[11:0] autoexecdata  

RW

Se un bit hè stabilitu à 1, a lettura è a scrittura currispundenti di u registru di dati pruvucarà u cumandamentu astrattu in u registru di Command per esse eseguitu di novu.

Nota: a serie V3 hè cuncepitu cù dui dati registri, chì currispondenu à i bit [1:0].

0

Registru di cache di l'istruzzioni (progbufx)

Stu registru hè utilizatu per almacenà ogni struzzione, è implementà l'operazione currispundenti, cumpresu 8, chì deve attente à l'ultima esecuzione chì deve esse "break" o "c.ebreak".

Tabella 7-11 definizione di u registru progbuf

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] prugbuf RW Istruzzioni di codificazione per operazioni di cache, chì

pò include struzzioni di compressione

0

Pause status register (haltsum0)

Stu registru hè utilizatu per indicà se u microprocessore hè suspesu o micca. Ogni bit indica l'estatus suspesu di un microprocessore, è quandu ci hè solu un core, solu u bit più bassu di stu registru hè utilizatu per indicà.

Table 7-12 definizione di u registru haltsum0

Bit Nome Accessu Descrizzione Resettate u Valore
[31:1] Riservatu RO Riservatu 0
0 stopsum0 RO 0: U microprocessore opera nurmale

1: Stop microprocessore

0
  • In più di i registri sopra citati di u modulu di debug, a funzione di debug implica ancu alcuni registri CSR, principarmenti u cuntrollu di debug è u registru di statutu dcsr è l'istruzzioni di debug pointer dpc, chì sò descritti in dettagliu cum'è seguita.
  • Debug cuntrollu è registru di statutu (dcsr)

Table 7-13 Definizione di u registru dcsr

Bit Nome Accessu Descrizzione Resettate u Valore
[31:28] xdebugver DRO 0000: A debugging esterna ùn hè micca supportata 0100: Supporta a debugging esterna standard

1111: U debugging esternu hè supportatu, ma ùn scontra micca

a specificazione

 

 

0x4

[27:16] Riservatu DRO Riservatu 0
15 ruttura DRW 0: U cumandamentu di pausa in u modu di macchina si cumporta cum'è descrittu in u privilegiu file

1: U cumandamentu di pausa in u modu di a macchina pò entre in u modu di debug

 

 

0

[14:13] Riservatu DRO Riservatu 0
12 rompe  

DRW

0: U cumandamentu di pausa in u modu d'utilizatore si cumporta cum'è descrittu in u privilegiu file

1: U cumandamentu di pausa in u modu d'utilizatore pò entre in u modu di debug

 

 

0

11 passu DRW 0: L'interruzioni sò disattivate sottu debugging in un passu

1: Abilita l'interruzioni sottu debugging in un passu

0
10 Riservatu DRO Riservatu 0
9 ferma u tempu DRW 0: Timer di u sistema chì funziona in modu Debug

1: U timer di u sistema si ferma in modu Debug

0
  [8:6] causa DRO Motivi per entre in debugging

001: Ingressu di debugging in forma di cumanda di pausa (priurità 3)

010: Ingressu di debugging in forma di modulu di trigger (priurità 4, u più altu)

011: Ingressu di debugging in forma di dumanda di pausa (priurità 1)

100: debugging in forma di debugging unicu passu

(priorità 0, u più bassu)

0
101: entre in u modu di debug direttamente dopu à u reset di u microprocessore (priurità 2) Altri: Riservati
[5:3] Riservatu DRO Riservatu 0
2 passu DRW 0: disattivate a debugging in un passu

1: Attivà u debugging unicu passu

0
[1:0] Prev DRW Modu privilegiu 00: Modu d'utilizatore

01: Modu supervisore (micca supportatu) 10: Riservatu

11: Modu macchina

Nota: Registrate u modu privilegiatu quandu entra in u modu di debug, u debugger pò mudificà stu valore per mudificà u modu privilegiatu quandu esce da debug.

 

 

 

 

0

Puntatore di prugramma in modu di debug (DPC)

  • Stu registru hè utilizatu per almacenà l'indirizzu di a prossima struzzione per esse eseguita dopu chì u microprocessore entra in u modu di debug, è u so valore hè aghjurnatu cù diverse regule secondu u mutivu di entre in debug. dpc register hè descrittu in dettagliu cum'è seguita.

Tabella 7-14 Definizioni di registru dpc

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] DPC DRW Indirizzu d'istruzzioni 0

I reguli per l'aghjurnà i registri sò mostrati in a tabella chì seguita.

Tabella 7-15 regule d'aghjurnamentu dpc

Entre in u metudu di debugging dpc Regoli di aghjurnà
ruttura Indirizzu di l'istruzione Ebreak
un passu unicu Indirizzu d'istruzzioni di l'istruzzione successiva di l'istruzzione attuale
modulu di trigger Temporaneamente micca supportatu
dumanda di fermà Indirizzu di a prossima struzzione per esse eseguita quandu entra in Debug

Interfaccia di Debug

  • Differenti da u standard JTAG interfaccia definita da RISC-V, u microprocessore di a serie QingKe V3 adopta 1- una interfaccia di debug seriale di filu / 2 fili è seguita u protocolu d'interfaccia di debug WCH V1.0.
  • L'interfaccia di debug hè rispunsevule per a cumunicazione trà l'ospite di debug è u modulu di debug è realiza l'operazione di lettura / scrittura di l'ospite di debug à i registri di u modulu di debug.
  • WCH hà cuncepitu WCH_Link è open source u so schematicu è u prugramma binariu files, chì pò esse usatu per debugging tutti i microprocessori di l'architettura RISC-V.
  • Consultate u Manuale di Protocollo di Debug WCH per protokolli specifichi di l'interfaccia di debug.

Lista di Registri CSR

  • L'architettura RISC-V definisce una quantità di Registers di Control è Status (CSR) per cuntrullà è registrà u statu di u funziunamentu di u microprocessore.
  • Alcune di e CSR sò state introdutte in a sezione precedente, è questu capitulu detallarà i registri CSR implementati in i microprocessori di a serie QingKe V3.

Lista di Registri CSR

Tabella 8-1 Lista di i Registri CSR di Microprocessori

Tipu Nome CSR Indirizzu Accessu Descrizzione
RISC-V

CSR standard

marchid 0xF12 MRO Registru di u numeru di l'architettura
mimpidu 0xF13 MRO Registru di numerazione di implementazione di hardware
mstatus 0x300 MRW Registru di statutu
missa 0x301 MRW Registru di set di istruzioni di hardware
mtvec 0x305 MRW Eccezzioni registru di indirizzu di basa
mscratch 0x340 MRW Modu macchina stagregistru
MEPC 0x341 MRW Registru di puntatore di prugramma di eccezzioni
mcause 0x342 MRW Registru di causa di eccezzioni
mtval 0x343 MRW Registru di valore eccezziunale
pmpcfg 0x3A0+i MRW Registru di cunfigurazione PMP
pmpaddr 0x3B0+i MRW Registru di indirizzu PMP
tselect Saulės sistemos kardaninis velenas MRW Debug trigger selection register
tdata1 Saulės sistemos kardaninis velenas MRW Debug trigger data register 1
tdata2 Saulės sistemos kardaninis velenas MRW Debug trigger data register 2
dcsr Talpa: pritaikoma pagal poreikį DRW Debug cuntrollu è registri di statutu
dpc Talpa: pritaikoma pagal poreikį DRW Registru di puntatore di u prugramma di modu di debug
dscratch0 Talpa: pritaikoma pagal poreikį DRW Modu di debug stagregistru 0
dscratch1 Talpa: pritaikoma pagal poreikį DRW Modu di debug stagregistru 1
 

CSR definitu da u venditore

gintenr 0x800 URW U registru di attivazione di l'interruzzione globale
intsyscr 0x804 URW Interrompe u registru di cuntrollu di u sistema
corecfgr 0xBC0 MRW Registru di cunfigurazione di u microprocessore
inestcr 0xBC1 MRW Interrompe u registru di cuntrollu nidificatu

Registri CSR Standard RISC-V

  • Registru di u numeru di l'architettura (marchid)
  • Stu registru hè un registru di sola lettura per indicà u numeru attuale di l'architettura hardware di u microprocessore, chì hè principalmente cumpostu di codice di venditore, codice di architettura, codice di serie è codice di versione. Ognunu di elli hè definitu cusì.

Tabella 8-2 definizione di u registru Marchid

Bit Nome Accessu Descrizzione Resettate u Valore
31 Riservatu MRO Riservatu 1
[30:26] venditore 0 MRO Codice di u fabricatore 0

Fixed à a lettera "W" codice

0x17
[25:21] venditore 1 MRO Codice di u fabricatore 1

Fixed à a lettera "C" codice

0x03
[20:16] venditore 2 MRO Codice di u fabricatore 2

Fixed à a lettera "H" codice

0x08
15 Riservatu MRO Riservatu 1
[14:10] Arch MRO Codice di l'architettura 0x16
L'architettura RISC-V hè fissata à u codice lettera "V".
[9:5] Serial MRO Codice di serie

Serie QingKe V3, fissata à u numeru "3"

0x03
[4:0] Versione MRO codice di versione

Pò esse a versione "A", "B", "C" è altre lettere di u codice

x

U numaru di u fabricatore è u numeru di versione sò alfabeticu, è u numeru di serie hè numericu. A tabella di codificazione di e lettere hè mostrata in a tabella chì seguita.

Tabella 8-3 Tabella di mappatura alfabetica

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
  • Frà elli, u microprocessore QingKe V3A, u registru leghje torna à 0.

Registru di numerazione di implementazione hardware (limpidu)

  • Stu registru hè principalmente cumpostu di codici di venditore, ognunu di i quali hè definitu cum'è seguita.

Tabella 8-4 definizione di registru limpidu

Bit Nome Accessu Descrizzione Resettate u Valore
31 Riservatu MRO Riservatu 1
[30:26] venditore 0 MRO Codice di u fabricatore 0

Fixed à a lettera "W" codice

0x17
[25:21] venditore 1 MRO Codice di u fabricatore 1

Fixed à a lettera "C" codice

0x03
[20:16] venditore 2 MRO Codice di u fabricatore 2

Fixed à a lettera "H" codice

0x08
15 Riservatu MRO Riservatu 1
[14:8] Riservatu MRO Riservatu 0
[7:4] Minore MRO U numeru di subversione 0xX
[3:0] Major MR 0 Numero di versione maiò 0xX
  • Stu registru hè leggibile in ogni implementazione di a macchina, è in u processore di a serie QingKe V3A, stu registru leghje à zero.

Registru di statutu di u modu di a macchina (mstatus)

  • Stu registru hè statu parzialmente discrittu in a sezione precedente, è i so ghjente sò posizionati cusì.

Tabella 8-5 definizione di registru mstatus

Bit Nome Accessu Descrizzione Resettate u Valore
[31:13] Riservatu MRO Riservatu 0
[12:11] MPP MRW Modu privilegiatu prima di entre in a pausa 0
[10:8] Riservatu MRO Riservatu 0
7 MPIE MRW Statu di attivazione di l'interruzzione prima di entre in una interruzzione 0
[6:4] Riservatu MRO Riservatu 0
3 Mie MRW Attivazione di l'interruzzione di u modu di a macchina 0
[2:0] Riservatu MRO Riservatu 0
  • U campu MPP hè utilizatu per salvà u modu privilegiatu prima di entre in l'eccezzioni o l'interruzzione è hè utilizatu per restaurà u modu privilegiatu dopu à esce da l'eccezzioni o interruzzione. MIE hè u bit di attivazione di l'interruzzione globale, è quandu entre in l'eccezzioni o l'interruzzione, u valore di MPIE hè aghjurnatu à u valore di MIE, è deve esse nutatu chì in i microprocessori di a serie QingKe V3, MIE ùn serà micca aghjurnatu à 0 prima di ultimu livellu di interruzioni nidificate per assicurà chì l'interruzzione di nidificazione in u modu Machine cuntinueghja à esse eseguita. Quandu una eccezzioni o interruzzione hè uscita, u microprocessore torna à u modu Machine salvata da MPP, è u MIE hè restauratu à u valore MPIE.
  • U microprocessore QingKe V3 supporta u Modu Machine è u Modu User, se avete bisognu di fà u microprocessore solu travaglià in Modu Machine, pudete stabilisce u MPP à 0x3 in l'inizializazione di u boot. file, vale à dì, dopu à vultà, ferma sempre in modu Machine.

Registru di set di istruzioni hardware (misa)

  • Stu registru hè utilizatu per indicà l'architettura di u microprocessore è l'estensioni di l'istruzzioni supportati, ognuna di quali hè descritta cum'è seguita.

Tabella 8-6 definizione di registru misa

Bit Nome Accessu Descrizzione Resettate u Valore
[31:30] MXL MRO Lunghezza di a parolla di a macchina 1:32

2: 64

3: 128

1
[29:26] Riservatu MRO Riservatu 0
[25:0] Estensioni MRO Instruction set extensions x
  • U MXL hè utilizatu per indicà a lunghezza di a parolla di u microprocessore, QingKe V3 sò microprocessori 32-bit, è u duminiu hè fissu à 1.
  • L'estensioni sò aduprate per indicà chì u microprocessore supporta i dettagli di l'istruzzioni allargati, ognunu indica una classa di estensioni, a so descrizzione dettagliata hè mostrata in a tabella seguente.

Table 8-7 Instruction Set Extension Details

Bit Nome Descrizzione
0 A Estensione atomica
1 B Tentativamente riservatu per l'estensione Bit-Manipulation
2 C Estensione cumpressa
3 D Extension à virgule flottante à doppia precisione
4 E RV32E base ISA
5 F Extension à virgule flottante à précision unique
6 G Estensioni standard supplementari prisenti
7 H Estensione Hypervisor
8 I RV32I/64I/128I base ISA
9 J Tentativamente riservatu à l'estensione di Lingue Tradutte Dinamicamente
10 K Riservatu
11 L Tentativamente riservatu per l'estensione Decimal Floating-Point
12 M Estensione integer Multiply/Divide
13 N L'interruzioni à livellu di l'utilizatori sò supportate
14 O Riservatu
15 P Tentativamente riservatu per l'estensione Packed-SIMD
16 Q Extension à virgule flottante à quadruple précision
17 R Riservatu
18 S Modu supervisore implementatu
19 T Tentativamente riservatu per l'estensione di Memoria Transazionale
20 U Modu d'utilizatore implementatu
21 V Tentativamente riservatu per l'estensione Vector
22 W Riservatu
23 X Estensioni non standard presenti
24 Y Riservatu
25 Z Riservatu
  • Per esample, per u microprocessore QingKe V3A, u valore di u registru hè 0x401001105, chì significa chì l'architettura di l'istruzzioni supportata hè RV32IMAC, è hà implementazione in modalità User.

Registru di l'indirizzu di basa di l'eccezzioni in modalità macchina (mtvec)

  • Stu registru hè utilizatu per almacenà l'indirizzu di basa di l'eccezzioni o di l'interruzzione è i dui bits più bassi sò usati per cunfigurà u modu è u metudu d'identificazione di a tavola di vettore cum'è descritta in a Sezione 3.2.

Modu macchina stagregistru ing (mscratch)

Table 8-8 Definizioni di u registru mscratch

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] mscratch MRW Storage di dati 0

Stu registru hè un registru 32-bit leggibile è scrivibile in modu di macchina per l'almacenamiento temporale di dati. Per esample, quandu si inserisce una eccezzioni o un gestore di interruzzione, u puntatore di stack d'utilizatore SP hè almacenatu in questu registru è u puntatore di stack di interruzzione hè assignatu à u registru SP. Dopu à esce da l'eccezzioni o l'interruzzione, restaurà u valore di l'usu di stack pointer SP da zero. Questu hè, a pila d'interruzzione è a pila d'utilizatori ponu esse isolate.

Registru di puntatore di u prugramma di eccezzioni in modalità macchina (mappa)

Table 8-9 Definizioni di u registru mepc

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] mepc MRW Puntatore di prucedura di eccezzioni 0
  • Stu registru hè utilizatu per salvà l'indicatore di u prugramma quandu entra in una eccezzioni o interruzzione.
  • Hè utilizatu per salvà l'istruzzioni PC pointer prima di entre in una eccezzioni quandu una eccezzioni o interruzzione hè generata, è mepc hè utilizatu cum'è l'indirizzu di ritornu quandu l'eccezzioni o l'interruzzione hè trattata è utilizata per una eccezzioni o interrupzione di ritornu.
  • Tuttavia, hè impurtante à nutà chì.
  • Quandu si trova una eccezzioni, mepc hè aghjurnatu à u valore di PC di l'istruzzioni chì genera l'eccezzioni.
  • Quandu si verifica una interruzzione, mepc hè aghjurnatu à u valore di PC di l'istruzzioni dopu.
  • Quandu avete bisognu di rinvià una eccezzioni dopu a trasfurmazioni di l'eccezzioni, duvete attente à mudificà u valore di u mepc, è più dettagli ponu esse truvati in Capitulu 2 Eccezzioni.

Registru di causa di l'eccezzioni in modalità macchina (mcause)

Tabella 8-10 mcause registru definizione

Bit Nome Accessu Descrizzione Resettate u Valore
31 Interruzzione MRW Campu di indicazione di interruzzione 0: Eccezzioni

1: Interruzzione

 

0

[30:0] Codice di eccezzioni MRW Per i codici di eccezzioni, vede a Tabella 2-1 per i dettagli 0
  • Stu registru hè principalmente usatu per almacenà a causa di l'eccezzioni o u numeru di interruzzione di l'interruzzione. U so bit più altu hè u campu Interrupt, chì hè utilizatu per indicà se l'occurrenza attuale hè una eccezzioni o una interruzzione.
  • U bit più bassu hè u codice d'eccezzioni, chì hè utilizatu per indicà a causa specifica. I so dettagli ponu esse truvati in Capitulu 2 Eccezzioni.

Registru di valore di eccezzioni di u modu di macchina (mtval)

Table 8-11 Definizione di u registru mtval

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] mtval MRW Valore eccezziunale 0
  • Stu registru hè utilizatu per mantene u valore chì hà causatu l'eccezzioni quandu si trova una eccezzioni. Per i dettagli cum'è u valore è u tempu di u so almacenamentu, fate riferimentu à u Capitulu 2 Eccezzioni.

Registru di cunfigurazione PMP (pmpcfg

  • Stu registru hè principalmente utilizatu per cunfigurà l'unità di prutezzione di a memoria fisica, è ogni 8 bits di stu registru sò usati per cunfigurà a prutezzione di una zona. Per piacè riferite à u Capitulu 4 per a definizione dettagliata.

Registru di indirizzu PMP (pmpaddr

  • Stu registru hè principalmente utilizatu per a cunfigurazione di l'indirizzu di l'unità di prutezzione di a memoria fisica, chì codifica i 32 bits superiori di un indirizzu fisicu di 34 bit. Per piacè riferite à u Capitulu 4 per u metudu di cunfigurazione specificu.

Registru di puntatore di prugramma in modu di debug (DPC)

  • Stu registru hè utilizatu per almacenà l'indirizzu di a prossima struzzione per esse eseguita dopu chì u microprocessore entra
  • U modu di debug è u so valore sò aghjurnati cù diverse regule secondu u mutivu di entre in debug. Vede a Sezione 6.1 per una descrizzione dettagliata.

Debug trigger select register (selezzione)

  • Hè validu solu per i microprocessori chì supportanu i breakpoints di hardware è supportanu i breakpoints di 4 canali à u massimu, è i so 2 bits più bassi sò validi.
  • Quandu cunfigurà ogni puntu di rupture di u canali, avete bisognu di selezziunà u canali currispundenti attraversu stu registru prima di cunfigurazione.

Table 8-12 sceglite a definizione di u registru

Bit Nome Accessu Descrizzione Resettate u Valore
[31:2] Riservatu MRO Riservatu 0
[1:0]  

SELEZIONA

 

MRW

U registru di selezzione di u canali di breakpoint hè cunfiguratu, vale à dì, dopu chì u canali currispondente hè sceltu, i registri tdata1 è tdata2 ponu esse operati per cunfigurà un breakpoint.

infurmazione.

 

X

Debug trigger data register 1 (tdata1)

Hè validu solu per i microprocessori chì supportanu i breakpoints di hardware. I microprocessori supportanu solu l'indirizzu di l'istruzzioni è l'indirizzu di dati, induve u bit TYPE di u registru tdata1 hè un valore fissu di 2, è altri bits cunformanu à a definizione di cuntrollu in u standard di debugging.

Tabella 8-13 definizione di u registru tdata1

Bit Nome Accessu Descrizzione Resettate u Valore
[31:28] TIPU MRO Definizione di u tipu di breakpoint, tipu di cuntrollu. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: I registri pertinenti di u flip-flop ponu esse mudificate in u modu di macchina è in u modu di debugging;

1: Solu u modu di debug pò mudificà i registri pertinenti di u flip-flop.

 

 

1

  [26:21]  

MASKMAX

 

MRO

Quandu MATCH = 1, a gamma massima di putenza esponenziale di currispundenza hè permessa, vale à dì, a gamma massima di currispundenza permessa hè 231 bytes.  

0x1F

[20:13] Riservatu MRO Riservatu 0
 

 

12

 

 

Azzione

 

 

MRW

Stabilite u modu di trattamentu quandu attivate un puntu di breakpoint:

0: Quandu attivate, entre in u breakpoint è chjamà l'interruzzione;

1: Entre in modu di debugging quandu attivatu.

 

 

0

[11:8] Riservatu MRO Riservatu 0
 

 

 

7

 

 

 

MATCH

 

 

 

MRW

Cunfigurazione di pulitica currispondente:

0: Match quandu u valore di trigger hè uguale à TDATA2;

1: U valore di trigger coincide cù u bit m altu di TDATA2, induve m = 31–n, è n hè a prima citazione 0 di TDATA2 (partendu da u bit bassu).

 

 

 

0

 

6

 

M

 

MRW

Abilita u flip-flop in u modu M:

0: Disattivà u trigger in u modu M; 1: Abilita u trigger in u modu M.

 

0

[5:4] Riservatu MRO Riservatu 0
 

3

 

U

 

MRW

Abilita u trigger in u modu U:

0: Disattiva u trigger in u modu U; 1: Attiva u trigger in u modu U.

 

0

 

2

 

ESECUTI

 

MRW

Istruzzioni di lettura di l'indirizzu attivatu attivatu: 0: Disable;

1: Attivà.

 

0

 

1

 

STORE

 

MRW

L'indirizzu di scrittura di dati attivatu attivatu: 0: Disable;

1: Attivà.

 

0

 

0

 

LOAD

 

MRW

L'indirizzu di lettura di dati attivatu attivatu: 0: Disable;

1: Attivà.

 

0

Debug trigger data register 2 (tdata2)

Hè validu solu per i microprocessori chì supportanu i punti di rottura di hardware è hè utilizatu per salvà u valore currispondente di u trigger.

Tabella 8-14 definizione di u registru tdata2

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] TDATA2 MRW Adupratu per salvà i valori currispondenti. X

Debug cuntrollu è registru di statutu (dcsr)

Stu registru hè adupratu per cuntrullà è arregistrà u statu di esecuzione di u modu di debugging. Vede a Sezione 7.1 per i dettagli.

Puntatore di prugramma in modu di debug (DPC)

Stu registru hè utilizatu per almacenà l'indirizzu di a prussima struzzione per esse eseguita dopu chì u microprocessore entra in u modu di debugging, u so valore hè diversu secondu i motivi per entra in u modu di debugging, è e regule d'aghjurnamentu sò ancu diverse. Vede a Sezione 7.1 per una descrizzione dettagliata.

Modu di debug stagregistru ing (dscratch0-1)

Stu gruppu di registri hè utilizatu per l'almacenamiento temporale di dati in modu Debug.

Table 8-15 dscratch0-1 definizione di registru

Bit Nome Accessu Descrizzione Resettate u Valore
[31:0] dscratch DRW Debug mode data stagu valore 0
Registru CSR definitu da l'utilizatori

U modu di l'utilizatori di l'interruzzione globale attiva u registru (gintenr)

  • Stu registru hè adupratu per cuntrullà l'attivazione è a maschera di l'interruzzione globale. L'abilitazione è a maschera di l'interruzzione globale in u modu di a macchina pò esse cuntrullata da i bit MIE è MPIE in status, ma stu registru ùn pò micca esse operatu in u modu d'utilizatore.
  • Mentre l'interruzzione glubale permette u registru gintenr hè a mappatura di MIE è MPIE in status.
  • In u modu d'utilizatore, l'intenzione pò esse usata per stabilisce è sguassate MIE è MPIE, cum'è descrittu in a Sezione 3.2 per i dettagli.

Nota

  • L'interruzioni globali ùn includenu micca l'interruzioni smascherate NMI è eccezzioni.

Interrompe u registru di cuntrollu di u sistema (intsyscr)

Stu registru hè principarmenti utilizatu per cunfigurà a prufundità di nidificazione di l'interruzzione, u pressing di stack hardware, è altre funzioni relative, cum'è descrittu in a Sezione 3.2 per i dettagli.

Registru di cunfigurazione di u microprocessore (corecfgr)

Stu registru hè utilizatu per cuntrullà se l'interruzzione NMI hè permessa dopu à l'interruzzione di overflows è se a dumanda di interruzzione hè sguassata quandu l'istruzione di fence hè eseguita. Per piacè riferite à a Sezione 3.2 per a definizione specifica.

Interrompe u registru di cuntrollu nidificatu (inestcr)

Stu registru hè utilizatu per indicà u statu di nidificazione d'interruzzione è s'ellu si sbocca o micca, è per cuntrullà u livellu massimu di nidificazione. Per piacè riferite à a Sezione 3.2 per a definizione specifica.

Documenti / Risorse

Microprocessore WH V3 [pdfManuale d'usu
V3 Microprocessor, V3, Microprocessor

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *