WH-logotyp

WH V3 mikroprocessor

WH-V3-Mikroprocessor-PRO

Specifikationer

  • Mikroprocessormodell: QingKeV3
  • Version: V1.2
  • ISA-funktioner:
    • Rörledning FPU
    • Branch förutsägelse
    • Avbryt support
    • HPE Physical Memory Protection (PMP)
    • Läge med låg strömförbrukning
    • Utökad instruktionsuppsättning felsökning

Produktanvändningsinstruktioner

Överview av QingKe V3 mikroprocessor

QingKe V3-seriens mikroprocessorer inkluderar modellerna V3A, V3B och V3C. Varje modell har specifika egenskaper och skillnader baserat på dess tillämpning.

Instruktionsuppsättning

RV32I-instruktionsuppsättningen innehåller 32 registeruppsättningar från x0 till x31. V3-serien stöder inte flyttalsförlängningen (F). Varje register är 32 bitar stort.

Registrera Set

RV32I-registeruppsättningen består av följande register.

  • x0: Hårdkodad 0
  • x1: Returadress
  • x2: Stackpekare
  • x3: Global pekare
  • x4: Trådpekare
  • x5-x7: Tillfälliga register
  • x8: Spara register/rampekare
  • x9: Spara register/funktionsparametrar/returvärden
  • x10-x11: Funktionsparametrar
  • x12-x17: Spara register
  • x18-x27: Tillfälliga register
  • x28-x31: Den som ringer/anropar registrerar sig

Privilegeläge

RISC-V-standardarkitekturen inkluderar tre privilegierade lägen: Maskinläge, Supervisorläge och Användarläge. QingKe V3-seriens mikroprocessorer stöder maskinläge och supervisorläge.

Vanliga frågor

F: Vilka är de olika modellerna i QingKe V3-seriens mikroprocessorer?

A: QingKe V3-serien inkluderar modellerna V3A, V3B och V3C, var och en med specifika egenskaper och skillnader som beskrivs i användarmanualen.

F: Hur många registeruppsättningar finns tillgängliga i RV32I-instruktionsuppsättningen?

A: RV32I-instruktionsuppsättningen tillhandahåller 32 registeruppsättningar från x0 till x31.

F: Vilka privilegierade lägen stöds av QingKe V3-mikroprocessorn?

A: QingKe V3-seriens mikroprocessorer stöder maskinläge och supervisorläge som en del av RISC-V-arkitekturen.

Överview

QingKe V3-seriens mikroprocessorer är egenutvecklade 32-bitars MCU-mikroprocessorer för allmänna ändamål baserade på standard RISC-V-instruktionsuppsättningsarkitektur. Denna serie inkluderar V3A, V3B och V3C, varav V3A stöder RV32IMAC standardinstruktionsförlängning och V3B/C stöder RV32IMCB standardinstruktionsförlängning och anpassad instruktionsuppsättning XW. Båda stöder enkelcykelmultiplikation och hårdvarudelning, förutom hårdvarutryckstack (HPE), bordsfritt avbrott (VTF), strömlinjeformade 1- och 2-tråds felsökningsgränssnitt, "WFE"-instruktioner och andra specialfunktioner. Dessutom stöder den även Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), strömlinjeformat 1-/2-tråds felsökningsgränssnitt och stöd för "WFE"-instruktioner.

Drag

Drag Beskrivning
ISA RV32IM[A]C[B]
Rörledning 3
FPU Stöds inte
Branch förutsägelse Statisk grenförutsägelse
Avbryta Stöder totalt 256 avbrott inklusive undantag, och stöder VTF
HPE Stöd 2 nivåer av HPE
Fysiskt minnesskydd (PMP) Stöds
Läge med låg strömförbrukning Stöd sömn- och djupsömnlägen och stöd för WFI- och WFE-sömnmetoder
Utökad instruktionsuppsättning Stöds
Felsökning 1/2-tråds SDI, standard RISC-V felsökning

Överview

QingKe V3-seriens mikroprocessorer inkluderar V3A, V3B och V3C, det finns vissa skillnader mellan serierna beroende på applikationen, de specifika skillnaderna beskrivs i Tabell 1-1.

Tabell 1-1 Överview av QingKe V3 mikroprocessor

Särdrag Modell ISA HPE antal nivåer Avbrott häckande antal nivåer VTF antal kanaler Rörledning Vektor tabelläge Utökad instruktion (XW) Antal minnesskyddsområden
V3A RV32IMAC 2 2 4 3 Instruktion × ×
V3B RV32IMCB 2 2 4 3 Adress/instruktion ×
V3C RV32IMCB 2 2 4 3 Adress/instruktion 4

Notera: OS-uppgiftsväxling använder vanligtvis stack push, vilket inte är begränsat till antalet nivåer

Instruktionsuppsättning

  • QingKe V3-seriens mikroprocessorer följer standarden RISC-V Instruction Set Architecture (ISA). Detaljerad dokumentation av standarden finns i "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 2.2" på RISC-V International webplats. RISC-V-instruktionssetet har en enkel arkitektur och stöder en modulär design, vilket möjliggör flexibla kombinationer baserat på olika behov, och V3-serien stöder följande instruktionsuppsättningar.
  • RV32: 32-bitars arkitektur, allmän registerbitbredd på 32 bitar
  • I: Stöd formningsoperation, med 32 formningsregister
  • M: Stöd forma instruktioner för multiplikation och division
  • A: Stöd atomkommandon
  • C: Stöd 16-bitars komprimeringsinstruktion
  • B: Stöd för instruktioner för bitmanipulation
  • XW: 16-bitars komprimeringsinstruktioner för självförlängande byte- och halvordsoperationer

Notera:

  • Underuppsättningen av instruktioner som stöds av olika modeller kan vara olika, se Tabell 1-1 för detaljer;
  • För att ytterligare förbättra koddensiteten, utöka XW-delmängden, lägg till följande komprimeringsinstruktioner c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , vars användning måste baseras på MRS-kompilatorn eller den verktygskedja som den tillhandahåller;
  • V3B stöder extrahering av en ordinstruktion (32bit) från ett dubbelord (64bit) och extrahering av en ordinstruktion (32bit) från ett multiplikationsresultat (64bit). Den specifika användningsmetoden kan referera till biblioteksfunktionen och samarbeta med MRS-kompilatorn eller verktygskedjan som tillhandahålls av den;
  • V3B/C stöder instruktion för minneskopiering. För specifik användning, se biblioteksfunktionen och samarbeta med MRS-kompilatorn eller dess verktygskedja.

Registrera Set

RV32I har 32 registeruppsättningar från x0-x31. V3-serien stöder inte tillägget "F", dvs. det finns inget flyttalsregister. I RV32 är varje register 32 bitar. Tabell 1-2 nedan listar registren för RV32I och deras beskrivningar.

Tabell 1-2 RISC-V-register

Register ABI namn Beskrivning Lagrare
x0 noll Hårdkodad 0
x1 ra Returadress Uppringare
x2 sp Stackpekare Callee
x3 GP Global pekare
x4 tp Trådpekare
x5-7 t0-2 Tillfälligt register Uppringare
x8 s0/fp Spara register/rampekare Callee
x9 s1 Spara register Callee
x10-11 a0-1 Funktionsparametrar/returvärden Uppringare
x12-17 a2-7 Funktionsparametrar Uppringare
x18-27 a2-11 Spara register Callee
X28-31 t3-6 Tillfälligt register Uppringare

Caller-attributet i tabellen ovan betyder att den anropade proceduren inte sparar registervärdet, och Callee-attributet betyder att den anropade proceduren sparar registret.

Privilegeläge

  • RISC-V-standardarkitekturen inkluderar tre privilegierade lägen: Maskinläge, Supervisorläge och Användarläge, som visas i Tabell 1-3 nedan.
  • Maskinläget är obligatoriskt och de andra lägena är valfria. För detaljer, se RISC-V Instruction Set Manual Volume II: Privileged Architecture”, som kan laddas ner gratis från RISC-V International webplats.

Tabell 1-3 RISC-V-arkitekturprivilegieringsläge

Koda Namn Förkortningar
0b00 Användarläge U
0b01 Arbetsledare modell S
0b10 Reserverad Reserverad
0b11 Maskinläge M
  • QingKe V3-seriens mikroprocessorer stöder två av dessa privilegierade lägen.

Maskinläge

  • Maskinläget har högsta auktoritet, programmet i detta läge kan komma åt alla kontroll- och statusregister (CSR), men kan också komma åt alla fysiska adressområden.
  • Standardinställningen för uppstart är i maskinläge, när exekveringen av mret (maskinlägesreturinstruktion) återgår, enligt CSR-registrets status (maskinlägesstatusregister) i MPP-biten, om MPP = 0b00, avsluta sedan maskinläget till användarläget, MPP = 0b11, och fortsätt sedan att behålla maskinläget.

Användarläge

  • Användarläge har lägst behörighet, och endast begränsade CSR-register kan nås i detta läge. När ett undantag eller avbrott inträffar går mikroprocessorn från användarläge till maskinläge för att hantera undantag och avbrott.

CSR-register

En serie CSR-register definieras i RISC-V-arkitekturen för att styra och registrera mikroprocessorns drifttillstånd. Dessa CSR:er kan utökas med 4096 register med hjälp av ett internt dedikerat 12-bitars adresskodningsutrymme. Och använd de höga två CSR [11:10] för att definiera läs/skrivbehörigheten för detta register, 0b00, 0b01, 0b10 för läs/skriv tillåten och 0b11 för skrivskyddad. Använd de två bitarna CSR[9:8] för att definiera den lägsta behörighetsnivån som kan komma åt detta register, och värdet motsvarar det behörighetsläge som definieras i Tabell 1-3. CSR-registren implementerade i QingKe V3-mikroprocessorn beskrivs i kapitel 8.

Undantag

Undantagsmekanism, som är en mekanism för att fånga upp och hantera "ovanliga operationshändelser". QingKe V3-seriens mikroprocessorer är utrustade med ett undantagssvarssystem som kan hantera upp till 256 undantag, inklusive avbrott. När ett undantag eller avbrott inträffar kan mikroprocessorn snabbt svara och hantera undantags- och avbrottshändelser.

Undantagstyper

Hårdvarubeteendet för mikroprocessorn är detsamma oavsett om ett undantag eller ett avbrott inträffar. Mikroprocessorn avbryter det aktuella programmet, flyttar till undantags- eller avbrottshanteraren och återgår till det tidigare avbrutna programmet när bearbetningen är klar. I stora drag är avbrott också en del av undantagen. Om exakt den aktuella händelsen är ett avbrott eller ett undantag kan vara viewed genom maskinläge undantag orsak register orsak. mcause[31] är avbrottsfältet, som används för att indikera om orsaken till undantaget är ett avbrott eller ett undantag. mcause[31]=1 betyder avbrott, mcause[31]=0 betyder undantag. mcause[30:0] är undantagskoden, som används för att indikera den specifika orsaken till undantaget eller avbrottsnumret, som visas i följande tabell.

Tabell 2-1 Undantagskoder för V3-mikroprocessor

Avbryta Undantag koder Synkron / Asynkron Anledning till undantag
1 0-1 Reserverad
1 2 Exakt asynkron NMI avbryter
1 3-11 Reserverad
1 12 Exakt asynkron SysTick avbryter
1 13 Reserverad
1 14 Synkron Programvaran avbryter
1 15 Reserverad
1 16-255 Exakt asynkron Externt avbrott 16-255
0 0 Synkron Instruktionsadress felinställning
0 1 Synkron Åtkomstfel för att hämta kommandot
0 2 Synkron Olagliga instruktioner
0 3 Synkron brytpunkter
0 4 Synkron Felinställning av åtkomstadress för laddningsinstruktioner
0 5 Icke-precision asynkron Åtkomstfel för laddningskommando
0 6 Synkron Felinställning av åtkomstadress för lagra/AMO-instruktion
0 7 Icke-precision asynkron Åtkomstfel för Store/AMO-kommando
0 8 Synkron Miljöanrop i användarläge
0 11 Synkron Miljöanrop i maskinläge
  • Synchronous” i tabellen betyder att en instruktion kan placeras exakt där den exekveras, till exempel en break- eller call-instruktion, och varje exekvering av den instruktionen kommer att utlösa ett undantag. "Asynkron" betyder att det inte är möjligt att peka ut en instruktion, och instruktionens PC-värde kan vara olika varje gång ett undantag inträffar. "Exakt asynkron" betyder att ett undantag kan placeras exakt vid gränsen för en instruktion, dvs tillståndet efter utförandet av en instruktion, såsom ett externt avbrott. "Icke-precision asynkron" betyder att gränsen för en instruktion inte kan lokaliseras exakt, och kanske tillståndet efter att en instruktion har avbrutits halvvägs genom exekveringen, såsom ett minnesåtkomstfel.
  • Åtkomst till minne tar tid, och mikroprocessorn väntar vanligtvis inte på slutet av åtkomsten vid åtkomst till minnet utan fortsätter att utföra instruktionen, när åtkomstfelundantaget inträffar igen, har mikroprocessorn redan utfört de efterföljande instruktionerna, och kan inte vara exakt belägen.

Anger undantag

När programmet är i normal drift, utlöser det av någon anledning ett undantag eller avbrott. Hårdvarubeteendet hos mikroprocessorn vid denna punkt kan sammanfattas enligt följande.

  1. Stäng av det aktuella programflödet och gå vidare till exekvering av undantags- eller avbrottshanteringsfunktioner. Ingångsbasadressen och adresseringsmoden för undantags- eller avbrottsfunktionen definieras av undantagsingångsbasadressregistret mtvec. mtvec[31:2] definierar basadressen för undantags- eller avbrottsfunktionen. mtvec[1:0] definierar adresseringsläget för hanterarfunktionen. när mtvec[1:0]=0 använder alla undantag och avbrott en enhetlig post, dvs när ett undantag eller avbrott inträffar, vänder det sig till att mtvec[31:2] definierar basadressen som ska köras. När mtvec[1:0]=1 använder undantag och avbrott vektortabellläge, dvs varje undantag och avbrott är numrerade och adressen förskjuts enligt avbrottsnummer*4, och när ett undantag eller avbrott inträffar skiftas den till basadressen definierad av mtvec[31:2] + avbrottsnummer*4 Utförande. Avbrottsvektortabellen innehåller en instruktion att hoppa till avbrottshanterarfunktionen, eller det kan vara andra instruktioner.
  2. Uppdatera CSR-registret
    • När ett undantag eller avbrott matas in, uppdaterar mikroprocessorn automatiskt de relevanta CSR-registren, inklusive maskinläges undantagsregistret mcause, maskinläges undantagspekareregistret mepc, maskinmodens undantagsvärdesregister metall och maskinlägesstatusregistrets status.

Uppdatera mcause

Som nämnts tidigare, efter att ha angett ett undantag eller avbrott, återspeglar dess värde den aktuella undantagstypen eller avbrottsnumret, och programvaran kan läsa detta registervärde för att kontrollera orsaken till undantaget eller fastställa källan till avbrottet, enligt beskrivning i Tabell 2 -1.

Uppdatera mepc

  • Standarddefinitionen av returadressen för mikroprocessorn efter att ha lämnat ett undantag eller avbrott lagras i mepc.
  • Så när ett undantag eller avbrott inträffar, uppdaterar hårdvaran automatiskt mepc-värdet till det aktuella instruktionens PC-värde när undantaget påträffas, eller nästa förexekverade PC-instruktionsvärde före avbrottet.
  • Efter att undantaget eller avbrottet har behandlats använder mikroprocessorn sitt sparade värde som returadress för att återvända till platsen för avbrottet för att fortsätta exekveringen.
  • Det är dock värt att notera det.
  1. MEPC är ett läsbart och skrivbart register, och programvaran kan också ändra värdet för att ändra platsen för PC-pekaren som körs efter returen.
  2. När ett avbrott inträffar, det vill säga när undantagsorsaken registrerar mcause[31]=1, uppdateras värdet på kartor till PC-värdet för nästa ej körda instruktion vid tidpunkten för avbrottet.
    • När ett undantag inträffar uppdateras kartans värde till instruktionens PC-värde för det aktuella undantaget när undantaget orsakar register mcause[31]=0. Så vid den här tidpunkten när undantaget återkommer, om vi återvänder direkt med värdet av mepc, fortsätter vi att köra instruktionen som genererade undantaget tidigare, och vid denna tidpunkt kommer vi att fortsätta att ange undantaget. Vanligtvis, efter att vi har hanterat undantaget, kan vi ändra värdet på mepc till värdet av nästa ej körda instruktion och sedan återvända. Till exempelample, om vi orsakar ett undantag på grund av call/break, efter att ha hanterat undantaget, eftersom recall/break (c.ebreak är 2 byte) är en 4-byte instruktion, behöver vi bara programvaran för att ändra värdet på mepc till mepc +4 (c.ebreak är mepc+2) och återvänd sedan.

Uppdatera mtval

När undantag och avbrott anges kommer hårdvaran automatiskt att uppdatera värdet på mtval, vilket är värdet som orsakade undantaget. Värdet är normalt.

  1. Om ett undantag orsakas av en minnesåtkomst kommer hårdvaran att lagra adressen för minnesåtkomsten vid tidpunkten för undantaget i mtval.
  2. Om undantaget orsakas av en olaglig instruktion kommer hårdvaran att lagra instruktionskoden för instruktionen i mtval.
  3. Om undantaget orsakas av en hårdvarubrytpunkt kommer hårdvaran att lagra PC-värdet vid brytpunkten i mtval.
  4. För andra undantag sätter hårdvaran värdet på mtval till 0, till exempel break, undantaget som orsakas av anropsinstruktioner.
  5. När du anger avbrottet sätter hårdvaran värdet på mtval till 0.

Uppdatera mstatus

Vid inmatning av undantag och avbrott uppdaterar hårdvaran vissa bitar i mstatus.

  1. MPIE uppdateras till MIE-värdet innan undantaget eller avbrottet skrivs in, och MPIE används för att återställa MIE efter att undantaget och avbrottet är över.
  2. MPP uppdateras till det privilegierade läget innan undantag och avbrott anges, och efter att undantagen och avbrotten är över används MPP för att återställa det tidigare privilegierade läget.
  3. QingKe V3-mikroprocessor stöder avbrottskapsling i maskinläge, och MIE kommer inte att rensas efter att undantag och avbrott har angetts.

Uppdatera mikroprocessorbehörighetsläge

  • När undantag och avbrott inträffar uppdateras mikroprocessorns privilegierade läge till maskinläge.

Undantagshanteringsfunktioner

  • Vid inmatning av ett undantag eller avbrott, exekverar mikroprocessorn programmet från adressen och moden som definieras av mtvec-registret. När den förenade posten används, tar mikroprocessorn en hoppinstruktion från basadressen definierad av mtvec[31:2] baserat på värdet på mtvec[1], eller hämtar ingångsadressen för undantags- och avbrottshanteringsfunktionen och kör den istället. . Vid denna tidpunkt kan funktionen för hantering av undantag och avbrott avgöra om orsaken är ett undantag eller ett avbrott baserat på värdet av mcause[31], och typen och orsaken till undantaget eller motsvarande avbrott kan bedömas med undantagskoden och hanteras därefter.
  • När basadressen + avbrottsnummer *4 används för offset, hoppar hårdvaran automatiskt till vektortabellen för att få ingångsadressen för undantaget eller avbrottsfunktionen baserat på avbrottsnumret och hoppar för att exekvera det.

Undantag Exit

  • Efter att undantags- eller avbrottshanteraren har slutförts är det nödvändigt att avsluta serviceprogrammet. Efter att ha angett undantag och avbrott går mikroprocessorn in i maskinläge från användarläge, och bearbetningen av undantag och avbrott slutförs också i maskinläge. När det är nödvändigt att avsluta undantag och avbrott är det nödvändigt att använda mret-instruktionen för att återvända. Vid denna tidpunkt kommer mikroprocessorns hårdvara automatiskt att utföra följande operationer.
  • PC-pekaren återställs till värdet för CSR-registret mepc, dvs exekveringen startar vid instruktionsadressen som sparats av mepc. Det är nödvändigt att vara uppmärksam på offsetdriften av mepc efter att undantagshanteringen är klar.
  • Uppdatera CSR-registerstatus, MIE återställs till MPIE och MPP används för att återställa det privilegierade läget för den föregående mikroprocessorn.
  • Hela processen för undantagssvar kan beskrivas i följande figur 2-1.WH-V3-Mikroprocessor-fig-1

PFIC och avbrottskontroll

  • QingKe V3 mikroprocessor är designad med en programmerbar snabbavbrottskontroller (PFIC) som kan hantera upp till 256 avbrott inklusive undantag.
  • De första 16 av dem är fixerade som interna avbrott i mikroprocessorn, och resten är externa avbrott, dvs det maximala antalet externa avbrott kan utökas till 240. Dess huvudsakliga egenskaper är som följer.
  • 240 externa avbrott, varje avbrottsbegäran har oberoende trigger- och maskkontrollbitar, med dedikerade statusbitar
  • Programmerbar avbrottsprioritet stöder 2 nivåer av kapsling
  • Särskilda snabba avbrott in/ut mekanismen, maskinvaruautomatisk stapling och återställning, maximalt HPE-djup på 2 nivåer
  • Vector Table Free (VTF) avbrottssvarsmekanism, 2-kanals programmerbar direktåtkomst till avbrottsvektoradresser
  • Notera: Det maximala kapsdjupet och HPE-djupet som stöds av avbrottskontroller varierar för olika mikroprocessormodeller, vilket finns i Tabell 1-1.
  • Vektortabellen över avbrott och undantag visas i Tabell 3-1 nedan.

Tabell 3-1 Undantags- och avbrottsvektortabell

Antal Prioritet Typ Namn Beskrivning
0
1
2 -5 Fast NMI Icke-maskerbart avbrott
3 -4 Fast EXC Undantagsavbrott
4
5 -3 Fast ECALL-M Återuppringningsavbrott i maskinläge
6-7
8 -2 Fast ECALL-U Användarläge återuppringningsavbrott
9 -1 Fast BRYTPUNKT Återuppringningsavbrott för brytpunkt
10-11
12 0 Programmerbar SysTick Systemtimeravbrott
13
14 1 Programmerbar SWI Programavbrott
15
16-255 2-241 Programmerbar Externt avbrott Externt avbrott 16-255

Notera: ECALL-M, ECALL-U och BREAKPOINT är alla olika typer av undantag EXC, som är oberoende i V3B/C för enkel användning, och ovanstående 3 ingångsadresser delas med EXC i V3A.

PFIC Register Set

Tabell 3-2 PFIC-register

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_ISRx 0xE000E000

-0xE000E01C

RO Avbrott aktivera statusregister x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO Avbryt väntande statusregister x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW Avbryt prioritets tröskelkonfigurationsregister 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW VTF basadressregister

Obs: Gäller endast för V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Avbryt konfigurationsregister

Obs: Gäller endast för V3A

0x00000000
PFIC_GISR 0xE000E04C RO Avbryt globalt statusregister 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

VTF-avbrotts-ID-konfigurationsregister

Obs: Gäller endast för V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x offset adressregister 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO Avbrott aktivera inställningsregister x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO Avbryt aktivera rensa register x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Avbryt väntande inställningsregister x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Avbrott i väntan på rensa register x 0x00000000
PFIC_IACTRx 0xE000E300

-0xE000E31C

RO Avbrottsaktiveringsstatusregister x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW Avbryt prioritetskonfigurationsregister 0x00000000
PFIC_SCTLR 0xE000ED10 RW Systemkontrollregister 0x00000000

Notera:

  1. NMI, EXC, ECALL-M, ECALL-U och BREAKPOINT är alltid aktiverade som standard.
  2. ECALL-M, ECALL-U och BREAKPOINT är ett fall av EXC.
  3. NMI, EXC, ECALL-M, ECALL-U och BREAKPOINT stöder avbrott i avvaktan på rensning och inställningsoperation, men inte avbrott aktiverar rensning och inställning.

Varje register beskrivs enligt följande:

