WH-logo

WH V3 mikroprocessor

WH-V3-Mikroprocessor-PRO

Specifikationer

  • Mikroprocessor model: QingKeV3
  • Version: V1.2
  • ISA funktioner:
    • Rørledning FPU
    • Branch forudsigelse
    • Afbryd support
    • HPE Physical Memory Protection (PMP)
    • Lavt strømforbrug tilstand
    • Udvidet instruktionssæt fejlretning

Produktbrugsvejledning

Overview af QingKe V3 mikroprocessor

QingKe V3-seriens mikroprocessorer inkluderer modellerne V3A, V3B og V3C. Hver model har specifikke funktioner og forskelle baseret på dens anvendelse.

Instruktionssæt

RV32I instruktionssættet indeholder 32 registersæt fra x0 til x31. V3-serien understøtter ikke floating-point extension (F). Hvert register er 32 bit stort.

Registrer Sæt

RV32I registersættet består af følgende registre.

  • x0: Hardkodet 0
  • x1: Retur adresse
  • x2: Stakmarkør
  • x3: Global pointer
  • x4: Tråd pointer
  • x5-x7: Midlertidige registre
  • x8: Gem register/frame pointer
  • x9: Gem register-/funktionsparametre/returværdier
  • x10-x11: parametre Funktion
  • x12-x17: Gem registre
  • x18-x27: Midlertidige registre
  • x28-x31: Den, der ringer/opkalder, registrerer

Privilegium tilstand

Standard RISC-V-arkitekturen inkluderer tre privilegerede tilstande: Maskintilstand, Supervisortilstand og Brugertilstand. QingKe V3-seriens mikroprocessorer understøtter maskintilstand og supervisortilstand.

Ofte stillede spørgsmål

Q: Hvad er de forskellige modeller i QingKe V3-seriens mikroprocessorer?

A: QingKe V3-serien inkluderer modellerne V3A, V3B og V3C, hver med specifikke funktioner og forskelle beskrevet i brugervejledningen.

Q: Hvor mange registersæt er tilgængelige i RV32I-instruktionssættet?

A: RV32I instruktionssættet giver 32 registersæt fra x0 til x31.

Q: Hvilke privilegerede tilstande understøttes af QingKe V3-mikroprocessoren?

A: QingKe V3-seriens mikroprocessorer understøtter maskintilstand og supervisortilstand som en del af RISC-V-arkitekturen.

Overview

QingKe V3-seriens mikroprocessorer er selvudviklede 32-bit MCU-mikroprocessorer til generelle formål baseret på standard RISC-V instruktionssætarkitektur. Denne serie inkluderer V3A, V3B og V3C, hvoraf V3A understøtter RV32IMAC standard instruktionssæt udvidelse og V3B/C understøtter RV32IMCB standard instruktions sæt udvidelse og tilpasset instruktions sæt udvidelse XW. Begge understøtter enkelt-cyklus multiplikation og hardware division, foruden hardware Press stack (HPE), table-free interrupt (VTF), strømlinede 1- og 2-wire debugging interfaces, "WFE" instruktioner og andre specielle funktioner. Derudover understøtter den også Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), strømlinet 1-/2-wire debugging interface og understøttelse af "WFE" instruktion.

Funktioner

Funktioner Beskrivelse
ISA RV32IM[A]C[B]
Rørledning 3
FPU Ikke understøttet
Branch forudsigelse Statisk gren forudsigelse
Afbryde Understøtter i alt 256 interrupts inklusive undtagelser, og understøtter VTF
HPE Understøtter 2 niveauer af HPE
Fysisk hukommelsesbeskyttelse (PMP) Understøttet
Lavt strømforbrug tilstand Understøtter søvn- og dyb søvntilstande og understøtter WFI- og WFE-søvnmetoder
Udvidet instruktionssæt Understøttet
Debug 1/2-leder SDI, standard RISC-V debug

Overview

QingKe V3-seriens mikroprocessorer inkluderer V3A, V3B og V3C, der er nogle forskelle mellem serierne i henhold til applikationen, de specifikke forskelle er beskrevet i tabel 1-1.

Tabel 1-1 Overview af QingKe V3 mikroprocessor

Feature Model ISA HPE antal niveauer Afbrydelser indlejring antal niveauer VTF antal kanaler Rørledning Vektor tabeltilstand Udvidet instruktion (XW) Antal hukommelsesbeskyttelsesområder
V3A RV32IMAC 2 2 4 3 Instruktion × ×
V3B RV32IMCB 2 2 4 3 Adresse/instruktion ×
V3C RV32IMCB 2 2 4 3 Adresse/instruktion 4

Note: OS opgaveskift bruger generelt stack push, som ikke er begrænset til antallet af niveauer

Instruktionssæt

  • QingKe V3-seriens mikroprocessorer følger standard RISC-V Instruction Set Architecture (ISA). Detaljeret dokumentation af standarden kan findes i "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2" på RISC-V International webwebsted. RISC-V instruktionssættet har en enkel arkitektur og understøtter et modulært design, der giver mulighed for fleksible kombinationer baseret på forskellige behov, og V3-serien understøtter følgende instruktionssætudvidelser.
  • RV32: 32-bit arkitektur, registerbit til generelle formål på 32 bit
  • I: Understøtter formningsoperation med 32 formningsregistre
  • M: Støtte formgivning af multiplikations- og divisionsinstruktioner
  • A: Understøtte atomkommandoer
  • C: Understøttelse af 16-bit komprimeringsinstruktion
  • B: Understøttelse af instruktioner til bitmanipulation
  • XW: 16-bit komprimeringsinstruktioner til selvforlængende byte og halvt ord operationer

Note:

  • Undersættet af instruktioner, der understøttes af forskellige modeller, kan være forskelligt. Se venligst Tabel 1-1 for detaljer;
  • For yderligere at forbedre kodetætheden skal du udvide XW-delsættet, tilføje følgende kompressionsinstruktioner c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , hvis brug skal være baseret på MRS-kompileren eller den værktøjskæde, den leverer;
  • V3B understøtter udtrækning af en ord-instruktion (32-bit) fra et dobbeltord-instruktion (64-bit) og udtrækning af en ord-instruktion (32-bit) fra et multiplikationsresultat (64-bit). Den specifikke brugsmetode kan referere til biblioteksfunktionen og samarbejde med MRS-kompileren eller den værktøjskæde, den leverer;
  • V3B/C understøtter hukommelseskopieringsinstruktion. For specifik brug henvises til biblioteksfunktionen og samarbejde med MRS-kompileren eller dens værktøjskæde.

Registrer Sæt

RV32I har 32 registersæt fra x0-x31. V3-serien understøtter ikke "F"-udvidelsen, dvs. der er ikke et flydende kommaregister. I RV32 er hvert register 32 bit. Tabel 1-2 nedenfor viser registrene for RV32I og deres beskrivelser.

Tabel 1-2 RISC-V registre

Register ABI navn Beskrivelse Storemand
x0 nul Hardkodet 0
x1 ra Retur adresse Ringer op
x2 sp Stakmarkør Callee
x3 GP Global pointer
x4 tp Tråd pointer
x5-7 t0-2 Midlertidig register Ringer op
x8 s0/fp Gem register/frame pointer Callee
x9 s1 Gem register Callee
x10-11 a0-1 Funktionsparametre/returværdier Ringer op
x12-17 a2-7 parametre Funktion Ringer op
x18-27 a2-11 Gem register Callee
X28-31 t3-6 Midlertidig register Ringer op

Caller-attributten i ovenstående tabel betyder, at den kaldte procedure ikke gemmer registerværdien, og Callee-attributten betyder, at den kaldte procedure gemmer registeret.

Privilegium tilstand

  • Standard RISC-V-arkitekturen inkluderer tre privilegerede tilstande: Maskintilstand, Supervisortilstand og Brugertilstand, som vist i tabel 1-3 nedenfor.
  • Maskintilstanden er obligatorisk, og de andre tilstande er valgfri. For detaljer kan du henvise til RISC-V Instruction Set Manual Volume II: Privileged Architecture”, som kan downloades gratis fra RISC-V International webwebsted.

Tabel 1-3 RISC-V arkitektur privilegietilstand

Kode Navn Forkortelser
0b00 Brugertilstand U
0b01 Supervisor model S
0b10 Reserveret Reserveret
0b11 Maskintilstand M
  • QingKe V3-seriens mikroprocessorer understøtter to af disse privilegerede tilstande.

Maskintilstand

  • Maskintilstand har den højeste autoritet, programmet i denne tilstand kan få adgang til alle kontrol- og statusregistre (CSR), men kan også få adgang til alle fysiske adresseområder.
  • Opstartsstandarden er i maskintilstand, når udførelsen af ​​mret (maskintilstandsreturinstruktion) vender tilbage i henhold til CSR-registerstatus (Maskintilstandsstatusregister) i MPP-bitten, hvis MPP = 0b00, forlad derefter maskintilstanden ind i brugertilstand, MPP = 0b11, og fortsæt derefter med at beholde maskintilstand.

Brugertilstand

  • Brugertilstand har det laveste privilegium, og kun begrænsede CSR-registre kan tilgås i denne tilstand. Når en undtagelse eller afbrydelse opstår, går mikroprocessoren fra brugertilstand til maskintilstand for at håndtere undtagelser og afbrydelser.

CSR register

En række CSR-registre er defineret i RISC-V-arkitekturen for at styre og registrere mikroprocessorens driftstilstand. Disse CSR'er kan udvides med 4096 registre ved hjælp af et internt dedikeret 12-bit adressekodningsrum. Og brug de høje to CSR[11:10] til at definere læse/skrivetilladelsen for dette register, 0b00, 0b01, 0b10 for læse/skrive tilladt og 0b11 for skrivebeskyttet. Brug de to bit CSR[9:8] til at definere det laveste privilegieniveau, der kan få adgang til dette register, og værdien svarer til privilegietilstanden defineret i Tabel 1-3. CSR-registrene implementeret i QingKe V3-mikroprocessoren er beskrevet i kapitel 8.

Undtagelse

Undtagelsesmekanisme, som er en mekanisme til at opfange og håndtere "usædvanlige operationsbegivenheder". QingKe V3-seriens mikroprocessorer er udstyret med et undtagelsesresponssystem, der kan håndtere op til 256 undtagelser, inklusive afbrydelser. Når en undtagelse eller afbrydelse opstår, kan mikroprocessoren hurtigt reagere og håndtere undtagelses- og afbrydelsesbegivenhederne.

Undtagelsestyper

Mikroprocessorens hardwareadfærd er den samme, uanset om der forekommer en undtagelse eller en afbrydelse. Mikroprocessoren suspenderer det aktuelle program, flytter til undtagelses- eller afbrydelsesbehandleren og vender tilbage til det tidligere suspenderede program, når behandlingen er fuldført. Stort set er interrupts også en del af undtagelserne. Om præcis den aktuelle forekomst er en afbrydelse eller en undtagelse kan være viewed gennem Maskintilstand undtagelsesårsagen registrere årsag. mcause[31] er interrupt-feltet, som bruges til at angive, om årsagen til undtagelsen er en interrupt eller en undtagelse. mcause[31]=1 betyder afbrydelse, mcause[31]=0 betyder undtagelse. mcause[30:0] er undtagelseskoden, som bruges til at angive den specifikke årsag til undtagelsen eller afbrydelsesnummeret, som vist i følgende tabel.

Tabel 2-1 Undtagelseskoder for V3-mikroprocessor

Afbryde Undtagelse koder Synkron / Asynkron Grund til undtagelse
1 0-1 Reserveret
1 2 Præcis asynkron NMI afbryder
1 3-11 Reserveret
1 12 Præcis asynkron SysTick afbryder
1 13 Reserveret
1 14 Synkron Software afbryder
1 15 Reserveret
1 16-255 Præcis asynkron Ekstern afbrydelse 16-255
0 0 Synkron Instruktionsadresse fejljustering
0 1 Synkron Fejl ved adgang til hentekommando
0 2 Synkron Ulovlige instruktioner
0 3 Synkron stoppunkter
0 4 Synkron Fejljustering af indlæsningsinstruktionsadgangsadresse
0 5 Ikke-præcision asynkron Fejl ved indlæsning af kommandoadgang
0 6 Synkron Store/AMO-instruktionsadgangsadresse fejljustering
0 7 Ikke-præcision asynkron Store/AMO kommando adgangsfejl
0 8 Synkron Miljøopkald i brugertilstand
0 11 Synkron Miljøkald i maskintilstand
  • Synchronous” i tabellen betyder, at en instruktion kan placeres præcis, hvor den udføres, såsom en pause- eller opkaldsinstruktion, og hver udførelse af den instruktion vil udløse en undtagelse. "Asynkron" betyder, at det ikke er muligt at udpege en instruktion, og instruktionens pc-værdi kan være forskellig, hver gang en undtagelse opstår. "Præcis asynkron" betyder, at en undtagelse kan placeres nøjagtigt ved grænsen af ​​en instruktion, dvs. tilstanden efter udførelsen af ​​en instruktion, såsom en ekstern afbrydelse. "Ikke-præcision asynkron" betyder, at grænsen for en instruktion ikke kan lokaliseres præcist, og måske tilstanden efter en instruktion er blevet afbrudt halvvejs i udførelsen, såsom en hukommelsesadgangsfejl.
  • Adgang til hukommelse tager tid, og mikroprocessoren venter normalt ikke på slutningen af ​​adgangen, når den tilgår hukommelsen, men fortsætter med at udføre instruktionen, når adgangsfejlundtagelsen opstår igen, har mikroprocessoren allerede udført de efterfølgende instruktioner og kan ikke være præcist placeret.

Indtastning af undtagelse

Når programmet er i gang med normal drift, hvis det af en eller anden grund udløser en undtagelse eller afbrydelse. Mikroprocessorens hardwareadfærd på dette tidspunkt kan opsummeres som følger.

  1. Suspendér det aktuelle programflow og gå videre til udførelse af undtagelses- eller afbrydelseshåndteringsfunktioner. Indgangsbaseadressen og adresseringstilstanden for undtagelses- eller afbrydelsesfunktionen er defineret af undtagelsesindgangsbasisadresseregistret mtvec. mtvec[31:2] definerer basisadressen for undtagelses- eller interruptfunktionen. mtvec[1:0] definerer adresseringstilstanden for behandlerfunktionen. når mtvec[1:0]=0, bruger alle undtagelser og afbrydelser en samlet indgang, dvs. når en undtagelse eller afbrydelse opstår, vender den sig til mtvec[31:2] definerer basisadressen, der skal udføres. Når mtvec[1:0]=1, bruger undtagelser og afbrydelser vektortabeltilstand, dvs. hver undtagelse og afbrydelse er nummereret, og adressen er forskudt i henhold til afbrydelsesnummer*4, og når en undtagelse eller afbrydelse opstår, flyttes den til basisadressen defineret af mtvec[31:2] + afbrydelsesnummer*4 Udførelse. Interrupt-vektortabellen indeholder en instruktion om at hoppe til interrupt-håndteringsfunktionen, eller det kan være andre instruktioner.
  2. Opdater CSR-register
    • Når der indtastes en undtagelse eller afbrydelse, opdaterer mikroprocessoren automatisk de relevante CSR-registre, inklusive årsagsregisteret for maskintilstand, undtagelsesregistret for maskintilstand, mepc, undtagelsesværdiregisteret for maskintilstand, og statusregisteret for maskintilstandsstatus.

Opdater mcause

Som nævnt før, efter indtastning af en undtagelse eller afbrydelse, afspejler dens værdi den aktuelle undtagelsestype eller afbrydelsesnummer, og softwaren kan læse denne registerværdi for at kontrollere årsagen til undtagelsen eller bestemme kilden til afbrydelsen, som beskrevet i tabel 2 -1.

Opdater mepc

  • Standarddefinitionen af ​​returadressen for mikroprocessoren efter at have forladt en undtagelse eller afbrydelse er gemt i mepc.
  • Så når en undtagelse eller afbrydelse opstår, opdaterer hardwaren automatisk mepc-værdien til den aktuelle instruktions-pc-værdi, når undtagelsen stødes på, eller den næste præ-udførte instruktions pc-værdi før afbrydelsen.
  • Efter at undtagelsen eller afbrydelsen er behandlet, bruger mikroprocessoren sin gemte værdi som returadresse for at vende tilbage til stedet for afbrydelsen for at fortsætte udførelsen.
  • Det er dog værd at bemærke.
  1. MEPC er et læsbart og skrivbart register, og softwaren kan også ændre værdien for at ændre placeringen af ​​pc-markøren, der kører efter returneringen.
  2. Når en afbrydelse opstår, dvs. når undtagelsesårsagen registrerer mcause[31]=1, opdateres værdien af ​​kort til pc-værdien for den næste ikke-udførte instruktion på tidspunktet for afbrydelsen.
    • Når der opstår en undtagelse, opdateres værdien af ​​kort til instruktions-pc-værdien for den aktuelle undtagelse, når undtagelsen forårsager register mcause[31]=0. Så på dette tidspunkt, hvor undtagelsen vender tilbage, hvis vi vender tilbage direkte ved hjælp af værdien af ​​mepc, fortsætter vi med at udføre instruktionen, der genererede undtagelsen før, og på dette tidspunkt fortsætter vi med at indtaste undtagelsen. Normalt, efter at vi har håndteret undtagelsen, kan vi ændre værdien af ​​mepc til værdien af ​​den næste ikke-udførte instruktion og derefter vende tilbage. F.eksample, hvis vi forårsager en undtagelse på grund af call/break, efter at have håndteret undtagelsen, da recall/break (c.ebreak er 2 bytes) er en 4-byte instruktion, behøver vi kun softwaren til at ændre værdien af ​​mepc til mepc +4 (c.ebreak er mepc+2) og vend derefter tilbage.

Opdater mtval

Når der indtastes undtagelser og interrupts, vil hardwaren automatisk opdatere værdien af ​​mtval, som er den værdi, der forårsagede undtagelsen. Værdien er typisk.

  1. Hvis en undtagelse er forårsaget af en hukommelsesadgang, vil hardwaren gemme adressen på hukommelsesadgangen på tidspunktet for undtagelsen i mtval.
  2. Hvis undtagelsen er forårsaget af en ulovlig instruktion, vil hardwaren gemme instruktionskoden for instruktionen i mtval.
  3. Hvis undtagelsen er forårsaget af et hardware-brudpunkt, vil hardwaren gemme pc-værdien ved brudpunktet i mtval.
  4. For andre undtagelser sætter hardwaren værdien af ​​mtval til 0, såsom break, undtagelsen forårsaget af opkaldsinstruktion.
  5. Når du indtaster afbrydelsen, sætter hardwaren værdien af ​​mtval til 0.

Opdater mstatus

Ved indtastning af undtagelser og afbrydelser opdaterer hardwaren visse bits i mstatus.

  1. MPIE opdateres til MIE-værdien, før undtagelsen eller afbrydelsen indtastes, og MPIE bruges til at gendanne MIE, efter at undtagelsen og afbrydelsen er overstået.
  2. MPP opdateres til den privilegerede tilstand, før der indtastes undtagelser og afbrydelser, og efter at undtagelserne og afbrydelserne er overstået, bruges MPP til at gendanne den tidligere privilegerede tilstand.
  3. QingKe V3 mikroprocessor understøtter interrupt nesting i maskintilstand, og MIE vil ikke blive ryddet efter indtastning af undtagelser og interrupts.

Opdater mikroprocessorprivilegietilstand

  • Når der opstår undtagelser og afbrydelser, opdateres mikroprocessorens privilegerede tilstand til maskintilstand.

Undtagelseshåndteringsfunktioner

  • Ved indtastning af en undtagelse eller afbrydelse udfører mikroprocessoren programmet fra adressen og tilstanden defineret af mtvec-registret. Når du bruger den forenede indgang, tager mikroprocessoren en hop-instruktion fra basisadressen defineret af mtvec[31:2] baseret på værdien af ​​mtvec[1], eller får undtagelses- og afbrydelseshåndteringsfunktionens indtastningsadresse og går til at udføre den i stedet for . På dette tidspunkt kan undtagelses- og afbrydelseshåndteringsfunktionen bestemme, om årsagen er en undtagelse eller en afbrydelse baseret på værdien af ​​mcause[31], og typen og årsagen til undtagelsen eller den tilsvarende afbrydelse kan bedømmes ved undtagelseskoden og håndteres derefter.
  • Når du bruger basisadressen + afbrydelsesnummeret *4 til offset, springer hardwaren automatisk til vektortabellen for at få indtastningsadressen for undtagelsen eller afbrydelsesfunktionen baseret på afbrydelsesnummeret og springer for at udføre den.

Undtagelse Exit

  • Efter at undtagelses- eller afbrydelseshåndteringen er afsluttet, er det nødvendigt at afslutte serviceprogrammet. Efter indtastning af undtagelser og afbrydelser går mikroprocessoren ind i maskintilstand fra brugertilstand, og behandlingen af ​​undtagelser og afbrydelser afsluttes også i maskintilstand. Når det er nødvendigt at forlade undtagelser og afbrydelser, er det nødvendigt at bruge mret-instruktionen for at vende tilbage. På dette tidspunkt vil mikroprocessorhardwaren automatisk udføre følgende handlinger.
  • PC-markøren gendannes til værdien af ​​CSR-register mepc, dvs. eksekveringen starter ved instruktionsadressen gemt af mepc. Det er nødvendigt at være opmærksom på offset-driften af ​​mepc, efter at undtagelseshåndteringen er afsluttet.
  • Opdater CSR-registerstatus, MIE gendannes til MPIE, og MPP bruges til at gendanne den tidligere mikroprocessors privilegerede tilstand.
  • Hele undtagelsesresponsprocessen kan beskrives i den følgende figur 2-1.WH-V3-Mikroprocessor-fig-1

PFIC og Interrupt Control

  • QingKe V3 mikroprocessor er designet med en Programmerbar Fast Interrupt Controller (PFIC), der kan håndtere op til 256 interrupts inklusive undtagelser.
  • De første 16 af dem er fastgjort som interne afbrydelser i mikroprocessoren, og resten er eksterne afbrydelser, dvs. det maksimale antal eksterne afbrydelser kan udvides til 240. Dets hovedtræk er som følger.
  • 240 eksterne interrupts, hver afbrydelsesanmodning har uafhængige trigger- og maskekontrolbits med dedikerede statusbits
  • Programmerbar afbrydelsesprioritet understøtter 2 niveauer af indlejring
  • Speciel hurtig afbrydelse ind/ud af mekanismen, hardware automatisk stabling og gendannelse, maksimal HPE-dybde på 2 niveauer
  • Vector Table Free (VTF) interrupt response-mekanisme, 2-kanals programmerbar direkte adgang til interrupt vektor-adresser
  • Note: Den maksimale indlejringsdybde og HPE-dybde, der understøttes af interrupt-controllere, varierer for forskellige mikroprocessormodeller, som kan findes i Tabel 1-1.
  • Vektortabellen over afbrydelser og undtagelser er vist i tabel 3-1 nedenfor.

Tabel 3-1 Undtagelses- og afbrydelsesvektortabel

Antal Prioritet Type Navn Beskrivelse
0
1
2 -5 Fast NMI Ikke-maskerbar afbrydelse
3 -4 Fast EXC Undtagelsesafbrydelse
4
5 -3 Fast ECALL-M Maskintilstand tilbagekaldsafbrydelse
6-7
8 -2 Fast ECALL-U Brugertilstand tilbagekaldsafbrydelse
9 -1 Fast BREAK PUNKT Breakpoint tilbagekaldsafbrydelse
10-11
12 0 Programmerbar SysTick System timer afbrydelse
13
14 1 Programmerbar SWI Softwareafbrydelse
15
16-255 2-241 Programmerbar Ekstern afbrydelse Ekstern afbrydelse 16-255

Note: ECALL-M, ECALL-U og BREAKPOINT er alle forskellige typer af undtagelses-EXC, som er uafhængige i V3B/C for brugervenlighed, og ovenstående 3 indgangsadresser deles med EXC i V3A.

PFIC Register Set

Tabel 3-2 PFIC-registre

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_ISRx 0xE000E000

-0xE000E01C

RO Afbrydelsesaktiver statusregister x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO Afbryd afventende statusregister x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW Afbryd prioritetstærskelkonfigurationsregister 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW VTF base adresse register

Bemærk: Gælder kun for V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Afbryd konfigurationsregister

Bemærk: Gælder kun for V3A

0x00000000
PFIC_GISR 0xE000E04C RO Afbryd det globale statusregister 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

VTF interrupt ID konfigurationsregister

Bemærk: Gælder kun for V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x offset adresseregister 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO Interrupt enable indstillingsregister x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO Afbryde aktiver slet register x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Afbryd afventende indstillingsregister x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Afbrydelse afventer sletning af register x 0x00000000
PFIC_IACTRx 0xE000E300

-0xE000E31C

RO Afbryd aktiveringsstatusregister x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW Afbryd prioritetskonfigurationsregister 0x00000000
PFIC_SCTLR 0xE000ED10 RW Systemkontrolregister 0x00000000

Note:

  1. NMI, EXC, ECALL-M, ECALL-U og BREAKPOINT er altid aktiveret som standard.
  2. ECALL-M, ECALL-U og BREAKPOINT er et tilfælde af EXC.
  3. NMI, EXC, ECALL-M, ECALL-U og BREAKPOINT understøtter afbrydelse afventende rydning og indstillingsoperation, men ikke interrupt aktiverer rydning og indstillingsoperation.

Hvert register er beskrevet som følger:

Afbryd aktiveringsstatus og afbryd ventende statusregistre (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
 PFIC_ISR0  0xE000E000  RO Interrupt 0-31 aktiverer statusregister, i alt 32 statusbits [n], der angiver #n interrupt aktiverer status

Bemærk: NMI og EXC er aktiveret som standard

 For V3A: 0x0000000C

For V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO Interrupt 32-63 aktiver statusregister, i alt 32 statusbits 0x00000000
PFIC_ISR7 0xE000E01C RO Interrupt 224-255 aktiver statusregister, i alt 32 statusbit 0x00000000
PFIC_IPR0 0xE000E020 RO Interrupt 0-31 afventende status 0x00000000
register, i alt 32 statusbits [n], hvilket angiver den afventende status for interrupt #n
PFIC_IPR1 0xE000E024 RO Afbryd 32-63 afventende statusregistre, 32 statusbits i alt 0x00000000
PFIC_IPR7 0xE000E03C RO Interrupt 244-255 afventende statusregister, 32 statusbits i alt 0x00000000

To sæt registre bruges til at aktivere og deaktivere de tilsvarende interrupts.

Afbrydelsesaktiveringsindstilling og slet registre (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_IENR0 0xE000E100 WO Interrupt 0-31 aktiverer indstillingsregister, i alt 32 indstillingsbit [n], for interrupt #n aktiveringsindstilling

Note: NMI og EXC er aktiveret som standard

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Interrupt 32-63 for at aktivere indstillingsregisteret, i alt 32 indstillingsbit 0x00000000
PFIC_IENR7 0xE000E11C WO Interrupt 224-255 aktiveringsindstilling

register, i alt 32 indstillingsbit

0x00000000
 PFIC_IRER0  0xE000E180  WO Interrupts 0-31 aktiverer slet register, i alt 32 clear bits [n], for interrupt #n aktiverer clear Bemærk: NMI og EXC kan ikke være det opereret  

 

0x00000000

PFIC_IRER1 0xE000E184 WO Interrupt 32-63 muliggør et clear register, i alt 32 clear bits 0x00000000
PFIC_IRER7 0xE000E19C WO Interrupt 244-255 muliggør et clear register, i alt 32 clear bits 0x00000000

To sæt registre bruges til at aktivere og deaktivere de tilsvarende interrupts.

Afbryd afventende indstilling og ryd registre (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
 

PFIC_IPSR0

 

0xE000E200

 

WO

Afbrydelse 0-31 afventende indstillingsregister, 32

indstilling af bits [n], for interrupt #n afventende indstilling

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Afbryd 32-63 afventende opsætningsregister,

i alt 32 setup bits

0x00000000
PFIC_IPSR7 0xE000E21C WO Interrupt 224-255 afventende indstilling

register, 32 indstillingsbits i alt

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Interrupt 0-31 afventende clear register, i alt 32 clear bits [n], for interrupt #n

afventer klar

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Interrupt 32-63 afventer rydning af register,

i alt 32 klare bits

0x00000000
PFIC_IPRR7 0xE000E29C WO Interrupt 244-255 afventer rydning af register,

i alt 32 klare bits

0x00000000

Når mikroprocessoren aktiverer en afbrydelse, kan den indstilles direkte gennem afbrydelsesregistret for at udløse afbrydelsen. Brug registret afventende afbrydelse af afbrydelse til at rydde den afventende udløser.

Afbrydelsesaktiveringsstatusregister (PFIC_IACTR<0-7>)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
 PFIC_IACTR0  0xE000E300  RO Interrupt 0-31 aktiverer statusregisteret med 32 statusbit [n], hvilket indikerer, at interrupt #n udføres  0x00000000
 PFIC_IACTR1  0xE000E304  RO Afbryd 32-63 aktiveringsstatusregistre, 32 statusbits ind

total

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Afbryd 224-255 aktiveringsstatusregistre, i alt 32 statusbits  0x00000000

Hver afbrydelse har en aktiv statusbit, der sættes op, når afbrydelsen indtastes og slettes af hardware, når markedet vender tilbage.

Interrupt prioritets- og prioritetstærskelregistre (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_IPRIOR0 0xE000E400 RW Afbryde 0 prioritetskonfiguration. V3A: [7:4]: Prioritetskontrolbits Hvis konfigurationen ikke er indlejret, ingen forkøbsbit. Hvis indlejring er konfigureret, er bit7 den forudindstillede bit. [3:0]: Reserveret, fastsat til 0  V3B: [7:6]: Prioritetskontrolbits Hvis konfigurationen ikke er indlejret, er der ingen forebyggende bit konfigureret indlejret, alle bits er foregrebet, men op til to niveauer af afbrydelser tillades at forekomme [5:0]: Reserveret, fastsat til 0
V3C:
[7:5]: Prioritetskontrolbits
Hvis konfigurationen ikke er indlejret, ingen forebyggende bits
Hvis konfigureret indlejret, er alle bits foregrebet, men op til to niveauer af afbrydelser tillades at forekomme [4:0]: Reserveret, fastsat til 0 Bemærk: Jo mindre prioritetsværdien er, jo højere prioritet. Hvis den samme fortrinsprioritetsafbrydelse hænger på samme tid, vil afbrydelsen med den højere prioritet blive udført først.
0x00
PFIC_IPRIOR1 0xE000E401 RW Interrupt 1 prioritetsindstilling, samme funktion som PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW Interrupt 2 prioritetsindstilling, samme funktion som PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW Interrupt 254 prioritetsindstilling, samme funktion som PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW Interrupt 255 prioritetsindstilling, samme funktion som PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW Indstilling af afbrydelsesprioritetstærskel

V3A:

[31:8]: Reserveret, fastsat til 0 [7:4]: Prioritetstærskel [3:0]: Reserveret, fastsat til 0

 V3B:

[31:8]: Reserveret, fastsat til 0 [7:5]: Prioritetstærskel [4:0]: Reserveret, fastsat til 0

 V3C:

[31:8]: Reserveret, fastsat til 0 [7:5]: Prioritetstærskel [4:0]: Reserveret, fastsat til 0

Note: For afbrydelser med prioritetsværdi ≥ tærskel, udføres afbrydelsestjenestefunktionen ikke, når der opstår et hæng, og når dette register er 0, betyder det, at tærskelregistret er ugyldigt.

0x00

Afbrydelseskonfigurationsregister (PFIC_CFGR)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_CFGR 0xE000E048 RW Afbryd konfigurationsregister 0x00000000

Dette register er kun gyldigt for V3A, dets bits er defineret som:

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:16] NØGLE KODE WO Svarende til forskellige målkontrolbits skal de tilsvarende sikkerhedsadgangsidentifikationsdata skrives samtidigt for at blive ændret, og udlæsningsdataene er fastsat til 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF。 0
[15:8] Reserveret RO Reserveret 0
7 SYSRESET WO Systemnulstilling (samtidig skrivning til KEY3). Auto clear 0.

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

Bemærk: Samme funktion som PFIC_SCTLR register SYSRESET bit.

0
6 PFICRESET WO PFIC-modul nulstillet. Auto clear 0.

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

0
5 UDTRYKKE WO Undtagelsesafbrydelse afventer sletning (samtidig skrivning til KEY2)

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

0
4 EXCSET WO Undtagelsesafbrydelse afventende indstilling (samtidig skrivning til KEY2)

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

0
3 NMIRESET WO NMI-afbrydelse afventer klar (samtidig skrivning til KEY2)

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

0
2 NMISET WO NMI-afbrydelse afventende indstilling (Samtidig skrivning til KEY2)

At skrive 1 er gyldigt, at skrive 0 er ugyldigt.

0
1 NESTCTRL RW Interrupt-nesting muliggør kontrol.

1: slukket; 0: tændt (synkron skrivning til KEY1)

0
0 HWSTKCTRL RW HPE aktivere kontrol

1: slukket; 0: tændt (synkron skrivning til KEY1)

0

Afbryde globalt statusregister (PFIC_GISR)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_GISR 0xE000E04C RO Afbryd det globale statusregister 0x00000000

Dens folk er defineret som

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:14] Reserveret RO Reserveret 0
 

 

13

 

 

LOCKSTA

 

 

RO

Om processoren i øjeblikket er i en låst tilstand:

1: Låst tilstand;

0: Ikke-låst tilstand.

Bemærk: Denne bit er kun gyldig for V3B/C.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

Om processoren i øjeblikket er i debug-tilstand: 1: Debug-tilstand;

0: Ikke-fejlretningstilstand.

Bemærk: Denne bit er kun gyldig for V3B/C.

 

 

0

 

 

11

 

 

GLOBLIE

 

 

RO

Aktivering af global afbrydelse:

1: Aktiver afbrydelse;

0: Deaktiver afbrydelse.

Bemærk: Denne bit er kun gyldig for V3B/C.

10 Reserveret RO Reserveret 0
9 GPENDSTA RO Om en afbrydelse i øjeblikket er afventende.

1: Ja; 0: Nej.

0
8 GACTSTA RO Om en afbrydelse i øjeblikket udføres.

1: Ja; 0: Nej.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

Aktuel afbrydelsesindlejringsstatus. 0x03: i niveau 2 afbrydelse.

0x01: i niveau 1 afbrydelse. 0x00: ingen afbrydelser forekommer.

Andet: Umulig situation.

 

 

0

VTF ID-baseadresse- og offset-adresseregistre (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: Høje 4 bit af måladressen for VTF [27:0]: Reserveret

Dette register er kun gyldigt for V3A.

 

 

0x00000000

 

 

 

PFIC_VTFIDR

 

 

 

0xE000E050

 

 

 

RW

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

Dette register er kun gyldigt for V3B/C.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: VTF 0 afbrydelsesnummer [23:0]: de lave 24 bit af VTF-måladressen, hvoraf de lave 20 bit er konfigureret til at være gyldige, og [23:20] er fastsat til 0 .

 V3B/C:

[31:1]: VTF 0-adresse, 2-byte justeret [0]:

1: Aktiver VTF 0-kanal

0: Deaktiver

 

 

 

 

 

 

 

For V3A: 0x00000000

For V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 1 afbrydelsesnummer [23:0]: De lave 24 bit af VTF-måladressen, hvoraf de lave 20 bit er konfigureret til at være gyldige og [23:20] er fastsat til 0.

 

V3B/C:

[31:1]: VTF 1-adresse, 2-byte justeret [0]:

1: Aktiver VTF 1-kanal

0: Deaktiver

 

 

 

 

 

 

 

For V3A: 0x00000000

For V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 2 afbrydelsesnummer [23:0]: de lave 24 bit af VTF-måladressen, hvoraf de lave 20 bit er konfigureret til at være gyldige, og [23:20] er fastsat til 0 .

 

V3B/C:

[31:1]: VTF 2-adresse, 2-byte justeret [0]:

1: Aktiver VTF 2-kanal

0: Deaktiver

 

 

 

 

 

 

 

For V3A: 0x00000000

For V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: Til V3A:
[31:24]: VTF 3-afbrydelsesnummer [23:0]: de lave 24 bit af VTF-måladressen, hvoraf de lave 20 bit er konfigureret til at være gyldige, og [23:20] er fastsat til 0.

 V3B/C:

[31:1]: VTF 3-adresse, 2-byte justeret [0]:

1: Aktiver VTF 3-kanal

0: Deaktiver

0x00000000

For V3B/C: 0xXXXXXXXXX

Systemkontrolregister (PFIC_SCTLR)

Navn Adgangsadresse Adgang Beskrivelse Nulstil værdi
PFIC_SCTLR 0xE000ED10 RW Systemkontrolregister 0x00000000

Hver af dem er defineret som følger.

Bit Navn Adgang Beskrivelse Nulstil værdi
31 SYSRESET WO Systemnulstilling, autoslet 0. Skriv 1 er gyldig, og skriv 0 er ugyldig.

Bemærk: Denne bit er kun gyldig for V3B/C

0
[30:6] Reserveret RO Reserveret 0
5 SETEVENT WO Indstil begivenheden til at vække WFE-sagen. 0
 

4

SEVONPEND RW Når en hændelse opstår eller afbryder en afventende tilstand, kan systemet vækkes efter WFE-instruktionen, eller hvis WFE-instruktionen ikke udføres, vil systemet blive vækket umiddelbart efter næste udførelse af instruktionen.

1: Aktiverede hændelser og alle afbrydelser (inklusive ikke-aktiverede afbrydelser) kan vække systemet.

0: Kun aktiveret hændelser og aktiveret

afbrydelser kan vække systemet.

 

 

 

0

3 WFITOWFE RW Udfør WFI-kommandoen, som om det var en WFE.

1: Behandl den efterfølgende WFI-instruktion som en WFE-instruktion.

0: Ingen effekt.

0
2 SØVENDYB RW Laveffekttilstand for kontrolsystemet. 0
1: dyb søvn 0: søvn
1 SLEEPONEXI T RW Systemstatus efter kontrol forlader afbrydelsesserviceprogrammet.

1: Systemet går i lavenergitilstand.

0: Systemet går ind i hovedprogrammet.

0
0 Reserveret RO Reserveret 0

Interrupt-relaterede CSR-registre

Derudover har følgende CSR-registre også en væsentlig indflydelse på behandlingen af ​​afbrydelser. Afbryd systemkontrolregister (intsyscr)

Dette register er ikke kun gyldigt for V3A:

Navn CSR Adresse Adgang Beskrivelse Nulstil værdi
intsyscr 0x804 URW Afbryd systemkontrolregister 0x0000E002

Dens folk er defineret som:

Bit Navn Adgang Beskrivelse Nulstil værdi
 

 

 

31

 

 

 

LÅSE

 

 

 

URO

0: Dette register kan læses og skrives i brugertilstand;

1: Dette register kan kun læses og skrives i maskintilstand.

Bemærk: Denne konfigurationsbit er gyldig fra

version 1.0 og frem.

 

 

 

0

[30:6] Reserveret URO Reserveret 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

Global afbrydelse og nedlukning af hardwarestak er aktiveret.

Bemærk: Denne bit bruges ofte i realtidsoperativsystemer. Når konteksten skiftes under en afbrydelse, kan indstilling af denne bit slå den globale afbrydelse fra og skubbe hardwarestakken. Når kontekstskiftet er gennemført, og afbrydelsen vender tilbage, vil hardwaren

ryd automatisk denne bit.

 

 

 

 

 

0

4 Reserveret URO Reserveret 0
[3:2] PMTCFG URW Konfiguration af prioritetspræemptionsbits:

00: Antallet af præemptionsbit er 0; 01: Antallet af præemptionsbit er 1; 10: Antallet af præemptionsbit er 2; 11: Antallet af præemptionsbit er 3; Bemærk: Denne konfigurationsbit er gyldig efter 1.0.

0
1 LYTTE URW Interrupt-nesting-funktionen er aktiveret, og den faste værdi er 1: 1
0: Deaktiver;

1: Aktiver.

Bemærk: 1. Det faktiske indlejringsniveau styres af NEST_LVL i CSR 0xBC1;

2. Kun versioner efter 1.0 kan være

skrevet.

0 HWSTKEN URW Hardware stak aktivering:

0: Hardware stak pressefunktionen er deaktiveret;

1: Hardware-stackpressefunktionen er aktiveret.

0

Maskintilstand undtagelse base adresseregister (mtvec)

Navn CSR Adresse Adgang Beskrivelse Nulstil værdi
mtvec 0x305 MRW Undtagelsesbaseadresseregister 0x00000000

Dens folk er defineret som

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:2] BASEADDR[31:2] MRW Interrupt vektor tabel base adresse, hvor

bit [9:2] er fastsat til 0.

0
1 MODE1  

MRO

Afbryd vektortabelgenkendelsestilstand: 0: Identificer ved springinstruktion, med begrænset omfang, og understøt non-jump-instruktion;

1: Identificer ved absolut adresse, understøtter fuld rækkevidde, men skal hoppe.

Bemærk: Denne bit er kun gyldig for V3B/C.

0
0 MODE0 MRW Valg af afbrydelse eller undtagelsesindtastning af adressetilstand.

0: Brug af den ensartede indrejseadresse.

1: Adresseforskydning baseret på afbrydelsesnummer *4.

0

For MCU'er med V3-seriens mikroprocessorer er MODE0 konfigureret til at være 1 som standard i opstarten file, og indtastningerne for undtagelser eller afbrydelser forskydes i henhold til afbrydelsesnummeret *4. Bemærk, at V3A-mikroprocessoren gemmer en hop-instruktion ved vektortabellen, mens V3B/C-mikroprocessoren enten kan en hop-instruktion eller bruge den absolutte adresse på afbrydelsesfunktionen, som er konfigureret som en absolut adresse i standardopstarten file.

Mikroprocessorkonfigurationsregister (korrektor)

Dette register er ugyldigt for V3A:

Navn CSR Adresse Adgang Beskrivelse Nulstil værdi
corecfgr 0xBC0 MRW Mikroprocessorkonfigurationsregister 0x00000001

Dens folk er defineret som

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:8] Reserveret MRO Reserveret 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

Aktivering af afbrydelse af kernestatusfejl:

0: Ved statusfejl genereres der ingen NMI-afbrydelse;

1: Ved statusfejl er NMI afbrydelse

genereret.

 

 

0

6 Reserveret MRO Hold det 0. 0
5 IE_REMAP_DA MRW MIE-registerkortlægning muliggør:

0: CSR-adresse 0x800 er et skrivebeskyttet register, og returværdien er værdien af ​​STATUS;

1: Bit 3 og 7 af CSR-adresse 0x800 er afbildet til henholdsvis bit MIE i STATUS-registret og bit MPIE i STATUS-registret.

 

 

 

 

0

4 Reserveret MRO Reserveret 0
3 ROM_LOOP_ACC MRW Aktivering af ROM-områdeinstruktionsløkkeacceleration:

0: Slå den cykliske accelerationsfunktion fra i ROM-området;

1: Kontinuerlige instruktioner med en loop body inden for 128 bytes vil blive fuldt accelereret, mens dem med en loop body inden for 256 bytes vil blive delvist accelereret;

0
2 ROM_JUMP_ACC MRW ROM-område instruktion jump acceleration aktiveret:

0: Deaktiver ROM-områdeinstruktions-spring acceleration;

1: Aktiver acceleration af instruktionsspring i ROM-området.

0
[1:0] FETCH_MODE MRW Hentetilstand:

00: Prefetch er slået fra. Instruktions prefetch-funktionen er slået fra for at undgå ugyldige instruktionshentningsoperationer, og der er højst én gyldig instruktion på CPU-pipelinen. Denne model har det laveste strømforbrug, og dens ydeevne falder med omkring 2 ~ 3 gange. 01: Prefetch Mode 1. Når instruktions prefetch-funktionen er slået til, vil CPU'en fortsætte med at få adgang til instruktionshukommelsen, indtil antallet af instruktioner, der skal udføres i den interne instruktionsbuffer, overstiger et vist antal, eller instruktionsbufferen er fuld, og instruktionshentning vil blive suspenderet; (Svigt i CPU-forudsigelse vil føre til redundant hentning, og i nogle tilfælde vil eksekveringsenheden introducere 0 ~ 2 cyklusser af bobler, og ydeevnen af ​​de fleste programmer vil ikke falde åbenlyst); 10: Reserveret;
11: Prefetch Mode 2. Når instruktions prefetch-funktionen er slået til, vil CPU'en fortsætte med at få adgang til instruktionshukommelsen, og hvis instruktionsbufferen er fuld, vil CPU'en fortsætte med at prøve adressen igen. Denne tilstand har den højeste ydeevne og strømforbrug. CPU-forudsigelsesfejl og genforsøg vil introducere redundante hente-operationer og kan fortsætte med at optage hukommelsesbåndbredde. (For ROM-området betyder genforsøg ukontinuerlig adresseadgang, så det anbefales at slå ROM_ACC_EN til).

0x1

Afbryd indlejret kontrolregister (inestcr)

Dette register er kun ugyldigt for V3A:

Navn CSR Adresse Adgang Beskrivelse Nulstil værdi
investor 0xBC1 MRW Afbryd indlejret kontrolregister 0x00000000

Dens folk er defineret som

Bit Navn Adgang Beskrivelse Nulstil værdi
31 Reserveret MRO Reserveret 0
30 NEST_OV MRW Afbrydelse/undtagelse indlejret overløbsflagbit, skriv 1 for at slette:

0: Interrupt løb ikke over; 1: Afbryd overløbsflag.

Bemærk: Interrupt overflow vil kun forekomme, når den sekundære interrupt service-funktion udføres for at generere en instruktionsundtagelse eller NMI-afbrydelse. På dette tidspunkt går undtagelsen og NMI-afbrydelsen normalt ind, men CPU-stakken løber over, så du kan ikke forlade denne undtagelse og

NMI afbryde.

0
[29:12] Reserveret MRO Reserveret 0
[11:8] NEST_STA MRO Indlejret statusflagbit:

0000: Ingen afbrydelse;

0001: Niveau 1 afbrydelse;

0011: niveau 2 afbrydelse (1-niveaus rede);

0
0111: Niveau 3 afbrydelse (overløb);

1111: Niveau 4 afbrydelse (overløb).

[7:2] Reserveret MRO Reserveret 0
[1:0] NEST_LVL MRW Indlejringsniveau:

00: Indlejring er forbudt, og indlejringsfunktionen er slået fra;

01: Indlejring på første niveau, som aktiverer redefunktionen;

Andet: Ugyldigt.

Bemærk: Skriv 10 eller 11 til dette felt, og feltet vil blive sat til 01. Når du skriver 11 til dette felt, skal du læse dette register for at få chippens højeste indlejringsniveau.

0

Brugertilstand globalt afbrydelsesaktiveringsregister (praktikant)

Dette register er kun ugyldigt for V3A:

Navn CSR Adresse Adgang Beskrivelse Nulstil værdi
gintenr 0x800 URW Globalt afbrydelsesaktiveringsregister 0x00000000

Dette register bruges til at styre aktiveringen og masken af ​​global afbrydelse. Aktiveringen og masken af ​​global afbrydelse i maskintilstand kan styres af MIE- og MPIE-bits i status, men dette register kan ikke betjenes i brugertilstand.
Det globale interrupt-aktiveringsregister gintenr er kortlægningen af ​​MIE og MPIE i mstatus og kan bruges til at indstille og rydde MIE og MPIE ved at betjene gintenr i brugertilstand.

Hver af dem er defineret som:

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:13] Reserveret URO Reserveret 0
[12:11] MPP URO Gå ind i privilegeret tilstand før afbrydelse. 0
[10:8] Reserveret URO Reserveret 0
7 MPIE URW Når 0xBC0(CSR)bit5 er aktiveret, vil denne bit

kan læses og skrives i brugertilstand.

0
[6:4] Reserveret URO Reserveret 0
3 MIE URW Når 0xBC0(CSR)bit5 er aktiveret, vil denne bit

kan læses og skrives i brugertilstand.

0
[1:0] Reserveret URO Reserveret 0

Afbryd Nesting

I forbindelse med afbrydelsen, konfigurationsregisteret PFIC_CFGR og afbrydelsesprioritetsregistret PFIC_IPRIOR, kan indlejring af afbrydelser tillades at forekomme. Aktiver indlejring i interrupt-konfigurationsregisteret (Nesting er slået til som standard for V3-seriens mikroprocessorer) og konfigurer prioriteten for den tilsvarende interrupt. Jo mindre prioritetsværdi, jo højere prioritet. Jo mindre værdien af ​​præemptionsbitten er, desto højere er præemptionsprioriteten. Hvis der er afbrydelser, der hænger på samme tid under den samme fortrinsprioritet, reagerer mikroprocessoren på afbrydelsen med den lavere prioritetsværdi (højere prioritet) først.

Hardware Prolog/Epilogue (HPE)

  • Når en undtagelse eller afbrydelse opstår, stopper mikroprocessoren det aktuelle programflow og skifter til udførelse af undtagelses- eller afbrydelseshåndteringsfunktionen, stedet for det aktuelle programflow skal gemmes. Efter at undtagelsen eller afbrydelsen vender tilbage, er det nødvendigt at gendanne webstedet og fortsætte udførelsen af ​​det stoppede programflow. For mikroprocessorer i V3-serien henviser "stedet" her til alle opkalds-gemte registre i Tabel 1-2.
  • V3-seriens mikroprocessorer understøtter hardware en-cyklus automatisk lagring af 16 af de formede opkalds-gemte registre til et internt stakområde, der ikke er synligt for brugeren. Når en undtagelse eller afbrydelse vender tilbage, gendanner hardware-enkeltcyklussen automatisk dataene fra det interne stakområde til de 16-formede registre. HPE understøtter indlejring op til 2 niveauer dybt.
  • Et skematisk billede af mikroprocessorens trykstabel er vist i den følgende figur.WH-V3-Mikroprocessor-fig-2

Note:

  1. Afbrydelsesfunktioner ved hjælp af HPE skal kompileres ved hjælp af MRS eller dens medfølgende værktøjskæde, og afbrydelsesfunktionen skal erklæres med __attribut__((interrupt(“WCH-Interrupt-fast”))).
  2. Afbrydelsesfunktionen ved brug af stack push erklæres af __attribute__((interrupt())).

Vektorbordfri (VTF)

  • Den Programmerbare Fast Interrupt Controller (PFIC) giver 4 VTF-kanaler, dvs. direkte adgang til interrupt-funktionsindgangen uden at gå gennem interrupt-vektortabelopslagsprocessen.
  • VTF-kanalen kan aktiveres ved at skrive dens afbrydelsesnummer, afbrydelsestjenestefunktions basisadresse og forskydningsadresse ind i det tilsvarende PFIC-controllerregister, mens en afbrydelsesfunktion normalt konfigureres.
  • PFIC-responsprocessen for hurtige og bordfrie afbrydelser er vist i figur 3-2 nedenfor.WH-V3-Mikroprocessor-fig-3

Fysisk hukommelsesbeskyttelse PMP

  • For at forbedre systemets sikkerhed er modulet til fysisk hukommelsesbeskyttelse (PMP) designet i henhold til RISC-V-arkitekturstandarden for V3-seriens mikroprocessorer af højlandsbyg. Adgangsrettighedsstyring af op til 4 fysiske regioner understøttes. Tilladelser omfatter læse (R), skrive (W) og udføre (X) attributter, og længden af ​​det beskyttede område kan indstilles til mindst 4 bytes. PMP-modulet træder altid i kraft i brugertilstand, men det kan træde i kraft valgfrit ved at låse (L)-attributten i maskintilstand.
  • Hvis adgangen overtræder den nuværende tilladelsesgrænse, vil det udløse en unormal afbrydelse. PMP-modulet omfatter fire grupper af 8-bit konfigurationsregistre (én gruppe af 32-bit) og fire grupper af adresseregistre, som alle skal tilgås i maskintilstand ved CSR-instruktion.
  • Note: Antallet af beskyttede områder understøttet af PMP i forskellige modeller af mikroprocessorer kan være forskelligt, og antallet understøttet af pmpcfg- og pmpaddr-registre er også forskelligt. Se Tabel 1-1 for detaljer.

PMP Register Set

Listen over CSR-registre, der understøttes af PMP-modulet i V3-mikroprocessoren, er vist i tabel 4-1 nedenfor.

Tabel 4-1 PMP-modulregistersæt

Navn CSR-adresse Adgang Beskrivelse Nulstil værdi
pmpcfg0 0x3A0 MRW PMP-konfigurationsregister 0 0x00000000
pmpaddr0 0x3B0 MRW PMP-adresseregister 0 0xXXXXXXXXX
pmpaddr1 0x3B1 MRW PMP-adresseregister 1 0xXXXXXXXXX
pmpaddr2 0x3B2 MRW PMP-adresseregister 2 0xXXXXXXXXX
pmpaddr3 0x3B3 MRW PMP-adresseregister 3 0xXXXXXXXXX

pmp

pmpcfg er konfigurationsregisteret for PMP-enheden, og hvert register indeholder fire 8-bit pumpefelter, svarende til konfigurationen af ​​fire regioner, og pumpning repræsenterer konfigurationsværdien for region i. Dens format er vist i følgende tabel 4-2.

Tabel 4-2 pmpcfg0 registerWH-V3-Mikroprocessor-fig-4

pmpcfg bruges til at konfigurere område I, og dets bitdefinition er beskrevet i følgende tabel 4-3.

Tabel 4-3 pmp

Bit Navn Beskrivelse
7 L Låsning er aktiveret og kan låses op i maskintilstand. 0: Ikke låst;

1: Lås det relevante register.

[6:5] Reserveret
[4:3] A Valg af adressejustering og beskyttelsesområde. 00: FRA (PMP fra)

01: TOR (topjusteringsbeskyttelse) 10: NA4 (fast fire-byte beskyttelse)

11: NAPOT (2(G+2) Bytebeskyttelse, G≥1)

2 X Eksekverbar attribut.
0: Ingen udførelsestilladelse;

1: Udfør tilladelse.

 

1

 

W

Skrivbar egenskab.

0: Ingen skrivetilladelse 1: Skrivetilladelse.

 

0

 

R

Læsbar egenskab

0: Ingen læsetilladelse 1: Læsetilladelse.

pmpaddr

pmpaddr-registret bruges til at konfigurere adressen for område I. Standarddefinitionen er under RV32-arkitektur, som er kodningen af ​​de øverste 32 bit af en 34-bit fysisk adresse, og dens format er vist i følgende tabel 4-4 .
Hele V3-mikroprocessorens fysiske adresserum er 4G, så de øverste to bits af dette register bruges ikke.

Tabel 4-4 pmpaddr WH-V3-Mikroprocessor-fig-5

Når NAPOT er valgt, bruges den lave bit af adresseregisteret også til at angive størrelsen af ​​det aktuelle beskyttelsesområde, som vist i følgende tabel, hvor 'y' er en bit af registeret.
Tabel 4-5 Relationstabel mellem PMP-konfiguration og adresseregister og beskyttet område.

pmpaddr pmpcfg. EN Matchende baseadresse og størrelse
åååå...åååå NA4 Med 'åå...ååå00' som basisadresse er 4-byte-området beskyttet.
åååå…ååå0 NAPOT Med 'åå...ååå000' som basisadresse er 8-byte-området beskyttet.
åååå…åå01 NAPOT Med 'åå...åå0000' som basisadresse er 16-byte-området beskyttet.
åååå…å011 NAPOT Med 'yy…y00000' som basisadresse er 16-byte-området beskyttet.
ååå01…111 NAPOT Med 'y0…000000' som basisadresse er området på 231 byte beskyttet.
yy011…111 NAPOT Beskyt hele 232-byte-området.

Beskyttelsesmekanisme

X/W/R i pmpcfg bruges til at indstille beskyttelsesmyndigheden for område I, og overtrædelse af relevant myndighed vil forårsage en tilsvarende undtagelse:

  1. Når du forsøger at hente instruktioner i PMP-området uden udførelsesautoritet, vil det forårsage en undtagelse for instruktionshentningsadgangsfejl (mcause=1).
  2. Når du forsøger at skrive data i PMP-området uden skriftlig tilladelse, vil det forårsage en fejlundtagelse (mcause=7) i butiksinstruktionsadgangen.
  3. Når du forsøger at læse data i PMP-området uden læsetilladelse, vil det forårsage en unormal hukommelsesadgangsfejl (mcause=5) for indlæsningsinstruktionen.

A i pmpcfg bruges til at indstille beskyttelsesområdet og adressejusteringen af ​​region I og til at beskytte hukommelsen for A_ADDR ≤ region < i > < B_ADDR (både A_ADDR og B_ADDR skal justeres i 4 bytes):

  1. Hvis B _ ADDR–A_ADDR = = 22, anvendes NA4-tilstand;
  2. Hvis B _ ADDR–A_ADDR = = 2(G+2), G≥1, og en _-adresse er 2(g+2), anvendes NAPOT-metoden;
  3. Ellers overtages TOP-tilstanden.

Tabel 4-6 PMP-adressetilpasningsmetoder

En værdi Navn Beskrivelse
0b00 SLUKKET Intet område at beskytte
0b01 TOR Topjusteret områdebeskyttelse.

Under pmp

pmpaddri = B_ADDR >> 2.

Bemærk: Hvis område 0 af PMP er konfigureret som TOR-tilstand (i=0), er den nedre grænse for beskyttelsesområdet 0 adresse, dvs. 0 ≤ addr < pmpaddr0, alt inden for det matchende område.

0b10 NA4 Fast 4-byte områdebeskyttelse.

pmp

0b11 NAPOT Beskyt 2(G+2)-regionen med G ≥ 1, når A_ADDR er 2(G+2) justeret. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1.
  • L-bitten i pmp
  • QingKe V3-seriens mikroprocessorer understøtter beskyttelsen af ​​flere zoner. Når den samme handling matcher flere zoner på samme tid, matches zonen med det mindste nummer først.

Systemtimer (SysTick)

  • QingKe V3-seriens mikroprocessor er designet med en 32-bit eller 64-bit tæller (SysTick) indeni. Dens urkilde er systemuret eller dets 8-frekvens division, og V3A understøtter kun 8-frekvens division.
  • Det kan give en tidsbase, timing og måling af tid for et real-time operativsystem. Forskellige typer registre, der er involveret i timeren, har forskellige tilknytningsadresser, som vist i de følgende tabeller 5-1 og 5-2.

Tabel 5-1 V3A SysTick registerliste

Navn Adgangsadresse Beskrivelse Nulstil værdi
STK_CTLR 0xE000F000 Systemtællerkontrolregister 0x00000000
STK_CNTL 0xE000F004 Systemtæller lavt register 0xXXXXXXXXX
STK_CNTH 0xE000F008 Systemtæller højt register

Bemærk: Gælder kun for V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C Systemantal sammenligningsværdi lav register 0xXXXXXXXXX
STK_CMPHR 0xE000F010 Systemtæller sammenligning værdi høj register

Bemærk: Gælder kun for V3A.

0xXXXXXXXXX

Tabel 5-2 V3 SysTick registerliste over andre modeller

Navn Adgangsadresse Beskrivelse Nulstil værdi
STK_CTLR 0xE000F000 Systemtællerkontrolregister 0x00000000
STK_SR 0xE000F004 Systemtællerstatusregister 0x00000000
STK_CNTL 0xE000F008 Systemtællerens lave register 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Tæl sammenligning værdi lav register 0xXXXXXXXXX

Hvert register er beskrevet i detaljer som følger.

Systemtællerkontrolregister (STK_CTLR)

Tabel 5-3 SysTick kontrolregistre

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:5] Reserveret RO Reserveret 0
 

 

4

 

 

MODE

 

 

RW

Tælletilstand: 1: Nedtælling;

0: Tæl op.

Bemærk: Ugyldig for V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Aktiveringsbit for automatisk genindlæsningstæller:

1: Tæl fra 0 igen efter at have tællet op til sammenligningsværdien, og tæl fra sammenligningsværdien igen efter at have tællet ned til 0;

0: Fortsæt med at tælle op/ned.

Bemærk: Ugyldig for V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Modur-kildevalgsbit:

1: HCLK som tidsbase; 0: HCLK/8 som tidsbase.

Bemærk: Den er ugyldig for V3A, som kun understøtter

HCLK/8 som tidsbase.

 

 

0

1 SITE RW Counter interrupt aktiveringskontrolbits: 0
1: Aktiver tællerafbrydelse; 0: Deaktiver tællerafbrydelse.

Bemærk: Ugyldig for V3A.

0 STE RW Systemtælleren aktiverer en kontrolbit. 1: Aktiver systemtæller STK;

0: Deaktiver systemtælleren STK, og tælleren stopper med at tælle.

0

Systemtællerstatusregister (STK_SR)

Dette register gælder ikke for V3A.

Tabel 5-4 SysTick-tæller lavt register

Bit Navn Adgang Beskrivelse Nulstil værdi
 

 

31

 

 

SWIE

 

 

RW

Software afbrydelse trigger aktivering (SWI): 1: Udløs software afbrydelse;

0: Sluk aftrækkeren.

Bemærk: Denne bit skal ryddes efter indtastning af softwareafbrydelsen, ellers vil den altid udløses.

 

 

0

[30:1] Reserveret RO Reserveret 0
 

 

0

 

 

CNTIF

 

 

RW

Optællingssammenligningsflag, skriv 0 tydeligt, skriv 1 er ugyldig:

1: Tæl op til sammenligningsværdien og tæl ned til 0;

0: Sammenligningsværdien er ikke nået.

 

 

0

Systemtæller lavt register (STK_CNTL)

Tabel 5-5 SysTick-tæller lavt register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] CNTL RW Den aktuelle tællerværdi er 32 bit lavere. For V3A kan dette register læses som 8-bit /16-bit

/32-bit, men kan kun skrives som 8-bit og andet

modeller er ikke begrænset.

0xXXXXXX XXX

Note: Register STK_CNTL og register STK_CNTH i V3A udgør tilsammen en 64-bit systemtæller.

Systemtæller højt register (STK_CNTH)

Tabel 5-6 SysTick tæller højt register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] CNTH RW Den aktuelle tællerværdi er 32 bit højere. Dette register kan læses med 8-bit/16-bit/32-bit, men kan kun skrives med 8-bit.

Bemærk: Gælder kun for V3A.

0xXXXXXX XXX

Note: Register STK_CNTL og register STK_CNTH i V3A udgør tilsammen en 64-bit systemtæller.

Systemantal sammenligningsværdi lav register (STK_CMPLR)

Tabel 5-7 SysTick-sammenligningsværdi lavt register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] CMPL RW Indstil tællersammenligningsværdien til 32 bit lavere. Når CMP-værdien og CNT-værdien er ens, vil en STK-afbrydelse blive udløst. For V3A kan dette register læses som 8-bit /16-bit /32-bit, men kan kun

skrevet som 8-bit, og andre modeller er ikke begrænset.

0xXXXXXX XXX

Note: Registret STK_CMPLR og registret STK_CMPHR i V3A udgør tilsammen 64-bit tællersammenligningsværdien.

Systemantal sammenligningsværdi højt register (STK_CMPHR)

Tabel 5-8 SysTick sammenligning værdi høj register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] CMPH RW Indstil tællersammenligningsværdien 32 bit højere. STK-afbrydelsen vil blive udløst, når CMP-værdien og CNT-værdien er ens.

Dette register kan læses med 8-bit/16-bit/32-bit, men kan kun skrives med 8-bit.

Bemærk: Gælder kun for V3A.

0xXXXXXX XXX

Note: Registret STK_CMPLR og registret STK_CMPHR i V3A udgør tilsammen 64-bit tællersammenligningsværdien.

Indstillinger for processor lavt strømforbrug

  • QingKe V3-seriens mikroprocessorer understøtter dvaletilstand via WFI (Wait for Interrupt) instruktion for at opnå lavt statisk strømforbrug.
  • Sammen med PFICs systemkontrolregister (PFIC_SCTLR) kan forskellige Sleep modes og WFE instruktioner implementeres.

Gå ind i dvale

  • QingKe V3-seriens mikroprocessorer kan gå i dvale på to måder, Wait for Interrupt (WFI) og Wait For Event (WFE). WFI-metoden betyder, at mikroprocessoren går i dvale, venter på, at en afbrydelse vågner, og derefter vågner op til den tilsvarende afbrydelse for at udføre. WFE-metoden betyder, at mikroprocessoren går i dvale, venter på, at en hændelse vågner, og vågner op for at fortsætte med at udføre det tidligere stoppede programflow.
  • Standard RISC-V understøtter WFI-instruktion, og WFI-kommandoen kan udføres direkte for at gå i dvale ved hjælp af WFI-metoden. For WFE-metoden bruges WFITOWFE-bitten i systemkontrolregisteret PFIC_SCTLR til at styre de efterfølgende WFI-kommandoer som WFE-behandling for at opnå WFE-metoden til at gå i dvale.
  • Søvndybden styres i henhold til SLEEPDEEP-bitten i PFIC_SCTLR.
  • Hvis SLEEPDEEP i PFIC_SCTLR-registret ryddes til nul, går mikroprocessoren i dvaletilstand, og det interne enhedsur får lov til at blive slukket bortset fra SysTick og en del af opvågningslogikken.
  • Hvis SLEEPDEEP i PFIC_SCTLR-registret er indstillet, går mikroprocessoren i dyb dvaletilstand, og alle celleure kan slås fra.
  • Når mikroprocessoren er i fejlretningstilstand, er det ikke muligt at gå ind i nogen form for dvaletilstand.

Sleep Wakeup

QingKe V3-seriens mikroprocessorer kan vækkes efter dvale på grund af WFI og WFE på følgende måder.

Efter WFI-metoden går i dvale, kan den vækkes af

  1. Mikroprocessoren kan vækkes af afbrydelseskilden, der reageres på af afbrydelsescontrolleren. Efter opvågning udfører mikroprocessoren først afbrydelsesfunktionen.
  2. Gå ind i dvaletilstand, debug-anmodning kan få mikroprocessoren til at vågne og gå i dyb dvale, fejlretningsanmodning kan ikke vække mikroprocessoren.

Efter at WFE-metoden går i dvale, kan mikroprocessoren vækkes af følgende.

  1. Interne eller eksterne hændelser, når der ikke er behov for at konfigurere interrupt-controlleren, vågn op og fortsæt med at køre programmet.
  2. Hvis en afbrydelseskilde er aktiveret, vækkes mikroprocessoren, når en afbrydelse genereres, og efter opvågning udfører mikroprocessoren afbrydelsesfunktionen først.
  3. Hvis SEVONPEND-bitten i PFIC_SCTLR er konfigureret, aktiverer interrupt-controlleren ikke interruptet, men når et nyt afventende interrupt-signal genereres (det tidligere genererede ventende signal træder ikke i kraft), kan det også få mikroprocessoren til at vågne, og det tilsvarende flag afventende afbrydelse skal slettes manuelt efter opvågning.
  4. Gå ind i dvaletilstand fejlsøgningsanmodning kan få mikroprocessoren til at vågne og gå i dyb dvale, fejlretningsanmodning kan ikke vække mikroprocessoren.
  • Desuden kan tilstanden af ​​mikroprocessoren efter opvågning kontrolleres ved at konfigurere SLEPONEXIT bit i PFIC_SCTLR.
  • SLEEPONEXIT er indstillet, og den sidste niveau afbrydelsesreturinstruktion (mret) vil udløse WFI-tilstandens dvale.

SLEEPONEXIT slettes uden effekt.

Forskellige MCU-produkter udstyret med V3-seriens mikroprocessorer kan anvende forskellige dvaletilstande, slukke for forskellige perifere enheder og ure, implementere forskellige strømstyringspolitikker og opvågningsmetoder i henhold til forskellige konfigurationer af PFIC_SCTLR og realisere forskellige laveffekttilstande.

Debug Support

  • QingKe V3-seriens mikroprocessorer inkluderer et hardware-debug-modul, der understøtter komplekse fejlfindingsoperationer. Når mikroprocessoren er suspenderet, kan debug-modulet få adgang til mikroprocessorens GPR'er, CSR'er, hukommelse, eksterne enheder osv. gennem abstrakte kommandoer, programbufferimplementeringsinstruktioner osv. Fejlretningsmodulet kan suspendere og genoptage mikroprocessorens drift.
  • Debug-modulet følger RISC-V External Debug Support Version0.13.2-specifikationen, detaljeret dokumentation kan downloades fra RISC-V International webwebsted.

Debug modul

  • Debug-modulet inde i mikroprocessoren, der er i stand til at udføre debug-operationer udstedt af debug-værten, inkluderer.
  • Adgang til registre via fejlfindingsgrænsefladen
  • Nulstil, suspender og genoptag mikroprocessoren gennem fejlfindingsgrænsefladen
  • Læs og skriv hukommelse, instruktionsregistre og eksterne enheder gennem fejlfindingsgrænsefladen
  • Implementer flere vilkårlige instruktioner gennem fejlfindingsgrænsefladen
  • Indstil software-breakpoints gennem fejlfindingsgrænsefladen
  • Indstil hardware breakpoints gennem fejlfindingsgrænsefladen
  • Understøtte abstrakt kommando auto-udførelse
  • Understøtter enkelt-trins debugging
  • Note: V3A understøtter ikke hardware breakpoints, V3B hardware breakpoints understøtter matchning af instruktionsadresse, og V3C hardware breakpoints understøtter matchning af instruktionsadresse og dataadresse.
  • De interne registre i fejlretningsmodulet bruger en 7-bit adressekode, og følgende registre er implementeret i QingKe V3-seriens mikroprocessorer.

Tabel 7-1 Liste over fejlretningsmodulregister

Navn Adgangsadresse Beskrivelse
data0 0x04 Dataregister 0, kan bruges til midlertidig opbevaring af data
data1 0x05 Dataregister 1, kan bruges til midlertidig opbevaring af data
afkontrol 0x10 Debug modul kontrolregister
dmstatus 0x11 Debug modul statusregister
hartinfo 0x12 Mikroprocessorstatusregister
abstracts 0x16 Abstrakt kommandostatusregister
kommando 0x17 Abstrakt kommandoregister
abstrakt auto 0x18 Abstrakt kommando automatisk udførelse
progbuf0-7 0x20-0x27 Instruktionscache-registre 0-7
haltsum0 0x40 Pause statusregister
  • Debug-værten kan styre mikroprocessorens suspendering, genoptagelse, nulstilling osv. ved at konfigurere dekontrolregisteret. RISC-V-standarden definerer tre typer abstrakte kommandoer: adgangsregister, hurtig adgang og adgangshukommelse.
  • QingKe V3A mikroprocessor understøtter kun registeradgang, andre modeller understøtter register- og hukommelsesadgang, men ikke hurtig adgang. Adgang til registre (GPR'er, CSR'er) og kontinuerlig adgang til hukommelse kan realiseres ved hjælp af abstrakte kommandoer.
  • Debug-modulet implementerer 8 instruktionscache-registre progbuf0-7, og debug-værten kan cache flere instruktioner (som kan være komprimerede instruktioner) til bufferen og kan vælge at fortsætte med at udføre instruktionerne i instruktionscache-registrene efter at have udført den abstrakte kommando eller eksekvering de cachelagrede instruktioner direkte.
  • Note at den sidste instruktion i programmerne skal være en "ebreak" eller "c.ebreak" instruktion. Adgang til lager, periferiudstyr osv. er også muligt gennem abstrakte kommandoer og instruktioner, der er cachelagret i programmerne.
  • Hvert register er beskrevet i detaljer som følger.
  • Dataregister 0 (data0)

Tabel 7-2 definition af dataregister

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] data0 RW Dataregister 0, bruges til midlertidig lagring af data 0

Dataregister 1 (data1)

Tabel 7-3 data1 register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] data1 RW Dataregister 1, bruges til midlertidig lagring af data 0

Debug modul kontrolregister (decontrol)

Dette register styrer pause, nulstilling og genoptagelse af mikroprocessoren. Debug-værten skriver data til det tilsvarende felt for at opnå pause (haltreq), reset (ndmreset), resume (resumereq). Du beskriver følgende.

Tabel 7-4 definition af dekontrolregister

Bit Navn Adgang Beskrivelse Nulstil værdi
31 haltreq WO 0: Ryd pauseanmodningen

1: Send en pauseanmodning

0
30 resumereq W1 0: Ugyldig

1: Gendan den aktuelle mikroprocessor

Bemærk: Skriv 1 er gyldig, og hardwaren ryddes, efter at mikroprocessoren er gendannet

0
29 Reserveret RO Reserveret 0
28 ackhavereset W1 0: Ugyldig

1: Ryd høststatusbitten på mikroprocessoren

0
[27:2] Reserveret RO Reserveret 0
1 ndmreset RW 0: Ryd nulstilling

1: Nulstil hele systemet bortset fra fejlretningsmodulet

 

0

0 deaktivere RW 0: Nulstil fejlfindingsmodulet

1: Debug-modulet fungerer korrekt

0

Debug modul statusregister (dm status)

  • Dette register bruges til at angive status for debug-modulet og er et skrivebeskyttet register med følgende beskrivelse af hver bit.

Tabel 7-5 dmstatus register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:20] Reserveret RO Reserveret 0
19 alt havereset RO 0: Ugyldig

1: Nulstilling af mikroprocessor

0
18 anyhavereset RO 0: Ugyldig

1: Nulstilling af mikroprocessor

0
17 allresumeack RO 0: Ugyldig

1: Nulstilling af mikroprocessor

0
16 anyresumeack RO 0: Ugyldig

1: Nulstilling af mikroprocessor

0
[15:14] Reserveret RO Reserveret 0
13 alluvial RO 0: Ugyldig

1: Mikroprocessoren er ikke tilgængelig

0
12 nogen nytte RO 0: Ugyldig

1: Mikroprocessoren er ikke tilgængelig

0
11 alle kører RO 0: Ugyldig

1: Mikroprocessor kører

0
10 noget løb RO 0: Ugyldig

1: Mikroprocessor kører

0
9 standset RO 0: Ugyldig

1: Mikroprocessoren er i suspension

0
8 nogen standset RO 0: Ugyldig

1: Mikroprocessor ude af suspension

0
7 autentificeret  

RO

0: Godkendelse er påkrævet før brug af debug-modulet

1: Fejlfindingsmodulet er blevet certificeret

 

0x1

[6:4] Reserveret RO Reserveret 0
[3:0] version RO Debugging systemunderstøttelsesarkitektur version 0010: V0.13 0x2

Mikroprocessorstatusregister (hartinfo)

Dette register bruges til at give information om mikroprocessoren til debug-værten og er et skrivebeskyttet register med hver bit beskrevet som følger.

Tabel 7-6 hartinfo register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:24] Reserveret RO Reserveret 0
[23:20] kradse RO Antal understøttede skraberegistre 0x3
[19:17] Reserveret RO Reserveret 0
16 Dataadgang RO 0: Dataregister tilknyttes CSR-adresse

1: Dataregisteret tilknyttes hukommelsesadressen

0x1
[15:12] datastørrelse RO Antal dataregistre 0x2
  [11:0] data tilføje  

RO

Offsetadressen for dataregisteret data0,

hvis basisadresse er 0xe0000000, er underlagt specifik læsning.

0xXXX

Abstrakt kommandokontrol og statusregistre (abstrakte)

Dette register bruges til at angive udførelsen af ​​den abstrakte kommando. Debug-værten kan læse dette register for at vide, om den sidste abstrakte kommando udføres eller ej, og kan kontrollere, om der genereres en fejl under udførelsen af ​​den abstrakte kommando og typen af ​​fejl, som er beskrevet i detaljer som følger.

Tabel 7-7 abstracts registerdefinitioner

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:29] Reserveret RO Reserveret 0
[28:24] progbufsize RO Angiver antallet af programbufferprogram

cache registre

0x8
[23:13] Reserveret RO Reserveret 0
12 optaget RO 0: Ingen abstrakt kommando udføres

1: Der udføres abstrakte kommandoer

Bemærk: Efter udførelse ryddes hardwaren.

 

0

11 Reserveret RO Reserveret 0
[10:8] cmder RW Abstrakt kommando fejltype 000: Ingen fejl

001: Udførelse af abstrakt kommando for at skrive til kommando, abstracts, abstrakte autoregistre eller læse og skrive til data- og progbuf-registre

010: Understøtter ikke aktuel abstrakt kommando 011: Udførelse af abstrakt kommando med undtagelse 100: Mikroprocessoren er ikke suspenderet eller utilgængelig og kan ikke udføre abstrakte kommandoer 101: Busfejl

110: Paritetsbitfejl under kommunikation 111: Andre fejl

Bemærk: Til bitskrivning bruges 1 til at slette nul.

 

 

 

 

 

 

 

0

[7:4] Reserveret RO Reserveret 0
[3:0] rabat RO Antal dataregistre 0x2
  • Debugging-værter kan få adgang til GPR'er, CSR-registre og hukommelse ved at skrive forskellige konfigurationsværdier ind i det abstrakte kommandoregister.
  • Ved adgang til registrene defineres kommandoregisterbittene som følger.
  • Tabel 7-8 Definition af kommandoregister ved adgang til registre
Bit Navn Adgang Beskrivelse Nulstil værdi
[31:24] cmd type WO Abstrakt kommando type 0: Adgangsregister;

1: Hurtig adgang (ikke understøttet);

2: Adgang til hukommelse.

0
23 Reserveret WO Reserveret 0
[22:20] aarsize WO Adgangsregister databitbredde 000: 8-bit

001: 16-bit

010: 32-bit

0
011: 64-bit (ikke understøttet) 100: 128-bit (ikke understøttet)

Bemærk: Ved adgang til flydende kommaregistre

FPR'er, kun 32-bit adgang understøttes.

19 aarpostincrement WO 0: Ingen effekt

1: Forøg automatisk værdien af ​​regno efter adgang til registret

 

0

18 post exec WO 0: Ingen effekt

1: Udfør den abstrakte kommando og udfør derefter kommandoen i progbuf

 

0

17 overførsel WO 0: Udfør ikke handlingen specificeret ved at skrive

1: Udfør den manipulation, der er angivet ved at skrive

0
16 skrive WO 0: Kopier data fra det angivne register til data0 1: Kopier data fra data0 register til det angivne register  

0

[15:0] regno WO Angiv adgangsregistre 0x0000-0x0fff er CSR'er 0x1000-0x101f er GPR'er  

0

Ved adgang til hukommelsen er bits i kommandoregisteret defineret som følger.

Tabel 7-9 Definition af kommando Registrér ved adgang til hukommelse

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:24] cmd type WO Abstrakt kommando type 0: Adgangsregister;

1: Hurtig adgang (ikke understøttet);

2: Få adgang til hukommelsen.

0
23 aamvirtuel WO 0: Få adgang til fysisk adresse;

1: Få adgang til virtuel adresse.

0
[22:20] armstørrelse WO Adgang til hukommelsesdatabitbredde 000: 8-bit;

001: 16-bit;

010: 32-bit;

011: 64-bit (ikke understøttet); 100: 128-bit (ikke understøttet);

 

0

19 aampudsving WO 0: Ingen indflydelse;

1: Efter succesfuld adgang til hukommelsen øges adressen gemt i data1 registeret med antallet af bytes svarende til bitbredden konfigureret efter armstørrelse.

Aamsize=0, tilgås af byte, data1 plus 1.

Aamsize=1, tilgås af et halvt ord, data1 plus 2. aamsize=2, tilgås af bit, data1 plus 4.

 

0

18 post exec WO 0: Ingen indflydelse;

1: Udfør kommandoen i progbuf efter at have udført den abstrakte kommando.

0
17 Reservere RO Reserveret 0
 

 

16

 

 

skrive

 

 

WO

0: Læs data fra adressen angivet af data1 til data0

1: Skriv data i data0 til adressen angivet af

data1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

målspecifik

 

 

 

 

 

 

WO

Definition af læse- og skrivetilstand Skriv:

00, 01: Skriv direkte til hukommelsen;

10: Efter dataene i data0 er OR med databittene i hukommelsen, skrives resultatet ind i hukommelsen (kun ordadgang understøttes).

11: Efter at have summeret dataene i data0 med databittene i hukommelsen, skriv resultatet ind i hukommelsen (kun ordadgang understøttes).

Læse:

00, 01, 10, 11: Læs 0 direkte fra hukommelsen.

 

 

 

 

 

 

0

[13:0] Reservere RO Reserveret

Abstrakt kommando automatisk udførelsesregister (abstrakt auto)

Dette register bruges til at konfigurere fejlfindingsmodulet. Når du læser og skriver progbufx og data fra fejlfindingsmodulet, kan den abstrakte kommando udføres igen.

Beskrivelsen af ​​dette register er som følger:

Tabel 7-10 abstrakt autoregisterdefinition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:16] autoexecprogbuf RW Hvis der er sat en bit, vil den tilsvarende læsning og skrivning af progbufx få den abstrakte kommando i kommandoregisteret til at blive udført igen.

Bemærk: V3-serien er designet med 8 progbufs, svarende til bits [23:16].

 

0

[15:12] Reservere RO Reserveret 0
[11:0] autoexecdata  

RW

Hvis en bit er sat til 1, vil den tilsvarende læsning og skrivning af dataregisteret få den abstrakte kommando i kommandoregisteret til at blive udført igen.

Bemærk: V3-serien er designet med to data registre, svarende til bits [1:0].

0

Instruktionscacheregister (progbufx)

Dette register bruges til at gemme enhver instruktion og implementere den tilsvarende operation, inklusive 8, som skal være opmærksom på den sidste udførelse, der skal være "break" eller "c.ebreak".

Tabel 7-11 definition af progbuf-register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] progbuf RW Instruktionskodning til cache-operationer, som

kan indeholde kompressionsinstruktioner

0

Pause statusregister (haltsum0)

Dette register bruges til at angive, om mikroprocessoren er suspenderet eller ej. Hver bit angiver den suspenderede status for en mikroprocessor, og når der kun er én kerne, bruges kun den laveste bit i dette register til at angive det.

Tabel 7-12 haltsum0 register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:1] Reserveret RO Reserveret 0
0 haltsum0 RO 0: Mikroprocessor fungerer normalt

1: Mikroprocessorstop

0
  • Ud over de ovennævnte registre for debug-modulet, involverer debug-funktionen også nogle CSR-registre, hovedsageligt fejlretningskontrol- og statusregistret dcsr og debug-instruktionsmarkøren dpc, som er beskrevet detaljeret som følger.
  • Debug kontrol og statusregister (dcsr)

Tabel 7-13 dcsr register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:28] xdebugver DRO 0000: Ekstern fejlretning er ikke understøttet 0100: Understøtter standard ekstern fejlretning

1111: Ekstern debugging er understøttet, men opfylder ikke

specifikationen

 

 

0x4

[27:16] Reserveret DRO Reserveret 0
15 pause DRW 0: Pausekommandoen i maskintilstand opfører sig som beskrevet i privilegiet file

1: Pause-kommandoen i maskintilstand kan gå i fejlretningstilstand

 

 

0

[14:13] Reserveret DRO Reserveret 0
12 brud  

DRW

0: Pause-kommandoen i brugertilstand opfører sig som beskrevet i privilegiet file

1: Pause-kommandoen i brugertilstand kan gå i fejlretningstilstand

 

 

0

11 trin DRW 0: Afbrydelser er deaktiveret under enkelttrins debugging

1: Aktiver afbrydelser under enkelttrins debugging

0
10 Reserveret DRO Reserveret 0
9 stop tid DRW 0: Systemtimer kører i fejlretningstilstand

1: Systemtimeren stopper i fejlretningstilstand

0
  [8:6] årsag DRO Årsager til at gå ind i debugging

001: Indtastning af fejlretning i form af break-kommando (prioritet 3)

010: Indtastning af fejlretning i form af et triggermodul (prioritet 4, den højeste)

011: Indtastning af fejlretning i form af pauseanmodning (prioritet 1)

100: debugging i form af enkelt-trins debugging

(prioritet 0, den laveste)

0
101: gå ind i fejlretningstilstand direkte efter mikroprocessornulstilling (prioritet 2) Andet: Reserveret
[5:3] Reserveret DRO Reserveret 0
2 trin DRW 0: Slå enkelttrins-fejlretning fra

1: Aktiver enkelttrins debugging

0
[1:0] Forrige DRW Privilege mode 00: Bruger mode

01: Supervisor-tilstand (ikke understøttet) 10: Reserveret

11: Maskintilstand

Bemærk: Registrer den privilegerede tilstand, når du går ind i fejlretningstilstand, debuggeren kan ændre denne værdi for at ændre den privilegerede tilstand, når fejlretningen afsluttes

 

 

 

 

0

Debug mode program pointer (DPC)

  • Dette register bruges til at lagre adressen på den næste instruktion, der skal udføres, efter at mikroprocessoren går ind i debug-tilstand, og dens værdi opdateres med forskellige regler afhængigt af årsagen til at gå ind i debug. dpc register er beskrevet i detaljer som følger.

Tabel 7-14 definitioner af dpc-register

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] DPC DRW Instruktionsadresse 0

Reglerne for opdatering af registrene er vist i nedenstående tabel.

Tabel 7-15 dpc-opdateringsregler

Indtast fejlfindingsmetoden dpc-opdateringsregler
pause Adresse på Ebreak-instruktionen
enkelt trin Instruktionsadresse for den næste instruktion af den aktuelle instruktion
udløsermodul Midlertidigt ikke understøttet
stop anmodning Adressen på den næste instruktion, der skal udføres, når Debug indtastes

Fejlfindingsgrænseflade

  • Forskellig fra standard JTAG grænseflade defineret af RISC-V, QingKe V3-seriens mikroprocessor anvender 1- en wire/2-wire seriel debug-grænseflade og følger WCH debug-interfaceprotokol V1.0.
  • Debug-grænsefladen er ansvarlig for kommunikationen mellem debug-værten og debug-modulet og realiserer debug-værtens læse-/skriveoperation til debug-modulregistrene.
  • WCH designet WCH_Link og open source dets skematiske og programbinære files, som kan bruges til fejlretning af alle mikroprocessorer af RISC-V-arkitektur.
  • Se WCH Debug Protocol Manual for specifikke debug-grænsefladeprotokoller.

CSR-registerliste

  • RISC-V-arkitekturen definerer et antal kontrol- og statusregistre (CSR'er) til styring og registrering af mikroprocessorens driftsstatus.
  • Nogle af CSR'erne er blevet introduceret i det foregående afsnit, og dette kapitel vil detaljere CSR-registrene implementeret i QingKe V3-seriens mikroprocessorer.

CSR-registerliste

Tabel 8-1 Liste over mikroprocessor-CSR-registre

Type Navn CSR Adresse Adgang Beskrivelse
RISC-V

Standard CSR

marchid 0xF12 MRO Arkitekturnummerregister
mimpid 0xF13 MRO Hardwareimplementeringsnummereringsregister
mstatus 0x300 MRW Statusregister
misa 0x301 MRW Hardware instruktionssæt register
mtvec 0x305 MRW Undtagelsesbaseadresseregister
mscratch 0x340 MRW Maskintilstand staging register
MEPC 0x341 MRW Undtagelsesprogram pointer register
årsag 0x342 MRW Undtagelsesårsagsregister
mtval 0x343 MRW Undtagelsesværdiregister
pmpcfg 0x3A0+i MRW PMP konfigurationsregister
pmpaddr 0x3B0+i MRW PMP adresseregister
tvælg 0x7A0 MRW Debug triggervalgregister
tdata1 0x7A1 MRW Debug trigger dataregister 1
tdata2 0x7A2 MRW Debug trigger dataregister 2
dcsr 0x7B0 DRW Debug kontrol og statusregistre
dpc 0x7B1 DRW Debug mode program pointer register
dscratch0 0x7B2 DRW Fejlretningstilstand staging register 0
dscratch1 0x7B3 DRW Fejlretningstilstand staging register 1
 

Leverandørdefineret CSR

gintenr 0x800 URW Globalt afbrydelsesaktiveringsregister
intsyscr 0x804 URW Afbryd systemkontrolregister
corecfgr 0xBC0 MRW Mikroprocessorkonfigurationsregister
inestcr 0xBC1 MRW Afbryd indlejret kontrolregister

RISC-V Standard CSR-registre

  • Arkitekturnummerregister (marchid)
  • Dette register er et skrivebeskyttet register til at angive det aktuelle mikroprocessorhardwarearkitekturnummer, som hovedsageligt består af leverandørkode, arkitekturkode, seriekode og versionskode. Hver af dem er defineret som følger.

Tabel 8-2 definition af marchidregister

Bit Navn Adgang Beskrivelse Nulstil værdi
31 Reserveret MRO Reserveret 1
[30:26] Leverandør0 MRO Producentkode 0

Fastgjort til bogstavet "W"-koden

0x17
[25:21] Leverandør1 MRO Producentkode1

Fastgjort til bogstavet "C"-koden

0x03
[20:16] Leverandør2 MRO Producentkode 2

Fastgjort til bogstavet "H"-koden

0x08
15 Reserveret MRO Reserveret 1
[14:10] Arch MRO Arkitektur kode 0x16
RISC-V-arkitekturen er fastgjort til bogstavet "V"-kode
[9:5] Seriel MRO Serie kode

QingKe V3-serien, fastgjort til nummeret "3"

0x03
[4:0] Version MRO Versionskode

Kan være versionen "A", "B", "C" og andre bogstaver i koden

x

Producentnummeret og versionsnummeret er alfabetisk, og serienummeret er numerisk. Kodningstabellen med bogstaver er vist i følgende tabel.

Tabel 8-3 Alfabetisk kortlægningstabel

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
  • Blandt dem, QingKe V3A mikroprocessor, læser registeret tilbage til 0.

Hardwareimplementeringsnummereringsregister (klar)

  • Dette register er hovedsageligt sammensat af leverandørkoder, som hver er defineret som følger.

Tabel 8-4 definition af klar register

Bit Navn Adgang Beskrivelse Nulstil værdi
31 Reserveret MRO Reserveret 1
[30:26] Leverandør0 MRO Producentkode 0

Fastgjort til bogstavet "W"-koden

0x17
[25:21] Leverandør1 MRO Producentkode1

Fastgjort til bogstavet "C"-koden

0x03
[20:16] Leverandør2 MRO Producentkode 2

Fastgjort til bogstavet "H"-koden

0x08
15 Reserveret MRO Reserveret 1
[14:8] Reserveret MRO Reserveret 0
[7:4] Mindre MRO Subversion nummer 0xX
[3:0] Major MR0 Hovedversionsnummer 0xX
  • Dette register kan læses i enhver maskinimplementering, og i QingKe V3A-seriens processor læser dette register tilbage til nul.

Maskintilstandsstatusregister (mstatus)

  • Dette register er blevet delvist beskrevet i det foregående afsnit, og dets folk er placeret som følger.

Tabel 8-5 definition af mstatusregister

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:13] Reserveret MRO Reserveret 0
[12:11] MPP MRW Privilegeret tilstand før pausen 0
[10:8] Reserveret MRO Reserveret 0
7 MPIE MRW Afbrydelsesaktiveringstilstand, før du går ind i en afbrydelse 0
[6:4] Reserveret MRO Reserveret 0
3 MIE MRW Aktivering af afbrydelse af maskintilstand 0
[2:0] Reserveret MRO Reserveret 0
  • MPP-feltet bruges til at gemme den privilegerede tilstand, før du går ind i undtagelsen eller afbrydelsen, og bruges til at gendanne den privilegerede tilstand efter at have forladt undtagelsen eller afbrydelsen. MIE er den globale interrupt-aktiveringsbit, og når du indtaster undtagelsen eller interrupt, opdateres værdien af ​​MPIE til værdien af ​​MIE, og det skal bemærkes, at i QingKe V3-seriens mikroprocessorer vil MIE ikke blive opdateret til 0 før sidste niveau af indlejrede interrupts for at sikre, at interrupt-nesting i maskintilstand fortsætter med at blive udført. Når en undtagelse eller afbrydelse afsluttes, vender mikroprocessoren tilbage til maskintilstanden gemt af MPP, og MIE'en gendannes til MPIE-værdien.
  • QingKe V3 mikroprocessor understøtter maskintilstand og brugertilstand, hvis du skal få mikroprocessoren til kun at fungere i maskintilstand, kan du indstille MPP til 0x3 i initialiseringen af ​​boot file, det vil sige, efter returnering vil den altid forblive i maskintilstand.

Hardware instruktionssæt register (misa)

  • Dette register bruges til at angive arkitekturen af ​​mikroprocessoren og de understøttede instruktionssætudvidelser, som hver især er beskrevet som følger.

Tabel 8-6 ​​misa register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:30] MXL MRO Maskinordlængde 1:32

2:64

3:128

1
[29:26] Reserveret MRO Reserveret 0
[25:0] Udvidelser MRO Instruktionssæt udvidelser x
  • MXL bruges til at angive ordlængden af ​​mikroprocessoren, QingKe V3 er 32-bit mikroprocessorer, og domænet er fastsat til 1.
  • Udvidelser bruges til at angive, at mikroprocessoren understøtter udvidede instruktionssætdetaljer, hver angiver en klasse af udvidelser, dens detaljerede beskrivelse er vist i følgende tabel.

Tabel 8-7 Instruktionssæt udvidelsesdetaljer

Bit Navn Beskrivelse
0 A Atomisk forlængelse
1 B Foreløbigt reserveret til Bit-Manipulation-udvidelse
2 C Komprimeret udvidelse
3 D Dobbelt-præcision floating-point forlængelse
4 E RV32E base ISA
5 F Enkelt-præcision floating-point forlængelse
6 G Yderligere standardudvidelser til stede
7 H Hypervisor udvidelse
8 I RV32I/64I/128I base ISA
9 J Foreløbigt reserveret til Dynamically Translated Languages-udvidelsen
10 K Reserveret
11 L Foreløbigt reserveret til Decimal Floating-Point-udvidelse
12 M Heltal Multiplicer/Divid udvidelse
13 N Afbrydelser på brugerniveau understøttes
14 O Reserveret
15 P Foreløbigt reserveret til Packed-SIMD-udvidelse
16 Q Quad-præcision floating-point forlængelse
17 R Reserveret
18 S Supervisor mode implementeret
19 T Foreløbigt reserveret til Transactional Memory-udvidelse
20 U Brugertilstand implementeret
21 V Foreløbigt reserveret til Vector extension
22 W Reserveret
23 X Ikke-standardudvidelser til stede
24 Y Reserveret
25 Z Reserveret
  • F.eksample, for QingKe V3A-mikroprocessoren er registerværdien 0x401001105, hvilket betyder, at den understøttede instruktionssætarkitektur er RV32IMAC, og den har implementering af brugertilstand.

Maskintilstand undtagelse base adresseregister (mtvec)

  • Dette register bruges til at gemme basisadressen for undtagelses- eller interrupt-behandleren, og de nederste to bits bruges til at konfigurere tilstanden og identifikationsmetoden for vektortabellen som beskrevet i afsnit 3.2.

Maskintilstand staging register (mscratch)

Tabel 8-8 mscratch register definitioner

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] mscratch MRW Datalagring 0

Dette register er et 32-bit læsbart og skrivbart register i maskintilstand til midlertidig datalagring. F.eksample, når der indtastes en undtagelses- eller afbrydelsesbehandler, lagres brugerstakmarkøren SP i dette register, og afbrydelsesstakmarkøren tildeles SP-registret. Når du har forladt undtagelsen eller afbrydelsen, skal du gendanne værdien af ​​brugerstakmarkøren SP fra bunden. Det vil sige, at afbrydelsesstakken og brugerstakken kan isoleres.

Maskintilstand undtagelsesprogram pointer register (kort)

Tabel 8-9 mepc register definitioner

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] mepc MRW Undtagelsesprocedure pointer 0
  • Dette register bruges til at gemme programmarkøren ved indtastning af en undtagelse eller afbrydelse.
  • Den bruges til at gemme instruktions-pc-markøren, før der indtastes en undtagelse, når en undtagelse eller afbrydelse genereres, og mepc bruges som returadresse, når undtagelsen eller afbrydelsen håndteres og bruges til en undtagelse eller afbrydelsesretur.
  • Det er dog vigtigt at bemærke det.
  • Når der opstår en undtagelse, opdateres mepc til pc-værdien for den instruktion, der i øjeblikket genererer undtagelsen.
  • Når der opstår en afbrydelse, opdateres mepc til pc-værdien for den næste instruktion.
  • Når du skal returnere en undtagelse efter at have behandlet undtagelsen, skal du være opmærksom på at ændre værdien af ​​mepc'en, og flere detaljer kan findes i Kapitel 2 Undtagelser.

Maskintilstand undtagelsesårsagsregister (mcause)

Tabel 8-10 definition af mcause register

Bit Navn Adgang Beskrivelse Nulstil værdi
31 Afbryde MRW Afbrydelsesindikationsfelt 0: Undtagelse

1: Afbrydelse

 

0

[30:0] Undtagelseskode MRW For undtagelseskoder, se Tabel 2-1 for detaljer 0
  • Dette register bruges hovedsageligt til at gemme årsagen til undtagelsen eller afbrydelsesnummeret for afbrydelsen. Dens højeste bit er Interrupt-feltet, som bruges til at angive, om den aktuelle forekomst er en undtagelse eller en interrupt.
  • Den nederste bit er undtagelseskoden, som bruges til at angive den specifikke årsag. Dens detaljer kan findes i kapitel 2 Undtagelser.

Maskintilstand undtagelsesværdiregister (mtval)

Tabel 8-11 mtval register definition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] mtval MRW Undtagelsesværdi 0
  • Dette register bruges til at holde den værdi, der forårsagede undtagelsen, når der opstår en undtagelse. For detaljer såsom værdien og tidspunktet for dets lagring henvises til kapitel 2 Undtagelser.

PMP-konfigurationsregister (pmpcfg

  • Dette register bruges hovedsageligt til at konfigurere den fysiske hukommelsesbeskyttelsesenhed, og hver 8. bit af dette register bruges til at konfigurere beskyttelsen af ​​et område. Se venligst kapitel 4 for en detaljeret definition.

PMP-adresseregister (pmpaddr

  • Dette register bruges hovedsageligt til adressekonfigurationen af ​​den fysiske hukommelsesbeskyttelsesenhed, som koder de øverste 32 bit af en 34-bit fysisk adresse. Se venligst kapitel 4 for den specifikke konfigurationsmetode.

Debug mode program pointer register (DPC)

  • Dette register bruges til at lagre adressen på den næste instruktion, der skal udføres, efter at mikroprocessoren går ind
  • Debug-tilstand og dens værdi opdateres med forskellige regler afhængigt af årsagen til at gå ind i debug. Se afsnit 6.1 for en detaljeret beskrivelse.

Debug trigger select register (vælg)

  • Den er kun gyldig for mikroprocessorer, der understøtter hardware-brudpunkter og understøtter højst 4-kanals brudpunkter, og dens nederste 2 bits er gyldige.
  • Når du konfigurerer hvert kanalbrudpunkt, skal du vælge den tilsvarende kanal gennem dette register før konfiguration.

Tabel 8-12 vælg registerdefinition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:2] Reserveret MRO Reserveret 0
[1:0]  

VÆLGE

 

MRW

Brydepunktskanalvalgsregisteret er konfigureret, det vil sige, efter at den tilsvarende kanal er valgt, kan tdata1 og tdata2 registrene betjenes for at konfigurere et breakpoint

information.

 

X

Debug trigger dataregister 1(tdata1)

Den er kun gyldig for mikroprocessorer, der understøtter hardware breakpoints. Mikroprocessorer understøtter kun instruktionsadresse og dataadressebrudpunkter, hvor bit TYPE af tdata1 registeret er en fast værdi på 2, og andre bits er i overensstemmelse med definitionen af ​​kontrol i fejlretningsstandarden.

Tabel 8-13 tdata1 registerdefinition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:28] TYPE MRO Breakpoint type definition, kontrol type. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: De relevante registre for flip-flop'en kan modificeres i både maskintilstand og fejlretningstilstand;

1: Kun debug mode kan ændre de relevante registre på flip-flop'en.

 

 

1

  [26:21]  

MASKMAX

 

MRO

Når MATCH=1, er det maksimale eksponentielle effektområde for matchning tilladt, det vil sige, at det maksimalt tilladte matchingsområde er 231 bytes.  

0x1F

[20:13] Reserveret MRO Reserveret 0
 

 

12

 

 

HANDLING

 

 

MRW

Indstil behandlingstilstanden, når et brudpunkt udløses:

0: Når du udløser, skal du indtaste brudpunktet og kalde afbrydelsen tilbage;

1: Gå ind i fejlretningstilstand, når den udløses.

 

 

0

[11:8] Reserveret MRO Reserveret 0
 

 

 

7

 

 

 

KAMP

 

 

 

MRW

Matchende politikkonfiguration:

0: Match, når triggerværdien er lig med TDATA2;

1: Triggerværdien matcher den høje m bit af TDATA2, hvor m = 31–n, og n er det første 0-citat af TDATA2 (startende fra den lave bit).

 

 

 

0

 

6

 

M

 

MRW

Aktiver flip-flop i M-tilstand:

0: Deaktiver triggeren i M-tilstand; 1: Aktiver udløseren i M-tilstand.

 

0

[5:4] Reserveret MRO Reserveret 0
 

3

 

U

 

MRW

Aktiver trigger i U-tilstand:

0: Deaktiver triggeren i U-tilstand; 1: Aktiver udløseren i U-tilstand.

 

0

 

2

 

UDFØR

 

MRW

Instruktion læse adresse trigger aktiveret: 0: Deaktiver;

1: Aktiver.

 

0

 

1

 

BUTIK

 

MRW

Dataskriveadresseudløser aktiveret: 0: Deaktiver;

1: Aktiver.

 

0

 

0

 

LÆS

 

MRW

Udløser for datalæsningsadresse aktiveret: 0: Deaktiver;

1: Aktiver.

 

0

Debug trigger dataregister 2(tdata2)

Det er kun gyldigt for mikroprocessorer, der understøtter hardware breakpoints og bruges til at gemme den matchende værdi af triggeren.

Tabel 8-14 tdata2 registerdefinition

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] TDATA2 MRW Bruges til at gemme matchende værdier. X

Debug kontrol og statusregister (dcsr)

Dette register bruges til at kontrollere og registrere driftstilstanden for fejlretningstilstanden. Se afsnit 7.1 for detaljer.

Debug mode program pointer (DPC)

Dette register bruges til at lagre adressen på den næste instruktion, der skal udføres, efter at mikroprocessoren går ind i debugging-tilstanden, dens værdi er forskellig i overensstemmelse med årsagerne til at gå ind i debugging-tilstanden, og opdateringsreglerne er også forskellige. Se afsnit 7.1 for en detaljeret beskrivelse.

Fejlretningstilstand staging register (dscratch0-1)

Denne gruppe af registre bruges til midlertidig lagring af data i fejlretningstilstand.

Tabel 8-15 dscratch0-1 register definitioner

Bit Navn Adgang Beskrivelse Nulstil værdi
[31:0] dscratch DRW Fejlretningstilstand data staging værdi 0
Brugerdefineret CSR Register

Brugertilstand globalt afbrydelsesaktiveringsregister (gintr)

  • Dette register bruges til at styre aktiveringen og masken af ​​global afbrydelse. Aktiveringen og masken af ​​global afbrydelse i maskintilstand kan styres af MIE- og MPIE-bits i status, men dette register kan ikke betjenes i brugertilstand.
  • Mens den globale interrupt aktiverer register gintenr er kortlægningen af ​​MIE og MPIE i status.
  • I brugertilstand kan hensigt bruges til at indstille og slette MIE og MPIE, som beskrevet i afsnit 3.2 for detaljer.

Note

  • Globale afbrydelser inkluderer ikke umaskerede afbrydelser NMI og undtagelser.

Afbryd systemkontrolregister (intsyscr)

Dette register bruges hovedsageligt til at konfigurere interrupt-nesting-dybde, hardware-stackpresning og andre relaterede funktioner, som beskrevet i afsnit 3.2 for detaljer.

Mikroprocessorkonfigurationsregister (corecfgr)

Dette register bruges til at kontrollere, om NMI-afbrydelsen er tilladt, efter at afbrydelsen løber over, og om afbrydelsesanmodningen slettes, når hegnsinstruktionen udføres. Se venligst afsnit 3.2 for den specifikke definition.

Afbryd indlejret kontrolregister (inestcr)

Dette register bruges til at angive afbrydelsesindlejringstilstanden, og om den løber over eller ej, og til at kontrollere det maksimale redeniveau. Se venligst afsnit 3.2 for den specifikke definition.

Dokumenter/ressourcer

WH V3 mikroprocessor [pdfBrugermanual
V3 mikroprocessor, V3, mikroprocessor

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *