WH-logo

Mikroprosesor WH V3

WH-V3-Mikroprosesor-PRO

Spesifikasi

  • Model mikroprosesor: QingKeV3
  • Versi: V1.2
  • Fitur ISA:
    • Pipa FPU
    • Ramalan cabang
    • Dhukungan ngganggu
    • HPE Physical Memory Protection (PMP)
    • Mode konsumsi daya sithik
    • Extended Instruction Set Debug

Pandhuan Panggunaan Produk

Swaraview Mikroprosesor QingKe V3

Mikroprosesor seri QingKe V3 kalebu model V3A, V3B, lan V3C. Saben model nduweni fitur tartamtu lan beda adhedhasar aplikasi.

Set instruksi

Set instruksi RV32I kalebu 32 set register saka x0 nganti x31. Seri V3 ora ndhukung ekstensi floating-point (F). Saben register ukurane 32 bit.

Daftar Set

Set register RV32I kasusun saka register ing ngisor iki.

  • x0: Hardcoded 0
  • x1: alamat bali
  • x2: Nuduhake tumpukan
  • x3: Pointer global
  • x4: Pitunjuk benang
  • x5-x7: Register sementara
  • x8: Simpen ndhaftar / pitunjuk pigura
  • x9: Simpen ndhaftar / parameter fungsi / nilai bali
  • x10-x11: Parameter fungsi
  • x12-x17: Simpen ndhaftar
  • x18-x27: Register sementara
  • x28-x31: Telpon / Callee ndhaptar

Mode Privilege

Arsitektur RISC-V standar kalebu telung mode istimewa: Mode mesin, mode Supervisor, lan mode pangguna. Mikroprosesor seri QingKe V3 ndhukung mode Mesin lan mode Supervisor.

Pitakonan sing Sering Ditakoni

P: Apa model sing beda ing mikroprosesor seri QingKe V3?

A: Seri QingKe V3 kalebu model V3A, V3B, lan V3C, saben duwe fitur tartamtu lan beda rinci ing manual pangguna.

P: Pira set ndhaptar sing kasedhiya ing set instruksi RV32I?

A: Set instruksi RV32I nyedhiyakake 32 set register saka x0 nganti x31.

P: Mode istimewa apa sing didhukung dening mikroprosesor QingKe V3?

A: Mikroprosesor seri QingKe V3 ndhukung mode Mesin lan mode Supervisor minangka bagéan saka arsitektur RISC-V.

Swaraview

Mikroprosesor seri QingKe V3 yaiku mikroprosesor MCU tujuan umum 32-bit sing dikembangake dhewe adhedhasar arsitektur set instruksi RISC-V standar. Seri iki kalebu V3A, V3B lan V3C, kang V3A ndhukung extension pesawat instruksi standar RV32IMAC lan V3B / C ndhukung extension pesawat instruction standar RV32IMCB lan extension pesawat instruction XW selaras. Loro-lorone ndhukung multiplikasi siji-siklus lan divisi hardware, saliyane tumpukan tekanan hardware (HPE), interupsi tanpa meja (VTF), antarmuka debugging 1 lan 2 kabel sing ramping, instruksi "WFE", lan fitur khusus liyane. Kajaba iku, uga ndhukung Prolog Hardware / Epilogue (HPE), Tabel Vektor Gratis (VTF), antarmuka debugging 1-/2-kabel sing ramping, lan dhukungan kanggo instruksi "WFE".

Fitur

Fitur Katrangan
ISA RV32IM[A]C[B]
Pipa 3
FPU Ora didhukung
Ramalan cabang Prediksi cabang statis
ngganggu Ndhukung total 256 interrupts kalebu pangecualian, lan ndhukung VTF
HPE Ndhukung 2 level HPE
Perlindhungan Memori Fisik (PMP) Didhukung
Mode konsumsi daya sithik Ndhukung mode Turu lan Turu jero, lan ndhukung metode turu WFI lan WFE
Set Instruksi Lengkap Didhukung
Debug 1/2-kabel SDI, standar RISC-V debug

Swaraview

Microprocessors seri QingKe V3 kalebu V3A, V3B, lan V3C, ana sawetara beda antarane seri miturut aplikasi, beda tartamtu rinci ing Tabel 1-1.

Tabel 1-1 Swaraview saka mikroprosesor QingKe V3

Fitur Model ISA Nomer HPE tingkat Gangguan nyarang nomer saka tingkatan VTF nomer saluran Pipa Vektor mode tabel Instruksi Extended (XW) Jumlah area pangayoman memori
V3A RV32IMAC 2 2 4 3 instruksi × ×
V3B RV32IMCB 2 2 4 3 Alamat / Instruksi ×
V3C RV32IMCB 2 2 4 3 Alamat / Instruksi 4

Cathetan: Ngalih tugas OS umume nggunakake tumpukan push, sing ora diwatesi karo jumlah level

Set instruksi

  • Mikroprosesor seri QingKe V3 tindakake standar RISC-V Instruction Set Architecture (ISA). Dokumentasi rinci babagan standar kasebut bisa ditemokake ing "Manual Set Instruksi RISC-V, Volume I: User-Level ISA, Document Version 2.2" ing RISC-V International websitus. Set instruksi RISC-V nduweni arsitektur sing prasaja lan ndhukung desain modular, ngidini kombinasi fleksibel adhedhasar kabutuhan sing beda, lan seri V3 ndhukung ekstensi set instruksi ing ngisor iki.
  • RV32: Arsitektur 32-bit, umum-tujuan register bit jembaré 32 bit
  • I: Ndhukung operasi mbentuk, kanthi 32 register mbentuk
  • M: Dhukungan mbentuk instruksi perkalian lan divisi
  • A: Ndhukung printah atom
  • C: Ndhukung instruksi kompresi 16-bit
  • B: Dhukungan kanggo instruksi manipulasi bit
  • XW: Instruksi komprèsi 16-bit kanggo operasi bait lan setengah tembung

Cathetan:

  • Subset instruksi sing didhukung dening model sing beda-beda bisa uga beda, deleng Tabel 1-1 kanggo rincian;
  • Supaya luwih nambah Kapadhetan kode, ngluwihi subset XW, nambah instruksi komprèsi ing ngisor iki c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , panggunaane kudu adhedhasar kompiler MRS utawa toolchain sing diwenehake;
  • V3B ndhukung ngekstrak instruksi tembung (32bit) saka tembung dobel (64bit) lan ngekstrak instruksi tembung (32bit) saka asil perkalian (64bit). Cara panggunaan tartamtu bisa ngarujuk menyang fungsi perpustakaan lan kerja sama karo compiler MRS utawa toolchain sing diwenehake;
  • V3B / C ndhukung instruksi salinan memori. Kanggo panggunaan tartamtu, waca fungsi perpustakaan lan kerja sama karo compiler MRS utawa toolchain.

Daftar Set

RV32I nduweni 32 daftar set saka x0-x31. Seri V3 ora ndhukung ekstensi "F", yaiku, ora ana set register floating-point. Ing RV32, saben register 32 bit. Tabel 1-2 ing ngisor iki nampilake dhaptar RV32I lan katrangane.

Tabel 1-2 register RISC-V

Ndaftar Jeneng ABI Katrangan Panyimpen
x0 nul Hardcoded 0
x1 ra alamat bali sing nelpon
x2 sp Penunjuk tumpukan Callee
x3 GP Pointer global
x4 tp Pitunjuk benang
x5-7 t0-2 Register sementara sing nelpon
x8 s0/fp Simpen ndhaftar / pitunjuk pigura Callee
x9 s1 Simpen registrasi Callee
x10-11 a0-1 Parameter fungsi / nilai bali sing nelpon
x12-17 a2-7 Parameter fungsi sing nelpon
x18-27 a2-11 Simpen registrasi Callee
X28-31 t3-6 Register sementara sing nelpon

Atribut Caller ing tabel ing ndhuwur tegese prosedur sing diarani ora nyimpen nilai register, lan atribut Callee tegese prosedur sing diarani nyimpen daftar.

Mode Privilege

  • Arsitektur RISC-V standar kalebu telung mode istimewa: Mode mesin, mode Supervisor, lan mode pangguna, kaya sing ditampilake ing Tabel 1-3 ing ngisor iki.
  • Mode mesin iku wajib, lan mode liyane opsional. Kanggo rincian, sampeyan bisa ndeleng Manual Set Instruksi RISC-V Volume II: Arsitektur Privilege ", sing bisa diunduh gratis saka RISC-V International. websitus.

Tabel 1-3 mode hak istimewa arsitektur RISC-V

Kode jeneng Singkatan
0b00 Mode pangguna U
0b01 Model Pengawas S
0b10 dilindhungi dilindhungi
0b11 Mode mesin M
  • Mikroprosesor seri QingKe V3 ndhukung rong mode istimewa kasebut.

Mode mesin

  • Mode mesin nduweni wewenang paling dhuwur, program ing mode iki bisa ngakses kabeh Control and Status Register (CSR), nanging uga bisa ngakses kabeh wilayah alamat fisik.
  • Default power-up ana ing mode mesin, nalika eksekusi mret (instruksi bali mode mesin) bali, miturut status registrasi CSR (Registrasi status mode mesin) ing bit MPP, yen MPP = 0b00, banjur metu saka mode Mesin menyang mode Panganggo, MPP = 0b11, banjur terus nahan mode Mesin.

Mode pangguna

  • Mode pangguna nduweni hak istimewa sing paling murah, lan mung ndhaftar CSR winates sing bisa diakses ing mode iki. Nalika ana pangecualian utawa interupsi, mikroprosesor dadi saka mode Panganggo menyang mode Mesin kanggo nangani pengecualian lan interupsi.

Register CSR

Seri ndhaptar CSR ditetepake ing arsitektur RISC-V kanggo ngontrol lan ngrekam kahanan operasi mikroprosesor. CSRs iki bisa ditambahi dening 4096 ndhaftar nggunakake spasi coding alamat 12-bit khusus internal. Lan nggunakake loro CSR dhuwur [11:10] kanggo nemtokake ijin diwaca / nulis register iki, 0b00, 0b01, 0b10 kanggo diwaca / nulis diijini lan 0b11 mung diwaca. Gunakake loro bit CSR [9:8] kanggo nemtokake tingkat hak istimewa paling sing bisa ngakses register iki, lan nilai cocog karo mode hak istimewa ditetepake ing Tabel 1-3. Register CSR sing dileksanakake ing mikroprosesor QingKe V3 rinci ing Bab 8.

Pangecualian

Mekanisme pangecualian, yaiku mekanisme kanggo nyegat lan nangani "acara operasi sing ora biasa". Mikroprosesor seri QingKe V3 dilengkapi sistem respon istiméwa sing bisa nangani nganti 256 pengecualian, kalebu interrupts. Nalika ana pangecualian utawa gangguan, mikroprosesor bisa kanthi cepet nanggapi lan nangani acara pangecualian lan gangguan.

Jinis Pangecualian

Prilaku hardware saka mikroprosesor padha yen ana pangecualian utawa interupsi. Mikroprosesor nundha program saiki, pindhah menyang pangecualian utawa interrupt handler, lan bali menyang program sing sadurunge dilereni soko tugas nalika proses wis rampung. Secara umum, interrupts uga minangka bagean saka pengecualian. Apa persis kedadeyan saiki minangka interupsi utawa pangecualian viewed liwat Machine mode pangecualian sabab ndhaftar sabab. Mcause [31] minangka lapangan interupsi, sing digunakake kanggo nunjukake apa sing nyebabake pangecualian yaiku interupsi utawa pengecualian. mcause[31]=1 tegese interupsi, mcause[31]=0 tegese pangecualian. mcause [30:0] iku kode pangecualian, kang digunakake kanggo nunjukaké sabab tartamtu saka pangecualian utawa nomer interupsi, minangka ditampilake ing tabel ing ngisor iki.

Tabel 2-1 V3 kode pangecualian mikroprosesor

ngganggu Pangecualian kode Sinkron / Asynchronous Alesan kanggo pangecualian
1 0-1 dilindhungi
1 2 Asynchronous akurat NMI interrupts
1 3-11 dilindhungi
1 12 Asynchronous akurat SysTick interrupts
1 13 dilindhungi
1 14 Sinkron Software interrupts
1 15 dilindhungi
1 16-255 Asynchronous akurat interupsi njaba 16-255
0 0 Sinkron Pandhuan alamat misalignment
0 1 Sinkron Njupuk kesalahan akses printah
0 2 Sinkron instruksi ilegal
0 3 Sinkron Watesan
0 4 Sinkron Mbukak instruksi alamat akses misalignment
0 5 Non-presisi asinkron Muat kesalahan akses printah
0 6 Sinkron Toko / instruksi AMO alamat akses misalignment
0 7 Non-presisi asinkron Toko / kesalahan akses printah AMO
0 8 Sinkron Panggilan lingkungan ing mode Panganggo
0 11 Sinkron Telpon lingkungan ing mode Mesin
  • Sinkron" ing tabel tegese instruksi bisa dumunung persis ing ngendi dieksekusi, kayata break utawa instruksi telpon, lan saben eksekusi instruksi kasebut bakal micu pangecualian. "Asynchronous" tegese ora bisa nemtokake instruksi, lan nilai instruksi PC bisa uga beda-beda saben ana pangecualian. "Asynchronous precise" tegese pangecualian bisa ditemokake persis ing wates instruksi, yaiku, negara sawise eksekusi instruksi, kayata interupsi eksternal. "Asynchronous non-precision" tegese wates instruksi ora bisa ditemokake kanthi tepat, lan bisa uga negara sawise instruksi diselani setengah saka eksekusi, kayata kesalahan akses memori.
  • Akses menyang memori mbutuhake wektu, lan mikroprosesor biasane ora ngenteni pungkasan akses nalika ngakses memori nanging terus nglakokake instruksi kasebut, nalika pangecualian kesalahan akses kedadeyan maneh, mikroprosesor wis nindakake instruksi sabanjure, lan ora bisa persis. dumunung.

Ngetik Pengecualian

Nalika program ing proses operasi normal yen sakperangan alesan, micu pangecualian utawa ngganggu. Prilaku hardware mikroprosesor ing titik iki bisa diringkes kaya ing ngisor iki.

  1. Nundha aliran program saiki lan pindhah menyang eksekusi fungsi pangecualian utawa interupsi. Alamat basis entri lan mode alamat saka fungsi pangecualian utawa interupsi ditetepake dening register alamat basis entri pangecualian mtvec. mtvec[31:2] nemtokake alamat dhasar saka fungsi pangecualian utawa interupsi. mtvec [1:0] nemtokake mode ngarahake fungsi handler. nalika mtvec [1: 0] = 0, kabeh pangecualian lan interrupts nggunakake entri terpadu, IE, nalika ana pangecualian utawa interupsi, iku nguripake kanggo mtvec [31:2] nemtokake alamat dhasar kanggo eksekusi. Nalika mtvec [1: 0] = 1, pangecualian lan interrupts nggunakake mode tabel vektor, yaiku, saben pangecualian lan interupsi diwenehi nomer, lan alamat diimbangi miturut nomer interrupt*4, lan nalika ana pangecualian utawa interupsi, dipindhah. menyang alamat dhasar ditetepake dening mtvec [31:2] + nomer interrupt * 4 Execution. Tabel vektor ngganggu ngemu instruksi kanggo mlumpat menyang fungsi handler interrupt, utawa bisa instruksi liyane.
  2. Update daftar CSR
    • Nalika pangecualian utawa interupsi dilebokake, mikroprosesor kanthi otomatis nganyari ndhaftar CSR sing cocog, kalebu mesin pangecualian mode sabab ndhaftar mcause, mesin mode pangecualian pointer ndhaftar mepc, mesin mesin nilai pangecualian ndhaftar logam, lan mesin status ndhaftar status.

Nganyari mcause

Kaya sing wis kasebut sadurunge, sawise ngetik pangecualian utawa interupsi, nilai kasebut nuduhake jinis pangecualian saiki utawa nomer interupsi, lan piranti lunak bisa maca nilai registrasi iki kanggo mriksa panyebab pangecualian utawa nemtokake sumber interupsi, kaya sing rinci ing Tabel 2. -1.

Nganyari mepc

  • Définisi standar alamat bali saka mikroprosesor sawise metu saka pangecualian utawa interupsi disimpen ing mepc.
  • Dadi, nalika ana pangecualian utawa interupsi, hardware kanthi otomatis nganyari nilai mepc menyang nilai PC instruksi saiki nalika pangecualian ditemoni, utawa nilai PC instruksi sing wis ditindakake sadurunge sadurunge interupsi.
  • Sawise pangecualian utawa interupsi diproses, mikroprosesor nggunakake nilai sing disimpen minangka alamat bali kanggo bali menyang lokasi interupsi kanggo nerusake eksekusi.
  • Nanging, iku worth kang lagi nyimak sing.
  1. MEPC minangka ndhaftar sing bisa diwaca lan bisa ditulis, lan piranti lunak uga bisa ngowahi nilai kanggo ngowahi lokasi penunjuk PC sing mlaku sawise bali.
  2. Nalika ana interupsi, IE, nalika pangecualian sabab ndhaptar mcause [31] = 1, Nilai maps dianyari kanggo Nilai PC saka instruction unexecuted sabanjuré ing wektu interrupted.
    • Nalika pangecualian occurs, Nilai maps dianyari kanggo Nilai PC instruksi saka istiméwa saiki nalika pangecualian nimbulaké ndhaftar mcause [31] = 0. Dadi ing wektu iki, nalika pangecualian bali, yen kita bali langsung nggunakake nilai mepc, kita terus nglakokaké instruksi sing digawe pangecualian sadurunge, lan ing wektu iki, kita bakal terus ngetik pangecualian. Biasane, sawise kita nangani pangecualian, kita bisa ngowahi nilai mepc menyang Nilai saka instruksi unexecuted sabanjuré lan banjur bali. Kanggo example, yen kita nimbulaké pangecualian amarga nelpon / break, sawise nangani istiméwa, wiwit kelingan / break (c.ebreak punika 2 bait) punika instruction 4-bait, kita mung perlu piranti lunak kanggo ngowahi Nilai saka mepc kanggo mepc +4 (c.ebreak punika mepc+2) lan banjur bali.

Nganyari mtval

Nalika pangecualian lan interrupts mlebu, hardware bakal kanthi otomatis nganyari Nilai mtval, kang Nilai sing nyebabake pangecualian. Nilai biasane.

  1. Yen pangecualian disebabake akses memori, hardware bakal nyimpen alamat akses memori ing wektu pangecualian menyang mtval.
  2. Yen pangecualian disebabake instruksi ilegal, hardware bakal nyimpen kode instruksi instruksi menyang mtval.
  3. Yen pangecualian disebabake breakpoint hardware, hardware bakal nyimpen nilai PC ing breakpoint menyang mtval.
  4. Kanggo pangecualian liyane, hardware nyetel nilai mtval kanggo 0, kayata break, pangecualian disebabake instruksi telpon.
  5. Nalika ngetik interupsi, hardware nyetel nilai mtval dadi 0.

Nganyari mstatus

Sawise ngetik pengecualian lan interrupts, hardware nganyari bit tartamtu ing mstatus.

  1. MPIE dianyari menyang nilai MIE sadurunge ngetik pangecualian utawa interupsi, lan MPIE digunakake kanggo mulihake MIE sawise pangecualian lan interupsi rampung.
  2. MPP dianyari menyang mode istimewa sadurunge ngetik pengecualian lan interrupts, lan sawise pengecualian lan interrupts rampung, MPP digunakake kanggo mulihake mode istimewa sadurunge.
  3. Mikroprosesor QingKe V3 ndhukung nyarang interrupt ing mode Mesin, lan MIE ora bakal dibusak sawise ngetik pengecualian lan interrupts.

Nganyari mode hak istimewa mikroprosesor

  • Nalika pangecualian lan interrupts dumadi, mode hak istimewa saka microprocessor dianyari kanggo mode Machine.

Fungsi Penanganan Pengecualian

  • Nalika ngetik pangecualian utawa interupsi, microprocessor nglakokaké program saka alamat lan mode ditetepake dening mtvec register. Nalika nggunakake entri terpadu, mikroprosesor njupuk instruksi mlumpat saka alamat dhasar sing ditetepake dening mtvec [31:2] adhedhasar nilai mtvec [1], utawa entuk pangecualian lan ngganggu alamat entri fungsi nangani lan banjur nglakokake. . Ing wektu iki, fungsi pangecualian lan interupsi bisa nemtokake manawa sababe minangka pangecualian utawa interupsi adhedhasar nilai mcause[31], lan jinis lan panyebab pangecualian utawa interupsi sing cocog bisa diadili kanthi kode pangecualian. lan ditangani miturut.
  • Nalika nggunakake alamat dhasar + nomer interupsi * 4 kanggo nutup kerugian, hardware otomatis mlumpat menyang Tabel vektor kanggo njaluk alamat entri saka pangecualian utawa fungsi interrupt adhedhasar nomer interrupts lan mlumpat kanggo nglakokaké.

Exit Exit

  • Sawise pangecualian utawa interrupt handler rampung, sampeyan kudu metu saka program layanan. Sawise ngetik pengecualian lan interrupts, mikroprosesor mlebu mode Mesin saka mode Panganggo, lan pangolahan pengecualian lan interupsi uga rampung ing mode Mesin. Nalika iku perlu kanggo metu pangecualian lan interrupts, iku perlu kanggo nggunakake instruksi mret bali. Ing wektu iki, hardware mikroprosesor bakal kanthi otomatis nindakake operasi ing ngisor iki.
  • Pointer PC dibalèkaké menyang Nilai saka CSR ndhaftar mepc, IE, eksekusi diwiwiti ing alamat instruksi disimpen dening mepc. Sampeyan perlu kanggo mbayar manungsa waé kanggo operasi offset saka mepc sawise pangecualian penanganan rampung.
  • Nganyari status ndhaftar CSR, MIE dibalekake menyang MPIE, lan MPP digunakake kanggo mulihake mode istimewa saka mikroprosesor sadurunge.
  • Proses respon pangecualian kabeh bisa digambarake ing Gambar 2-1 ing ngisor iki.WH-V3-Mikroprosesor-anjir-1

PFIC lan Interrupt Control

  • Mikroprosesor QingKe V3 dirancang karo Programmable Fast Interrupt Controller (PFIC) sing bisa ngatur nganti 256 interrupts kalebu pengecualian.
  • Pisanan 16 mau tetep minangka interrupts internal saka microprocessor, lan liyane interrupts external, IE jumlah maksimum interrupts external bisa lengkap kanggo 240. Fitur utama minangka nderek.
  • 240 interupsi eksternal, saben panjalukan interupsi nduweni pemicu independen lan bit kontrol topeng, kanthi bit status khusus
  • Prioritas interupsi sing bisa diprogram ndhukung 2 tingkat nesting
  • Interupsi cepet khusus ing / metu saka mekanisme, tumpukan otomatis hardware, lan Recovery, ambane HPE maksimum 2 tingkat
  • Mekanisme respon interupsi Vector Table Free (VTF), akses langsung 2 saluran sing bisa diprogram menyang alamat vektor interupsi
  • Cathetan: Ambane nesting maksimum lan ambane HPE sing didhukung dening pengontrol interupsi beda-beda kanggo model mikroprosesor sing beda, sing bisa ditemokake ing Tabel 1-1.
  • Tabel vektor interrupts lan pengecualian ditampilake ing Tabel 3-1 ing ngisor iki.

Tabel 3-1 Pangecualian lan tabel vektor interupsi

Nomer Prioritas Jinis jeneng Katrangan
0
1
2 -5 didandani NMI Gangguan non-maskable
3 -4 didandani EXC Pangecualian interupsi
4
5 -3 didandani TELPON-M Interrupt callback mode mesin
6-7
8 -2 didandani TELPON-U Interrupt callback mode pangguna
9 -1 didandani BREAKPOINT Breakpoint callback interrupt
10-11
12 0 Bisa diprogram SysTick Gangguan wektu sistem
13
14 1 Bisa diprogram SWI Software ngganggu
15
16-255 2-241 Bisa diprogram Interupsi njaba interupsi njaba 16-255

Cathetan: ECALL-M, ECALL-U, lan BREAKPOINT kabeh macem-macem jinis pangecualian EXC, sing mandhiri ing V3B/C kanggo gampang digunakake, lan 3 alamat entri ing ndhuwur dituduhake karo EXC ing V3A.

Set Register PFIC

Tabel 3-2 Register PFIC

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_ISRx 0xE000E000

-0xE000E01C

RO Interrupt ngaktifake daftar status x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO Ngganggu registrasi status sing ditundha x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW Register konfigurasi ambang prioritas interrupt 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW Register alamat dhasar VTF

Cathetan: Valid mung kanggo V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Register konfigurasi interrupt

Cathetan: Valid mung kanggo V3A

0x00000000
PFIC_GISR 0xE000E04C RO Interrupt global status register 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

Register konfigurasi ID interrupt VTF

Cathetan: Valid mung kanggo V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x ndhaftar alamat offset 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO Interrupt ngaktifake setelan register x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO Interrupt ngaktifake daftar sing cetha x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Daftar setelan interupsi sing ditundha x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Interrupt pending clear register x 0x00000000
PFIC_IACTRx 0xE000E300

-0xE000E31C

RO Daftar status aktivasi interrupt x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW Register konfigurasi prioritas interrupt 0x00000000
PFIC_SCTLR 0xE000ED10 RW Sistem kontrol register 0x00000000

Cathetan:

  1. NMI, EXC, ECALL-M, ECALL-U, lan BREAKPOINT tansah diaktifake kanthi gawan.
  2. ECALL-M, ECALL-U, lan BREAKPOINT minangka kasus EXC.
  3. NMI, EXC, ECALL-M, ECALL-U, lan BREAKPOINT ndhukung interrupt sing nunggu operasi sing jelas lan setelan, nanging ora ngganggu ngaktifake operasi sing jelas lan setelan.

Saben register diterangake kaya ing ngisor iki:

Interrupt ngaktifake status lan ngganggu registrasi status sing ditundha (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

jeneng Alamat akses Akses Katrangan Reset nilai
 PFIC_ISR0  0xE000E000  RO Interrupt 0-31 mbisakake daftar status, total 32 bit status [n], nuduhake #n interrupt mbisakake status

Cathetan: NMI lan EXC diaktifake kanthi gawan

 Kanggo V3A: 0x0000000C

Kanggo V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO Interrupt 32-63 ngaktifake daftar status, total 32 bit status 0x00000000
PFIC_ISR7 0xE000E01C RO Interrupt 224-255 ngaktifake daftar status, total 32 bit status 0x00000000
PFIC_IPR0 0xE000E020 RO Interrupt 0-31 status pending 0x00000000
ndhaftar, total 32 status bit [n], nuduhake status nunggu interrupt #n
PFIC_IPR1 0xE000E024 RO Ngganggu 32-63 ndhaftar status sing ditundha, total 32 bit status 0x00000000
PFIC_IPR7 0xE000E03C RO Interrupt 244-255 status register, total 32 bit status 0x00000000

Rong set register digunakake kanggo ngaktifake lan mateni interrupts sing cocog.

Interrupt ngaktifake setelan lan mbusak register (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_IENR0 0xE000E100 WO Interrupt 0-31 mbisakake registrasi setelan, total 32 bit setelan [n], kanggo interrupt #n ngaktifake setelan

Cathetan: NMI lan EXC yaiku diaktifake kanthi gawan

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Interrupt 32-63 kanggo ngaktifake register setelan, total 32 bit setelan 0x00000000
PFIC_IENR7 0xE000E11C WO Interrupt 224-255 ngaktifake setelan

ndhaftar, total 32 bit setelan

0x00000000
 PFIC_IRER0  0xE000E180  WO Interrupts 0-31 ngaktifake register sing cetha, total 32 bit sing cetha [n], kanggo interupsi #n ngaktifake clear Cathetan: NMI lan EXC ora bisa dilakokno  

 

0x00000000

PFIC_IRER1 0xE000E184 WO Interrupt 32-63 mbisakake register cetha, total 32 bit cetha 0x00000000
PFIC_IRER7 0xE000E19C WO Interrupt 244-255 mbisakake register sing cetha, kanthi total 32 bit sing cetha 0x00000000

Rong set register digunakake kanggo ngaktifake lan mateni interrupts sing cocog.

Ngganggu setelan sing ditundha lan mbusak register (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

jeneng Alamat akses Akses Katrangan Reset nilai
 

PFIC_IPSR0

 

0xE000E200

 

WO

Register setelan interrupt 0-31 sing ditundha, 32

bit setelan [n], kanggo interrupt #n setelan sing ditundha

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Interrupt 32-63 pending setup register,

total 32 bit persiyapan

0x00000000
PFIC_IPSR7 0xE000E21C WO Interrupt 224-255 setelan sing ditundha

ndhaftar, 32 bit setelan total

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Interrupt 0-31 pending clear register, total 32 clear bit [n], kanggo interrupt #n

pending cetha

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Interrupt 32-63 pending register clear,

total 32 bit cetha

0x00000000
PFIC_IPRR7 0xE000E29C WO Interrupt 244-255 pending register clear,

total 32 bit cetha

0x00000000

Nalika mikroprosesor mbisakake interupsi, bisa disetel langsung liwat ndhaftar interrupted pending kanggo micu interupsi. Gunakake ndhaftar sing ora diganggu kanggo mbusak pemicu sing ditundha.

Register status aktivasi interrupt (PFIC_IACTR<0-7>)

jeneng Alamat akses Akses Katrangan Reset nilai
 PFIC_IACTR0  0xE000E300  RO Interrupt 0-31 ngaktifake register status kanthi 32 bit status [n], nuduhake yen interrupt #n lagi dieksekusi  0x00000000
 PFIC_IACTR1  0xE000E304  RO Interrupt 32-63 registrasi status aktivasi, 32 bit status ing

gunggung

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Interrupt 224-255 registrasi status aktivasi, total 32 bit status  0x00000000

Saben interupsi nduweni status bit aktif sing disetel nalika interupsi dilebokake lan dibusak dening hardware nalika pasar bali.

Prioritas interupsi lan daftar ambang prioritas (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_IPRIOR0 0xE000E400 RW Ngganggu konfigurasi prioritas 0. V3A: [7:4]: Bit kontrol prioritas Yen konfigurasi ora nested, ora ana preemption bit Yen nesting dikonfigurasi, bit7 minangka preempted bit. [3:0]: Diwenehake, tetep dadi 0  V3B: [7:6]: Bit kontrol prioritas Yen konfigurasi ora nested, ora ana preemptive bit dikonfigurasi nested, kabeh bit wis preempted, nanging nganti rong tingkat interrupts diijini kelakon [5:0]: Reserved, tetep kanggo 0
V3C:
[7:5]: Bit kontrol prioritas
Yen konfigurasi ora nested, ora ana preemptive bit
Yen dikonfigurasi nested, kabeh bit wis preempted, nanging nganti rong tingkat interrupts diijini kelakon [4: 0]: Reserved, tetep kanggo 0 Cathetan: Sing cilik nilai prioritas, sing luwih dhuwur prioritas. Yen interupsi prioritas preemption sing padha macet bebarengan, interupsi karo prioritas sing luwih dhuwur bakal dieksekusi luwih dhisik.
0x00
PFIC_IPRIOR1 0xE000E401 RW Ngganggu 1 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW Ngganggu 2 setelan prioritas, fungsi padha karo PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW Interrupt 254 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW Ngganggu 255 setelan prioritas, fungsi padha karo PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW Ngganggu setelan ambang prioritas

V3A:

[31:8]: Dilindhungi, tetep dadi 0 [7:4]: Ambang prioritas [3:0]: Dilindhungi, tetep dadi 0

 V3B:

[31:8]: Dilindhungi, tetep dadi 0 [7:5]: Ambang prioritas [4:0]: Dilindhungi, tetep dadi 0

 V3C:

[31:8]: Dilindhungi, tetep dadi 0 [7:5]: Ambang prioritas [4:0]: Dilindhungi, tetep dadi 0

Cathetan: Kanggo interrupts karo nilai prioritas ≥ batesan, fungsi layanan interrupted ora kaleksanan nalika hang ana, lan nalika ndhaftar iki 0, tegese ndhaftar batesan ora bener.

0x00

Register konfigurasi interupsi (PFIC_CFGR)

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_CFGR 0xE000E048 RW Register konfigurasi interrupt 0x00000000

Register iki mung sah kanggo V3A, bit sawijining ditetepake minangka:

bit jeneng Akses Katrangan Reset nilai
[31:16] KEYCODE WO Cocog karo bit kontrol target sing beda, data identifikasi akses keamanan sing cocog kudu ditulis bebarengan supaya bisa diowahi, lan data sing diwaca tetep dadi 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. 0
[15:8] dilindhungi RO dilindhungi 0
7 SYSRESET WO Reset sistem (tulisan bebarengan kanggo KEY3). Mbusak otomatis 0.

Nulis 1 bener, nulis 0 ora bener.

Cathetan: Fungsi sing padha karo bit SYSRESET register PFIC_SCTLR.

0
6 PFICRESET WO Reset modul PFIC. Mbusak otomatis 0.

Nulis 1 bener, nulis 0 ora bener.

0
5 EXPRESS WO Interupsi pangecualian sing durung jelas (tulisan simultan menyang KEY2)

Nulis 1 bener, nulis 0 ora bener.

0
4 EXCSET WO Pangecualian interrupt tertunda setelan (simultaneous nulis kanggo KEY2)

Nulis 1 bener, nulis 0 ora bener.

0
3 NMIRESET WO NMI interupsi ditundha cetha (nulis simultan menyang KEY2)

Nulis 1 bener, nulis 0 ora bener.

0
2 NMISET WO Setelan interupsi NMI sing ditundha (Tulisan simultan menyang KEY2)

Nulis 1 bener, nulis 0 ora bener.

0
1 NESTCTRL RW Interrupt nesting mbisakake kontrol.

1: uwal; 0: on (tulisan sinkron menyang KEY1)

0
0 HWSTKCTRL RW HPE ngaktifake kontrol

1: uwal; 0: on (tulisan sinkron menyang KEY1)

0

Interrupt global status register (PFIC_GISR)

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_GISR 0xE000E04C RO Interrupt global status register 0x00000000

Wong-wong kasebut ditetepake minangka

bit jeneng Akses Katrangan Reset nilai
[31:14] dilindhungi RO dilindhungi 0
 

 

13

 

 

LOCKSTA

 

 

RO

Apa prosesor saiki ing negara sing dikunci:

1: Status dikunci;

0: Status non-kunci.

Cathetan: Bit iki mung ditrapake kanggo V3B/C.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

Apa prosesor saiki ing negara debug: 1: Debug negara;

0: Status non-debug.

Cathetan: Bit iki mung ditrapake kanggo V3B/C.

 

 

0

 

 

11

 

 

GLOBLIE

 

 

RO

Ngaktifake gangguan global:

1: Aktifake interupsi;

0: Pateni interupsi.

Cathetan: Bit iki mung ditrapake kanggo V3B/C.

10 dilindhungi RO dilindhungi 0
9 GPENDSTA RO Apa interupsi lagi ditundha.

1: wis; 0: ora.

0
8 GACTSTA RO Apa interupsi saiki lagi ditindakake.

1: wis; 0: ora.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

Status nesting interrupt saiki. 0x03: ing level 2 interupsi.

0x01: ing tingkat 1 interupsi. 0x00: ora ana interrupts.

Liyane: Kahanan sing ora mungkin.

 

 

0

Alamat basis ID VTF lan daftar alamat offset (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

jeneng Alamat akses Akses Katrangan Reset nilai
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: 4 bit dhuwur saka alamat target VTF [27:0]: Dilindungi

Register iki mung sah kanggo V3A.

 

 

0x00000000

 

 

 

PFIC_VTFIDR

 

 

 

0xE000E050

 

 

 

RW

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

Register iki mung sah kanggo V3B/C.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: Nomer interupsi VTF 0 [23:0]: 24 bit alamat target VTF sing kurang, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0 .

 V3B/C:

[31:1]: VTF 0 alamat, 2-byte selaras [0]:

1: Aktifake saluran VTF 0

0: Pateni

 

 

 

 

 

 

 

Kanggo V3A: 0x00000000

Kanggo V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: Nomer interupsi VTF 1 [23:0]: 24 bit sing kurang saka alamat target VTF, sing 20 bit sing kurang dikonfigurasi dadi valid lan [23:20] disetel dadi 0.

 

V3B/C:

[31:1]: VTF 1 alamat, 2-byte selaras [0]:

1: Aktifake saluran VTF 1

0: Pateni

 

 

 

 

 

 

 

Kanggo V3A: 0x00000000

Kanggo V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: Nomer interupsi VTF 2 [23:0]: 24 bit alamat target VTF sing kurang, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0 .

 

V3B/C:

[31:1]: VTF 2 alamat, 2-byte selaras [0]:

1: Aktifake saluran VTF 2

0: Pateni

 

 

 

 

 

 

 

Kanggo V3A: 0x00000000

Kanggo V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: Kanggo V3A:
[31:24]: Nomer interupsi VTF 3 [23:0]: 24 bit sing kurang saka alamat target VTF, sing 20 bit sing kurang dikonfigurasi dadi valid, lan [23:20] disetel dadi 0.

 V3B/C:

[31:1]: VTF 3 alamat, 2-byte selaras [0]:

1: Aktifake saluran VTF 3

0: Pateni

0x00000000

Kanggo V3B/C: 0xXXXXXXXXX

Register kontrol sistem (PFIC_SCTLR)

jeneng Alamat akses Akses Katrangan Reset nilai
PFIC_SCTLR 0xE000ED10 RW Sistem kontrol register 0x00000000

Saben-saben ditetepake kaya ing ngisor iki.

bit jeneng Akses Katrangan Reset nilai
31 SYSRESET WO Reset sistem, otomatis mbusak 0. Tulis 1 bener, lan nulis 0 ora bener.

Cathetan: Bit iki mung valid kanggo V3B/C

0
[30:6] dilindhungi RO dilindhungi 0
5 SETEVENT WO Setel acara kanggo tangi kasus WFE. 0
 

4

SEVONPEND RW Nalika ana acara utawa interrupts negara ditundha, sistem bisa woken munggah sawise instruksi WFE, utawa yen instruksi WFE ora kaleksanan, sistem bakal woken munggah sanalika sawise eksekusi sabanjuré instruksi.

1: Acara sing diaktifake lan kabeh interupsi (kalebu interupsi sing ora diaktifake) bisa tangi sistem.

0: Mung acara aktif lan aktif

interrupts bisa tangi sistem.

 

 

 

0

3 WFITOWFE RW Jalanake printah WFI kaya-kaya WFE.

1: Nambani instruksi WFI sakteruse minangka instruksi WFE.

0: Ora ana efek.

0
2 TURU RW Mode daya kurang saka sistem kontrol. 0
1: turu 0: turu
1 SLEEPONEXI T RW Status sistem sawise kontrol ninggalake program layanan interrupt.

1: Sistem mlebu mode kurang daya.

0: Sistem mlebu program utama.

0
0 dilindhungi RO dilindhungi 0

Register CSR sing gegandhengan karo interrupt

Kajaba iku, ndhaptar CSR ing ngisor iki uga duwe pengaruh sing signifikan ing proses interupsi. Register kontrol sistem interrupt (intsyscr)

Register iki ora valid mung kanggo V3A:

jeneng CSR alamat Akses Katrangan Reset nilai
intsyscr 0x804 URW Register kontrol sistem interrupt 0x0000E002

Wong-wong kasebut ditetepake minangka:

bit jeneng Akses Katrangan Reset nilai
 

 

 

31

 

 

 

KUNCI

 

 

 

URO

0: Register iki bisa diwaca lan ditulis ing mode pangguna;

1: Register iki mung bisa diwaca lan ditulis ing mode mesin.

Cathetan: bit konfigurasi iki bener saka

versi 1.0 terus.

 

 

 

0

[30:6] dilindhungi URO dilindhungi 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

Gangguan global lan mateni tumpukan hardware diaktifake.

Cathetan: Bit iki asring digunakake ing sistem operasi wektu nyata. Nalika konteks diuripake sajrone interupsi, nyetel bit iki bisa mateni interupsi global lan nyurung tumpukan hardware. Nalika saklar konteks rampung lan interupsi bali, hardware bakal

kanthi otomatis mbusak bit iki.

 

 

 

 

 

0

4 dilindhungi URO dilindhungi 0
[3:2] PMTCFG URW Konfigurasi bit preemption prioritas:

00: Jumlah bit preemption yaiku 0; 01: Jumlah bit preemption yaiku 1; 10: Jumlah bit preemption yaiku 2; 11: Jumlah bit preemption yaiku 3; Cathetan: bit konfigurasi iki bener sawise 1.0.

0
1 NGrungokake URW Fungsi nesting interrupted diaktifake, lan nilai tetep yaiku 1: 1
0: Pateni;

1: Aktifake.

Cathetan: 1. Tingkat nesting nyata dikontrol dening NEST_LVL ing CSR 0xBC1;

2. Mung versi sawise 1.0 bisa

ditulis.

0 HWSTKEN URW Tumpukan hardware ngaktifake:

0: Fungsi mencet tumpukan hardware dipatèni;

1: Fungsi penet tumpukan hardware diaktifake.

0

Register alamat basis pengecualian mode mesin (mtvec)

jeneng CSR alamat Akses Katrangan Reset nilai
mtvec 0x305 MRW Register alamat basis pangecualian 0x00000000

Wong-wong kasebut ditetepake minangka

bit jeneng Akses Katrangan Reset nilai
[31:2] BASEADDR[31:2] MRW Alamat basis tabel vektor interrupt, ngendi

bit [9:2] tetep dadi 0.

0
1 MODE1  

MRO

Mode pangenalan tabel vektor interrupt: 0: Ngenali kanthi instruksi mlumpat, kanthi ruang lingkup winates, lan ndhukung instruksi non-jump;

1: Ngenali kanthi alamat absolut, ndhukung sawetara lengkap, nanging kudu mlumpat.

Cathetan: Bit iki mung valid kanggo V3B/C.

0
0 MODE0 MRW Pilihan mode alamat entri interrupt utawa pengecualian.

0: Panganggone alamat entri seragam.

1: Alamat offset adhedhasar nomer interrupt *4.

0

Kanggo MCU kanthi mikroprosesor seri V3, MODE0 dikonfigurasi dadi 1 minangka standar ing wiwitan. file, lan entri kanggo pangecualian utawa interupsi diimbangi miturut nomer interupsi *4. Elinga yen mikroprosesor V3A nyimpen instruksi mlumpat ing tabel vektor, dene mikroprosesor V3B / C bisa dadi instruksi mlumpat utawa nggunakake alamat mutlak fungsi interupsi, sing dikonfigurasi minangka alamat absolut ing wiwitan standar. file.

Register konfigurasi mikroprosesor (korektor)

Register iki ora sah kanggo V3A:

jeneng CSR alamat Akses Katrangan Reset nilai
corecfgr 0xBC0 MRW Register konfigurasi mikroprosesor 0x00000001

Wong-wong kasebut ditetepake minangka

bit jeneng Akses Katrangan Reset nilai
[31:8] dilindhungi MRO dilindhungi 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

Ngaktifake gangguan status inti:

0: Ing kesalahan status, ora NMI interrupt digawe;

1: Ing kesalahan status, NMI interrupt punika

kui.

 

 

0

6 dilindhungi MRO Simpen 0. 0
5 IE_REMAP_EN MRW Pemetaan register MIE ngaktifake:

0: Alamat CSR 0x800 minangka register mung diwaca lan nilai bali minangka nilai STATUS;

1: Bit 3 lan 7 saka alamat CSR 0x800 dipetakan menyang bit MIE saka register STATUS lan bit MPIE saka register STATUS.

 

 

 

 

0

4 dilindhungi MRO dilindhungi 0
3 ROM_LOOP_ACC MRW ROM area instruksi loop akselerasi ngaktifake:

0: Pateni fungsi akselerasi siklik ing area ROM;

1: Instruksi sing terus-terusan karo awak loop ing 128 bait bakal dicepetake kanthi lengkap, dene sing duwe awak loop ing 256 bait bakal dicepetake sebagian;

0
2 ROM_JUMP_ACC MRW ROM area instruksi akselerasi lompat aktif:

0: Pateni ROM area instruksi mlumpat akselerasi;

1: Aktifake akselerasi lompat instruksi ing area ROM.

0
[1:0] FETCH_MODE MRW Mode njupuk:

00: Prefetch dipateni. Fungsi prefetch instruksi dipateni kanggo ngindhari operasi njupuk instruksi sing ora bener, lan paling ora ana siji instruksi sing bener ing pipa CPU. Model iki nduweni konsumsi daya paling murah, lan kinerjane mudhun udakara 2 ~ 3 kali. 01: Mode Prefetch 1. Nalika fungsi prefetch instruksi diuripake, CPU bakal terus ngakses memori instruksi nganti jumlah instruksi sing bakal dieksekusi ing buffer instruksi internal ngluwihi nomer tartamtu, utawa buffer instruksi kebak, lan njupuk instruksi bakal dilereni soko tugas; (Gagal prediksi CPU bakal nyebabake operasi njupuk keluwih, lan ing sawetara kasus, unit eksekusi bakal ngenalake 0 ~ 2 siklus gelembung, lan kinerja akeh program ora bakal mudhun kanthi jelas); 10: Reserved;
11: Mode Prefetch 2. Nalika fungsi prefetch instruksi diuripake, CPU bakal terus ngakses memori instruksi, lan yen buffer instruksi kebak, CPU bakal terus nyoba maneh alamat. Mode iki nduweni kinerja lan konsumsi daya paling dhuwur. Gagal prediksi CPU lan nyoba maneh bakal ngenalake operasi njupuk sing berlebihan lan bisa uga terus ngenggoni bandwidth memori. (Kanggo area ROM, coba maneh tegese akses alamat sing ora terus-terusan, mula dianjurake kanggo nguripake ROM_ACC_EN).

0x1

Register kontrol bersarang interrupt (inestcr)

Register iki ora valid mung kanggo V3A:

jeneng CSR alamat Akses Katrangan Reset nilai
investor 0xBC1 MRW Register kontrol nested interrupt 0x00000000

Wong-wong kasebut ditetepake minangka

bit jeneng Akses Katrangan Reset nilai
31 dilindhungi MRO dilindhungi 0
30 NEST_OV MRW Interrupt/exception nested overflow flag bit, tulis 1 kanggo mbusak:

0: Interupsi ora kebanjiran; 1: Interrupt overflow flag.

Cathetan: Interrupt overflow mung bakal kedadeyan nalika nglakokake fungsi layanan interrupt sekunder kanggo ngasilake pengecualian instruksi utawa interupsi NMI. Ing wektu iki, pangecualian lan NMI interrupt mlebu biasane, nanging tumpukan CPU overflows, supaya sampeyan ora bisa metu saka pangecualian iki lan

NMI ngganggu.

0
[29:12] dilindhungi MRO dilindhungi 0
[11:8] NEST_STA MRO Bit gendera status bersarang:

0000: Ora ana interupsi;

0001: Interupsi level 1;

0011: level 2 interupsi (1-level nesting);

0
0111: Level 3 interupsi (overflow);

1111: Level 4 interupsi (overflow).

[7:2] dilindhungi MRO dilindhungi 0
[1:0] NEST_LVL MRW Tingkat nesting:

00: Nesting dilarang lan fungsi nesting dipateni;

01: Nesting tingkat pisanan, sing nguripake fungsi nesting;

Liyane: Ora sah.

Wigati: Tulis 10 utawa 11 ing lapangan iki, lan lapangan bakal disetel kanggo 01. Nalika nulis 11 ing lapangan iki, maca register iki kanggo njaluk tingkat nesting paling dhuwur saka chip.

0

Mode pangguna interrupt global ngaktifake register (intern)

Register iki ora valid mung kanggo V3A:

jeneng CSR alamat Akses Katrangan Reset nilai
gintenr 0x800 URW Interrupt global ngaktifake ndhaptar 0x00000000

Register iki digunakake kanggo ngontrol ngaktifake lan topeng gangguan global. Aktifake lan topeng gangguan global ing mode mesin bisa dikontrol dening bit MIE lan MPIE ing status, nanging ndhaftar iki ora bisa dilakokno ing mode pangguna.
Interrupt global ngaktifake register gintenr yaiku pemetaan MIE lan MPIE ing mstatus, lan bisa digunakake kanggo nyetel lan mbusak MIE lan MPIE kanthi operasi gintenr ing mode pangguna.

Saben wong ditetepake minangka:

bit jeneng Akses Katrangan Reset nilai
[31:13] dilindhungi URO dilindhungi 0
[12:11] MPP URO Ketik mode istimewa sadurunge gangguan. 0
[10:8] dilindhungi URO dilindhungi 0
7 MPIE URW Nalika 0xBC0(CSR)bit5 diaktifake, bit iki

bisa diwaca lan ditulis ing mode pangguna.

0
[6:4] dilindhungi URO dilindhungi 0
3 MIE URW Nalika 0xBC0(CSR)bit5 diaktifake, bit iki

bisa diwaca lan ditulis ing mode pangguna.

0
[1:0] dilindhungi URO dilindhungi 0

Ngganggu Nesting

Magepokan karo gangguan, konfigurasi ndhaftar PFIC_CFGR lan prioritas interrupt ndhaftar PFIC_IPRIOR, nesting saka interrupts bisa diijini kelakon. Aktifake nesting ing ndhaptar konfigurasi interrupt (Nesting diuripake kanthi standar kanggo mikroprosesor seri V3) lan atur prioritas interupsi sing cocog. Sing luwih cilik nilai prioritas, luwih dhuwur prioritas. Sing luwih cilik nilai bit preemption, luwih dhuwur prioritas preemption. Yen ana interrupts hanging ing wektu sing padha ing prioritas preemption padha, microprocessor nanggapi interrupts karo nilai prioritas ngisor (prioritas luwih) pisanan.

Prolog/Epilog Hardware (HPE)

  • Nalika ana pangecualian utawa interupsi, mikroprosesor mandheg aliran program saiki lan ngalih menyang eksekusi fungsi penanganan pangecualian utawa interupsi, situs aliran program saiki kudu disimpen. Sawise pangecualian utawa ngganggu bali, perlu kanggo mulihake situs kasebut lan nerusake eksekusi aliran program sing mandheg. Kanggo mikroprosesor seri V3, "situs" ing kene nuduhake kabeh ndhaptar Disimpen Penelepon ing Tabel 1-2.
  • Mikroprosesor seri V3 ndhukung panyimpenan otomatis siji-siklus hardware saka 16 register sing disimpen ing panelpon menyang area tumpukan internal sing ora katon kanggo pangguna. Nalika pangecualian utawa ngganggu bali, hardware siji siklus otomatis mulihake data saka area tumpukan internal menyang 16-shaped register. HPE ndhukung nesting nganti 2 tingkat jero.
  • Skema tumpukan tekanan mikroprosesor ditampilake ing gambar ing ngisor iki.WH-V3-Mikroprosesor-anjir-2

Cathetan:

  1. Fungsi interrupt nggunakake HPE kudu dikompilasi nggunakake MRS utawa toolchain sing diwenehake lan fungsi interrupt kudu diumumake kanthi __attribute__((interrupt("WCH-Interrupt-fast"))).
  2. Fungsi interrupt nggunakake push tumpukan diumumake dening __attribute__((interrupt())).

Tabel Vektor Gratis (VTF)

  • Programmable Fast Interrupt Controller (PFIC) nyedhiyakake 4 saluran VTF, yaiku, akses langsung menyang entri fungsi interrupt tanpa liwat proses goleki tabel vektor interrupt.
  • Saluran VTF bisa diaktifake kanthi nulis nomer interupsi, alamat basis fungsi layanan interrupt, lan alamat offset menyang register pengontrol PFIC sing cocog nalika ngonfigurasi fungsi interupsi kanthi normal.
  • Proses respon PFIC kanggo interrupts cepet lan meja-free kapacak ing Figure 3-2 ngisor.WH-V3-Mikroprosesor-anjir-3

PMP Pangreksan Memori Fisik

  • Kanggo nambah keamanan sistem, modul proteksi memori fisik (PMP) dirancang miturut standar arsitektur RISC-V kanggo mikroprosesor seri V3 saka gandum dataran tinggi. Manajemen hak akses nganti 4 wilayah fisik didhukung. Idin kalebu maca (R), nulis (W), lan nglakokaké (X) atribut, lan dawa wilayah sing dilindhungi bisa disetel kanggo paling 4 bita. Modul PMP tansah ditrapake ing mode pangguna, nanging bisa ditrapake kanthi opsional kanthi ngunci atribut (L) ing mode mesin.
  • Yen akses nerak watesan ijin saiki, bakal micu gangguan abnormal. Modul PMP kalebu papat klompok registrasi konfigurasi 8-dicokot (Siji klompok 32-dicokot) lan papat klompok ndhaptar alamat, kabeh kudu diakses ing mode mesin kanthi instruksi CSR.
  • Cathetan: Jumlah wilayah sing dilindhungi sing didhukung PMP ing macem-macem model mikroprosesor bisa uga beda-beda, lan nomer sing didhukung dening registrasi pmpcfg lan pmpaddr uga beda. Waca Tabel 1-1 kanggo rincian.

PMP Register Set

Dhaptar CSR ndhaftar didhukung dening modul PMP saka V3 microprocessor kapacak ing Tabel 4-1 ngisor.

Tabel 4-1 set register modul PMP

jeneng alamat CSR Akses Katrangan Reset nilai
pmpcfg0 0x3a0 MRW Register konfigurasi PMP 0 0x00000000
pmpaddr0 0x3b0 MRW Daftar alamat PMP 0 0xXXXXXXXXX
pmpaddr1 0x3b1 MRW Daftar alamat PMP 1 0xXXXXXXXXX
pmpaddr2 0x3b2 MRW Daftar alamat PMP 2 0xXXXXXXXXX
pmpaddr3 0x3b3 MRW Daftar alamat PMP 3 0xXXXXXXXXX

pmp

pmpcfg punika ndhaftar konfigurasi saka unit PMP, lan saben ndhaftar ngandhut papat kothak pumping 8-dicokot, cocog kanggo konfigurasi saka papat wilayah, lan pumping nggantosi Nilai konfigurasi saka wilayah i. Format kasebut ditampilake ing tabel 4-2 ing ngisor iki.

Tabel 4-2 ndhaftar pmpcfg0WH-V3-Mikroprosesor-anjir-4

pmpcfg digunakake kanggo ngatur area I lan definisi bit diterangake ing tabel ing ngisor iki 4-3.

Tabel 4-3

bit jeneng Katrangan
7 L Ngunci diaktifake lan bisa dikunci ing mode mesin. 0: Ora dikunci;

1: Ngunci register sing cocog.

[6:5] dilindhungi
[4:3] A Penyelarasan alamat lan pilihan jangkauan area perlindungan. 00: OFF (PMP mati)

01: TOR (Top alignment pangayoman) 10: NA4 (Fixed four-byte protection)

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

2 X Atribut sing bisa dieksekusi.
0: Ora nglakokake ijin;

1: Nglakokake ijin.

 

1

 

W

Atribut sing bisa ditulis.

0: Ora ana ijin nulis 1: Ijin nulis.

 

0

 

R

Atribut sing bisa diwaca

0: Ora ana ijin maca 1: Ijin maca.

pmpaddr

Register pmpaddr digunakake kanggo ngatur alamat area I. Définisi standar ing arsitektur RV32, yaiku enkoding 32 bit ndhuwur alamat fisik 34-bit, lan format kasebut ditampilake ing tabel 4-4 ing ngisor iki. .
Ruang alamat fisik kabeh mikroprosesor V3 yaiku 4G, saengga rong bit ndhuwur register iki ora digunakake.

Tabel 4-4 pmpaddrWH-V3-Mikroprosesor-anjir-5

Nalika NAPOT dipilih, bit kurang saka register alamat uga digunakake kanggo nunjukaké ukuran wilayah pangayoman saiki, minangka ditampilake ing tabel ing ngisor iki, ngendi 'y' minangka dicokot saka register.
Tabel 4-5 Tabel hubungan antarane konfigurasi PMP lan register alamat lan wilayah sing dilindhungi.

pmpaddr pmpcfg. A Cocog alamat dhasar lan ukuran
yyyy…yyyy NA4 Kanthi 'yy…yyyy00' minangka alamat dhasar, area 4-byte dilindhungi.
yyy…yyy0 NAPOT Kanthi 'yy…yyy000' minangka alamat dhasar, area 8-byte dilindhungi.
yyyy…yy01 NAPOT Kanthi 'yy…yy0000' minangka alamat dhasar, area 16-byte dilindhungi.
yyyy…y011 NAPOT Kanthi 'yy…y00000' minangka alamat dhasar, area 16-byte dilindhungi.
yyy01…111 NAPOT Kanthi 'y0…000000' minangka alamat dhasar, area 231-byte dilindhungi.
yy011…111 NAPOT Nglindhungi kabeh area 232-bait.

Mekanisme pangayoman

X/W/R ing pmpcfg digunakake kanggo nyetel wewenang pangayoman wilayah I, lan nglanggar wewenang sing relevan bakal nyebabake pangecualian sing cocog:

  1. Nalika nyoba njupuk instruksi ing wilayah PMP tanpa wewenang eksekusi, bakal nyebabake pangecualian kesalahan akses njupuk instruksi (mcause=1).
  2. Nalika nyoba kanggo nulis data ing wilayah PMP tanpa idin ditulis, bakal nimbulaké pangecualian kesalahan (mcause = 7) ing akses instruction nyimpen.
  3. Nalika nyoba kanggo maca data ing wilayah PMP tanpa ijin maca, bakal nimbulaké kesalahan akses memori abnormal (mcause = 5) kanggo instruksi mbukak.

A ing pmpcfg digunakake kanggo nyetel jangkoan proteksi lan penyelarasan alamat wilayah I, lan kanggo nglindhungi memori A_ADDR ≤ wilayah <i > <B_ADDR (loro A_ADDR lan B_ADDR kudu didadekake siji ing 4 bita):

  1. Yen B _ ADDR–A_ADDR = = 22, mode NA4 diadopsi;
  2. Yen B _ ADDR–A_ADDR = = 2(G+2), G≥1, lan alamat _ yaiku 2(g+2), metode NAPOT diadopsi;
  3. Yen ora, mode TOP diadopsi.

Tabel 4-6 metode pencocokan alamat PMP

A nilai jeneng Katrangan
0b00 OFF Ora ana wilayah kanggo nglindhungi
0b01 TOR Proteksi Area Selaras Top.

Ing pmp

pmpaddri = B_ADDR >> 2.

Cathetan: Yen area 0 PMP dikonfigurasi minangka mode TOR (i=0), wates ngisor area proteksi yaiku 0 alamat, yaiku 0 ≤ addr < pmpaddr0, kabeh ana ing kisaran sing cocog.

0b10 NA4 Ndandani proteksi area 4-bait.

pmp

0b11 NAPOT Nglindhungi wilayah 2(G+2) nganggo G ≥ 1, nalika A_ADDR 2(G+2) didadekake siji. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1.
  • Bit L ing pmp
  • Mikroprosesor seri QingKe V3 ndhukung perlindungan sawetara zona. Nalika operasi sing padha cocog karo sawetara zona ing wektu sing padha, zona kanthi nomer sing luwih cilik dicocogake dhisik.

Timer Sistem (SysTick)

  • Mikroprosesor seri QingKe V3 dirancang kanthi counter 32-bit utawa 64-bit (SysTick) ing njero. Sumber jam kasebut yaiku jam sistem utawa divisi 8 frekuensi, lan V3A mung ndhukung divisi 8 frekuensi.
  • Bisa nyedhiyakake basis wektu, wektu, lan wektu pangukuran kanggo sistem operasi wektu nyata. Macem-macem jinis ndhaptar sing melu timer duwe alamat pemetaan sing beda, kaya sing ditampilake ing tabel 5-1 lan 5-2 ing ngisor iki.

Tabel 5-1 V3A SysTick dhaftar dhaftar

jeneng Alamat akses Katrangan Reset nilai
STK_CTLR 0xE000F000 Register kontrol counter sistem 0x00000000
STK_CNTL 0xE000F004 Sistem counter low register 0xXXXXXXXXX
STK_CNTH 0xE000F008 Sistem counter dhuwur register

Cathetan: Mung valid kanggo V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C Sistem count comparison Nilai register kurang 0xXXXXXXXXX
STK_CMPHR 0xE000F010 Sistem count comparison Nilai dhuwur register

Cathetan: Mung valid kanggo V3A.

0xXXXXXXXXX

Tabel 5-2 V3 SysTick dhaftar dhaftar model liyane

jeneng Alamat akses Katrangan Reset nilai
STK_CTLR 0xE000F000 Register kontrol counter sistem 0x00000000
STK_SR 0xE000F004 Register status counter sistem 0x00000000
STK_CNTL 0xE000F008 Register kurang saka counter sistem 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Count nilai comparison low register 0xXXXXXXXXX

Saben register diterangake kanthi rinci kaya ing ngisor iki.

Register kontrol counter sistem (STK_CTLR)

Tabel 5-3 Register kontrol SysTick

bit jeneng Akses Katrangan Reset nilai
[31:5] dilindhungi RO dilindhungi 0
 

 

4

 

 

MODE

 

 

RW

Mode ngetang: 1: Ngitung mudhun;

0: Ngitung.

Cathetan: Ora sah kanggo V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Ngitung ulang otomatis ngaktifake bit:

1: Count saka 0 maneh sawise ngetung nganti nilai comparison, lan count saka nilai comparison maneh sawise count mudhun kanggo 0;

0: Terus ngitung munggah/mudhun.

Cathetan: Ora sah kanggo V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Bit pilihan sumber counterclock:

1: HCLK minangka basis wektu; 0: HCLK / 8 minangka basis wektu.

Cathetan: Iku ora sah kanggo V3A, sing mung ndhukung

HCLK / 8 minangka basis wektu.

 

 

0

1 SITUS RW Counter interrupt ngaktifake bit kontrol: 0
1: Aktifake counter interrupt; 0: Pateni interupsi counter.

Cathetan: Ora sah kanggo V3A.

0 STE RW Sistem counter mbisakake dicokot kontrol. 1: Aktifake sistem counter STK;

0: Pateni sistem counter STK lan counter mandheg ngetang.

0

Register status counter sistem (STK_SR)

Register iki ora ditrapake kanggo V3A.

Tabel 5-4 SysTick counter low register

bit jeneng Akses Katrangan Reset nilai
 

 

31

 

 

SWIE

 

 

RW

Software interrupt trigger enable (SWI): 1: Trigger software interrupt;

0: Pateni pemicu.

Cathetan: Bit iki kudu dibusak sawise ngetik interupsi piranti lunak, yen ora, iku bakal tansah micu.

 

 

0

[30:1] dilindhungi RO dilindhungi 0
 

 

0

 

 

CNTIF

 

 

RW

Ngitung gendera perbandingan, tulis 0 kanthi cetha, tulis 1 ora bener:

1: Count nganti nilai comparison lan count mudhun kanggo 0;

0: Nilai perbandingan ora tekan.

 

 

0

Sistem counter low register (STK_CNTL)

Tabel 5-5 SysTick counter low register

bit jeneng Akses Katrangan Reset nilai
[31:0] CNTL RW Nilai count counter saiki 32 bit luwih murah. Kanggo V3A, register iki bisa diwaca minangka 8-bit /16-bit

/32-dicokot, nanging mung bisa ditulis minangka 8-dicokot, lan liyane

model ora winates.

0xXXXXXX XXX

Cathetan: Register STK_CNTL lan ndhaftar STK_CNTH ing V3A bebarengan dadi counter sistem 64-bit.

Sistem counter high register (STK_CNTH)

Tabel 5-6 SysTick counter dhuwur register

bit jeneng Akses Katrangan Reset nilai
[31:0] CNTH RW Nilai count counter saiki 32 bit luwih dhuwur. Register iki bisa diwaca kanthi 8-bit/16-bit/32-bit, nanging mung bisa ditulis kanthi 8-bit.

Cathetan: Mung valid kanggo V3A.

0xXXXXXX XXX

Cathetan: Register STK_CNTL lan ndhaftar STK_CNTH ing V3A bebarengan dadi counter sistem 64-bit.

Sistem count comparison value low register (STK_CMPLR)

Tabel 5-7 SysTick nilai comparison low register

bit jeneng Akses Katrangan Reset nilai
[31:0] CMPL RW Setel nilai perbandingan counter dadi 32 bit luwih murah. Nalika nilai CMP lan nilai CNT padha, gangguan STK bakal micu. Kanggo V3A, register iki bisa diwaca minangka 8-bit /16-bit /32-bit, nanging mung bisa

ditulis minangka 8-dicokot, lan model liyane ora winates.

0xXXXXXX XXX

Cathetan: Register STK_CMPLR lan register STK_CMPHR ing V3A bebarengan dadi nilai 64-bit counter comparison.

Sistem count comparison value register dhuwur (STK_CMPHR)

Tabel 5-8 SysTick nilai comparison dhuwur register

bit jeneng Akses Katrangan Reset nilai
[31:0] CMPH RW Setel nilai perbandingan counter 32 bit luwih dhuwur. Interupsi STK bakal dipicu nalika nilai CMP lan nilai CNT padha.

Register iki bisa diwaca kanthi 8-bit/16-bit/32-bit, nanging mung bisa ditulis kanthi 8-bit.

Cathetan: Mung valid kanggo V3A.

0xXXXXXX XXX

Cathetan: Register STK_CMPLR lan register STK_CMPHR ing V3A bebarengan dadi nilai 64-bit counter comparison.

Prosesor Setelan Low-daya

  • Mikroprosesor seri QingKe V3 ndhukung kahanan turu liwat instruksi WFI (Ngenteni Interrupt) kanggo entuk konsumsi daya statis sing kurang.
  • Bebarengan karo register kontrol sistem PFIC (PFIC_SCTLR), macem-macem mode Turu lan instruksi WFE bisa dileksanakake.

Ketik Turu

  • Mikroprosesor seri QingKe V3 bisa turu kanthi rong cara, Enteni Interrupt (WFI) lan Enteni Acara (WFE). Cara WFI tegese mikroprosesor turu, ngenteni interupsi tangi, lan banjur tangi kanggo interupsi sing cocog kanggo dieksekusi. Cara WFE tegese mikroprosesor turu, ngenteni acara tangi, lan tangi kanggo nerusake nglakokake aliran program sing mandheg sadurunge.
  • RISC-V standar ndhukung instruksi WFI, lan printah WFI bisa kaleksanan langsung kanggo ngetik turu dening cara WFI. Kanggo cara WFE, bit WFITOWFE ing sistem kontrol register PFIC_SCTLR digunakake kanggo ngontrol printah WFI sakteruse minangka Processing WFE kanggo entuk cara WFE kanggo ngetik turu.
  • Jero turu dikontrol miturut bit SLEEPDEEP ing PFIC_SCTLR.
  • Yen SLEEPDEEP ing register PFIC_SCTLR wis dibusak kanggo nul, mikroprosesor lumebu ing mode Turu lan jam unit internal diijini dipateni kajaba SysTick lan bagéan saka logika tangi.
  • Yen SLEEPDEEP ing registrasi PFIC_SCTLR disetel, mikroprosesor mlebu mode turu jero lan kabeh jam sel diijini dipateni.
  • Nalika mikroprosesor ana ing mode Debug, ora bisa ngetik mode Turu apa wae.

Tangi turu

Mikroprosesor seri QingKe V3 bisa tangi sawise turu amarga WFI lan WFE kanthi cara ing ngisor iki.

Sawise cara WFI dadi turu, bisa awakened dening

  1. Mikroprosesor bisa tangi kanthi sumber interupsi sing ditanggapi dening pengontrol interupsi. Sawise tangi, mikroprosesor nindakake fungsi interupsi dhisik.
  2. Ketik mode Turu, panyuwunan debug bisa nggawe mikroprosesor tangi lan turu turu, panyuwunan debug ora bisa tangi mikroprosesor.

Sawise cara WFE turu, mikroprosesor bisa tangi kanthi cara ing ngisor iki.

  1. Acara internal utawa eksternal, nalika ora perlu ngatur pengontrol interupsi, tangi lan terus nglakokake program kasebut.
  2. Yen sumber interupsi diaktifake, mikroprosesor bakal tangi nalika interupsi digawe, lan sawise tangi, mikroprosesor nindakake fungsi interupsi dhisik.
  3. Yen bit SEVONPEND ing PFIC_SCTLR dikonfigurasi, pengontrol interupsi ora ngaktifake interupsi, nanging nalika sinyal sing ditundha interupsi anyar digawe (sinyal sing ditundha sadurunge ora ditrapake), bisa uga nggawe mikroprosesor tangi, lan gendéra sing ditundha interupsi sing cocog kudu dibusak kanthi manual sawise tangi.
  4. Ketik panjalukan debug mode Turu bisa nggawe mikroprosesor tangi lan mlebu turu jero, panyuwunan debug ora bisa tangi mikroprosesor.
  • Kajaba iku, kahanan mikroprosesor sawise tangi bisa dikontrol kanthi ngonfigurasi bit SLEEPONEXIT ing PFIC_SCTLR.
  • SLEEPONEXIT disetel lan instruksi bali interrupt tingkat pungkasan (mret) bakal micu mode WFI turu.

SLEEPONEXIT dibusak tanpa efek.

Macem-macem produk MCU sing dilengkapi mikroprosesor seri V3 bisa nganggo mode turu sing beda-beda, mateni peripheral lan jam sing beda-beda, ngleksanakake kabijakan manajemen daya lan cara tangi sing beda-beda miturut konfigurasi PFIC_SCTLR sing beda-beda, lan ngerteni macem-macem mode kurang daya.

Dhukungan Debug

  • Mikroprosesor seri QingKe V3 kalebu modul debug hardware sing ndhukung operasi debugging kompleks. Nalika microprocessor wis dilereni soko tugas, modul debug bisa ngakses GPRs microprocessor, CSRs, Memori, piranti external, etc.. liwat printah abstrak, instruksi panyebaran buffer program, etc.. Modul debug bisa nundha lan nerusake operasi microprocessor.
  • Modul debug nderek spesifikasi RISC-V External Debug Support Version0.13.2, dokumentasi rinci bisa didownload saka RISC-V International websitus.

Modul Debug

  • Modul debug ing mikroprosesor, sing bisa nindakake operasi debug sing ditanggepi dening host debug, kalebu.
  • Akses menyang ndhaptar liwat antarmuka debug
  • Reset, nundha, lan nerusake mikroprosesor liwat antarmuka debug
  • Maca lan nulis memori, ndhaptar instruksi, lan piranti eksternal liwat antarmuka debug
  • Nyebarake sawetara instruksi sembarang liwat antarmuka debug
  • Setel breakpoints piranti lunak liwat antarmuka debug
  • Setel breakpoints hardware liwat antarmuka debug
  • Ndhukung eksekusi otomatis printah abstrak
  • Dukungan single-step debugging
  • Cathetan: V3A ora ndhukung breakpoints hardware, V3B hardware breakpoints ndhukung instruksi cocog alamat, lan V3C hardware breakpoints ndhukung alamat instruksi lan cocog alamat data.
  • Register internal modul debugging nggunakake kode alamat 7-bit, lan ndhaftar ing ngisor iki dileksanakake ing mikroprosesor seri QingKe V3.

Tabel 7-1 Daftar registrasi modul Debug

jeneng Alamat akses Katrangan
data0 0x04 Data register 0, bisa digunakake kanggo panyimpenan sementara data
data1 0x05 Data register 1, bisa digunakake kanggo panyimpenan sementara data
dekontrol 0x10 Debug modul kontrol register
dmstatus 0x11 Register status modul debug
hartinfo 0x12 Daftar status mikroprosesor
abstrak 0x16 Daftar status perintah abstrak
dhawuh 0x17 Register printah abstrak
otomatis abstrak 0x18 Eksekusi otomatis printah abstrak
progbuf0-7 0x20-0x27 Register cache instruksi 0-7
mandeg0 0x40 Ngaso daftar status
  • Host debug bisa ngontrol penundaan mikroprosesor, nerusake, ngreset, lan sapiturute kanthi ngatur daftar dekontrol. Standar RISC-V nemtokake telung jinis perintah abstrak: register akses, akses cepet, lan memori akses.
  • Mikroprosesor QingKe V3A mung ndhukung akses registrasi, model liyane ndhukung ndhaptar lan akses memori, nanging ora akses cepet. Akses menyang ndhaptar (GPR, CSR) lan akses terus menyang memori bisa diwujudake kanthi printah abstrak.
  • Modul debug ngleksanakake 8 instruksi cache ndhaftar progbuf0-7, lan inang debug bisa cache sawetara instruksi (kang bisa dikompres instruksi) menyang buffer lan bisa milih terus nglakokaké instruksi ing instruksi cache ndhaftar sawise nglakokaké printah abstrak utawa nglakokaké instruksi cache langsung.
  • Cathetan yen instruksi pungkasan ing program kasebut kudu instruksi "ebreak" utawa "c.ebreak". Akses menyang panyimpenan, peripheral, lan sapiturute uga bisa liwat printah abstrak lan instruksi cache ing program.
  • Saben register diterangake kanthi rinci kaya ing ngisor iki.
  • Daftar data 0 (data0)

Tabel 7-2 definisi register data

bit jeneng Akses Katrangan Reset Nilai
[31:0] data0 RW Register data 0, digunakake kanggo panyimpenan sementara data 0

Daftar data 1 (data1)

Tabel 7-3 definisi registrasi data1

bit jeneng Akses Katrangan Reset Nilai
[31:0] data1 RW Register data 1, digunakake kanggo panyimpenan sementara data 0

Register kontrol modul debug (dekontrol)

Register iki ngontrol jeda, ngreset, lan nerusake mikroprosesor. Host debug nulis data menyang kolom sing cocog kanggo entuk ngaso (haltreq), ngreset (ndmreset), nerusake (resumereq). Sampeyan njlèntrèhaké ing ngisor iki.

Tabel 7-4 definisi registrasi dekontrol

bit jeneng Akses Katrangan Reset Nilai
31 haltreq WO 0: Mbusak panjalukan ngaso

1: Kirimi panjalukan ngaso

0
30 resumereq W1 0: Ora sah

1: Mulihake mikroprosesor saiki

Wigati: Tulis 1 bener lan hardware wis dibusak sawise mikroprosesor mbalekake

0
29 dilindhungi RO dilindhungi 0
28 ackhavereset W1 0: Ora sah

1: Mbusak bit status panen mikroprosesor

0
[27:2] dilindhungi RO dilindhungi 0
1 ndmreset RW 0: Mbusak reset

1: Reset kabeh sistem liyane saka modul debug

 

0

0 mateni RW 0: Reset modul debug

1: Modul Debug dianggo kanthi bener

0

Daftar status modul debug (status dm)

  • Register iki digunakake kanggo nunjukake status modul debug lan minangka register mung diwaca kanthi katrangan saben bit ing ngisor iki.

Tabel 7-5 Dhéfinisi daftar dmstatus

bit jeneng Akses Katrangan Reset Nilai
[31:20] dilindhungi RO dilindhungi 0
19 kabeh wis ngreset RO 0: Ora sah

1: Reset mikroprosesor

0
18 wis ngreset RO 0: Ora sah

1: Reset mikroprosesor

0
17 allresumeck RO 0: Ora sah

1: Reset mikroprosesor

0
16 anyresumeck RO 0: Ora sah

1: Reset mikroprosesor

0
[15:14] dilindhungi RO dilindhungi 0
13 aluvial RO 0: Ora sah

1: Mikroprosesor ora kasedhiya

0
12 sembarang entuk manfaat RO 0: Ora sah

1: Mikroprosesor ora kasedhiya

0
11 kabeh mlaku RO 0: Ora sah

1: Mikroprosesor mlaku

0
10 sembarang mlaku RO 0: Ora sah

1: Mikroprosesor mlaku

0
9 mandheg RO 0: Ora sah

1: Mikroprosesor ana ing suspensi

0
8 sembarang mandeg RO 0: Ora sah

1: Mikroprosesor metu saka suspensi

0
7 diotentikasi  

RO

0: Otentikasi dibutuhake sadurunge nggunakake modul debug

1: Modul debugging wis disertifikasi

 

0x1

[6:4] dilindhungi RO dilindhungi 0
[3:0] versi RO Debugging sistem ndhukung arsitektur versi 0010: V0.13 0x2

Daftar status mikroprosesor (hartinfo)

Register iki digunakake kanggo nyedhiyakake informasi babagan mikroprosesor menyang host debug lan minangka register mung diwaca kanthi saben bit diterangake kaya ing ngisor iki.

Tabel 7-6 definisi register hartinfo

bit jeneng Akses Katrangan Reset Nilai
[31:24] dilindhungi RO dilindhungi 0
[23:20] ngeruk RO Jumlah ndhaftar scratch didhukung 0x3
[19:17] dilindhungi RO dilindhungi 0
16 DataAccess RO 0: Daftar data dipetakan menyang alamat CSR

1: Register data dipetakan menyang alamat memori

0x1
[15:12] ukuran data RO Jumlah register data 0x2
  [11:0] data nambah  

RO

Alamat offset saka data register data0,

alamat dhasar 0xe0000000, tundhuk maca tartamtu.

0xXXX

Kontrol printah abstrak lan daftar status (abstrak)

Register iki digunakake kanggo nuduhake eksekusi printah abstrak. Host debug bisa maca register iki kanggo ngerti apa printah abstrak pungkasan wis kaleksanan utawa ora lan bisa mriksa apa kesalahan kui sak eksekusi printah abstrak lan jinis kesalahan, kang diterangake ing rinci minangka nderek.

Tabel 7-7 abstrak ndhaftar definisi

bit jeneng Akses Katrangan Reset Nilai
[31:29] dilindhungi RO dilindhungi 0
[28:24] progbufsize RO Nuduhake nomer program buffer program

ndhaftar cache

0x8
[23:13] dilindhungi RO dilindhungi 0
12 sibuk RO 0: Ora ana printah abstrak sing ditindakake

1: Ana perintah abstrak sing ditindakake

Cathetan: Sawise eksekusi, hardware wis dibusak.

 

0

11 dilindhungi RO dilindhungi 0
[10:8] cmder RW Tipe kesalahan printah abstrak 000: Ora ana kesalahan

001: Eksekusi printah abstrak kanggo nulis menyang printah, abstrak, registrasi otomatis abstrak utawa maca lan nulis menyang data lan daftar progbuf

010: Ora ndhukung printah abstrak saiki 011: Eksekusi printah abstrak kajaba 100: Mikroprosesor ora ditanggepi utawa ora kasedhiya lan ora bisa nglakokake printah abstrak 101: Kesalahan bus

110: Kesalahan bit parity sajrone komunikasi 111: Kesalahan liyane

Cathetan: Kanggo nulis bit 1 digunakake kanggo mbusak nul.

 

 

 

 

 

 

 

0

[7:4] dilindhungi RO dilindhungi 0
[3:0] diskon RO Jumlah register data 0x2
  • Host debugging bisa ngakses GPRs, register CSR, lan memori kanthi nulis nilai konfigurasi sing beda menyang register printah abstrak.
  • Nalika ngakses register, bit register printah ditetepake kaya ing ngisor iki.
  • Tabel 7-8 Definisi register printah nalika ngakses register
bit jeneng Akses Katrangan Reset Nilai
[31:24] jinis cmd WO Tipe printah abstrak 0: Register akses;

1: Akses cepet (ora didhukung);

2: Akses menyang memori.

0
23 dilindhungi WO dilindhungi 0
[22:20] arsa WO Akses register data bit width 000: 8-bit

001: 16-dicokot

010: 32-dicokot

0
011: 64-bit (ora didhukung) 100: 128-bit (ora didhukung)

Cathetan: Nalika ngakses register floating-point

FPR, mung akses 32-bit sing didhukung.

19 aarpostincrement WO 0: Ora ana efek

1: Tambah nilai regno kanthi otomatis sawise ngakses registrasi

 

0

18 pos eksekusi WO 0: Ora ana efek

1: Jalanake printah abstrak banjur jalanake printah ing progbuf

 

0

17 transfer WO 0: Aja nglakokaké operasi kasebut kanthi nulis

1: Nglakokake manipulasi sing ditemtokake kanthi nulis

0
16 nulis WO 0: Salin data saka register sing ditemtokake menyang data0 1: Salin data saka daftar data0 menyang daftar sing ditemtokake  

0

[15:0] rego WO Nemtokake register akses 0x0000-0x0fff minangka CSR 0x1000-0x101f minangka GPR  

0

Nalika ngakses memori, bit ing register printah ditetepake minangka nderek.

Tabel 7-9 Definition saka printah Register nalika Ngakses memori

bit jeneng Akses Katrangan Reset Nilai
[31:24] jinis cmd WO Tipe printah abstrak 0: Register akses;

1: Akses cepet (ora didhukung);

2: Ngakses memori.

0
23 aamvirtual WO 0: Akses alamat fisik;

1: Akses alamat virtual.

0
[22:20] ukuran lengan WO Ngakses data memori ambane bit 000: 8-bit;

001: 16-dicokot;

010: 32-dicokot;

011: 64-bit (ora didhukung); 100: 128-bit (ora didhukung);

 

0

19 aampostincrement WO 0: Ora ana pengaruh;

1: Sawise ngakses memori kanthi sukses, tambahake alamat sing disimpen ing register data1 kanthi jumlah bita sing cocog karo ambane bit sing dikonfigurasi kanthi ukuran lengen.

Aamsize=0, diakses dening byte, data1 plus 1.

Aamsize=1, diakses kanthi setengah tembung, data1 ditambah 2. aamsize=2, diakses kanthi bit, data1 ditambah 4.

 

0

18 pos eksekusi WO 0: Ora ana pengaruh;

1: Jalanake printah ing progbuf sawise nglakokake printah abstrak.

0
17 Cadangan RO dilindhungi 0
 

 

16

 

 

nulis

 

 

WO

0: Waca data saka alamat sing ditemtokake dening data1 nganti data0

1: Tulis data ing data0 menyang alamat sing ditemtokake dening

data1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

target-tartamtu

 

 

 

 

 

 

WO

Definisi mode maca lan nulis Tulis:

00, 01: Tulis langsung menyang memori;

10: Sawise data ing data0 UTAWA karo bit data ing memori, asil ditulis ing memori (Mung akses tembung didhukung).

11: Sawise nyimpulake data ing data0 karo bit data ing memori, tulis asil menyang memori (Mung akses tembung sing didhukung).

maca:

00, 01, 10, 11: Waca 0 langsung saka memori.

 

 

 

 

 

 

0

[13:0] Cadangan RO dilindhungi

Register eksekusi otomatis printah abstrak (otomatis abstrak)

Register iki digunakake kanggo ngatur modul debugging. Nalika maca lan nulis progbufx lan data saka modul debugging, printah abstrak bisa kaleksanan maneh.

Katrangan saka register iki kaya ing ngisor iki:

Tabel 7-10 definisi register otomatis abstrak

bit jeneng Akses Katrangan Reset Nilai
[31:16] autoexecprogbuf RW Yen dicokot wis disetel, maca lan nulis progbufx cocog bakal nimbulaké printah abstrak ing ndhaftar printah kanggo kaleksanan maneh.

Cathetan: Seri V3 dirancang kanthi 8 progbuf, cocog karo bit [23:16].

 

0

[15:12] Cadangan RO dilindhungi 0
[11:0] autoexecdata  

RW

Yen dicokot disetel kanggo 1, maca lan nulis cocog ndhaftar data bakal nimbulaké printah abstrak ing ndhaftar Command bakal kaleksanan maneh.

Cathetan: seri V3 dirancang kanthi rong data register, cocog karo bit [1:0].

0

Register cache instruksi (progbufx)

Register iki digunakake kanggo nyimpen instruksi sembarang, lan masang operasi cocog, kalebu 8, kang perlu kanggo mbayar manungsa waé kanggo eksekusi pungkasan sing kudu "break" utawa "c.ebreak".

Tabel 7-11 progbuf ndhaftar definisi

bit jeneng Akses Katrangan Reset Nilai
[31:0] progbuf RW Enkoding instruksi kanggo operasi cache, kang

bisa uga kalebu instruksi komprèsi

0

Ngaso daftar status (haltsum0)

Register iki digunakake kanggo nunjukake apa mikroprosesor dilereni soko tugas utawa ora. Saben bit nuduhake status dilereni soko tugas saka microprocessor, lan nalika ana mung siji inti, mung bit paling saka register iki digunakake kanggo nunjukaké.

Tabel 7-12 haltsum0 ndhaftar definisi

bit jeneng Akses Katrangan Reset Nilai
[31:1] dilindhungi RO dilindhungi 0
0 mandeg0 RO 0: Mikroprosesor beroperasi kanthi normal

1: Mikroprosesor mandeg

0
  • Saliyane ndhaftar modul debug sing kasebut ing ndhuwur, fungsi debug uga kalebu sawetara ndhaptar CSR, utamane kontrol debug lan ndhaftar status dcsr lan dpc petunjuk instruksi debug, sing diterangake kanthi rinci kaya ing ngisor iki.
  • Kontrol debug lan daftar status (dcsr)

Tabel 7-13 Définisi register dcsr

bit jeneng Akses Katrangan Reset Nilai
[31:28] xdebugver DRO 0000: Debugging eksternal ora didhukung 0100: Ndhukung debugging eksternal standar

1111: Debugging eksternal didhukung, nanging ora ketemu

spesifikasi

 

 

0x4

[27:16] dilindhungi DRO dilindhungi 0
15 putus DRW 0: Printah break ing mode mesin tumindak minangka diterangake ing hak istimewa file

1: Printah break ing mode mesin bisa ngetik mode debug

 

 

0

[14:13] dilindhungi DRO dilindhungi 0
12 putus  

DRW

0: Printah break ing mode pangguna tumindak kaya sing diterangake ing hak istimewa file

1: Perintah break ing mode pangguna bisa mlebu mode debug

 

 

0

11 langkah DRW 0: Interrupts dipateni ing siji-langkah debugging

1: Aktifake interrupts ing siji-langkah debugging

0
10 dilindhungi DRO dilindhungi 0
9 wektu mandheg DRW 0: Timer sistem mlaku ing mode Debug

1: Timer sistem mandheg ing mode Debug

0
  [8:6] sabab DRO Alasan kanggo ngetik debugging

001: Ngetik debugging ing wangun perintah break (prioritas 3)

010: Ngetik debugging ing wangun modul pemicu (prioritas 4, paling dhuwur)

011: Ngetik debugging ing wangun panyuwunan ngaso (prioritas 1)

100: debugging ing wangun single-step debugging

(prioritas 0, paling murah)

0
101: ketik mode debug langsung sawise microprocessor reset (prioritas 2) Liyane: Reserved
[5:3] dilindhungi DRO dilindhungi 0
2 langkah DRW 0: Pateni debugging siji-langkah

1: Aktifake single-step debugging

0
[1:0] Prev DRW Mode hak istimewa 00: Mode pangguna

01: Mode Supervisor (ora didhukung) 10: Reserved

11: Mode mesin

Cathetan: Rekam mode istimewa nalika ngetik mode debug, debugger bisa ngowahi nilai iki kanggo ngowahi mode istimewa nalika metu saka debug

 

 

 

 

0

Debug mode program pointer (DPC)

  • Register iki digunakake kanggo nyimpen alamat instruksi sabanjuré bakal kaleksanan sawise microprocessor lumebu ing mode debug, lan regane dianyari karo aturan beda gumantung ing alesan kanggo ngetik debug. dpc register diterangake ing rinci minangka nderek.

Tabel 7-14 dhéfinisi register dpc

bit jeneng Akses Katrangan Reset Nilai
[31:0] DPC DRW Alamat instruksi 0

Aturan kanggo nganyari register ditampilake ing tabel ing ngisor iki.

Tabel 7-15 aturan nganyari dpc

Ketik cara debugging aturan nganyari dpc
putus Alamat instruksi Ebreak
langkah siji Alamat instruksi instruksi sabanjure instruksi saiki
modul pemicu Ora didhukung kanggo sementara
mandegake panjaluk Alamat instruksi sabanjure sing bakal ditindakake nalika ngetik Debug

Antarmuka Debug

  • Beda karo standar JTAG antarmuka ditetepake dening RISC-V, QingKe V3 seri microprocessor adopts 1- kabel / 2-kabel antarmuka debug serial lan nderek WCH debug antarmuka protokol V1.0.
  • Antarmuka debug tanggung jawab kanggo komunikasi antarane inang debug lan modul debug lan nyadari operasi maca / nulis saka inang debug kanggo ndhaftar modul debug.
  • WCH ngrancang WCH_Link lan mbukak sumber skema lan program binar files, kang bisa digunakake kanggo debugging kabeh microprocessors arsitektur RISC-V.
  • Deleng Manual Protokol Debug WCH kanggo protokol antarmuka debug tartamtu.

Daftar CSR Register

  • Arsitektur RISC-V nemtokake sawetara Register Kontrol lan Status (CSR) kanggo ngontrol lan ngrekam status operasi mikroprosesor.
  • Sawetara CSR wis ngenalaken ing bagean sadurungé, lan bab iki bakal rinci CSR ndhaftar dileksanakake ing QingKe V3 microprocessors seri.

Daftar CSR Register

Tabel 8-1 Daftar Register CSR Mikroprosesor

Jinis jeneng CSR alamat Akses Katrangan
RISC-V

CSR standar

marchid 0xf12 MRO Register nomer arsitektur
mimpid 0xf13 MRO Register penomoran implementasi hardware
status 0x300 MRW Ndhaptar status
misa 0x301 MRW Register set instruksi hardware
mtvec 0x305 MRW Register alamat basis pangecualian
mscratch 0x340 MRW Mode mesin staging register
MEPC 0x341 MRW Register pointer program pengecualian
sebabe 0x342 MRW Register sabab pangecualian
mtval 0x343 MRW Register nilai pangecualian
pmpcfg 0x3A0+i MRW Register konfigurasi PMP
pmpaddr 0x3B0+i MRW Register alamat PMP
milih 0x7a0 MRW Register pilihan pemicu debug
tdata1 0x7a1 MRW Register data pemicu debug 1
tdata2 0x7a2 MRW Register data pemicu debug 2
dcsr 0x7b0 DRW Kontrol debug lan daftar status
dpc 0x7b1 DRW Debug mode program pointer register
dscratch0 0x7b2 DRW Mode debug stagdaftar 0
dscratch1 0x7b3 DRW Mode debug stagdaftar 1
 

Vendor ditetepake CSR

gintenr 0x800 URW Interrupt global ngaktifake ndhaptar
intsyscr 0x804 URW Register kontrol sistem interrupt
corecfgr 0xBC0 MRW Register konfigurasi mikroprosesor
inestcr 0xBC1 MRW Register kontrol nested interrupt

Register CSR Standar RISC-V

  • Daftar Nomer Arsitektur (Marchid)
  • Register iki minangka registrasi mung diwaca kanggo nunjukake nomer arsitektur hardware mikroprosesor saiki, sing utamane dumadi saka kode vendor, kode arsitektur, kode seri, lan kode versi. Saben-saben ditetepake kaya ing ngisor iki.

Tabel 8-2 definisi register marchid

bit jeneng Akses Katrangan Reset Nilai
31 dilindhungi MRO dilindhungi 1
[30:26] Vender0 MRO Kode Produsen 0

Ndandani kode huruf "W".

0x17
[25:21] Vender1 MRO Kode Produsen1

Ndandani kode huruf "C".

0x03
[20:16] Vender2 MRO Kode Produsen 2

Ndandani kode huruf "H".

0x08
15 dilindhungi MRO dilindhungi 1
[14:10] Arch MRO Kode arsitektur 0x16
Arsitèktur RISC-V tetep nganggo kode huruf "V".
[9:5] Serial MRO Kode seri

Seri QingKe V3, tetep ing nomer "3"

0x03
[4:0] Versi MRO Kode versi

Bisa dadi versi "A", "B", "C" lan huruf kode liyane

x

Nomer pabrikan lan nomer versi abjad, lan nomer seri iku numerik. Tabel pengkodean aksara kapacak ing tabel ing ngisor iki.

Tabel 8-3 Tabel Pemetaan Abjad

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
  • Antarane wong-wong mau, QingKe V3A microprocessor, register maca bali menyang 0.

Register penomoran implementasi hardware (limpid)

  • Register iki utamané dumadi saka kode vendor, saben kang ditetepake minangka nderek.

Tabel 8-4 definisi register limpid

bit jeneng Akses Katrangan Reset Nilai
31 dilindhungi MRO dilindhungi 1
[30:26] Vender0 MRO Kode Produsen 0

Ndandani kode huruf "W".

0x17
[25:21] Vender1 MRO Kode Produsen1

Ndandani kode huruf "C".

0x03
[20:16] Vender2 MRO Kode Produsen 2

Ndandani kode huruf "H".

0x08
15 dilindhungi MRO dilindhungi 1
[14:8] dilindhungi MRO dilindhungi 0
[7:4] cilik MRO Nomer subversion 0xX
[3:0] Mayor MR0 Nomer versi utama 0xX
  • Register iki bisa diwaca ing sembarang implementasine mesin, lan ing prosesor seri QingKe V3A, register iki maca bali menyang nul.

Register status mode mesin (mstatus)

  • Register iki sebagian wis diterangake ing bagean sadurunge, lan wong-wong mau dipanggonke kaya ing ngisor iki.

Tabel 8-5 definisi registrasi status

bit jeneng Akses Katrangan Reset Nilai
[31:13] dilindhungi MRO dilindhungi 0
[12:11] MPP MRW Mode istimewa sadurunge mlebu istirahat 0
[10:8] dilindhungi MRO dilindhungi 0
7 MPIE MRW Ngaktifake status interrupt sadurunge ngetik interupsi 0
[6:4] dilindhungi MRO dilindhungi 0
3 MIE MRW Ngaktifake gangguan mode mesin 0
[2:0] dilindhungi MRO dilindhungi 0
  • Kolom MPP digunakake kanggo nyimpen mode istimewa sadurunge ngetik pangecualian utawa interupsi lan digunakake kanggo mulihake mode istimewa sawise metu saka pangecualian utawa interupsi. MIE minangka bit ngaktifake interrupt global, lan nalika ngetik pengecualian utawa interupsi, nilai MPIE dianyari dadi nilai MIE, lan kudu dicathet yen ing mikroprosesor seri QingKe V3, MIE ora bakal dianyari nganti 0 sadurunge tingkat pungkasan nested interrupts kanggo mesthekake yen nesting interrupt ing mode Machine terus kaleksanan. Nalika pangecualian utawa interupsi wis metu, microprocessor bali menyang mode Machine disimpen dening MPP, lan MIE dibalèkaké menyang Nilai MPIE.
  • Mikroprosesor QingKe V3 ndhukung mode Mesin lan mode Panganggo, yen sampeyan kudu nggawe mikroprosesor mung bisa digunakake ing mode Mesin, sampeyan bisa nyetel MPP dadi 0x3 ing wiwitan boot. file, yaiku, sawise bali, bakal tetep ing mode Mesin.

Register set instruksi hardware (misa)

  • Register iki digunakake kanggo nunjukake arsitektur mikroprosesor lan ekstensi set instruksi sing didhukung, saben diterangake kaya ing ngisor iki.

Tabel 8-6 ​​misa register definisi

bit jeneng Akses Katrangan Reset Nilai
[31:30] MXL MRO Tembung mesin dawane 1:32

2:64

3:128

1
[29:26] dilindhungi MRO dilindhungi 0
[25:0] Ekstensi MRO Ekstensi set instruksi x
  • MXL digunakake kanggo nunjukake dawa tembung mikroprosesor, QingKe V3 minangka mikroprosesor 32-bit, lan domain kasebut tetep dadi 1.
  • Ekstensi digunakake kanggo nunjukake yen mikroprosesor ndhukung rincian set instruksi lengkap, saben nuduhake kelas ekstensi, katrangan rinci ditampilake ing tabel ing ngisor iki.

Tabel 8-7 Instruction Set Details Extension

bit jeneng Katrangan
0 A Ekstensi atom
1 B Tentatif dilindhungi undhang-undhang kanggo ekstensi Bit-Manipulasi
2 C Ekstensi sing dikompres
3 D Ekstensi floating-point presisi kaping pindho
4 E RV32E basis ISA
5 F Ekstensi floating-point presisi tunggal
6 G Ekstensi standar tambahan saiki
7 H Ekstensi Hypervisor
8 I RV32I / 64I / 128I basis ISA
9 J Tentatif dilindhungi undhang-undhang kanggo ekstensi Basa Terjemahan Dinamis
10 K dilindhungi
11 L Tentatively dilindhungi undhang-undhang kanggo extension Decimal Floating-Point
12 M Ekstensi Integer Multiply/Divide
13 N Interrupts tingkat pangguna didhukung
14 O dilindhungi
15 P Tentatively dilindhungi undhang-undhang kanggo extension Packed-SIMD
16 Q Ekstensi floating-point quad-precision
17 R dilindhungi
18 S Mode Supervisor dileksanakake
19 T Tentatively dilindhungi undhang-undhang kanggo extension Memori Transaksional
20 U Mode pangguna dileksanakake
21 V Tentatively dilindhungi undhang-undhang kanggo extension Vector
22 W dilindhungi
23 X Ekstensi non-standar saiki
24 Y dilindhungi
25 Z dilindhungi
  • Kanggo example, kanggo QingKe V3A microprocessor, Nilai ndhaftar 0x401001105, kang tegese arsitektur pesawat instruction didhukung RV32IMAC, lan wis implementasine mode Panganggo.

Register alamat basis pengecualian mode mesin (mtvec)

  • Register iki digunakake kanggo nyimpen alamat dhasar saka pangecualian utawa ngganggu handler lan rong bit ngisor digunakake kanggo ngatur mode lan cara identifikasi saka Tabel vektor minangka diterangake ing bagean 3.2.

Mode mesin staging register (mscratch)

Tabel 8-8 definisi register mscratch

bit jeneng Akses Katrangan Reset Nilai
[31:0] mscratch MRW Panyimpenan data 0

Register iki minangka register 32-bit sing bisa diwaca lan bisa ditulis ing mode mesin kanggo panyimpenan data sauntara. Kanggo example, nalika ngetik pangecualian utawa ngganggu handler, pangguna tumpukan pitunjuk SP disimpen ing ndhaftar iki lan ngganggu pitunjuk tumpukan diutus kanggo SP ndhaptar. Sawise metu saka pangecualian utawa ngganggu, mulihake nilai SP penumpukan pangguna saka ngeruk. Yaiku, tumpukan interupsi lan tumpukan pangguna bisa diisolasi.

Register pointer program pengecualian mode mesin (peta)

Tabel 8-9 definisi register mepc

bit jeneng Akses Katrangan Reset Nilai
[31:0] mepc MRW Pointer prosedur pangecualian 0
  • Register iki digunakake kanggo nyimpen penunjuk program nalika ngetik pangecualian utawa interupsi.
  • Iki digunakake kanggo nyimpen pitunjuk PC instruksi sadurunge ngetik pangecualian nalika pangecualian utawa interupsi digawe, lan mepc digunakake minangka alamat bali nalika pangecualian utawa interupsi ditangani lan digunakake kanggo pangecualian utawa interupsi bali.
  • Nanging, penting kanggo dicathet.
  • Nalika ana pangecualian, mepc dianyari menyang nilai PC saka instruksi sing saiki ngasilake pangecualian.
  • Nalika ana gangguan, mepc dianyari kanggo Nilai PC saka instruksi sabanjuré.
  • Nalika sampeyan kudu bali pangecualian sawise ngolah pangecualian, sampeyan kudu mbayar manungsa waé kanggo ngowahi nilai mepc, lan rincian liyane bisa ditemokaké ing bab 2 Pangecualian.

Register sabab pangecualian mode mesin (mcause)

Tabel 8-10 mcause ndhaftar definisi

bit jeneng Akses Katrangan Reset Nilai
31 ngganggu MRW Kolom indikasi interupsi 0: Pangecualian

1: Gangguan

 

0

[30:0] Kode Pangecualian MRW Kanggo kode pangecualian, deleng Tabel 2-1 kanggo rincian 0
  • Register iki utamané dipigunakaké kanggo nyimpen sabab saka pangecualian utawa nomer interrupt saka interupsi. Bit paling dhuwur yaiku lapangan Interrupt, sing digunakake kanggo nunjukake manawa kedadeyan saiki minangka pangecualian utawa interupsi.
  • Bit ngisor minangka kode pangecualian, sing digunakake kanggo nunjukake sabab tartamtu. Rincian kasebut bisa ditemokake ing Bab 2 Pengecualian.

Register nilai pengecualian mode mesin (mtval)

Tabel 8-11 Définisi register mtval

bit jeneng Akses Katrangan Reset Nilai
[31:0] mtval MRW Nilai pangecualian 0
  • Register iki digunakake kanggo nahan nilai sing nyebabake pangecualian nalika ana pangecualian. Kanggo rincian kayata regane lan wektu panyimpenan, waca Bab 2 Pangecualian.

Register konfigurasi PMP (pmpcfg

  • Register iki utamané digunakake kanggo ngatur unit pangayoman memori fisik, lan saben 8 bit saka register iki digunakake kanggo ngatur pangayoman saka wilayah. Mangga deleng Bab 4 kanggo definisi rinci.

Daftar alamat PMP (pmpaddr

  • Register iki utamané dipigunakaké kanggo konfigurasi alamat saka unit pangayoman memori fisik, kang encode ndhuwur 32 bit alamat fisik 34-dicokot. Mangga deleng Bab 4 kanggo cara konfigurasi tartamtu.

Debug mode program pointer register (DPC)

  • Register iki digunakake kanggo nyimpen alamat instruksi sabanjure sing bakal dieksekusi sawise mikroprosesor mlebu
  • Mode debug lan regane dianyari kanthi aturan sing beda-beda gumantung saka alesan kanggo ngetik debug. Waca Bagean 6.1 kanggo katrangan rinci.

Debug pemicu pilih register (pilih)

  • Iku mung bener kanggo microprocessors sing ndhukung breakpoints hardware lan ndhukung breakpoints 4-saluran paling, lan ngisor 2 bit bener.
  • Nalika ngatur saben breakpoint saluran, sampeyan kudu milih saluran sing cocog liwat register iki sadurunge konfigurasi.

Tabel 8-12 pilih register definition

bit jeneng Akses Katrangan Reset Nilai
[31:2] dilindhungi MRO dilindhungi 0
[1:0]  

PILIH

 

MRW

Register pilihan saluran breakpoint dikonfigurasi, yaiku, sawise saluran sing cocog dipilih, register tdata1 lan tdata2 bisa dioperasikake kanggo ngatur breakpoint.

informasi.

 

X

Register data pemicu debug 1(tdata1)

Iku mung bener kanggo mikroprosesor sing ndhukung breakpoints hardware. Mikroprosesor mung ndhukung alamat instruksi lan breakpoints alamat data, ing ngendi TYPE bit saka tdata1 register minangka nilai tetep 2, lan bit liyane cocog karo definisi kontrol ing standar debugging.

Tabel 8-13 tdata1 dhéfinisi register

bit jeneng Akses Katrangan Reset Nilai
[31:28] JENIS MRO Definisi jinis breakpoint, jinis kontrol. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: Register sing cocog saka flip-flop bisa diowahi ing mode mesin lan mode debugging;

1: Mung mode debug sing bisa ngowahi daftar sing cocog kanggo flip-flop.

 

 

1

  [26:21]  

MASKMAX

 

MRO

Nalika MATCH = 1, sawetara daya eksponensial maksimum sing cocog diijini, yaiku, jarak sing cocog maksimal sing diidini yaiku 231 bita.  

0x1f

[20:13] dilindhungi MRO dilindhungi 0
 

 

12

 

 

TINDAKAN

 

 

MRW

Setel mode pangolahan nalika micu breakpoint:

0: Nalika micu, ketik breakpoint lan nelpon maneh interupsi;

1: Ketik mode debugging nalika dipicu.

 

 

0

[11:8] dilindhungi MRO dilindhungi 0
 

 

 

7

 

 

 

PERTANDINGAN

 

 

 

MRW

Konfigurasi kabijakan sing cocog:

0: Cocokake nalika nilai pemicu padha karo TDATA2;

1: Nilai pemicu cocog karo bit m dhuwur saka TDATA2, ngendi m = 31-n, lan n iku 0 kutipan pisanan TDATA2 (wiwit saka dicokot kurang).

 

 

 

0

 

6

 

M

 

MRW

Aktifake flip-flop ing mode M:

0: Pateni pemicu ing mode M; 1: Aktifake pemicu ing mode M.

 

0

[5:4] dilindhungi MRO dilindhungi 0
 

3

 

U

 

MRW

Aktifake pemicu ing mode U:

0: Pateni pemicu ing mode U; 1: Aktifake pemicu ing mode U.

 

0

 

2

 

NGLAKOKE

 

MRW

Instruksi maca alamat pemicu aktif: 0: Pateni;

1: Aktifake.

 

0

 

1

 

TOKO

 

MRW

Data nulis alamat pemicu diaktifake: 0: Pateni;

1: Aktifake.

 

0

 

0

 

MUNGKIN

 

MRW

Data maca alamat pemicu diaktifake: 0: Pateni;

1: Aktifake.

 

0

Register data pemicu debug 2(tdata2)

Iku mung bener kanggo microprocessors sing ndhukung breakpoints hardware lan digunakake kanggo nyimpen Nilai cocog pemicu.

Tabel 8-14 tdata2 dhéfinisi register

bit jeneng Akses Katrangan Reset Nilai
[31:0] TDATA2 MRW Digunakake kanggo nyimpen nilai sing cocog. X

Kontrol debug lan daftar status (dcsr)

Register iki digunakake kanggo ngontrol lan ngrekam status mlaku saka mode debugging. Deleng bagean 7.1 kanggo rincian.

Debug mode program pointer (DPC)

Register iki digunakake kanggo nyimpen alamat instruksi sabanjuré bakal kaleksanan sawise microprocessor lumebu ing mode debugging, regane beda miturut alasan kanggo ngetik mode debugging, lan aturan nganyari uga beda. Waca Bagean 7.1 kanggo katrangan rinci.

Mode debug staging register (dscratch0-1)

Klompok ndhaptar iki digunakake kanggo panyimpenan sementara data ing mode Debug.

Tabel 8-15 dscratch0-1 ndhaftar definisi

bit jeneng Akses Katrangan Reset Nilai
[31:0] dscratch DRW Data mode debug staging nilai 0
Register CSR sing ditemtokake pangguna

Mode pangguna global interrupt enable register (gintenr)

  • Register iki digunakake kanggo ngontrol ngaktifake lan topeng gangguan global. Aktifake lan topeng gangguan global ing mode mesin bisa dikontrol dening bit MIE lan MPIE ing status, nanging ndhaftar iki ora bisa dilakokno ing mode pangguna.
  • Nalika interrupt global mbisakake register gintenr punika pemetaan MIE lan MPIE ing status.
  • Ing mode pangguna, maksud bisa digunakake kanggo nyetel lan mbusak MIE lan MPIE, kaya sing diterangake ing Bagean 3.2 kanggo rincian.

Cathetan

  • Interrupts global ora kalebu unmasked interrupts NMI lan pangecualian.

Register kontrol sistem interrupt (intsyscr)

Register iki utamané dipigunakaké kanggo ngatur ambane nesting interrupt, penet tumpukan hardware, lan fungsi liyane sing gegandhengan, kaya sing diterangake ing Bagean 3.2 kanggo rincian.

Register konfigurasi mikroprosesor (corecfgr)

Register iki digunakake kanggo ngontrol apa NMI interupsi diijini sawise interupsi overflows lan apa panjalukan interupsi wis dibusak nalika instruksi pager wis kaleksanan. Mangga deleng bagean 3.2 kanggo definisi tartamtu.

Register kontrol bersarang interrupt (inestcr)

Register iki digunakake kanggo nunjukaké status nesting interrupted lan apa overflows utawa ora, lan kanggo ngontrol tingkat nesting maksimum. Mangga deleng bagean 3.2 kanggo definisi tartamtu.

Dokumen / Sumber Daya

Mikroprosesor WH V3 [pdf] Manual pangguna
V3 Mikroprosesor, V3, Mikroprosesor

Referensi

Ninggalake komentar

Alamat email sampeyan ora bakal diterbitake. Kolom sing dibutuhake ditandhani *