Avbrott aktivera status och avbryt väntande statusregister (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
 PFIC_ISR0  0xE000E000  RO Avbrott 0-31 aktiverar statusregister, totalt 32 statusbitar [n], vilket indikerar #n avbrott aktiverar status

Obs: NMI och EXC är aktiverade som standard

 För V3A: 0x0000000C

För V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO Avbrott 32-63 aktivera statusregister, totalt 32 statusbitar 0x00000000
PFIC_ISR7 0xE000E01C RO Avbrott 224-255 aktivera statusregister, totalt 32 statusbitar 0x00000000
PFIC_IPR0 0xE000E020 RO Avbrott 0-31 väntande status 0x00000000
register, totalt 32 statusbitar [n], vilket indikerar väntande status för avbrott #n
PFIC_IPR1 0xE000E024 RO Avbryt 32-63 väntande statusregister, totalt 32 statusbitar 0x00000000
PFIC_IPR7 0xE000E03C RO Avbrott 244-255 väntande statusregister, totalt 32 statusbitar 0x00000000

Två uppsättningar register används för att aktivera och avaktivera motsvarande avbrott.

Avbrottsaktiveringsinställning och rensa register (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_IENR0 0xE000E100 WO Avbrott 0-31 aktiverar inställningsregister, totalt 32 inställningsbitar [n], för avbrott #n aktivera inställning

Notera: NMI och EXC är aktiverat som standard

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Avbryt 32-63 för att aktivera inställningsregistret, totalt 32 inställningsbitar 0x00000000
PFIC_IENR7 0xE000E11C WO Avbrott 224-255 aktiveringsinställning

register, totalt 32 inställningsbitar

0x00000000
 PFIC_IRER0  0xE000E180  WO Avbrott 0-31 aktiverar rensa register, totalt 32 raderingsbitar [n], för avbrott #n aktiverar rensa Obs: NMI och EXC kan inte vara det opererades  

 

0x00000000

PFIC_IRER1 0xE000E184 WO Avbrott 32-63 möjliggör ett tömningsregister, totalt 32 tömningsbitar 0x00000000
PFIC_IRER7 0xE000E19C WO Avbrott 244-255 möjliggör ett tömningsregister, totalt 32 tömningsbitar 0x00000000

Två uppsättningar register används för att aktivera och avaktivera motsvarande avbrott.

Avbryt väntande inställning och rensa register (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
 

PFIC_IPSR0

 

0xE000E200

 

WO

Avbrott 0-31 väntande inställningsregister, 32

inställningsbitar [n], för avbrott #n väntande inställning

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Avbryt 32-63 väntande installationsregister,

totalt 32 setup-bitar

0x00000000
PFIC_IPSR7 0xE000E21C WO Avbrott 224-255 väntande inställning

register, 32 inställningsbitar totalt

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Avbrott 0-31 väntar på raderingsregister, totalt 32 raderingsbitar [n], för avbrott #n

i väntan på klart

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Avbrott 32-63 i väntan på att registret ska rensas,

totalt 32 klara bitar

0x00000000
PFIC_IPRR7 0xE000E29C WO Avbrott 244-255 i väntan på att registret ska rensas,

totalt 32 klara bitar

0x00000000

När mikroprocessorn aktiverar ett avbrott kan den ställas in direkt genom avbrottsregistret för att utlösa avbrottet. Använd registret för avbrott väntande rensning för att rensa den väntande utlösaren.

Avbrottsaktiveringsstatusregister (PFIC_IACTR<0-7>)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
 PFIC_IACTR0  0xE000E300  RO Avbrott 0-31 aktiverar statusregistret med 32 statusbitar [n], vilket indikerar att avbrott #n exekveras  0x00000000
 PFIC_IACTR1  0xE000E304  RO Avbryt 32-63 aktiveringsstatusregister, 32 statusbitar in

total

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Avbryt 224-255 aktiveringsstatusregister, totalt 32 statusbitar  0x00000000

Varje avbrott har en aktiv statusbit som ställs in när avbrottet läggs in och rensas av hårdvara när marknaden återvänder.

Register för avbrottsprioritet och prioritetströskel (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_IPRIOR0 0xE000E400 RW Avbrott 0 prioritetskonfiguration. V3A: [7:4]: Prioritetskontrollbitar Om konfigurationen inte är kapslad, ingen preemption bit Om kapsling är konfigurerad är bit7 den preempted biten. [3:0]: Reserverad, fixerad till 0  V3B: [7:6]: Prioritetskontrollbitar Om konfigurationen inte är kapslad, inga förebyggande bitar konfigurerade kapslade, alla bitar förebyggs, men upp till två nivåer av avbrott tillåts förekomma [5:0]: Reserverad, fixerad till 0
V3C:
[7:5]: Prioritetskontrollbitar
Om konfigurationen inte är kapslad, inga förebyggande bitar
Om de är konfigurerade kapslade, föreskrivs alla bitar, men upp till två nivåer av avbrott tillåts förekomma [4:0]: Reserverad, fixerad till 0 Obs: Ju mindre prioritetsvärde, desto högre prioritet. Om samma prioritetsavbrott hänger sig samtidigt, kommer avbrottet med högre prioritet att exekveras först.
0x00
PFIC_IPRIOR1 0xE000E401 RW Prioritetsinställning för avbrott 1, samma funktion som PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW Prioritetsinställning för avbrott 2, samma funktion som PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW Prioritetsinställning för avbrott 254, samma funktion som PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW Prioritetsinställning för avbrott 255, samma funktion som PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW Inställning av tröskelvärde för avbrottsprioritet

V3A:

[31:8]: Reserverad, fixerad till 0 [7:4]: Prioritetströskel [3:0]: Reserverad, fixerad till 0

 V3B:

[31:8]: Reserverad, fixerad till 0 [7:5]: Prioritetströskel [4:0]: Reserverad, fixerad till 0

 V3C:

[31:8]: Reserverad, fixerad till 0 [7:5]: Prioritetströskel [4:0]: Reserverad, fixerad till 0

Notera: För avbrott med prioritetsvärde ≥ tröskel, exekveras inte avbrottstjänstfunktionen när ett häng inträffar, och när detta register är 0 betyder det att tröskelregistret är ogiltigt.

0x00

Avbrottskonfigurationsregister (PFIC_CFGR)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_CFGR 0xE000E048 RW Avbryt konfigurationsregister 0x00000000

Detta register är endast giltigt för V3A, dess bitar definieras som:

Bit Namn Tillträde Beskrivning Återställ värde
[31:16] NYCKELKOD WO Motsvarande olika målkontrollbitar måste motsvarande säkerhetsåtkomstidentifieringsdata skrivas samtidigt för att kunna modifieras, och utläsningsdatan är fixerad till 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF。 0
[15:8] Reserverad RO Reserverad 0
7 SYSRESET WO Systemåterställning (samtidig skrivning till KEY3). Rensa automatiskt 0.

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

Obs: Samma funktion som PFIC_SCTLR-registret SYSRESET-biten.

0
6 PFICRESET WO PFIC-modul återställd. Rensa automatiskt 0.

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

0
5 UTTRYCKA WO Undantagsavbrott väntar på borttagning (samtidig skrivning till KEY2)

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

0
4 EXCSET WO Avvaktande inställning för undantagsavbrott (samtidig skrivning till KEY2)

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

0
3 NMIRESET WO NMI-avbrott i väntan på klar (samtidig skrivning till KEY2)

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

0
2 NMISET WO NMI-avbrott väntande inställning (Samtidig skrivning till KEY2)

Att skriva 1 är giltigt, att skriva 0 är ogiltigt.

0
1 NESTCTRL RW Interrupt nesting möjliggör kontroll.

1: av; 0: på (synkron skrivning till KEY1)

0
0 HWSTKCTRL RW HPE aktivera styrning

1: av; 0: på (synkron skrivning till KEY1)

0

Avbryt globalt statusregister (PFIC_GISR)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_GISR 0xE000E04C RO Avbryt globalt statusregister 0x00000000

Dess folk definieras som

Bit Namn Tillträde Beskrivning Återställ värde
[31:14] Reserverad RO Reserverad 0
 

 

13

 

 

LOCKSTA

 

 

RO

Om processorn för närvarande är i låst läge:

1: Låst tillstånd;

0: Olåst tillstånd.

Obs: Denna bit är endast giltig för V3B/C.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

Huruvida processorn för närvarande är i felsökningstillstånd: 1: Felsökningstillstånd;

0: Icke-felsökningstillstånd.

Obs: Denna bit är endast giltig för V3B/C.

 

 

0

 

 

11

 

 

GLOBLIE

 

 

RO

Aktivera globalt avbrott:

1: Aktivera avbrott;

0: Inaktivera avbrott.

Obs: Denna bit är endast giltig för V3B/C.

10 Reserverad RO Reserverad 0
9 GPENDSTA RO Om ett avbrott för närvarande väntar.

1: Ja; 0: Nej.

0
8 GACTSTA RO Om ett avbrott för närvarande utförs.

1: Ja; 0: Nej.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

Aktuell avbrottshäckningsstatus. 0x03: i nivå 2 avbrott.

0x01: i nivå 1 avbrott. 0x00: inga avbrott inträffar.

Övrigt: Omöjlig situation.

 

 

0

VTF ID-basadress och offsetadressregister (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: Höga 4 bitar av måladressen för VTF [27:0]: Reserverad

Detta register är endast giltigt för 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

Detta register är endast giltigt för V3B/C.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: VTF 0-avbrottsnummer [23:0]: de låga 24 bitarna i VTF-måladressen, av vilka de låga 20 bitarna är konfigurerade att vara giltiga, och [23:20] är fixerad till 0 .

 V3B/C:

[31:1]: VTF 0-adress, 2-byte justerad [0]:

1: Aktivera VTF 0-kanal

0: Inaktivera

 

 

 

 

 

 

 

För V3A: 0x00000000

För V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 1-avbrottsnummer [23:0]: De låga 24 bitarna i VTF-måladressen, av vilka de låga 20 bitarna är konfigurerade att vara giltiga och [23:20] är fixerad till 0.

 

V3B/C:

[31:1]: VTF 1-adress, 2-byte justerad [0]:

1: Aktivera VTF 1-kanal

0: Inaktivera

 

 

 

 

 

 

 

För V3A: 0x00000000

För V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 2-avbrottsnummer [23:0]: de låga 24 bitarna i VTF-måladressen, av vilka de låga 20 bitarna är konfigurerade att vara giltiga, och [23:20] är fixerad till 0 .

 

V3B/C:

[31:1]: VTF 2-adress, 2-byte justerad [0]:

1: Aktivera VTF 2-kanal

0: Inaktivera

 

 

 

 

 

 

 

För V3A: 0x00000000

För V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: För V3A:
[31:24]: VTF 3-avbrottsnummer [23:0]: de låga 24 bitarna i VTF-måladressen, av vilka de låga 20 bitarna är konfigurerade att vara giltiga, och [23:20] är fixerad till 0.

 V3B/C:

[31:1]: VTF 3-adress, 2-byte justerad [0]:

1: Aktivera VTF 3-kanal

0: Inaktivera

0x00000000

För V3B/C: 0xXXXXXXXXX

Systemkontrollregister (PFIC_SCTLR)

Namn Åtkomstadress Tillträde Beskrivning Återställ värde
PFIC_SCTLR 0xE000ED10 RW Systemkontrollregister 0x00000000

Var och en av dem definieras enligt följande.

Bit Namn Tillträde Beskrivning Återställ värde
31 SYSRESET WO Systemåterställning, autorensa 0. Skriv 1 är giltigt och skriv 0 är ogiltigt.

Obs: Denna bit är endast giltig för V3B/C

0
[30:6] Reserverad RO Reserverad 0
5 SETEVENT WO Ställ in händelsen för att väcka WFE-fallet. 0
 

4

SEVONPEND RW När en händelse inträffar eller avbryter ett väntande tillstånd, kan systemet väckas efter WFE-instruktionen, eller om WFE-instruktionen inte exekveras kommer systemet att väckas omedelbart efter nästa exekvering av instruktionen.

1: Aktiverade händelser och alla avbrott (inklusive oaktiverade avbrott) kan väcka systemet.

0: Endast aktiverade händelser och aktiverade

avbrott kan väcka systemet.

 

 

 

0

3 WFITOWFE RW Utför WFI-kommandot som om det vore en WFE.

1: Behandla den efterföljande WFI-instruktionen som en WFE-instruktion.

0: Ingen effekt.

0
2 SÖNDJUP RW Lågeffektläge för styrsystemet. 0
1: djup sömn 0: sömn
1 SLEEPONEXI T RW Systemstatus efter kontroll lämnar avbrottsserviceprogrammet.

1: Systemet går in i lågeffektläge.

0: Systemet går in i huvudprogrammet.

0
0 Reserverad RO Reserverad 0

Avbrottsrelaterade CSR-register

Dessutom har följande CSR-register en betydande inverkan på behandlingen av avbrott. Avbryt systemkontrollregister (intsyscr)

Detta register är inte giltigt endast för V3A:

Namn CSR Adress Tillträde Beskrivning Återställ värde
intsyscr 0x804 URW Avbryt systemkontrollregister 0x0000E002

Dess folk definieras som:

Bit Namn Tillträde Beskrivning Återställ värde
 

 

 

31

 

 

 

LÅSA

 

 

 

URO

0: Detta register kan läsas och skrivas i användarläge;

1: Detta register kan endast läsas och skrivas i maskinläge.

Obs: Denna konfigurationsbit är giltig från

version 1.0 och framåt.

 

 

 

0

[30:6] Reserverad URO Reserverad 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

Globalt avbrott och avstängning av hårdvarustack är aktiverade.

Obs: Denna bit används ofta i realtidsoperativsystem. När sammanhanget ändras under ett avbrott, kan inställningen av denna bit stänga av det globala avbrottet och pressa hårdvarustacken. När kontextväxlingen är klar och avbrottet återkommer kommer hårdvaran att göra det

rensa den här biten automatiskt.

 

 

 

 

 

0

4 Reserverad URO Reserverad 0
[3:2] PMTCFG URW Konfiguration av prioritetsförbudsbitar:

00: Antalet förhandsbitar är 0; 01: Antalet förhandsbitar är 1; 10: Antalet förhandsbitar är 2; 11: Antalet förhandsbitar är 3; Obs: Denna konfigurationsbit är giltig efter 1.0.

0
1 LYSSNA URW Avbrottskapslingsfunktionen är aktiverad och det fasta värdet är 1: 1
0: Inaktivera;

1: Aktivera.

Obs: 1. Den faktiska kapslingsnivån styrs av NEST_LVL i CSR 0xBC1;

2. Endast versioner efter 1.0 kan vara

skriftlig.

0 HWSTKEN URW Aktivera hårdvarastack:

0: Hårdvarustapelpressningsfunktionen är inaktiverad;

1: Maskinvarustapelpressningsfunktionen är aktiverad.

0

Maskinläge undantag basadressregister (mtvec)

Namn CSR Adress Tillträde Beskrivning Återställ värde
mtvec 0x305 MRW Undantagsbasadressregister 0x00000000

Dess folk definieras som

Bit Namn Tillträde Beskrivning Återställ värde
[31:2] BASEADDR[31:2] MRW Avbryt vektortabellens basadress, där

bitar [9:2] är fixerade till 0.

0
1 LÄGE 1  

MRO

Interrupt vektortabelligenkänningsläge: 0: Identifiera genom hoppinstruktion, med begränsad omfattning, och stödja icke-hoppinstruktioner;

1: Identifiera med absolut adress, stöder hela intervallet, men måste hoppa.

Obs: Denna bit är endast giltig för V3B/C.

0
0 LÄGE 0 MRW Val av avbrotts- eller undantagsinmatningsadressläge.

0: Användning av den enhetliga inreseadressen.

1: Adressförskjutning baserat på avbrottsnummer *4.

0

För MCU:er med V3-seriens mikroprocessorer är MODE0 konfigurerat att vara 1 som standard vid start file, och posterna för undantag eller avbrott förskjuts enligt avbrottsnumret *4. Observera att V3A-mikroprocessorn lagrar en hoppinstruktion vid vektortabellen, medan V3B/C-mikroprocessorn antingen kan en hoppinstruktion eller använda den absoluta adressen för avbrottsfunktionen, som är konfigurerad som en absolut adress i standardstarten file.

Mikroprocessorkonfigurationsregister (korrigerare)

Detta register är ogiltigt för V3A:

Namn CSR Adress Tillträde Beskrivning Återställ värde
corecfgr 0xBC0 MRW Mikroprocessorkonfigurationsregister 0x00000001

Dess folk definieras som

Bit Namn Tillträde Beskrivning Återställ värde
[31:8] Reserverad MRO Reserverad 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

Aktivering av kärnstatusfelsavbrott:

0: Vid statusfel genereras inget NMI-avbrott;

1: Vid statusfel är NMI-avbrott

genererade.

 

 

0

6 Reserverad MRO Håll det 0. 0
5 IE_REMAP_SV MRW MIE-registermappning möjliggör:

0: CSR-adress 0x800 är ett skrivskyddat register och returvärdet är värdet på STATUS;

1: Bitarna 3 och 7 i CSR-adressen 0x800 mappas till bit MIE i STATUS-registret respektive bit MPIE i STATUS-registret.

 

 

 

 

0

4 Reserverad MRO Reserverad 0
3 ROM_LOOP_ACC MRW Aktivera ROM-områdesinstruktionsslingaacceleration:

0: Stäng av den cykliska accelerationsfunktionen i ROM-området;

1: Kontinuerliga instruktioner med en loopkropp inom 128 byte kommer att accelereras helt, medan de med en loopkropp inom 256 byte kommer att accelereras delvis;

0
2 ROM_JUMP_ACC MRW ROM-områdesinstruktionshoppacceleration aktiverad:

0: Inaktivera hoppacceleration för ROM-områdesinstruktioner;

1: Aktivera instruktionshoppacceleration i ROM-området.

0
[1:0] FETCH_MODE MRW Hämtningsläge:

00: Förhämtning är avstängd. Instruktionsförhämtningsfunktionen är avstängd för att undvika ogiltiga instruktionshämtningsoperationer, och det finns högst en giltig instruktion på CPU-pipeline. Denna modell har den lägsta strömförbrukningen och dess prestanda sjunker med cirka 2 ~ 3 gånger. 01: Förhämtningsläge 1. När instruktionsförhämtningsfunktionen är påslagen kommer CPU:n att fortsätta att komma åt instruktionsminnet tills antalet instruktioner som ska utföras i den interna instruktionsbufferten överstiger ett visst antal, eller instruktionsbufferten är full, och hämtning av instruktioner kommer att avbrytas; (Ett misslyckat CPU-förutsägelse kommer att leda till redundant hämtning, och i vissa fall kommer exekveringsenheten att introducera 0 ~ 2 cykler av bubblor, och prestandan för de flesta program kommer inte att minska uppenbarligen); 10: Reserverad;
11: Förhämtningsläge 2. När instruktionsförhämtningsfunktionen är aktiverad, kommer CPU:n att fortsätta att komma åt instruktionsminnet, och om instruktionsbufferten är full kommer CPU:n att fortsätta att försöka adressen igen. Detta läge har högsta prestanda och strömförbrukning. CPU-förutsägelsefel och ett nytt försök kommer att introducera redundanta hämtningsoperationer och kan fortsätta att uppta minnesbandbredd. (För ROM-området betyder ett nytt försök diskontinuerlig adressåtkomst, så det rekommenderas att slå på ROM_ACC_EN).

0x1

Avbryt kapslade kontrollregister (inestcr)

Detta register är ogiltigt endast för V3A:

Namn CSR Adress Tillträde Beskrivning Återställ värde
investerare 0xBC1 MRW Avbryt kapslade kontrollregister 0x00000000

Dess folk definieras som

Bit Namn Tillträde Beskrivning Återställ värde
31 Reserverad MRO Reserverad 0
30 NEST_OV MRW Avbrott/undantag kapslad överflödesflaggabit, skriv 1 för att rensa:

0: Avbrottet flödade inte över; 1: Avbryt spillflagga.

Obs: Avbrottsspill kommer endast att inträffa när den sekundära avbrottstjänstfunktionen utförs för att generera ett instruktionsundantag eller NMI-avbrott. För närvarande går undantaget och NMI-avbrottet in normalt, men CPU-stacken svämmar över, så du kan inte lämna detta undantag och

NMI-avbrott.

0
[29:12] Reserverad MRO Reserverad 0
[11:8] NEST_STA MRO Kapslad statusflaggabit:

0000: Inget avbrott;

0001: Nivå 1 avbrott;

0011: nivå 2 avbrott (1-nivå häckning);

0
0111: Nivå 3 avbrott (spill);

1111: Nivå 4 avbrott (spill).

[7:2] Reserverad MRO Reserverad 0
[1:0] NEST_LVL MRW Häckningsnivå:

00: Kapsling är förbjuden och kapslingsfunktionen är avstängd;

01: Första nivån kapsling, som aktiverar kapslingsfunktionen;

Annat: Ogiltigt.

Notera: Skriv 10 eller 11 till det här fältet, och fältet kommer att sättas till 01. När du skriver 11 till det här fältet, läs detta register för att få den högsta kapslingsnivån för chippet.

0

Användarläge globalt avbrott aktivera register (intern)

Detta register är ogiltigt endast för V3A:

Namn CSR Adress Tillträde Beskrivning Återställ värde
gintenr 0x800 URW Globalt avbrottsaktiveringsregister 0x00000000

Detta register används för att styra aktiveringen och masken av globala avbrott. Aktiveringen och masken av globala avbrott i maskinläge kan styras av MIE- och MPIE-bitarna i status, men detta register kan inte användas i användarläge.
Det globala avbrottsaktiveringsregistret gintenr är kartläggningen av MIE och MPIE i mstatus, och kan användas för att ställa in och rensa MIE och MPIE genom att använda gintenr i användarläge.

Var och en av dem definieras som:

Bit Namn Tillträde Beskrivning Återställ värde
[31:13] Reserverad URO Reserverad 0
[12:11] MPP URO Gå in i privilegierat läge innan avbrott. 0
[10:8] Reserverad URO Reserverad 0
7 MPIE URW När 0xBC0(CSR)bit5 är aktiverad, är denna bit

kan läsas och skrivas i användarläge.

0
[6:4] Reserverad URO Reserverad 0
3 MIE URW När 0xBC0(CSR)bit5 är aktiverad, är denna bit

kan läsas och skrivas i användarläge.

0
[1:0] Reserverad URO Reserverad 0

Avbryt häckning

I samband med avbrottet, konfigurationsregistret PFIC_CFGR och avbrottsprioritetsregistret PFIC_IPRIOR, kan kapsling av avbrott tillåtas inträffa. Aktivera kapsling i avbrottskonfigurationsregistret (kapsling är aktiverat som standard för mikroprocessorer i V3-serien) och konfigurera prioriteten för motsvarande avbrott. Ju mindre prioritetsvärde, desto högre prioritet. Ju mindre värdet på preemption-biten är, desto högre preemption-prioritet. Om det finns avbrott som hänger samtidigt under samma förhandsprioritet, svarar mikroprocessorn på avbrottet med det lägre prioritetsvärdet (högre prioritet) först.

Hardware Prolog/Epilogue (HPE)

  • När ett undantag eller avbrott inträffar, stoppar mikroprocessorn det aktuella programflödet och växlar till exekvering av undantags- eller avbrottshanteringsfunktionen, platsen för det aktuella programflödet måste sparas. Efter att undantaget eller avbrottet återkommer är det nödvändigt att återställa platsen och fortsätta körningen av det stoppade programflödet. För mikroprocessorer i V3-serien hänvisar "webbplatsen" här till alla sparade samtalsregister i Tabell 1-2.
  • V3-seriens mikroprocessorer stöder maskinvaruenkelcykels automatisk lagring av 16 av de formade anropssparade registren till ett internt stackområde som inte är synligt för användaren. När ett undantag eller avbrott återkommer, återställer hårdvarucykeln automatiskt data från det interna stackområdet till de 16-formade registren. HPE stöder kapsling upp till 2 nivåer djupt.
  • Ett schema över mikroprocessorns tryckstapel visas i följande figur.WH-V3-Mikroprocessor-fig-2

Notera:

  1. Avbrottsfunktioner som använder HPE måste kompileras med MRS eller dess tillhandahållna verktygskedja och avbrottsfunktionen måste deklareras med __attribute__((avbryta(“WCH-Avbrottssnabb”))).
  2. Avbrottsfunktionen som använder stack push deklareras av __attribute__((interrupt())).

Vektorbord gratis (VTF)

  • Den programmerbara snabbavbrottsstyrenheten (PFIC) tillhandahåller 4 VTF-kanaler, dvs direkt åtkomst till posten för avbrottsfunktionen utan att gå igenom avbrottsvektortabellen.
  • VTF-kanalen kan aktiveras genom att skriva dess avbrottsnummer, avbrottstjänstfunktions basadress och offsetadress i motsvarande PFIC-styrenhetsregister samtidigt som en avbrottsfunktion konfigureras normalt.
  • PFIC-svarsprocessen för snabba och bordsfria avbrott visas i figur 3-2 nedan.WH-V3-Mikroprocessor-fig-3

Fysiskt minnesskydd PMP

  • För att förbättra systemets säkerhet är modulen för fysiskt minnesskydd (PMP) designad enligt RISC-V-arkitekturstandarden för V3-seriens mikroprocessorer av höglandskorn. Hantering av åtkomsträttigheter för upp till 4 fysiska regioner stöds. Behörigheterna inkluderar läs- (R), skriv- (W) och exekverings- (X) attribut, och längden på det skyddade området kan ställas in på minst 4 byte. PMP-modulen träder alltid i kraft i användarläge, men den kan träda i kraft valfritt genom att låsa (L)-attributet i maskinläge.
  • Om åtkomsten bryter mot den aktuella behörighetsgränsen kommer det att utlösa ett onormalt avbrott. PMP-modulen inkluderar fyra grupper av 8-bitars konfigurationsregister (en grupp med 32-bitars) och fyra grupper av adressregister, som alla måste nås i maskinläge med CSR-instruktioner.
  • Notera: Antalet skyddade områden som stöds av PMP i olika modeller av mikroprocessorer kan vara olika, och antalet som stöds av pmpcfg- och pmpaddr-register är också olika. Se Tabell 1-1 för detaljer.

PMP Register Set

Listan över CSR-register som stöds av PMP-modulen i V3-mikroprocessorn visas i Tabell 4-1 nedan.

Tabell 4-1 PMP-modulregisteruppsättning

Namn CSR-adress Tillträde Beskrivning Återställ värde
pmpcfg0 0x3A0 MRW PMP-konfigurationsregister 0 0x00000000
pmpaddr0 0x3B0 MRW PMP-adressregister 0 0xXXXXXXXXX
pmpaddr1 0x3B1 MRW PMP-adressregister 1 0xXXXXXXXXX
pmpaddr2 0x3B2 MRW PMP-adressregister 2 0xXXXXXXXXX
pmpaddr3 0x3B3 MRW PMP-adressregister 3 0xXXXXXXXXX

pmp

pmpcfg är konfigurationsregistret för PMP-enheten, och varje register innehåller fyra 8-bitars pumpfält, motsvarande konfigurationen av fyra regioner, och pumpning representerar konfigurationsvärdet för region i. Dess format visas i följande tabell 4-2.

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

pmpcfg används för att konfigurera område I och dess bitdefinition beskrivs i följande tabell 4-3.

Tabell 4-3 pmp

Bit Namn Beskrivning
7 L Låsning är aktiverad och kan låsas upp i maskinläge. 0: Ej låst;

1: Lås relevant register.

[6:5] Reserverad
[4:3] A Val av adressjustering och skyddsområdesområde. 00: AV (PMP av)

01: TOR (toppjusteringsskydd) 10: NA4 (fast fyra-byte skydd)

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

2 X Körbart attribut.
0: Ingen exekveringsbehörighet;

1: Utför behörighet.

 

1

 

W

Skrivbart attribut.

0: Ingen skrivbehörighet 1: Skrivbehörighet.

 

0

 

R

Läsbart attribut

0: Ingen läsbehörighet 1: Läsbehörighet.

pmpaddr

pmpaddr-registret används för att konfigurera adressen för område I. Standarddefinitionen är under RV32-arkitektur, vilket är kodningen av de övre 32 bitarna i en 34-bitars fysisk adress, och dess format visas i följande tabell 4-4 .
Hela det fysiska adressutrymmet för V3-mikroprocessorn är 4G, så de två övre bitarna i detta register används inte.

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

När NAPOT väljs används även den låga biten i adressregistret för att indikera storleken på det aktuella skyddsområdet, som visas i följande tabell, där 'y' är en bit av registret.
Tabell 4-5 Relationstabell mellan PMP-konfiguration och adressregister och skyddat område.

pmpaddr pmpcfg. A Matchande basadress och storlek
åååå...åååå NA4 Med 'åå...åååå00' som basadress är 4-byteområdet skyddat.
åååå...ååå0 NAPOT Med 'åå...ååå000' som basadress är 8-byteområdet skyddat.
åååå…åå01 NAPOT Med 'åå...åå0000' som basadress är 16-byteområdet skyddat.
åååå…y011 NAPOT Med 'yy…y00000' som basadress är 16-byteområdet skyddat.
ååå01…111 NAPOT Med 'y0…000000' som basadress är 231-byteområdet skyddat.
yy011…111 NAPOT Skydda hela 232-byte-området.

Skyddsmekanism

X/W/R i pmpcfg används för att ställa in skyddsmyndigheten för område I, och brott mot relevant behörighet kommer att orsaka ett motsvarande undantag:

  1. När man försöker hämta instruktioner i PMP-området utan exekveringsbehörighet kommer det att orsaka ett undantag för instruktionshämtning åtkomstfel (mcause=1).
  2. När du försöker skriva data i PMP-området utan skriftligt tillstånd, kommer det att orsaka ett felundantag (mcause=7) i åtkomsten till butiksinstruktionen.
  3. När du försöker läsa data i PMP-området utan läsbehörighet kommer det att orsaka ett onormalt minnesåtkomstfel (mcause=5) för laddningsinstruktionen.

A i pmpcfg används för att ställa in skyddsomfånget och adressinriktningen för region I, och för att skydda minnet för A_ADDR ≤ region < i > < B_ADDR (både A_ADDR och B_ADDR måste justeras i 4 byte):

  1. Om B _ ADDR–A_ADDR = = 22, används NA4-läge;
  2. Om B _ ADDR–A_ADDR = = 2(G+2), G≥1, och en _-adress är 2(g+2), används NAPOT-metoden;
  3. Annars används TOP-läget.

Tabell 4-6 PMP-adressmatchningsmetoder

Ett värde Namn Beskrivning
0b00 AV Inget område att skydda
0b01 TOR Toppanpassat områdesskydd.

Under pmp

pmpaddri = B_ADDR >> 2.

Obs: Om område 0 av PMP är konfigurerat som TOR-läge (i=0), är den nedre gränsen för skyddsområdet 0 adress, dvs 0 ≤ addr < pmpaddr0, allt inom det matchande området.

0b10 NA4 Fast 4-byte områdesskydd.

pmp

0b11 NAPOT Skydda 2(G+2)-regionen med G ≥ 1, när A_ADDR är 2(G+2) justerad. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1.
  • L-biten i pmp
  • QingKe V3-seriens mikroprocessorer stödjer skyddet av flera zoner. När samma operation matchar flera zoner samtidigt, matchas zonen med det lägre numret först.

Systemtimer (SysTick)

  • QingKe V3-seriens mikroprocessor är designad med en 32-bitars eller 64-bitars räknare (SysTick) inuti. Dess klockkälla är systemklockan eller dess 8-frekvensdelning, och V3A stöder endast 8-frekvensdelning.
  • Det kan tillhandahålla en tidsbas, timing och mätning av tid för ett realtidsoperativsystem. Olika typer av register involverade i timern har olika mappningsadresser, som visas i följande tabeller 5-1 och 5-2.

Tabell 5-1 V3A SysTick registerlista

Namn Åtkomstadress Beskrivning Återställ värde
STK_CTLR 0xE000F000 Systemräknarkontrollregister 0x00000000
STK_CNTL 0xE000F004 Systemräknare lågt register 0xXXXXXXXXX
STK_CNTH 0xE000F008 Systemräknare högt register

Obs: Gäller endast V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C Systemantal jämförelsevärde lågt register 0xXXXXXXXXX
STK_CMPHR 0xE000F010 Systemantal jämförelsevärde högt register

Obs: Gäller endast V3A.

0xXXXXXXXXX

Tabell 5-2 V3 SysTick registerlista över andra modeller

Namn Åtkomstadress Beskrivning Återställ värde
STK_CTLR 0xE000F000 Systemräknarkontrollregister 0x00000000
STK_SR 0xE000F004 Systemräknarens statusregister 0x00000000
STK_CNTL 0xE000F008 Systemräknarens låga register 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Räknejämförelsevärde lågt register 0xXXXXXXXXX

Varje register beskrivs i detalj enligt följande.

Systemräknarkontrollregister (STK_CTLR)

Tabell 5-3 SysTick-kontrollregister

Bit Namn Tillträde Beskrivning Återställ värde
[31:5] Reserverad RO Reserverad 0
 

 

4

 

 

LÄGE

 

 

RW

Räkneläge: 1: Räkna ner;

0: Räkna upp.

Obs: Ogiltig för V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Aktiveringsbit för automatisk omladdningsräkning:

1: Räkna från 0 igen efter att ha räknat upp till jämförelsevärdet, och räkna från jämförelsevärdet igen efter att ha räknat ner till 0;

0: Fortsätt att räkna upp/ner.

Obs: Ogiltig för V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Källvalsbit för motklockan:

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

Obs: Det är ogiltigt för V3A, som endast stöder

HCLK/8 som tidsbas.

 

 

0

1 PLATS RW Counter interrupt aktiveringskontrollbitar: 0
1: Aktivera motavbrott; 0: Inaktivera räknaravbrott.

Obs: Ogiltig för V3A.

0 STE RW Systemräknaren aktiverar en styrbit. 1: Aktivera systemräknare STK;

0: Inaktivera systemräknaren STK och räknaren slutar räkna.

0

Systemräknarens statusregister (STK_SR)

Detta register gäller inte för V3A.

Tabell 5-4 SysTick räknare lågt register

Bit Namn Tillträde Beskrivning Återställ värde
 

 

31

 

 

SWIE

 

 

RW

Aktivering av programavbrottsutlösare (SWI): 1: Utlösa programvaruavbrott;

0: Stäng av avtryckaren.

Obs: Denna bit måste rensas efter att programvaran avbröts, annars kommer den alltid att triggas.

 

 

0

[30:1] Reserverad RO Reserverad 0
 

 

0

 

 

CNTIF

 

 

RW

Räkna jämförelseflagga, skriv 0 tydligt, skriv 1 är ogiltigt:

1: Räkna upp till jämförelsevärdet och räkna ner till 0;

0: Jämförelsevärdet uppnås inte.

 

 

0

Systemräknare lågt register (STK_CNTL)

Tabell 5-5 SysTick räknare lågt register

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] CNTL RW Det aktuella räknevärdet är 32 bitar lägre. För V3A kan detta register läsas som 8-bitar/16-bitar

/32-bitar, men kan bara skrivas som 8-bitar och annat

modeller är inte begränsade.

0xXXXXXX XXX

Notera: Register STK_CNTL och register STK_CNTH i V3A utgör tillsammans en 64-bitars systemräknare.

Systemräknare högt register (STK_CNTH)

Tabell 5-6 SysTick räknare högt register

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] CNTH RW Det aktuella räknevärdet är 32 bitar högre. Detta register kan läsas med 8-bitar/16-bitar/32-bitar, men kan bara skrivas med 8-bitar.

Obs: Gäller endast V3A.

0xXXXXXX XXX

Notera: Register STK_CNTL och register STK_CNTH i V3A utgör tillsammans en 64-bitars systemräknare.

Systemantal jämförelsevärde lågt register (STK_CMPLR)

Tabell 5-7 SysTick jämförelsevärde låg register

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] CMPL RW Ställ in räknarens jämförelsevärde till 32 bitar lägre. När CMP-värdet och CNT-värdet är lika, kommer ett STK-avbrott att utlösas. För V3A kan detta register läsas som 8-bitar /16-bitar /32-bitar, men kan bara vara

skrivna som 8-bitars, och andra modeller är inte begränsade.

0xXXXXXX XXX

Notera: Registret STK_CMPLR och registret STK_CMPHR i V3A utgör tillsammans 64-bitars räknarens jämförelsevärde.

Systemantal jämförelsevärde högt register (STK_CMPHR)

Tabell 5-8 SysTick jämförelsevärde högt register

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] CMPH RW Ställ in räknarens jämförelsevärde 32 bitar högre. STK-avbrottet kommer att triggas när CMP-värdet och CNT-värdet är lika.

Detta register kan läsas med 8-bitar/16-bitar/32-bitar, men kan bara skrivas med 8-bitar.

Obs: Gäller endast V3A.

0xXXXXXX XXX

Notera: Registret STK_CMPLR och registret STK_CMPHR i V3A utgör tillsammans 64-bitars räknarens jämförelsevärde.

Processor lågeffektinställningar

  • QingKe V3-seriens mikroprocessorer stöder viloläge via WFI-instruktioner (Wait for Interrupt) för att uppnå låg statisk strömförbrukning.
  • Tillsammans med PFIC:s systemkontrollregister (PFIC_SCTLR) kan olika vilolägen och WFE-instruktioner implementeras.

Gå in i viloläge

  • QingKe V3-seriens mikroprocessorer kan gå i viloläge på två sätt, Wait for Interrupt (WFI) och Wait For Event (WFE). WFI-metoden innebär att mikroprocessorn går i viloläge, väntar på att ett avbrott ska vakna och sedan vaknar till motsvarande avbrott för att utföras. WFE-metoden innebär att mikroprocessorn går i viloläge, väntar på att en händelse ska vakna och vaknar för att fortsätta exekvera det tidigare stoppade programflödet.
  • Standarden RISC-V stöder WFI-instruktioner, och WFI-kommandot kan exekveras direkt för att gå in i viloläge med WFI-metoden. För WFE-metoden används WFITOWFE-biten i systemkontrollregistret PFIC_SCTLR för att styra de efterföljande WFI-kommandona som WFE-behandling för att uppnå WFE-metoden för att gå in i viloläge.
  • Sömndjupet styrs enligt SLEEPDEEP-biten i PFIC_SCTLR.
  • Om SLEEPDEEP i PFIC_SCTLR-registret nollställs, går mikroprocessorn in i viloläge och den interna enhetensklockan tillåts stängas av förutom SysTick och en del av väckningslogiken.
  • Om SLEEPDEEP i PFIC_SCTLR-registret är inställt går mikroprocessorn in i djupt viloläge och alla cellklockor tillåts stängas av.
  • När mikroprocessorn är i felsökningsläge är det inte möjligt att gå in i någon form av viloläge.

Sovvakna

QingKe V3-seriens mikroprocessorer kan väckas efter viloläge på grund av WFI och WFE på följande sätt.

Efter att WFI-metoden går i viloläge kan den väckas av

  1. Mikroprocessorn kan väckas av avbrottskällan som reageras på av avbrottsstyrenheten. Efter uppvaknandet utför mikroprocessorn först avbrottsfunktionen.
  2. Gå in i viloläge, felsökningsbegäran kan få mikroprocessorn att vakna och gå in i djup sömn, felsökningsbegäran kan inte väcka mikroprocessorn.

Efter att WFE-metoden går i viloläge kan mikroprocessorn väckas av följande.

  1. Interna eller externa händelser, när det inte finns något behov av att konfigurera avbrottskontrollern, vaknar och fortsätter att köra programmet.
  2. Om en avbrottskälla är aktiverad, väcks mikroprocessorn när ett avbrott genereras, och efter uppvaknande utför mikroprocessorn avbrottsfunktionen först.
  3. Om SEVONPEND-biten i PFIC_SCTLR är konfigurerad, aktiverar inte avbrottsstyrenheten avbrottet, men när en ny väntande avbrottssignal genereras (den tidigare genererade väntande signalen träder inte i kraft), kan den också få mikroprocessorn att vakna, och motsvarande flagga för väntande avbrott måste raderas manuellt efter uppvaknandet.
  4. Gå in i viloläge felsökningsbegäran kan få mikroprocessorn att vakna och gå in i djup sömn, felsökningsbegäran kan inte väcka mikroprocessorn.
  • Dessutom kan tillståndet för mikroprocessorn efter uppvakning kontrolleras genom att konfigurera SLEPONEXIT-biten i PFIC_SCTLR.
  • SLEEPONEXIT är inställt och den sista nivån avbrottsreturinstruktionen (mret) kommer att utlösa WFI-läges viloläge.

SLEEPONEXIT rensas utan effekt.

Olika MCU-produkter utrustade med V3-seriens mikroprocessorer kan anta olika vilolägen, stänga av olika kringutrustning och klockor, implementera olika energihanteringspolicyer och väckningsmetoder enligt olika konfigurationer av PFIC_SCTLR och realisera olika lågeffektlägen.

Felsökningssupport

  • QingKe V3-seriens mikroprocessorer inkluderar en hårdvarufelsökningsmodul som stöder komplexa felsökningsoperationer. När mikroprocessorn är avstängd kan felsökningsmodulen komma åt mikroprocessorns GPR, CSR, minne, externa enheter etc. genom abstrakta kommandon, programbuffertdistributionsinstruktioner, etc. Felsökningsmodulen kan avbryta och återuppta mikroprocessorns drift.
  • Felsökningsmodulen följer RISC-V External Debug Support Version0.13.2-specifikationen, detaljerad dokumentation kan laddas ner från RISC-V International webplats.

Felsökningsmodul

  • Felsökningsmodulen inuti mikroprocessorn, som kan utföra felsökningsoperationer som utfärdats av felsökningsvärden, inkluderar.
  • Tillgång till register via felsökningsgränssnittet
  • Återställ, avstäng och återuppta mikroprocessorn via felsökningsgränssnittet
  • Läs och skriv minne, instruktionsregister och externa enheter via felsökningsgränssnittet
  • Distribuera flera godtyckliga instruktioner via felsökningsgränssnittet
  • Ställ in mjukvarubrytpunkter genom felsökningsgränssnittet
  • Ställ in hårdvarubrytpunkter via felsökningsgränssnittet
  • Stöd för automatisk körning av abstrakt kommando
  • Stöd enstegsfelsökning
  • Notera: V3A stöder inte hårdvarubrytpunkter, V3B hårdvarubrytpunkter stöder matchning av instruktionsadress och V3C hårdvarubrytpunkter stöder matchning av instruktionsadress och dataadress.
  • De interna registren i felsökningsmodulen använder en 7-bitars adresskod, och följande register är implementerade i QingKe V3-seriens mikroprocessorer.

Tabell 7-1 Lista över felsökningsmodulregister

Namn Åtkomstadress Beskrivning
data0 0x04 Dataregister 0, kan användas för tillfällig lagring av data
data1 0x05 Dataregister 1, kan användas för tillfällig lagring av data
avkontroll 0x10 Felsökning av modulkontrollregister
dmstatus 0x11 Felsökning av modulstatusregister
hartinfo 0x12 Mikroprocessorstatusregister
sammandrag 0x16 Abstrakt kommandostatusregister
kommando 0x17 Abstrakt kommandoregister
abstrakt auto 0x18 Abstrakt kommando autokörning
progbuf0-7 0x20-0x27 Instruktionscacheregister 0-7
haltsum0 0x40 Pausa statusregistret
  • Felsökningsvärden kan styra mikroprocessorns avstängning, återupptagning, återställning, etc. genom att konfigurera avkontrollregistret. RISC-V-standarden definierar tre typer av abstrakta kommandon: åtkomstregister, snabbåtkomst och åtkomstminne.
  • QingKe V3A mikroprocessor stöder endast registeråtkomst, andra modeller stöder register och minnesåtkomst, men inte snabb åtkomst. Åtkomst till register (GPR, CSR) och kontinuerlig åtkomst till minne kan realiseras genom abstrakta kommandon.
  • Felsökningsmodulen implementerar 8 instruktionscacheregister progbuf0-7, och felsökningsvärden kan cache flera instruktioner (som kan vara komprimerade instruktioner) till bufferten och kan välja att fortsätta exekvera instruktionerna i instruktionscacheregistren efter att ha utfört abstraktkommandot eller exekvera de cachade instruktionerna direkt.
  • Notera att den sista instruktionen i programmen behöver vara en "ebreak" eller "c.ebreak" instruktion. Tillgång till lagring, kringutrustning etc. är också möjlig genom abstrakta kommandon och instruktioner cachelagrade i programmen.
  • Varje register beskrivs i detalj enligt följande.
  • Dataregister 0 (data0)

Tabell 7-2 dataregisterdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] data0 RW Dataregister 0, används för tillfällig lagring av data 0

Dataregister 1 (data1)

Tabell 7-3 data1 registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] data1 RW Dataregister 1, används för tillfällig lagring av data 0

Felsökning av modulkontrollregister (avkontroll)

Detta register styr paus, återställning och återupptagning av mikroprocessorn. Debug-värden skriver data till motsvarande fält för att uppnå paus (haltreq), reset (ndmreset), resume (resumereq). Du beskriver följande.

Tabell 7-4 avkontroll register definition

Bit Namn Tillträde Beskrivning Återställ värde
31 haltreq WO 0: Rensa pausbegäran

1: Skicka en pausförfrågan

0
30 resumereq W1 0: Ogiltig

1: Återställ den aktuella mikroprocessorn

Obs: Skriv 1 är giltig och hårdvaran rensas efter att mikroprocessorn har återställts

0
29 Reserverad RO Reserverad 0
28 ackhavereset W1 0: Ogiltig

1: Rensa skördestatusbiten för mikroprocessorn

0
[27:2] Reserverad RO Reserverad 0
1 ndmreset RW 0: Rensa återställning

1: Återställ hela systemet förutom felsökningsmodulen

 

0

0 avaktivera RW 0: Återställ felsökningsmodulen

1: Debug-modulen fungerar korrekt

0

Felsökningsmodulens statusregister (dm-status)

  • Detta register används för att indikera statusen för felsökningsmodulen och är ett skrivskyddat register med följande beskrivning av varje bit.

Tabell 7-5 dmstatus register definition

Bit Namn Tillträde Beskrivning Återställ värde
[31:20] Reserverad RO Reserverad 0
19 allhavereset RO 0: Ogiltig

1: Mikroprocessoråterställning

0
18 anyhavereset RO 0: Ogiltig

1: Mikroprocessoråterställning

0
17 allresumeack RO 0: Ogiltig

1: Mikroprocessoråterställning

0
16 anyresumeack RO 0: Ogiltig

1: Mikroprocessoråterställning

0
[15:14] Reserverad RO Reserverad 0
13 alluvial RO 0: Ogiltig

1: Mikroprocessorn är inte tillgänglig

0
12 någon nytta RO 0: Ogiltig

1: Mikroprocessorn är inte tillgänglig

0
11 allt springer RO 0: Ogiltig

1: Mikroprocessorn körs

0
10 någon löpning RO 0: Ogiltig

1: Mikroprocessorn körs

0
9 stannade RO 0: Ogiltig

1: Mikroprocessorn är avstängd

0
8 någon stoppad RO 0: Ogiltig

1: Mikroprocessor ur fjädring

0
7 autentiserade  

RO

0: Autentisering krävs innan du använder felsökningsmodulen

1: Felsökningsmodulen har certifierats

 

0x1

[6:4] Reserverad RO Reserverad 0
[3:0] version RO Felsökning av systemstödsarkitektur version 0010: V0.13 0x2

Mikroprocessorstatusregister (hartinfo)

Detta register används för att tillhandahålla information om mikroprocessorn till felsökningsvärden och är ett skrivskyddat register med varje bit som beskrivs enligt följande.

Tabell 7-6 definition av hartinforegister

Bit Namn Tillträde Beskrivning Återställ värde
[31:24] Reserverad RO Reserverad 0
[23:20] repa RO Antalet skrapregister som stöds 0x3
[19:17] Reserverad RO Reserverad 0
16 DataAccess RO 0: Dataregistret är mappat till CSR-adress

1: Dataregistret mappas till minnesadressen

0x1
[15:12] datastorlek RO Antal dataregister 0x2
  [11:0] data lägga till  

RO

Offsetadressen för dataregistret data0,

vars basadress är 0xe0000000, är ​​föremål för specifik läsning.

0xXXX

Abstrakt kommandokontroll och statusregister (sammandrag)

Detta register används för att indikera utförandet av abstraktkommandot. Felsökningsvärden kan läsa detta register för att veta om det sista abstrakta kommandot exekveras eller inte och kan kontrollera om ett fel genereras under exekveringen av abstraktkommandot och typen av fel, vilket beskrivs i detalj enligt följande.

Tabell 7-7 sammanfattningar registerdefinitioner

Bit Namn Tillträde Beskrivning Återställ värde
[31:29] Reserverad RO Reserverad 0
[28:24] progbufsize RO Indikerar antalet programbuffertprogram

cacheregister

0x8
[23:13] Reserverad RO Reserverad 0
12 upptagen RO 0: Inget abstrakt kommando körs

1: Det finns abstrakta kommandon som körs

Obs: Efter körning rensas hårdvaran.

 

0

11 Reserverad RO Reserverad 0
[10:8] cmder RW Abstrakt kommandofel typ 000: Inget fel

001: Exekvering av abstrakt kommando för att skriva till kommando, sammanfattningar, abstrakta autoregister eller läsa och skriva till data- och progbuf-register

010: Stöder inte aktuellt abstrakt kommando 011: Exekvering av abstrakt kommando med undantag 100: Mikroprocessorn är inte avstängd eller otillgänglig och kan inte utföra abstrakta kommandon 101: Bussfel

110: Paritetsbitfel under kommunikation 111: Andra fel

Obs: För bitskrivning används 1 för att rensa nollan.

 

 

 

 

 

 

 

0

[7:4] Reserverad RO Reserverad 0
[3:0] rabatt RO Antal dataregister 0x2
  • Felsökningsvärdar kan komma åt GPR, CSR-register och minne genom att skriva olika konfigurationsvärden i det abstrakta kommandoregistret.
  • Vid åtkomst till registren definieras kommandoregisterbitarna enligt följande.
  • Tabell 7-8 Definition av kommandoregister vid åtkomst av register
Bit Namn Tillträde Beskrivning Återställ värde
[31:24] cmd typ WO Abstrakt kommandotyp 0: Åtkomstregister;

1: Snabb åtkomst (stöds inte);

2: Tillgång till minne.

0
23 Reserverad WO Reserverad 0
[22:20] aarsize WO Åtkomstregisterdatabitbredd 000: 8-bitar

001: 16-bit

010: 32-bit

0
011: 64-bitars (stöds inte) 100: 128-bitars (stöds inte)

Obs: Vid åtkomst av flyttalsregister

FPR:er, endast 32-bitars åtkomst stöds.

19 aarpostincrement WO 0: Ingen effekt

1: Öka automatiskt värdet på regno efter att ha öppnat registret

 

0

18 post exec WO 0: Ingen effekt

1: Kör kommandot abstrakt och kör sedan kommandot i progbuf

 

0

17 överföra WO 0: Utför inte operationen som specificerats genom att skriva

1: Utför manipulationen som specificeras genom att skriva

0
16 skriva WO 0: Kopiera data från specificerat register till data0 1: Kopiera data från data0 register till specificerat register  

0

[15:0] regno WO Ange åtkomstregister 0x0000-0x0fff är CSRs 0x1000-0x101f är GPRs  

0

Vid åtkomst till minnet definieras bitarna i kommandoregistret enligt följande.

Tabell 7-9 Definition av kommandot Registrera vid åtkomst till minne

Bit Namn Tillträde Beskrivning Återställ värde
[31:24] cmd typ WO Abstrakt kommandotyp 0: Åtkomstregister;

1: Snabb åtkomst (stöds inte);

2: Åtkomst till minne.

0
23 aamvirtuell WO 0: Åtkomst till fysisk adress;

1: Få åtkomst till virtuell adress.

0
[22:20] armstorlek WO Åtkomstminnesdatabitbredd 000: 8-bitar;

001: 16-bitar;

010: 32-bitar;

011: 64-bitars (stöds inte); 100: 128-bitars (stöds inte);

 

0

19 aampostinkrement WO 0: Inget inflytande;

1: Efter framgångsrik åtkomst till minnet, öka adressen lagrad i data1-registret med antalet byte som motsvarar bitbredden konfigurerad av armstorlek.

Aamsize=0, nås av byte, data1 plus 1.

Aamsize=1, nås med halvord, data1 plus 2. aamsize=2, nås med bit, data1 plus 4.

 

0

18 post exec WO 0: Inget inflytande;

1: Kör kommandot i progbuf efter att ha utfört kommandot abstrakt.

0
17 Boka RO Reserverad 0
 

 

16

 

 

skriva

 

 

WO

0: Läs data från adressen specificerad av data1 till data0

1: Skriv data i data0 till adressen som anges av

data1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

målspecifika

 

 

 

 

 

 

WO

Definition av läs- och skrivläge Skriv:

00, 01: Skriv direkt till minnet;

10: Efter att data i data0 är OR med databitarna i minnet skrivs resultatet in i minnet (endast ordåtkomst stöds).

11: Efter att ha summerat data i data0 med databitarna i minnet, skriv in resultatet i minnet (endast ordåtkomst stöds).

Läsa:

00, 01, 10, 11: Läs 0 direkt från minnet.

 

 

 

 

 

 

0

[13:0] Boka RO Reserverad

Abstrakt kommando automatiskt exekveringsregister (abstrakt auto)

Detta register används för att konfigurera felsökningsmodulen. När du läser och skriver progbufx och data från felsökningsmodulen kan abstraktkommandot köras igen.

Beskrivningen av detta register är som följer:

Tabell 7-10 abstrakt autoregisterdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:16] autoexecprogbuf RW Om en bit är inställd kommer motsvarande läsning och skrivning av progbufx att göra att abstraktkommandot i kommandoregistret körs igen.

Obs: V3-serien är designad med 8 progbufs, motsvarande bitar [23:16].

 

0

[15:12] Boka RO Reserverad 0
[11:0] autoexecdata  

RW

Om en bit är satt till 1, kommer motsvarande läsning och skrivning av dataregistret att göra att abstraktkommandot i kommandoregistret exekveras igen.

Obs: V3-serien är designad med två data register, motsvarande bitar [1:0].

0

Instruktionscacheregister (progbufx)

Detta register används för att lagra alla instruktioner och distribuera motsvarande operation, inklusive 8, som måste uppmärksamma den senaste exekveringen som måste vara "break" eller "c.ebreak".

Tabell 7-11 progbuf registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] progbuf RW Instruktionskodning för cacheoperationer, som

kan innehålla komprimeringsinstruktioner

0

Pausstatusregister (haltsum0)

Detta register används för att indikera om mikroprocessorn är avstängd eller inte. Varje bit indikerar suspenderad status för en mikroprocessor, och när det bara finns en kärna, används endast den lägsta biten i detta register för att indikera det.

Tabell 7-12 haltsum0 registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:1] Reserverad RO Reserverad 0
0 haltsum0 RO 0: Mikroprocessorn fungerar normalt

1: Mikroprocessorstopp

0
  • Utöver de ovan nämnda registren för debug-modulen, inbegriper debug-funktionen även några CSR-register, främst debug-kontroll- och statusregistret dcsr och debug-instruktionspekaren dpc, vilka beskrivs i detalj enligt följande.
  • Felsökningskontroll och statusregister (dcsr)

Tabell 7-13 dcsr register definition

Bit Namn Tillträde Beskrivning Återställ värde
[31:28] xdebugver DRO 0000: Extern felsökning stöds inte 0100: Stöd standard extern felsökning

1111: Extern felsökning stöds, men uppfyller inte

specifikationen

 

 

0x4

[27:16] Reserverad DRO Reserverad 0
15 bryta DRW 0: Brytkommandot i maskinläge fungerar som beskrivs i privilegiet file

1: Pauskommandot i maskinläge kan gå in i felsökningsläge

 

 

0

[14:13] Reserverad DRO Reserverad 0
12 upplösning  

DRW

0: Breakkommandot i användarläge fungerar som beskrivs i privilegiet file

1: Brytkommandot i användarläge kan gå in i felsökningsläge

 

 

0

11 steg DRW 0: Avbrott är inaktiverade under enstegsfelsökning

1: Aktivera avbrott under enstegsfelsökning

0
10 Reserverad DRO Reserverad 0
9 stopptid DRW 0: Systemtimern körs i felsökningsläge

1: Systemtimern stannar i felsökningsläge

0
  [8:6] orsaka DRO Anledningar till att gå in i felsökning

001: Går in i felsökning i form av break-kommando (prioritet 3)

010: Gå in i felsökning i form av en triggermodul (prioritet 4, den högsta)

011: Anger felsökning i form av pausbegäran (prioritet 1)

100: felsökning i form av enstegsfelsökning

(prioritet 0, den lägsta)

0
101: gå in i felsökningsläge direkt efter mikroprocessorns återställning (prioritet 2) Övrigt: Reserverat
[5:3] Reserverad DRO Reserverad 0
2 steg DRW 0: Stäng av enstegsfelsökning

1: Aktivera enstegsfelsökning

0
[1:0] Föreg DRW Privilegeläge 00: Användarläge

01: Supervisor-läge (stöds ej) 10: Reserverat

11: Maskinläge

Notera: Spela in det privilegierade läget när du går in i felsökningsläget, felsökaren kan ändra detta värde för att ändra det privilegierade läget när du avslutar debug

 

 

 

 

0

Programpekare för felsökningsläge (DPC)

  • Detta register används för att lagra adressen till nästa instruktion som ska exekveras efter att mikroprocessorn går in i felsökningsläge, och dess värde uppdateras med olika regler beroende på orsaken till att felsökningen går in. dpc-registret beskrivs i detalj enligt följande.

Tabell 7-14 dpc registerdefinitioner

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] DPC DRW Instruktionsadress 0

Reglerna för uppdatering av registren visas i följande tabell.

Tabell 7-15 dpc-uppdateringsregler

Ange felsökningsmetoden dpc-uppdateringsregler
bryta Adress till Ebreak-instruktionen
enda steg Instruktionsadress för nästa instruktion för den aktuella instruktionen
triggermodul Stöds inte tillfälligt
stoppa begäran Adress till nästa instruktion som ska köras när Debug går in

Felsökningsgränssnitt

  • Skiljer sig från standard JTAG gränssnitt definierat av RISC-V, QingKe V3-seriens mikroprocessor använder 1- ett tråd/2-tråds seriellt felsökningsgränssnitt och följer WCH felsökningsgränssnittsprotokoll V1.0.
  • Felsökningsgränssnittet är ansvarigt för kommunikationen mellan felsökningsvärden och felsökningsmodulen och realiserar läs/skrivoperationen för felsökningsvärden till felsökningsmodulregistren.
  • WCH designade WCH_Link och open source dess schematiska och programbinära files, som kan användas för att felsöka alla mikroprocessorer med RISC-V-arkitektur.
  • Se WCH Debug Protocol Manual för specifika felsökningsgränssnittsprotokoll.

CSR-registerlista

  • RISC-V-arkitekturen definierar ett antal kontroll- och statusregister (CSR) för att styra och registrera mikroprocessorns driftstatus.
  • Några av CSR:erna har introducerats i föregående avsnitt, och detta kapitel kommer att beskriva CSR-registren som implementerats i QingKe V3-seriens mikroprocessorer.

CSR-registerlista

Tabell 8-1 Lista över mikroprocessor-CSR-register

Typ Namn CSR Adress Tillträde Beskrivning
RISC-V

Standard CSR

marchid 0xF12 MRO Arkitekturnummerregister
mimpid 0xF13 MRO Hårdvaruimplementeringsnummerregister
mstatus 0x300 MRW Statusregister
misa 0x301 MRW Hårdvaruinstruktionsuppsättningsregister
mtvec 0x305 MRW Undantagsbasadressregister
mscratch 0x340 MRW Maskinläge staging register
MEPC 0x341 MRW Undantagsprogram pekarregister
orsak 0x342 MRW Undantagsorsaksregister
mtval 0x343 MRW Undantagsvärderegister
pmpcfg 0x3A0+i MRW PMP-konfigurationsregister
pmpaddr 0x3B0+i MRW PMP-adressregister
tselect 0x7A0 MRW Felsökning av triggervalsregister
tdata1 0x7A1 MRW Felsökning av triggerdataregister 1
tdata2 0x7A2 MRW Felsökning av triggerdataregister 2
dcsr 0x7B0 DRW Felsökningskontroll och statusregister
dpc 0x7B1 DRW Programpekarregister för felsökningsläge
dscratch0 0x7B2 DRW Felsökningsläge stagregistrera 0
dscratch1 0x7B3 DRW Felsökningsläge stagregistrera 1
 

Leverantörsdefinierad CSR

gintenr 0x800 URW Globalt avbrottsaktiveringsregister
intsyscr 0x804 URW Avbryt systemkontrollregister
corecfgr 0xBC0 MRW Mikroprocessorkonfigurationsregister
inestcr 0xBC1 MRW Avbryt kapslade kontrollregister

RISC-V Standard CSR-register

  • Arkitekturnummerregister (marchid)
  • Detta register är ett skrivskyddat register för att indikera det aktuella mikroprocessorns hårdvaruarkitekturnummer, som huvudsakligen består av leverantörskod, arkitekturkod, seriekod och versionskod. Var och en av dem definieras enligt följande.

Tabell 8-2 marchidregisterdefinition

Bit Namn Tillträde Beskrivning Återställ värde
31 Reserverad MRO Reserverad 1
[30:26] Försäljare0 MRO Tillverkarkod 0

Fast till bokstaven "W"-koden

0x17
[25:21] Försäljare1 MRO Tillverkarkod1

Fast till bokstaven "C"-koden

0x03
[20:16] Försäljare2 MRO Tillverkarkod 2

Fast till bokstaven "H"-koden

0x08
15 Reserverad MRO Reserverad 1
[14:10] Båge MRO Arkitektur kod 0x16
RISC-V-arkitekturen är fixerad till bokstaven "V"-kod
[9:5] Serie MRO Seriekod

QingKe V3-serien, fixerad till siffran "3"

0x03
[4:0] Version MRO Versionskod

Kan vara versionen "A", "B", "C" och andra bokstäver i koden

x

Tillverkarens nummer och versionsnummer är alfabetiska och serienumret är numeriskt. Kodningstabellen med bokstäver visas i följande tabell.

Tabell 8-3 Alfabetisk kartläggningstabell

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
  • Bland dem, QingKe V3A mikroprocessor, läser registret tillbaka till 0.

Hårdvaruimplementeringsnummerregister (limpid)

  • Detta register är huvudsakligen sammansatt av leverantörskoder, som var och en definieras enligt följande.

Tabell 8-4 klar registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
31 Reserverad MRO Reserverad 1
[30:26] Försäljare0 MRO Tillverkarkod 0

Fast till bokstaven "W"-koden

0x17
[25:21] Försäljare1 MRO Tillverkarkod1

Fast till bokstaven "C"-koden

0x03
[20:16] Försäljare2 MRO Tillverkarkod 2

Fast till bokstaven "H"-koden

0x08
15 Reserverad MRO Reserverad 1
[14:8] Reserverad MRO Reserverad 0
[7:4] Mindre MRO Subversionsnummer 0xX
[3:0] Större MR0 Huvudversionsnummer 0xX
  • Detta register är läsbart i vilken maskinimplementering som helst, och i QingKe V3A-seriens processor läser detta register tillbaka till noll.

Maskinlägesstatusregister (mstatus)

  • Det här registret har delvis beskrivits i föregående avsnitt, och dess personer är placerade enligt följande.

Tabell 8-5 definition av mstatusregister

Bit Namn Tillträde Beskrivning Återställ värde
[31:13] Reserverad MRO Reserverad 0
[12:11] MPP MRW Privilegerat läge innan du går in i pausen 0
[10:8] Reserverad MRO Reserverad 0
7 MPIE MRW Aktivera avbrottstillstånd innan ett avbrott går in 0
[6:4] Reserverad MRO Reserverad 0
3 MIE MRW Aktivering av maskinlägesavbrott 0
[2:0] Reserverad MRO Reserverad 0
  • MPP-fältet används för att spara det privilegierade läget innan du går in i undantaget eller avbrottet och används för att återställa det privilegierade läget efter att ha lämnat undantaget eller avbrottet. MIE är den globala avbrottsaktiveringsbiten, och när du anger undantaget eller avbrottet uppdateras värdet på MPIE till värdet för MIE, och det bör noteras att i QingKe V3-seriens mikroprocessorer kommer MIE inte att uppdateras till 0 innan sista nivån av kapslade avbrott för att säkerställa att avbrottskapslingen i maskinläge fortsätter att utföras. När ett undantag eller avbrott avslutas, återgår mikroprocessorn till maskinläget som sparats av MPP, och MIE:n återställs till MPIE-värdet.
  • QingKe V3-mikroprocessor stöder maskinläge och användarläge, om du behöver få mikroprocessorn att bara fungera i maskinläge kan du ställa in MPP till 0x3 i initialiseringen av uppstarten file, det vill säga efter att ha återvänt, kommer den alltid att förbli i maskinläge.

Hårdvaruinstruktionsuppsättningsregister (misa)

  • Detta register används för att indikera arkitekturen för mikroprocessorn och de stödda instruktionsuppsättningarna, som var och en beskrivs enligt följande.

Tabell 8-6 ​​misa registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:30] MXL MRO Maskinordslängd 1:32

2:64

3:128

1
[29:26] Reserverad MRO Reserverad 0
[25:0] Tillägg MRO Instruktionsuppsättning förlängningar x
  • MXL används för att indikera ordlängden på mikroprocessorn, QingKe V3 är 32-bitars mikroprocessorer och domänen är fixerad till 1.
  • Tillägg används för att indikera att mikroprocessorn stöder utökade instruktionsuppsättningsdetaljer, var och en indikerar en klass av tillägg, dess detaljerade beskrivning visas i följande tabell.

Tabell 8-7 Instruktionsuppsättningsdetaljer

Bit Namn Beskrivning
0 A Atomförlängning
1 B Preliminärt reserverad för Bit-Manipulation extension
2 C Komprimerad förlängning
3 D Dubbelprecision flyttalsförlängning
4 E RV32E bas ISA
5 F Flyttalsförlängning med enkel precision
6 G Ytterligare standardförlängningar finns
7 H Hypervisor förlängning
8 I RV32I/64I/128I bas ISA
9 J Preliminärt reserverad för tillägget Dynamically Translated Languages
10 K Reserverad
11 L Preliminärt reserverad för decimalflytande punktförlängning
12 M Heltalsförlängning Multiplicera/Dividera
13 N Avbrott på användarnivå stöds
14 O Reserverad
15 P Preliminärt reserverad för Packed-SIMD-förlängning
16 Q Quad-precision flyttalsförlängning
17 R Reserverad
18 S Arbetsledareläge implementerat
19 T Preliminärt reserverad för förlängning av transaktionsminne
20 U Användarläge implementerat
21 V Preliminärt reserverad för Vector extension
22 W Reserverad
23 X Icke-standardiserade tillägg finns
24 Y Reserverad
25 Z Reserverad
  • Till exempelample, för QingKe V3A-mikroprocessorn är registervärdet 0x401001105, vilket betyder att den stödda instruktionsuppsättningsarkitekturen är RV32IMAC, och den har implementering i användarläge.

Maskinläge undantag basadressregister (mtvec)

  • Detta register används för att lagra basadressen för undantags- eller avbrottshanteraren och de två nedre bitarna används för att konfigurera moden och identifieringsmetoden för vektortabellen som beskrivs i avsnitt 3.2.

Maskinläge staging register (mscratch)

Tabell 8-8 mscratch register definitioner

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] mscratch MRW Datalagring 0

Detta register är ett 32-bitars läsbart och skrivbart register i maskinläge för temporär datalagring. Till exempelample, vid inmatning av en undantags- eller avbrottshanterare lagras användarstackpekaren SP i detta register och avbrottstackpekaren tilldelas SP-registret. Efter att ha avslutat undantaget eller avbrottet, återställ värdet på användarstackpekaren SP från början. Det vill säga att avbrottsstacken och användarstacken kan isoleras.

Maskinläge undantagsprogram pekarregister (karta)

Tabell 8-9 mepc register definitioner

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] mepc MRW Undantagsprocedurpekare 0
  • Detta register används för att spara programpekaren vid inmatning av ett undantag eller avbrott.
  • Den används för att spara instruktionens PC-pekare innan ett undantag anges när ett undantag eller avbrott genereras, och mepc används som returadress när undantaget eller avbrottet hanteras och används för ett undantag eller avbrottsretur.
  • Det är dock viktigt att notera det.
  • När ett undantag inträffar uppdateras mepc till PC-värdet för den instruktion som för närvarande genererar undantaget.
  • När ett avbrott inträffar uppdateras mepc till PC-värdet för nästa instruktion.
  • När du behöver returnera ett undantag efter att ha bearbetat undantaget bör du vara uppmärksam på att ändra värdet på mepc, och mer information finns i kapitel 2 Undantag.

Maskinläge undantag orsaksregister (mcause)

Tabell 8-10 definition av mcause register

Bit Namn Tillträde Beskrivning Återställ värde
31 Avbryta MRW Avbrottsindikeringsfält 0: Undantag

1: Avbrott

 

0

[30:0] Undantagskod MRW För undantagskoder, se Tabell 2-1 för detaljer 0
  • Detta register används huvudsakligen för att lagra orsaken till undantaget eller avbrottsnumret för avbrottet. Dess högsta bit är avbrottsfältet, som används för att indikera om den aktuella förekomsten är ett undantag eller ett avbrott.
  • Den lägre biten är undantagskoden, som används för att indikera den specifika orsaken. Dess detaljer finns i kapitel 2 Undantag.

Maskinläge undantagsvärderegister (mtval)

Tabell 8-11 mtval register definition

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] mtval MRW Undantagsvärde 0
  • Detta register används för att hålla värdet som orsakade undantaget när ett undantag inträffar. För detaljer som värdet och tiden för dess lagring, se kapitel 2 Undantag.

PMP-konfigurationsregister (pmpcfg

  • Detta register används huvudsakligen för att konfigurera den fysiska minnesskyddsenheten, och var 8:e bit av detta register används för att konfigurera skyddet av ett område. Se kapitel 4 för en detaljerad definition.

PMP-adressregister (pmpaddr

  • Detta register används huvudsakligen för adresskonfigurationen av den fysiska minnesskyddsenheten, som kodar de övre 32 bitarna av en 34-bitars fysisk adress. Se kapitel 4 för den specifika konfigurationsmetoden.

Programpekarregister för felsökningsläge (DPC)

  • Detta register används för att lagra adressen till nästa instruktion som ska exekveras efter att mikroprocessorn går in
  • Felsökningsläge och dess värde uppdateras med olika regler beroende på anledningen till att debug startas. Se avsnitt 6.1 för en detaljerad beskrivning.

Debug trigger select register (välj)

  • Den är endast giltig för mikroprocessorer som stöder hårdvarubrytpunkter och stöder högst 4-kanals brytpunkter, och dess nedre 2 bitar är giltiga.
  • När du konfigurerar varje kanalbrytpunkt måste du välja motsvarande kanal genom detta register innan du konfigurerar.

Tabell 8-12 välj registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:2] Reserverad MRO Reserverad 0
[1:0]  

VÄLJA

 

MRW

Brytpunktskanalvalsregistret är konfigurerat, det vill säga efter att motsvarande kanal har valts kan registren tdata1 och tdata2 användas för att konfigurera en brytpunkt

information.

 

X

Felsökning av triggerdataregister 1(tdata1)

Den är endast giltig för mikroprocessorer som stöder hårdvarubrytpunkter. Mikroprocessorer stöder endast instruktionsadress och dataadressbrytpunkter, där bitTYP i tdata1-registret är ett fast värde på 2, och andra bitar överensstämmer med definitionen av kontroll i felsökningsstandarden.

Tabell 8-13 tdata1 registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:28] TYP MRO Brytpunktstypdefinition, kontrolltyp. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: De relevanta registren för vippan kan modifieras i både maskinläge och felsökningsläge;

1: Endast felsökningsläge kan modifiera de relevanta registren för vippan.

 

 

1

  [26:21]  

MASKMAX

 

MRO

När MATCH=1 är det maximala exponentiella effektområdet för matchning tillåtet, det vill säga det maximalt tillåtna matchningsintervallet är 231 byte.  

0x1F

[20:13] Reserverad MRO Reserverad 0
 

 

12

 

 

HANDLING

 

 

MRW

Ställ in bearbetningsläget när en brytpunkt utlöses:

0: När du triggar, ange brytpunkten och ring tillbaka avbrottet;

1: Gå in i felsökningsläge när den utlöses.

 

 

0

[11:8] Reserverad MRO Reserverad 0
 

 

 

7

 

 

 

MATCH

 

 

 

MRW

Matchande policykonfiguration:

0: Matcha när triggervärdet är lika med TDATA2;

1: Triggervärdet matchar den höga m-biten för TDATA2, där m = 31–n, och n är det första 0-citatet av TDATA2 (med början från den låga biten).

 

 

 

0

 

6

 

M

 

MRW

Aktivera flip-flop i M-läge:

0: Inaktivera triggern i M-läge; 1: Aktivera triggern i M-läge.

 

0

[5:4] Reserverad MRO Reserverad 0
 

3

 

U

 

MRW

Aktivera trigger i U-läge:

0: Inaktivera triggern i U-läge; 1: Aktivera triggern i U-läge.

 

0

 

2

 

UTFÖRA

 

MRW

Instruktion läs adress trigger aktiverad: 0: Inaktivera;

1: Aktivera.

 

0

 

1

 

LAGRA

 

MRW

Utlösare för dataskrivadress aktiverad: 0: Inaktivera;

1: Aktivera.

 

0

 

0

 

LADDA

 

MRW

Utlösare för dataläsningsadress aktiverad: 0: Inaktivera;

1: Aktivera.

 

0

Felsökning av triggerdataregister 2(tdata2)

Den är endast giltig för mikroprocessorer som stöder hårdvarubrytpunkter och används för att spara matchningsvärdet för utlösaren.

Tabell 8-14 tdata2 registerdefinition

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] TDATA2 MRW Används för att spara matchande värden. X

Felsökningskontroll och statusregister (dcsr)

Detta register används för att styra och registrera drifttillståndet för felsökningsläget. Se avsnitt 7.1 för detaljer.

Programpekare för felsökningsläge (DPC)

Detta register används för att lagra adressen till nästa instruktion som ska exekveras efter att mikroprocessorn går in i felsökningsmoden, dess värde är olika beroende på skälen för att gå in i felsökningsmoden, och uppdateringsreglerna är också olika. Se avsnitt 7.1 för en detaljerad beskrivning.

Felsökningsläge staging register (dscratch0-1)

Denna grupp av register används för tillfällig lagring av data i felsökningsläge.

Tabell 8-15 dscratch0-1 registerdefinitioner

Bit Namn Tillträde Beskrivning Återställ värde
[31:0] dscratch DRW Felsökningslägesdata stagvärde 0
Användardefinierat CSR-register

Användarläge globalt avbrott aktivera register (gintr)

  • Detta register används för att styra aktiveringen och masken av globala avbrott. Aktiveringen och masken av globala avbrott i maskinläge kan styras av MIE- och MPIE-bitarna i status, men detta register kan inte användas i användarläge.
  • Medan det globala avbrottet aktiverar registret är gintenr kartläggningen av MIE och MPIE i status.
  • I användarläge kan avsikt användas för att ställa in och rensa MIE och MPIE, som beskrivs i avsnitt 3.2 för detaljer.

Notera

  • Globala avbrott inkluderar inte demaskerade avbrott NMI och undantag.

Avbryt systemkontrollregister (intsyscr)

Det här registret används huvudsakligen för att konfigurera avbrottskapsdjup, hårdvarustapelpressning och andra relaterade funktioner, som beskrivs i avsnitt 3.2 för detaljer.

Mikroprocessorkonfigurationsregister (corecfgr)

Detta register används för att kontrollera huruvida NMI-avbrottet tillåts efter att avbrottet flödar över och om avbrottsbegäran rensas när stängselinstruktionen exekveras. Se avsnitt 3.2 för den specifika definitionen.

Avbryt kapslade kontrollregister (inestcr)

Detta register används för att indikera avbrottshäckningstillståndet och om det svämmar över eller inte, och för att kontrollera den maximala kapslingsnivån. Se avsnitt 3.2 för den specifika definitionen.

Dokument/resurser

WH V3 mikroprocessor [pdf] Användarmanual
V3 mikroprocessor, V3, mikroprocessor

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *