Mikropemproses WH V3
Spesifikasi
- Model mikropemproses: QingKeV3
- Versi: V1.2
- Ciri-ciri ISA:
- FPU saluran paip
- Ramalan cawangan
- Mengganggu sokongan
- Perlindungan Memori Fizikal HPE (PMP)
- Mod penggunaan kuasa rendah
- Nyahpepijat Set Arahan Lanjutan
Arahan Penggunaan Produk
Berakhirview daripada Mikropemproses QingKe V3
Mikropemproses siri QingKe V3 termasuk model V3A, V3B dan V3C. Setiap model mempunyai ciri dan perbezaan tertentu berdasarkan aplikasinya.
Set Arahan
Set arahan RV32I termasuk 32 set daftar dari x0 hingga x31. Siri V3 tidak menyokong sambungan titik terapung (F). Setiap daftar bersaiz 32 bit.
Set Daftar
Set daftar RV32I terdiri daripada daftar berikut.
- x0: Berkod keras 0
- x1: Alamat kembali
- x2: Penunjuk tindanan
- x3: Penunjuk global
- x4: Penunjuk benang
- x5-x7: Daftar sementara
- x8: Simpan daftar/penunjuk bingkai
- x9: Simpan parameter daftar/fungsi/nilai pulangan
- x10-x11: Parameter fungsi
- x12-x17: Simpan daftar
- x18-x27: Daftar sementara
- x28-x31: Pendaftaran pemanggil/Callee
Mod Keistimewaan
Seni bina RISC-V standard termasuk tiga mod istimewa: Mod mesin, mod Penyelia dan mod Pengguna. Mikropemproses siri QingKe V3 menyokong mod Mesin dan mod Penyelia.
Soalan Lazim
S: Apakah model berbeza dalam mikropemproses siri QingKe V3?
A: Siri QingKe V3 termasuk model V3A, V3B dan V3C, masing-masing dengan ciri khusus dan perbezaan yang diperincikan dalam manual pengguna.
S: Berapakah bilangan set daftar yang terdapat dalam set arahan RV32I?
A: Set arahan RV32I menyediakan 32 set daftar dari x0 hingga x31.
S: Mod istimewa manakah yang disokong oleh mikropemproses QingKe V3?
A: Mikropemproses siri QingKe V3 menyokong mod Mesin dan mod Penyelia sebagai sebahagian daripada seni bina RISC-V.
Berakhirview
Mikropemproses siri QingKe V3 ialah mikropemproses MCU tujuan am 32-bit yang dibangunkan sendiri berdasarkan seni bina set arahan RISC-V standard. Siri ini termasuk V3A, V3B dan V3C, yang mana V3A menyokong sambungan set arahan standard RV32IMAC dan V3B/C menyokong sambungan set arahan standard RV32IMCB dan sambungan set arahan tersuai XW. Kedua-duanya menyokong pendaraban kitaran tunggal dan pembahagian perkakasan, sebagai tambahan kepada tindanan tekanan perkakasan (HPE), gangguan bebas meja (VTF), antara muka penyahpepijatan 1 dan 2 wayar yang diperkemas, arahan "WFE" dan ciri khas lain. Selain itu, ia juga menyokong Prolog/Epilog Perkakasan (HPE), Percuma Jadual Vektor (VTF), antara muka penyahpepijatan 1-/2 wayar yang diperkemas dan sokongan untuk arahan "WFE".
Ciri-ciri
Ciri-ciri | Penerangan |
ISA | RV32IM[A]C[B] |
Saluran paip | 3 |
FPU | Tidak disokong |
Ramalan cawangan | Ramalan cawangan statik |
menyampuk | Menyokong sejumlah 256 gangguan termasuk pengecualian dan menyokong VTF |
HPE | Menyokong 2 tahap HPE |
Perlindungan Memori Fizikal (PMP) | Disokong |
Mod penggunaan kuasa rendah | Menyokong mod Tidur dan Tidur Nyenyak, dan menyokong kaedah tidur WFI dan WFE |
Set Arahan Lanjutan | Disokong |
Nyahpepijat | SDI 1/2 wayar, nyahpepijat RISC-V standard |
Berakhirview
Mikropemproses siri QingKe V3 termasuk V3A, V3B, dan V3C, terdapat beberapa perbezaan antara siri mengikut aplikasi, perbezaan khusus diperincikan dalam Jadual 1-1.
Jadual 1-1 Selesaiview mikropemproses QingKe V3
Ciri Model | ISA | Bilangan peringkat HPE | Gangguan bersarang bilangan peringkat | VTF bilangan saluran | Saluran paip | vektor mod jadual | Arahan Lanjutan (XW) | Bilangan kawasan perlindungan memori |
V3A | RV32IMAC | 2 | 2 | 4 | 3 | Arahan | × | × |
V3B | RV32IMCB | 2 | 2 | 4 | 3 | Alamat/ Arahan | √ | × |
V3C | RV32IMCB | 2 | 2 | 4 | 3 | Alamat/ Arahan | √ | 4 |
Nota: Penukaran tugas OS secara amnya menggunakan tolak tindanan, yang tidak terhad kepada bilangan tahap
Set Arahan
- Mikropemproses siri QingKe V3 mengikut Arsitektur Set Arahan (ISA) standard RISC-V. Dokumentasi terperinci standard boleh didapati dalam "Manual Set Arahan RISC-V, Jilid I: ISA Tahap Pengguna, Versi Dokumen 2.2" pada RISC-V International webtapak. Set arahan RISC-V mempunyai seni bina ringkas dan menyokong reka bentuk modular, membenarkan kombinasi fleksibel berdasarkan keperluan yang berbeza, dan siri V3 menyokong sambungan set arahan berikut.
- RV32: Seni bina 32-bit, lebar bit daftar tujuan umum 32 bit
- I: Menyokong operasi membentuk, dengan 32 daftar membentuk
- M: Menyokong membentuk arahan pendaraban dan pembahagian
- A: Menyokong arahan atom
- C: Menyokong arahan mampatan 16-bit
- B: Sokongan untuk arahan manipulasi bit
- XW: Arahan pemampatan 16-bit untuk operasi bait dan separuh perkataan lanjutan sendiri
Nota:
- Subset arahan yang disokong oleh model yang berbeza mungkin berbeza, sila rujuk Jadual 1-1 untuk butiran;
- Untuk meningkatkan lagi ketumpatan kod, lanjutkan subset XW, tambahkan arahan mampatan berikut c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , penggunaannya perlu berdasarkan pengkompil MRS atau rantai alat yang disediakannya;
- V3B menyokong mengekstrak arahan perkataan (32bit) daripada kata ganda (64bit) dan mengekstrak arahan perkataan (32bit) daripada hasil pendaraban (64bit). Kaedah penggunaan khusus boleh merujuk kepada fungsi perpustakaan dan bekerjasama dengan pengkompil MRS atau rantai alat yang disediakan olehnya;
- V3B/C menyokong arahan salinan memori. Untuk kegunaan khusus, sila rujuk fungsi perpustakaan dan bekerjasama dengan pengkompil MRS atau rantai alatnya.
Set Daftar
RV32I mempunyai 32 set daftar dari x0-x31. Siri V3 tidak menyokong sambungan "F", iaitu, tiada set daftar titik terapung. Dalam RV32, setiap daftar adalah 32 bit. Jadual 1-2 di bawah menyenaraikan daftar RV32I dan penerangannya.
Jadual 1-2 daftar RISC-V
Daftar | Nama ABI | Penerangan | Penyimpan |
x0 | sifar | Berkod keras 0 | – |
x1 | ra | Alamat kembali | Pemanggil |
x2 | sp | Penunjuk tindanan | Callee |
x3 | GP | Penunjuk global | – |
x4 | tp | Penunjuk benang | – |
x5-7 | t0-2 | Daftar sementara | Pemanggil |
x8 | s0/fp | Simpan daftar/penunjuk bingkai | Callee |
x9 | s1 | Simpan daftar | Callee |
x10-11 | a0-1 | Parameter fungsi/nilai pulangan | Pemanggil |
x12-17 | a2-7 | Parameter fungsi | Pemanggil |
x18-27 | a2-11 | Simpan daftar | Callee |
X28-31 | t3-6 | Daftar sementara | Pemanggil |
Atribut Pemanggil dalam jadual di atas bermakna prosedur yang dipanggil tidak menyimpan nilai daftar, dan atribut Callee bermaksud prosedur yang dipanggil menyimpan daftar.
Mod Keistimewaan
- Seni bina RISC-V standard termasuk tiga mod istimewa: Mod mesin, mod Penyelia dan mod Pengguna, seperti ditunjukkan dalam Jadual 1-3 di bawah.
- Mod mesin adalah wajib, dan mod lain adalah pilihan. Untuk butiran, anda boleh merujuk kepada Manual Set Arahan RISC-V Jilid II: Privileged Architecture”, yang boleh dimuat turun secara percuma daripada RISC-V International webtapak.
Jadual 1-3 Mod keistimewaan seni bina RISC-V
Kod | Nama | Singkatan |
0b00 | Mod Pengguna | U |
0b01 | Model Penyelia | S |
0b10 | Terpelihara | Terpelihara |
0b11 | Mod mesin | M |
- Mikropemproses siri QingKe V3 menyokong dua daripada mod istimewa ini.
Mod mesin
- Mod mesin mempunyai kuasa tertinggi, program dalam mod ini boleh mengakses semua Daftar Kawalan dan Status (CSR), tetapi juga boleh mengakses semua kawasan alamat fizikal.
- Lalai kuasa naik adalah dalam mod mesin, apabila pelaksanaan mret (arahan pemulangan mod mesin) kembali, mengikut status daftar CSR (daftar status mod mesin) dalam bit MPP, jika MPP = 0b00, kemudian keluar dari mod Mesin ke dalam mod Pengguna, MPP = 0b11, kemudian teruskan mengekalkan mod Mesin.
Mod pengguna
- Mod pengguna mempunyai keistimewaan yang paling rendah, dan hanya daftar CSR terhad boleh diakses dalam mod ini. Apabila pengecualian atau gangguan berlaku, mikropemproses beralih daripada mod Pengguna ke mod Mesin untuk mengendalikan pengecualian dan gangguan.
Daftar CSR
Satu siri daftar CSR ditakrifkan dalam seni bina RISC-V untuk mengawal dan merekodkan keadaan operasi mikropemproses. CSR ini boleh dilanjutkan oleh 4096 daftar menggunakan ruang pengekodan alamat 12-bit khusus dalaman. Dan gunakan dua CSR tinggi [11:10] untuk menentukan kebenaran baca/tulis daftar ini, 0b00, 0b01, 0b10 untuk baca/tulis dibenarkan dan 0b11 untuk baca sahaja. Gunakan dua bit CSR[9:8] untuk menentukan tahap keistimewaan terendah yang boleh mengakses daftar ini, dan nilai sepadan dengan mod keistimewaan yang ditakrifkan dalam Jadual 1-3. Daftar CSR yang dilaksanakan dalam mikropemproses QingKe V3 diperincikan dalam Bab 8.
Pengecualian
Mekanisme pengecualian, yang merupakan mekanisme untuk memintas dan mengendalikan "peristiwa operasi luar biasa". Mikropemproses siri QingKe V3 dilengkapi dengan sistem tindak balas pengecualian yang boleh mengendalikan sehingga 256 pengecualian, termasuk gangguan. Apabila pengecualian atau gangguan berlaku, mikropemproses boleh bertindak balas dengan cepat dan mengendalikan peristiwa pengecualian dan gangguan.
Jenis Pengecualian
Tingkah laku perkakasan mikropemproses adalah sama sama ada pengecualian atau gangguan berlaku. Mikropemproses menggantung program semasa, beralih ke pengendali pengecualian atau gangguan, dan kembali ke program yang digantung sebelum ini apabila pemprosesan selesai. Secara umum, gangguan juga merupakan sebahagian daripada pengecualian. Sama ada kejadian semasa adalah gangguan atau pengecualian viewed melalui mesin mode pengecualian sebab daftar sebab. Mcause[31] ialah medan gangguan, yang digunakan untuk menunjukkan sama ada punca pengecualian ialah gangguan atau pengecualian. mcause[31]=1 bermaksud gangguan, mcause[31]=0 bermaksud pengecualian. mcause[30:0] ialah kod pengecualian, yang digunakan untuk menunjukkan sebab khusus pengecualian atau nombor gangguan, seperti yang ditunjukkan dalam jadual berikut.
Jadual 2-1 Kod pengecualian mikropemproses V3
menyampuk | Pengecualian kod | Segerak / Asynchronous | Sebab pengecualian |
1 | 0-1 | – | Terpelihara |
1 | 2 | Tak segerak tepat | NMI menyampuk |
1 | 3-11 | – | Terpelihara |
1 | 12 | Tak segerak tepat | SysTick menyampuk |
1 | 13 | – | Terpelihara |
1 | 14 | segerak | Perisian mengganggu |
1 | 15 | – | Terpelihara |
1 | 16-255 | Tak segerak tepat | Gangguan luaran 16-255 |
0 | 0 | segerak | Penyelewengan alamat arahan |
0 | 1 | segerak | Ralat capaian arahan ambil |
0 | 2 | segerak | Arahan haram |
0 | 3 | segerak | Titik putus |
0 | 4 | segerak | Muatkan arahan akses alamat salah jajaran |
0 | 5 | Tak segerak tidak tepat | Muatkan ralat akses arahan |
0 | 6 | segerak | Alamat akses arahan kedai/AMO salah jajaran |
0 | 7 | Tak segerak tidak tepat | Ralat akses arahan kedai/AMO |
0 | 8 | segerak | Panggilan persekitaran dalam mod Pengguna |
0 | 11 | segerak | Panggilan persekitaran dalam mod Mesin |
- Synchronous” dalam jadual bermakna arahan boleh terletak tepat di mana ia dilaksanakan, seperti arahan rehat atau panggilan, dan setiap pelaksanaan arahan itu akan mencetuskan pengecualian. "Asynchronous" bermakna tidak mungkin untuk menentukan arahan, dan nilai PC arahan mungkin berbeza setiap kali pengecualian berlaku. "Precise asynchronous" bermaksud pengecualian boleh terletak tepat di sempadan arahan, iaitu, keadaan selepas pelaksanaan arahan, seperti gangguan luaran. "Tak segerak bukan ketepatan" bermaksud bahawa sempadan arahan tidak boleh dikesan dengan tepat, dan mungkin keadaan selepas arahan telah diganggu separuh jalan melalui pelaksanaan, seperti ralat capaian memori.
- Akses kepada ingatan mengambil masa, dan mikropemproses biasanya tidak menunggu penghujung capaian apabila mengakses memori tetapi terus melaksanakan arahan, apabila pengecualian ralat capaian berlaku sekali lagi, mikropemproses telah pun melaksanakan arahan seterusnya, dan tidak dapat dengan tepat. terletak.
Memasuki Pengecualian
Apabila program dalam proses operasi biasa jika atas sebab tertentu, mencetuskan pengecualian atau gangguan. Tingkah laku perkakasan mikropemproses pada ketika ini boleh diringkaskan seperti berikut.
- Gantung aliran program semasa dan beralih ke pelaksanaan fungsi pengendalian pengecualian atau gangguan. Alamat pangkalan kemasukan dan mod pengalamatan fungsi pengecualian atau gangguan ditakrifkan oleh daftar alamat pangkalan kemasukan pengecualian mtvec. mtvec[31:2] mentakrifkan alamat asas bagi fungsi pengecualian atau gangguan. mtvec[1:0] mentakrifkan mod pengalamatan fungsi pengendali. apabila mtvec[1:0]=0, semua pengecualian dan sampukan menggunakan entri bersatu, iaitu, apabila pengecualian atau gangguan berlaku, ia bertukar kepada mtvec[31:2] mentakrifkan alamat asas untuk dilaksanakan. Apabila mtvec[1:0]=1, pengecualian dan sampukan menggunakan mod jadual vektor, iaitu, setiap pengecualian dan sampukan dinomborkan, dan alamat diimbangi mengikut nombor sampukan*4, dan apabila pengecualian atau sampukan berlaku, ia dialihkan ke alamat asas yang ditakrifkan oleh mtvec[31:2] + nombor sampuk*4 Pelaksanaan. Jadual vektor sampukan memegang arahan untuk melompat ke fungsi pengendali sampukan, atau ia boleh menjadi arahan lain.
- Kemas kini daftar CSR
- Apabila pengecualian atau gangguan dimasukkan, mikropemproses secara automatik mengemas kini daftar CSR yang berkaitan, termasuk daftar sebab pengecualian mod Mesin, daftar penunjuk pengecualian mod Mesin mepc, daftar logam nilai pengecualian mod Mesin dan status daftar status mod Mesin.
Kemas kini mcause
Seperti yang dinyatakan sebelum ini, selepas memasukkan pengecualian atau sampukan, nilainya mencerminkan jenis pengecualian semasa atau nombor sampukan, dan perisian boleh membaca nilai daftar ini untuk menyemak punca pengecualian atau menentukan sumber sampukan, seperti yang diperincikan dalam Jadual 2 -1.
Kemas kini mepc
- Takrifan standard alamat pemulangan mikropemproses selepas keluar dari pengecualian atau gangguan disimpan dalam mepc.
- Jadi apabila pengecualian atau gangguan berlaku, perkakasan secara automatik mengemas kini nilai mepc kepada nilai PC arahan semasa apabila pengecualian ditemui, atau nilai PC arahan pra-laksana seterusnya sebelum gangguan.
- Selepas pengecualian atau gangguan diproses, mikropemproses menggunakan nilai yang disimpan sebagai alamat pemulangan untuk kembali ke lokasi gangguan untuk meneruskan pelaksanaan.
- Walau bagaimanapun, perlu diperhatikan bahawa.
- MEPC ialah daftar yang boleh dibaca dan boleh ditulis, dan perisian juga boleh mengubah suai nilai untuk mengubah suai lokasi penunjuk PC yang berjalan selepas pemulangan.
- Apabila sampukan berlaku, iaitu, apabila punca pengecualian mendaftar mcause[31]=1, nilai peta dikemas kini kepada nilai PC bagi arahan tidak dilaksanakan seterusnya pada masa sampukan itu.
- Apabila pengecualian berlaku, nilai peta dikemas kini kepada nilai PC arahan pengecualian semasa apabila pengecualian menyebabkan daftar mcause[31]=0. Jadi pada masa ini apabila pengecualian kembali, jika kita kembali secara langsung menggunakan nilai mepc, kita terus melaksanakan arahan yang menjana pengecualian sebelum ini, dan pada masa ini, kita akan terus memasukkan pengecualian. Biasanya, selepas kami mengendalikan pengecualian, kami boleh mengubah suai nilai mepc kepada nilai arahan seterusnya yang tidak dilaksanakan dan kemudian kembali. Untuk exampOleh itu, jika kita menyebabkan pengecualian disebabkan oleh panggilan/patahkan, selepas mengendalikan pengecualian, kerana ingat/patahkan (c.ebreak ialah 2 bait) ialah arahan 4-bait, kita hanya memerlukan perisian untuk mengubah suai nilai mepc kepada mepc +4 (c.ebreak ialah mepc+2) dan kemudian kembali.
Kemas kini mtval
Apabila pengecualian dan gangguan dimasukkan, perkakasan akan mengemas kini nilai mtval secara automatik, iaitu nilai yang menyebabkan pengecualian. Nilainya biasanya.
- Jika pengecualian disebabkan oleh akses memori, perkakasan akan menyimpan alamat akses memori pada masa pengecualian ke dalam mtval.
- Jika pengecualian disebabkan oleh arahan yang menyalahi undang-undang, perkakasan akan menyimpan kod arahan arahan itu ke dalam mtval.
- Jika pengecualian disebabkan oleh titik putus perkakasan, perkakasan akan menyimpan nilai PC pada titik putus ke dalam mtval.
- Untuk pengecualian lain, perkakasan menetapkan nilai mtval kepada 0, seperti break, pengecualian yang disebabkan oleh arahan panggilan.
- Apabila memasukkan gangguan, perkakasan menetapkan nilai mtval kepada 0.
Kemas kini mstatus
Apabila memasukkan pengecualian dan gangguan, perkakasan mengemas kini bit tertentu dalam mstatus.
- MPIE dikemas kini kepada nilai MIE sebelum memasukkan pengecualian atau gangguan, dan MPIE digunakan untuk memulihkan MIE selepas pengecualian dan gangguan tamat.
- MPP dikemas kini kepada mod istimewa sebelum memasukkan pengecualian dan sampukan, dan selepas pengecualian dan sampukan tamat, MPP digunakan untuk memulihkan mod istimewa sebelumnya.
- Mikropemproses QingKe V3 menyokong sarang gangguan dalam mod Mesin, dan MIE tidak akan dikosongkan selepas memasukkan pengecualian dan gangguan.
Kemas kini mod keistimewaan mikropemproses
- Apabila pengecualian dan gangguan berlaku, mod istimewa mikropemproses dikemas kini kepada mod Mesin.
Fungsi Pengendalian Pengecualian
- Apabila memasukkan pengecualian atau gangguan, mikropemproses melaksanakan program dari alamat dan mod yang ditakrifkan oleh daftar mtvec. Apabila menggunakan entri bersatu, mikropemproses mengambil arahan lompat dari alamat asas yang ditakrifkan oleh mtvec[31:2] berdasarkan nilai mtvec[1], atau mendapat pengecualian dan alamat entri fungsi pengendalian gangguan dan pergi untuk melaksanakannya sebaliknya . Pada masa ini, fungsi pengendalian pengecualian dan gangguan boleh menentukan sama ada punca adalah pengecualian atau gangguan berdasarkan nilai mcause[31], dan jenis serta punca pengecualian atau gangguan yang sepadan boleh dinilai oleh kod pengecualian. dan dikendalikan dengan sewajarnya.
- Apabila menggunakan alamat asas + nombor sampukan *4 untuk mengimbangi, perkakasan secara automatik melompat ke jadual vektor untuk mendapatkan alamat masukan pengecualian atau fungsi sampukan berdasarkan nombor sampukan dan melompat untuk melaksanakannya.
Exception Exit
- Selepas pengendali pengecualian atau gangguan selesai, adalah perlu untuk keluar daripada program perkhidmatan. Selepas memasukkan pengecualian dan gangguan, mikropemproses memasuki mod Mesin daripada mod Pengguna, dan pemprosesan pengecualian dan gangguan juga diselesaikan dalam mod Mesin. Apabila perlu untuk keluar dari pengecualian dan gangguan, adalah perlu untuk menggunakan arahan mret untuk kembali. Pada masa ini, perkakasan mikropemproses akan secara automatik melaksanakan operasi berikut.
- Penunjuk PC dipulihkan kepada nilai mepc daftar CSR, iaitu, pelaksanaan bermula pada alamat arahan yang disimpan oleh mepc. Adalah perlu untuk memberi perhatian kepada operasi mengimbangi mepc selepas pengendalian pengecualian selesai.
- Kemas kini status daftar CSR, MIE dipulihkan kepada MPIE, dan MPP digunakan untuk memulihkan mod istimewa mikropemproses sebelumnya.
- Keseluruhan proses tindak balas pengecualian boleh diterangkan oleh Rajah 2-1 berikut.
PFIC dan Kawalan Gangguan
- Mikropemproses QingKe V3 direka dengan Pengawal Gangguan Pantas Boleh Diprogram (PFIC) yang boleh mengurus sehingga 256 gangguan termasuk pengecualian.
- 16 pertama daripadanya ditetapkan sebagai gangguan dalaman mikropemproses, dan selebihnya adalah gangguan luaran, iaitu bilangan maksimum gangguan luaran boleh dilanjutkan kepada 240. Ciri-ciri utamanya adalah seperti berikut.
- 240 gangguan luaran, setiap permintaan gangguan mempunyai bit kawalan pencetus dan topeng bebas, dengan bit status khusus
- Keutamaan gangguan boleh atur cara menyokong 2 tahap sarang
- Gangguan pantas khas masuk/keluar mekanisme, susunan automatik perkakasan dan pemulihan, kedalaman HPE maksimum 2 tahap
- Mekanisme tindak balas gangguan Vector Table Free (VTF), akses terus boleh atur cara 2 saluran kepada alamat vektor gangguan
- Nota: Kedalaman bersarang maksimum dan kedalaman HPE yang disokong oleh pengawal gangguan berbeza-beza untuk model mikropemproses yang berbeza, yang boleh didapati dalam Jadual 1-1.
- Jadual vektor bagi gangguan dan pengecualian ditunjukkan dalam Jadual 3-1 di bawah.
Jadual 3-1 Jadual vektor pengecualian dan gangguan
Nombor | Keutamaan | taip | Nama | Penerangan |
0 | – | – | – | – |
1 | – | – | – | – |
2 | -5 | tetap | NMI | Gangguan tidak bertopeng |
3 | -4 | tetap | EXC | Gangguan pengecualian |
4 | – | – | – | – |
5 | -3 | tetap | ECALL-M | Gangguan panggil balik mod mesin |
6-7 | – | – | – | – |
8 | -2 | tetap | PANGGILAN-U | Gangguan panggil balik mod pengguna |
9 | -1 | tetap | TITIK PECAH | Gangguan panggil balik titik putus |
10-11 | – | – | – | – |
12 | 0 | Boleh diprogramkan | SysTick | Gangguan pemasa sistem |
13 | – | – | – | – |
14 | 1 | Boleh diprogramkan | SWI | Gangguan perisian |
15 | – | – | – | – |
16-255 | 2-241 | Boleh diprogramkan | Gangguan Luaran | Gangguan luaran 16-255 |
Nota: ECALL-M, ECALL-U dan BREAKPOINT adalah semua jenis pengecualian EXC yang berbeza, yang bebas dalam V3B/C untuk kemudahan penggunaan, dan 3 alamat entri di atas dikongsi dengan EXC dalam V3A.
Set Daftar PFIC
Jadual 3-2 Daftar PFIC
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_ISRx | 0xE000E000
-0xE000E01C |
RO | Sampuk daya daftar status x | 0x00000000 |
PFIC_IPRx | 0xE000E020
-0xE000E03C |
RO | Sampuk daftar status belum selesai x | 0x00000000 |
PFIC_ITHRESDR | 0xE000E040 | RW | Mengganggu daftar konfigurasi ambang keutamaan | 0x00000000 |
PFIC_VTFBADDRR | 0xE000E044 | RW | Daftar alamat asas VTF
Nota: Sah hanya untuk V3A |
0x00000000 |
PFIC_CFGR | 0xE000E048 | RW | Daftar konfigurasi mengganggu
Nota: Sah hanya untuk V3A |
0x00000000 |
PFIC_GISR | 0xE000E04C | RO | Mengganggu daftar status global | 0x00000002 |
PFIC_VTFIDR |
0xE000E050 |
RW |
Daftar konfigurasi ID gangguan VTF
Nota: Sah hanya untuk V3B/C. |
0x00000000 |
PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | Daftar alamat mengimbangi VTF x | 0xXXXXXXXXX |
PFIC_IENRx | 0xE000E100
-0xE000E11C |
WO | Sampuk dayakan daftar tetapan x | 0x00000000 |
PFIC_IRERx | 0xE000E180
-0xE000E19C |
WO | Sampuk dayakan daftar kosong x | 0x00000000 |
PFIC_IPSRx | 0xE000E200
-0xE000E21C |
WO | Daftar tetapan belum selesai gangguan x | 0x00000000 |
PFIC_IPRRx | 0xE000E280
-0xE000E29C |
WO | Sampuk belum selesai daftar jelas x | 0x00000000 |
PFIC_IACTRx | 0xE000E300
-0xE000E31C |
RO | Daftar status pengaktifan sampuk x | 0x00000000 |
PFIC_IPRIORx | 0xE000E400
-0xE000E43C |
RW | Mengganggu daftar konfigurasi keutamaan | 0x00000000 |
PFIC_SCTLR | 0xE000ED10 | RW | Daftar kawalan sistem | 0x00000000 |
Nota:
- NMI, EXC, ECALL-M, ECALL-U dan BREAKPOINT sentiasa didayakan secara lalai.
- ECALL-M, ECALL-U dan BREAKPOINT ialah kes EXC.
- NMI, EXC, ECALL-M, ECALL-U dan BREAKPOINT menyokong gangguan sementara menunggu operasi jelas dan tetapan, tetapi tidak mengganggu membolehkan operasi padam dan tetapan.
Setiap daftar diterangkan seperti berikut:
Sampuk dayakan status dan sampuk daftar status belum selesai (PFIC_ISR<0-7>/PFIC_IPR<0-7>)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_ISR0 | 0xE000E000 | RO | Interrupt 0-31 mendayakan daftar status, sejumlah 32 bit status [n], menunjukkan #n interrupt membolehkan status
Nota: NMI dan EXC didayakan secara lalai |
Untuk V3A: 0x0000000C
Untuk V3B/C: 0x0000032C |
PFIC_ISR1 | 0xE000E004 | RO | Interrupt 32-63 dayakan daftar status, sejumlah 32 bit status | 0x00000000 |
… | … | … | … | … |
PFIC_ISR7 | 0xE000E01C | RO | Interrupt 224-255 membolehkan daftar status, sejumlah 32 bit status | 0x00000000 |
PFIC_IPR0 | 0xE000E020 | RO | Gangguan 0-31 status belum selesai | 0x00000000 |
daftar, sejumlah 32 bit status [n], menunjukkan status interrupt #n yang belum selesai | ||||
PFIC_IPR1 | 0xE000E024 | RO | Mengganggu 32-63 daftar status belum selesai, 32 bit status secara keseluruhan | 0x00000000 |
… | … | … | … | … |
PFIC_IPR7 | 0xE000E03C | RO | Sampuk 244-255 daftar status belum selesai, 32 bit status secara keseluruhan | 0x00000000 |
Dua set daftar digunakan untuk mendayakan dan menyahdayakan gangguan yang sepadan.
Gangguan dayakan tetapan dan kosongkan daftar (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_IENR0 | 0xE000E100 | WO | Interrupt 0-31 mendayakan daftar tetapan, sejumlah 32 bit tetapan [n], untuk interrupt #n enable setting
Nota: NMI dan EXC adalah didayakan secara lalai |
0x00000000 |
PFIC_IENR1 | 0xE000E104 | WO | Interrupt 32-63 untuk membolehkan daftar tetapan, sejumlah 32 bit tetapan | 0x00000000 |
… | … | … | … | … |
PFIC_IENR7 | 0xE000E11C | WO | Tetapan daya sampuk 224-255
mendaftar, sejumlah 32 bit tetapan |
0x00000000 |
– | – | – | – | – |
PFIC_IRER0 | 0xE000E180 | WO | Interrupts 0-31 enable clear register, sejumlah 32 clear bits [n], for interrupt #n enable clear Nota: NMI dan EXC tidak boleh dikendalikan |
0x00000000 |
PFIC_IRER1 | 0xE000E184 | WO | Interrupt 32-63 membolehkan daftar yang jelas, sejumlah 32 bit yang jelas | 0x00000000 |
… | … | … | … | … |
PFIC_IRER7 | 0xE000E19C | WO | Interrupt 244-255 membolehkan daftar yang jelas, sejumlah 32 bit yang jelas | 0x00000000 |
Dua set daftar digunakan untuk mendayakan dan menyahdayakan gangguan yang sepadan.
Mengganggu tetapan belum selesai dan mengosongkan daftar (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_IPSR0 |
0xE000E200 |
WO |
Gangguan 0-31 menunggu daftar tetapan, 32
tetapan bit [n], untuk gangguan #n tetapan belum selesai |
0x00000000 |
PFIC_IPSR1 | 0xE000E204 | WO | Gangguan 32-63 daftar persediaan belum selesai,
jumlah 32 bit persediaan |
0x00000000 |
… | … | … | … | … |
PFIC_IPSR7 | 0xE000E21C | WO | Tetapan ganggu 224-255 belum selesai
daftar, 32 bit tetapan semuanya |
0x00000000 |
– | – | – | – | – |
PFIC_IPRR0 |
0xE000E280 |
WO |
Interrupt 0-31 belum selesai daftar kosong, sejumlah 32 bit jelas [n], untuk interrupt #n
belum selesai |
0x00000000 |
PFIC_IPRR1 | 0xE000E284 | WO | Gangguan 32-63 menunggu daftar yang jelas,
jumlah 32 bit jelas |
0x00000000 |
… | … | … | … | … |
PFIC_IPRR7 | 0xE000E29C | WO | Gangguan 244-255 menunggu daftar yang jelas,
jumlah 32 bit jelas |
0x00000000 |
Apabila mikropemproses mendayakan gangguan, ia boleh ditetapkan terus melalui daftar gangguan yang belum selesai untuk mencetuskan gangguan. Gunakan daftar jelas yang belum selesai gangguan untuk mengosongkan pencetus yang belum selesai.
Daftar status pengaktifan gangguan (PFIC_IACTR<0-7>)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_IACTR0 | 0xE000E300 | RO | Interrupt 0-31 mengaktifkan daftar status dengan 32 bit status [n], menunjukkan bahawa interrupt #n sedang dilaksanakan | 0x00000000 |
PFIC_IACTR1 | 0xE000E304 | RO | Mengganggu 32-63 daftar status pengaktifan, 32 bit status masuk
jumlah |
0x00000000 |
… | … | … | … | … |
PFIC_IACTR7 | 0xE000E31C | RO | Mengganggu 224-255 daftar status pengaktifan, sejumlah 32 bit status | 0x00000000 |
Setiap gangguan mempunyai bit status aktif yang disediakan apabila gangguan dimasukkan dan dibersihkan oleh perkakasan apabila pasaran kembali.
Mengganggu daftar keutamaan dan ambang keutamaan (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_IPRIOR0 | 0xE000E400 | RW | Mengganggu konfigurasi keutamaan 0. V3A: [7:4]: Bit kawalan keutamaan Jika konfigurasi tidak bersarang, tiada bit preemption Jika nesting dikonfigurasikan, bit7 ialah bit preempted. [3:0]: Dipelihara, ditetapkan kepada 0 V3B: [7:6]: Bit kawalan keutamaan Jika konfigurasi tidak bersarang, tiada bit preemptif dikonfigurasikan bersarang, semua bit didahulukan, tetapi sehingga dua tahap gangguan dibenarkan berlaku [5:0]: Terpelihara, ditetapkan kepada 0 V3C: [7:5]: Bit kawalan keutamaan Jika konfigurasi tidak bersarang, tiada bit preemptive Jika dikonfigurasikan bersarang, semua bit didahulukan, tetapi sehingga dua tahap gangguan dibenarkan berlaku [4:0]: Terpelihara, ditetapkan kepada 0 Nota: Semakin kecil nilai keutamaan, semakin tinggi keutamaan. Jika sampukan keutamaan awalan yang sama digantung pada masa yang sama, sampukan dengan keutamaan yang lebih tinggi akan dilaksanakan terlebih dahulu. |
0x00 |
PFIC_IPRIOR1 | 0xE000E401 | RW | Mengganggu 1 tetapan keutamaan, fungsi yang sama seperti PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR2 | 0xE000E402 | RW | Mengganggu 2 tetapan keutamaan, fungsi yang sama seperti PFIC_IPRIOR0 | |
… | … | … | … | … |
PFIC_IPRIOR254 | 0xE000E4FE | RW | Tetapan keutamaan gangguan 254, fungsi yang sama seperti PFIC_IPRIOR0 | 0x00 |
PFIC_IPRIOR255 | 0xE000E4FF | RW | Mengganggu 255 tetapan keutamaan, fungsi yang sama seperti PFIC_IPRIOR0 | 0x00 |
– | – | – | – | – |
PFIC_ITHRESDR | 0xE000E040 | RW | Mengganggu tetapan ambang keutamaan
V3A: [31:8]: Dipelihara, ditetapkan kepada 0 [7:4]: Ambang keutamaan [3:0]: Dipelihara, ditetapkan kepada 0V3B: [31:8]: Dipelihara, ditetapkan kepada 0 [7:5]: Ambang keutamaan [4:0]: Dipelihara, ditetapkan kepada 0V3C: [31:8]: Dipelihara, ditetapkan kepada 0 [7:5]: Ambang keutamaan [4:0]: Dipelihara, ditetapkan kepada 0Nota: Untuk gangguan dengan nilai keutamaan ≥ ambang, fungsi perkhidmatan gangguan tidak dilaksanakan apabila hang berlaku, dan apabila daftar ini adalah 0, ia bermakna daftar ambang tidak sah. |
0x00 |
Daftar konfigurasi gangguan (PFIC_CFGR)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_CFGR | 0xE000E048 | RW | Daftar konfigurasi mengganggu | 0x00000000 |
Daftar ini hanya sah untuk V3A, bitnya ditakrifkan sebagai:
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:16] | KOD KUNCI | WO | Sepadan dengan bit kawalan sasaran yang berbeza, data pengenalan akses keselamatan yang sepadan perlu ditulis secara serentak untuk diubah suai, dan data bacaan ditetapkan kepada 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF。 | 0 |
[15:8] | Terpelihara | RO | Terpelihara | 0 |
7 | SYSRESET | WO | Tetapan semula sistem (menulis serentak ke KEY3). Kosongkan automatik 0.
Tulisan 1 sah, tulisan 0 tidak sah. Nota: Fungsi yang sama seperti bit SYSRESET daftar PFIC_SCTLR. |
0 |
6 | PFICRESET | WO | Set semula modul PFIC. Kosongkan automatik 0.
Tulisan 1 sah, tulisan 0 tidak sah. |
0 |
5 | EXPRESS | WO | Gangguan pengecualian belum selesai (penulisan serentak kepada KEY2)
Tulisan 1 sah, tulisan 0 tidak sah. |
0 |
4 | EXCSET | WO | Tetapan menunggu gangguan pengecualian (penulisan serentak ke KEY2)
Tulisan 1 sah, tulisan 0 tidak sah. |
0 |
3 | NMIRESET | WO | Gangguan NMI belum selesai (penulisan serentak kepada KEY2)
Tulisan 1 sah, tulisan 0 tidak sah. |
0 |
2 | NMISET | WO | Tetapan menunggu gangguan NMI (Penulisan serentak ke KEY2)
Tulisan 1 sah, tulisan 0 tidak sah. |
0 |
1 | NESCTRL | RW | Sarang gangguan membolehkan kawalan.
1: dimatikan; 0: hidup (tulisan segerak ke KEY1) |
0 |
0 | HWSTKCTRL | RW | HPE membolehkan kawalan
1: dimatikan; 0: hidup (tulisan segerak ke KEY1) |
0 |
Gangguan daftar status global (PFIC_GISR)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_GISR | 0xE000E04C | RO | Mengganggu daftar status global | 0x00000000 |
Orangnya ditakrifkan sebagai
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:14] | Terpelihara | RO | Terpelihara | 0 |
13 |
LOCKSTA |
RO |
Sama ada pemproses sedang dalam keadaan terkunci:
1: Keadaan terkunci; 0: Keadaan tidak berkunci. Nota: Bit ini hanya sah untuk V3B/C. |
0 |
12 |
DBGMODE |
RO |
Sama ada pemproses sedang dalam keadaan nyahpepijat: 1: Keadaan nyahpepijat;
0: Keadaan bukan nyahpepijat. Nota: Bit ini hanya sah untuk V3B/C. |
0 |
11 |
GLOBLIE |
RO |
Gangguan global membolehkan:
1: Dayakan gangguan; 0: Lumpuhkan gangguan. Nota: Bit ini hanya sah untuk V3B/C. |
|
10 | Terpelihara | RO | Terpelihara | 0 |
9 | GPENDSTA | RO | Sama ada gangguan sedang belum selesai.
1: Ya; 0: Tidak. |
0 |
8 | GACTSTA | RO | Sama ada gangguan sedang dilaksanakan.
1: Ya; 0: Tidak. |
0 |
[7:0] |
NESTSTA |
RO |
Status sarang gangguan semasa. 0x03: dalam gangguan tahap 2.
0x01: dalam gangguan tahap 1. 0x00: tiada gangguan berlaku. Lain-lain: Keadaan yang mustahil. |
0 |
Daftar alamat pangkalan ID VTF dan alamat offset (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_VTFBADDRR |
0xE000E044 |
RW |
[31:28]: Tinggi 4 bit alamat sasaran VTF [27:0]: Terpelihara
Daftar ini hanya sah untuk V3A. |
0x00000000 |
PFIC_VTFIDR |
0xE000E050 |
RW |
[31:24]: Bilangan VTF 3 [23:16]: Bilangan VTF 2 [15:8]: Bilangan VTF 1 [7:0]: Bilangan VTF 0
Daftar ini hanya sah untuk V3B/C. |
0x00000000 |
– | – | – | – | – |
PFIC_VTFADDRR0 |
0xE000E060 | RW | V3A: [31:24]: Nombor gangguan VTF 0 [23:0]: 24 bit rendah alamat sasaran VTF, yang mana 20 bit rendah dikonfigurasikan sebagai sah, dan [23:20] ditetapkan kepada 0 .
V3B/C: [31:1]: Alamat VTF 0, sejajar 2-bait [0]:1: Dayakan saluran VTF 0 0: Lumpuhkan |
Untuk V3A: 0x00000000 Untuk V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR1 |
0xE000E064 |
RW |
V3A: [31:24]: Nombor gangguan VTF 1 [23:0]: 24 bit rendah alamat sasaran VTF, yang mana 20 bit rendah dikonfigurasikan sebagai sah dan [23:20] ditetapkan kepada 0.
V3B/C: [31:1]: Alamat VTF 1, sejajar 2-bait [0]:1: Dayakan saluran VTF 1 0: Lumpuhkan |
Untuk V3A: 0x00000000 Untuk V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR2 |
0xE000E068 |
RW |
V3A: [31:24]: Nombor gangguan VTF 2 [23:0]: 24 bit rendah alamat sasaran VTF, yang mana 20 bit rendah dikonfigurasikan sebagai sah, dan [23:20] ditetapkan kepada 0 .
V3B/C: [31:1]: Alamat VTF 2, sejajar 2-bait [0]:1: Dayakan saluran VTF 2 0: Lumpuhkan |
Untuk V3A: 0x00000000 Untuk V3B/C: 0xXXXXXXXXX |
PFIC_VTFADDRR3 | 0xE000E06C | RW | V3A: | Untuk V3A: |
[31:24]: Nombor gangguan VTF 3 [23:0]: 24 bit rendah alamat sasaran VTF, yang mana 20 bit rendah dikonfigurasikan sebagai sah, dan [23:20] ditetapkan kepada 0.
V3B/C: [31:1]: Alamat VTF 3, sejajar 2-bait [0]:1: Dayakan saluran VTF 3 0: Lumpuhkan |
0x00000000
Untuk V3B/C: 0xXXXXXXXXX |
Daftar kawalan sistem (PFIC_SCTLR)
Nama | Alamat akses | Akses | Penerangan | Tetapkan semula nilai |
PFIC_SCTLR | 0xE000ED10 | RW | Daftar kawalan sistem | 0x00000000 |
Setiap daripada mereka ditakrifkan seperti berikut.
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
31 | SYSRESET | WO | Tetapan semula sistem, kosongkan automatik 0. Tulis 1 sah dan tulis 0 tidak sah.
Nota: Bit ini hanya sah untuk V3B/C |
0 |
[30:6] | Terpelihara | RO | Terpelihara | 0 |
5 | SETEVENT | WO | Tetapkan acara untuk membangunkan sarung WFE. | 0 |
4 |
SEVONPEND | RW | Apabila peristiwa berlaku atau mengganggu keadaan belum selesai, sistem boleh dibangunkan selepas arahan WFE, atau jika arahan WFE tidak dilaksanakan, sistem akan dibangunkan serta-merta selepas pelaksanaan arahan seterusnya.
1: Peristiwa yang didayakan dan semua gangguan (Termasuk gangguan yang tidak didayakan) boleh membangunkan sistem. 0: Hanya acara yang didayakan dan didayakan gangguan boleh membangunkan sistem. |
0 |
3 | WFITOWFE | RW | Laksanakan arahan WFI seolah-olah ia adalah WFE.
1: Anggap arahan WFI berikutnya sebagai arahan WFE. 0: Tiada kesan. |
0 |
2 | TIDUR | RW | Mod kuasa rendah sistem kawalan. | 0 |
1: tidur dalam 0: tidur | ||||
1 | SLEEPONEXI T | RW | Status sistem selepas kawalan meninggalkan program perkhidmatan gangguan.
1: Sistem memasuki mod kuasa rendah. 0: Sistem memasuki program utama. |
0 |
0 | Terpelihara | RO | Terpelihara | 0 |
Daftar CSR berkaitan gangguan
Di samping itu, daftar CSR berikut juga mempunyai kesan yang besar terhadap pemprosesan gangguan. Daftar kawalan sistem gangguan (intsyscr)
Daftar ini tidak sah untuk V3A sahaja:
Nama | CSR Alamat | Akses | Penerangan | Tetapkan semula nilai |
intsyscr | 0x804 | URW | Mengganggu daftar kawalan sistem | 0x0000E002 |
Orangnya ditakrifkan sebagai:
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
31 |
KUNCI |
URO |
0: Daftar ini boleh dibaca dan ditulis dalam mod pengguna;
1: Daftar ini hanya boleh dibaca dan ditulis dalam mod mesin. Nota: Bit konfigurasi ini sah dari versi 1.0 dan seterusnya. |
0 |
[30:6] | Terpelihara | URO | Terpelihara | 0x380 |
5 |
GIHWSTKNEN |
URW1 |
Gangguan global dan penutupan tindanan perkakasan didayakan.
Nota: Bit ini sering digunakan dalam sistem pengendalian masa nyata. Apabila konteks ditukar semasa gangguan, menetapkan bit ini boleh mematikan gangguan global dan menolak timbunan perkakasan. Apabila suis konteks selesai dan gangguan kembali, perkakasan akan mengosongkan bit ini secara automatik. |
0 |
4 | Terpelihara | URO | Terpelihara | 0 |
[3:2] | PMTCFG | URW | Konfigurasi bit keutamaan keutamaan:
00: Bilangan bit preemption ialah 0; 01: Bilangan bit preemption ialah 1; 10: Bilangan bit preemption ialah 2; 11: Bilangan bit preemption ialah 3; Nota: Bit konfigurasi ini sah selepas 1.0. |
0 |
1 | DENGAR | URW | Fungsi sarang gangguan didayakan, dan nilai tetap ialah 1: | 1 |
0: Lumpuhkan;
1: Dayakan. Nota: 1. Tahap sarang sebenar dikawal oleh NEST_LVL dalam CSR 0xBC1; 2. Hanya versi selepas 1.0 boleh bertulis. |
||||
0 | HWSTKEN | URW | Dayakan tindanan perkakasan:
0: Fungsi menekan tindanan perkakasan dilumpuhkan; 1: Fungsi menekan tindanan perkakasan didayakan. |
0 |
Daftar alamat asas pengecualian mod mesin (mtvec)
Nama | CSR Alamat | Akses | Penerangan | Tetapkan semula nilai |
mtvec | 0x305 | MRW | Daftar alamat asas pengecualian | 0x00000000 |
Orangnya ditakrifkan sebagai
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:2] | BASEADDR[31:2] | MRW | Mengganggu alamat pangkalan jadual vektor, di mana
bit [9:2] ditetapkan kepada 0. |
0 |
1 | MODE1 |
MRO |
Mod pengecaman jadual vektor sampuk: 0: Kenal pasti dengan arahan lompat, dengan skop terhad, dan sokong arahan bukan lompat;
1: Kenal pasti melalui alamat mutlak, menyokong julat penuh, tetapi mesti melompat. Nota: Bit ini hanya sah untuk V3B/C. |
0 |
0 | MODE0 | MRW | Pemilihan mod alamat kemasukan gangguan atau pengecualian.
0: Penggunaan alamat kemasukan seragam. 1: Alamat mengimbangi berdasarkan nombor gangguan *4. |
0 |
Untuk MCU dengan mikropemproses siri V3, MODE0 dikonfigurasikan menjadi 1 secara lalai dalam permulaan file, dan entri untuk pengecualian atau gangguan diimbangi mengikut nombor gangguan *4. Ambil perhatian bahawa mikropemproses V3A menyimpan arahan lompat pada jadual vektor, manakala mikropemproses V3B/C boleh sama ada arahan lompat atau menggunakan alamat mutlak fungsi gangguan, yang dikonfigurasikan sebagai alamat mutlak dalam permulaan lalai file.
Daftar konfigurasi mikropemproses (pembetul)
Daftar ini tidak sah untuk V3A:
Nama | CSR Alamat | Akses | Penerangan | Tetapkan semula nilai |
corecfgr | 0xBC0 | MRW | Daftar konfigurasi mikropemproses | 0x00000001 |
Orangnya ditakrifkan sebagai
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:8] | Terpelihara | MRO | Terpelihara | 0 |
7 |
CSTA_FAULT_IE |
MRW |
Gangguan ralat status teras membolehkan:
0: Pada ralat status, tiada gangguan NMI dijana; 1: Pada ralat status, gangguan NMI ialah dihasilkan. |
0 |
6 | Terpelihara | MRO | Simpan 0. | 0 |
5 | IE_REMAP_EN | MRW | Pemetaan daftar MIE membolehkan:
0: Alamat CSR 0x800 ialah daftar baca sahaja dan nilai pulangan ialah nilai STATUS; 1: Bit 3 dan 7 alamat CSR 0x800 dipetakan kepada bit MIE bagi daftar STATUS dan bit MPIE bagi daftar STATUS, masing-masing. |
0 |
4 | Terpelihara | MRO | Terpelihara | 0 |
3 | ROM_LOOP_ACC | MRW | Pecutan gelung arahan kawasan ROM membolehkan:
0: Matikan fungsi pecutan kitaran dalam kawasan ROM; 1: Arahan berterusan dengan badan gelung dalam lingkungan 128 bait akan dipercepatkan sepenuhnya, manakala arahan yang mempunyai badan gelung dalam lingkungan 256 bait akan dipercepatkan sebahagiannya; |
0 |
2 | ROM_JUMP_ACC | MRW | Pecutan lompat arahan kawasan ROM didayakan:
0: Lumpuhkan pecutan lompat arahan kawasan ROM; 1: Dayakan pecutan lompat arahan dalam kawasan ROM. |
0 |
[1:0] | FETCH_MODE | MRW | Mod pengambilan:
00: Praambil dimatikan. Fungsi prefetch arahan dimatikan untuk mengelakkan operasi pengambilan arahan tidak sah, dan terdapat paling banyak satu arahan yang sah pada saluran paip CPU. Model ini mempunyai penggunaan kuasa paling rendah, dan prestasinya menurun kira-kira 2 ~ 3 kali. 01: Mod Prefetch 1. Apabila fungsi prefetch arahan dihidupkan, CPU akan terus mengakses memori arahan sehingga bilangan arahan yang akan dilaksanakan dalam buffer arahan dalaman melebihi nombor tertentu, atau buffer arahan penuh, dan pengambilan arahan akan digantung; (Kegagalan ramalan CPU akan membawa kepada operasi pengambilan berlebihan, dan dalam beberapa kes, unit pelaksanaan akan memperkenalkan 0 ~ 2 kitaran buih, dan prestasi kebanyakan program tidak akan menurun dengan jelas); 10: Terpelihara; |
0x1 |
Mengganggu daftar kawalan bersarang (inestcr)
Daftar ini tidak sah hanya untuk V3A:
Nama | CSR Alamat | Akses | Penerangan | Tetapkan semula nilai |
pelabur | 0xBC1 | MRW | Mengganggu daftar kawalan bersarang | 0x00000000 |
Orangnya ditakrifkan sebagai
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
31 | Terpelihara | MRO | Terpelihara | 0 |
30 | NEST_OV | MRW | Bit bendera limpahan gangguan/pengecualian bersarang, tulis 1 untuk mengosongkan:
0: Gangguan tidak melimpah; 1: Bendera limpahan sampuk. Nota: Limpahan gangguan hanya akan berlaku apabila melaksanakan fungsi perkhidmatan gangguan sekunder untuk menjana pengecualian arahan atau gangguan NMI. Pada masa ini, pengecualian dan gangguan NMI masuk secara normal, tetapi timbunan CPU melimpah, jadi anda tidak boleh keluar dari pengecualian ini dan NMI sampuk. |
0 |
[29:12] | Terpelihara | MRO | Terpelihara | 0 |
[11:8] | NEST_STA | MRO | Bit bendera status bersarang:
0000: Tiada gangguan; 0001: Gangguan tahap 1; 0011: gangguan tahap 2 (bersarang 1 tahap); |
0 |
0111: Gangguan tahap 3 (limpahan);
1111: Gangguan tahap 4 (limpahan). |
||||
[7:2] | Terpelihara | MRO | Terpelihara | 0 |
[1:0] | NEST_LVL | MRW | Tahap bersarang:
00: Bersarang adalah dilarang dan fungsi bersarang dimatikan; 01: Sarang peringkat pertama, yang menghidupkan fungsi sarang; Lain-lain: Tidak sah. Nota: Tulis 10 atau 11 pada medan ini, dan medan akan ditetapkan kepada 01. Apabila menulis 11 pada medan ini, baca daftar ini untuk mendapatkan tahap bersarang tertinggi cip. |
0 |
Mod pengguna gangguan global membolehkan daftar (pelatih)
Daftar ini tidak sah hanya untuk V3A:
Nama | CSR Alamat | Akses | Penerangan | Tetapkan semula nilai |
gintenr | 0x800 | URW | Gangguan global membolehkan daftar | 0x00000000 |
Daftar ini digunakan untuk mengawal membolehkan dan menutup gangguan global. Daya dan topeng gangguan global dalam mod mesin boleh dikawal oleh bit MIE dan MPIE dalam status, tetapi daftar ini tidak boleh dikendalikan dalam mod pengguna.
Interrupt global enable register gintenr ialah pemetaan MIE dan MPIE dalam mstatus, dan boleh digunakan untuk menetapkan dan mengosongkan MIE dan MPIE dengan mengendalikan gintenr dalam mod pengguna.
Setiap daripada mereka ditakrifkan sebagai:
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:13] | Terpelihara | URO | Terpelihara | 0 |
[12:11] | MPP | URO | Masukkan mod istimewa sebelum gangguan. | 0 |
[10:8] | Terpelihara | URO | Terpelihara | 0 |
7 | MPIE | URW | Apabila 0xBC0(CSR)bit5 didayakan, bit ini
boleh dibaca dan ditulis dalam mod pengguna. |
0 |
[6:4] | Terpelihara | URO | Terpelihara | 0 |
3 | MIE | URW | Apabila 0xBC0(CSR)bit5 didayakan, bit ini
boleh dibaca dan ditulis dalam mod pengguna. |
0 |
[1:0] | Terpelihara | URO | Terpelihara | 0 |
Mengganggu Bersarang
Bersempena dengan gangguan, daftar konfigurasi PFIC_CFGR dan daftar keutamaan gangguan PFIC_IPRIOR, sarang gangguan boleh dibenarkan berlaku. Dayakan sarang dalam daftar konfigurasi sampukan (Sarang dihidupkan secara lalai untuk mikropemproses siri V3) dan konfigurasikan keutamaan sampukan yang sepadan. Lebih kecil nilai keutamaan, lebih tinggi keutamaan. Semakin kecil nilai bit preemption, semakin tinggi keutamaan preemption. Jika terdapat sampukan tergantung pada masa yang sama di bawah keutamaan awalan yang sama, mikropemproses bertindak balas kepada sampukan dengan nilai keutamaan yang lebih rendah (keutamaan lebih tinggi) terlebih dahulu.
Prolog/Epilog Perkakasan (HPE)
- Apabila pengecualian atau gangguan berlaku, mikropemproses menghentikan aliran program semasa dan beralih kepada pelaksanaan pengecualian atau fungsi pengendalian gangguan, tapak aliran program semasa perlu disimpan. Selepas pengembalian pengecualian atau gangguan, adalah perlu untuk memulihkan tapak dan meneruskan pelaksanaan aliran program yang dihentikan. Untuk mikropemproses siri V3, "tapak" di sini merujuk kepada semua daftar Disimpan Pemanggil dalam Jadual 1-2.
- Mikropemproses siri V3 menyokong penjimatan automatik kitaran tunggal perkakasan sebanyak 16 daripada daftar yang disimpan pemanggil berbentuk ke kawasan tindanan dalaman yang tidak kelihatan kepada pengguna. Apabila pengecualian atau gangguan kembali, kitaran tunggal perkakasan secara automatik memulihkan data dari kawasan tindanan dalaman kepada daftar berbentuk 16. HPE menyokong sarang sehingga 2 tahap dalam.
- Skema timbunan tekanan mikropemproses ditunjukkan dalam rajah berikut.
Nota:
- Fungsi sampukan menggunakan HPE perlu disusun menggunakan MRS atau rantai alat yang disediakan dan fungsi sampukan perlu diisytiharkan dengan __attribute__((interrupt (“WCH-Interrupt-fast”))).
- Fungsi sampukan menggunakan tolak tindanan diisytiharkan oleh __attribute__((interrupt())).
Jadual Vektor Percuma (VTF)
- Programmable Fast Interrupt Controller (PFIC) menyediakan 4 saluran VTF, iaitu, akses terus ke entri fungsi gangguan tanpa melalui proses carian jadual vektor gangguan.
- Saluran VTF boleh didayakan dengan menulis nombor gangguannya, alamat asas fungsi perkhidmatan gangguan dan alamat offset ke dalam daftar pengawal PFIC yang sepadan semasa mengkonfigurasi fungsi gangguan seperti biasa.
- Proses tindak balas PFIC untuk gangguan pantas dan bebas jadual ditunjukkan dalam Rajah 3-2 di bawah.
PMP Perlindungan Memori Fizikal
- Untuk meningkatkan keselamatan sistem, modul perlindungan memori fizikal (PMP) direka mengikut piawaian seni bina RISC-V untuk mikropemproses siri V3 barli tanah tinggi. Pengurusan hak akses sehingga 4 kawasan fizikal disokong. Kebenaran termasuk atribut baca (R), tulis (W), dan laksana (X), dan panjang kawasan yang dilindungi boleh ditetapkan kepada 4 bait sekurang-kurangnya. Modul PMP sentiasa berkuat kuasa dalam mod pengguna, tetapi ia boleh berkuat kuasa secara pilihan dengan mengunci atribut (L) dalam mod mesin.
- Jika akses melanggar had kebenaran semasa, ia akan mencetuskan gangguan yang tidak normal. Modul PMP merangkumi empat kumpulan daftar konfigurasi 8-bit (Satu kumpulan 32-bit) dan empat kumpulan daftar alamat, yang kesemuanya perlu diakses dalam mod mesin melalui arahan CSR.
- Nota: Bilangan kawasan terlindung yang disokong oleh PMP dalam model mikropemproses yang berbeza mungkin berbeza, dan bilangan yang disokong oleh daftar pmpcfg dan pmpaddr juga berbeza. Lihat Jadual 1-1 untuk butiran.
Set Daftar PMP
Senarai daftar CSR yang disokong oleh modul PMP mikropemproses V3 ditunjukkan dalam Jadual 4-1 di bawah.
Jadual 4-1 Set daftar modul PMP
Nama | alamat CSR | Akses | Penerangan | Tetapkan semula nilai |
pmpcfg0 | 0x3A0 | MRW | Daftar 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 ialah daftar konfigurasi unit PMP, dan setiap daftar mengandungi empat medan pengepaman 8-bit, sepadan dengan konfigurasi empat wilayah, dan pengepaman mewakili nilai konfigurasi wilayah i. Formatnya ditunjukkan dalam jadual 4-2 berikut.
Jadual 4-2 pmpcfg0 daftar
pmpcfg digunakan untuk mengkonfigurasi kawasan I dan definisi bitnya diterangkan dalam jadual 4-3 berikut.
Jadual 4-3
sedikit | Nama | Penerangan |
7 | L | Penguncian didayakan dan boleh dibuka kunci dalam mod mesin. 0: Tidak dikunci;
1: Kunci daftar yang berkaitan. |
[6:5] | – | Terpelihara |
[4:3] | A | Penjajaran alamat dan pemilihan julat kawasan perlindungan. 00: MATI (PMP dimatikan)
01: TOR (Perlindungan penjajaran atas) 10: NA4 (Perlindungan empat bait tetap) 11: NAPOT (2(G+2) Perlindungan bait, G≥1) |
2 | X | Atribut boleh laksana. |
0: Tiada kebenaran melaksanakan;
1: Laksanakan kebenaran. |
||
1 |
W |
Atribut boleh tulis.
0: Tiada kebenaran menulis 1: Kebenaran tulis. |
0 |
R |
Atribut boleh dibaca
0: Tiada kebenaran membaca 1: Kebenaran membaca. |
pmpaddr
Daftar pmpaddr digunakan untuk mengkonfigurasi alamat kawasan I. Definisi standard adalah di bawah seni bina RV32, iaitu pengekodan 32 bit atas alamat fizikal 34-bit, dan formatnya ditunjukkan dalam jadual 4-4 berikut .
Keseluruhan ruang alamat fizikal mikropemproses V3 ialah 4G, jadi dua bit atas daftar ini tidak digunakan.
Jadual 4-4 pmpaddr
Apabila NAPOT dipilih, bit rendah daftar alamat juga digunakan untuk menunjukkan saiz kawasan perlindungan semasa, seperti yang ditunjukkan dalam jadual berikut, di mana 'y' ialah sedikit daftar.
Jadual 4-5 Jadual hubungan antara konfigurasi PMP dan daftar alamat dan kawasan terlindung.
pmpaddr | pmpcfg. A | Alamat dan saiz asas yang sepadan |
yyyy…yyyy | NA4 | Dengan 'yy…yyyy00' sebagai alamat asas, kawasan 4-bait dilindungi. |
yyyy…yyy0 | NAPOT | Dengan 'yy…yyy000' sebagai alamat asas, kawasan 8-bait dilindungi. |
yyyy…yy01 | NAPOT | Dengan 'yy…yy0000' sebagai alamat asas, kawasan 16-bait dilindungi. |
yyyy…y011 | NAPOT | Dengan 'yy…y00000' sebagai alamat asas, kawasan 16-bait dilindungi. |
… | … | … |
yyy01…111 | NAPOT | Dengan 'y0…000000' sebagai alamat asas, kawasan 231-bait dilindungi. |
yy011…111 | NAPOT | Lindungi keseluruhan kawasan 232-bait. |
Mekanisme Perlindungan
X/W/R dalam pmpcfg digunakan untuk menetapkan pihak berkuasa perlindungan kawasan I, dan pelanggaran pihak berkuasa yang berkaitan akan menyebabkan pengecualian yang sepadan:
- Apabila cuba mengambil arahan dalam kawasan PMP tanpa kuasa pelaksanaan, ia akan menyebabkan pengecualian ralat akses pengambilan arahan (mcause=1).
- Apabila cuba menulis data dalam kawasan PMP tanpa kebenaran bertulis, ia akan menyebabkan pengecualian ralat (mcause=7) dalam akses arahan kedai.
- Apabila cuba membaca data dalam kawasan PMP tanpa kebenaran baca, ia akan menyebabkan ralat capaian memori yang tidak normal (mcause=5) untuk arahan pemuatan.
A dalam pmpcfg digunakan untuk menetapkan julat perlindungan dan penjajaran alamat bagi rantau I, dan untuk melindungi memori A_ADDR ≤ rantau < i > < B_ADDR (kedua-dua A_ADDR dan B_ADDR diperlukan untuk diselaraskan dalam 4 bait):
- Jika B _ ADDR–A_ADDR = = 22, mod NA4 diterima pakai;
- Jika B _ ADDR–A_ADDR = = 2(G+2), G≥1 dan alamat _ ialah 2(g+2), kaedah NAPOT diterima pakai;
- Jika tidak, mod TOP diterima pakai.
Jadual 4-6 Kaedah pemadanan alamat PMP
Suatu nilai | Nama | Penerangan |
0b00 | DIMATIKAN | Tiada kawasan untuk dilindungi |
0b01 | TOR | Perlindungan Kawasan Sejajar Atas.
Di bawah pmp pmpaddri = B_ADDR >> 2. Nota: Jika kawasan 0 PMP dikonfigurasikan sebagai mod TOR (i=0), sempadan bawah kawasan perlindungan ialah 0 alamat, iaitu 0 ≤ addr < pmpaddr0, semuanya dalam julat padanan. |
0b10 | NA4 | Perlindungan kawasan 4-bait tetap.
pmp |
0b11 | NAPOT | Lindungi rantau 2(G+2) dengan G ≥ 1, apabila A_ADDR adalah 2(G+2) sejajar. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1. |
- Bit L dalam pmp
- Mikropemproses siri QingKe V3 menyokong perlindungan berbilang zon. Apabila operasi yang sama sepadan dengan berbilang zon pada masa yang sama, zon dengan nombor yang lebih kecil dipadankan dahulu.
Pemasa Sistem (SysTick)
- Mikropemproses siri QingKe V3 direka dengan pembilang 32-bit atau 64-bit (SysTick) di dalamnya. Sumber jamnya ialah jam sistem atau pembahagian 8 frekuensi, dan V3A hanya menyokong pembahagian 8 frekuensi.
- Ia boleh menyediakan asas masa, masa dan masa pengukuran untuk sistem pengendalian masa nyata. Pelbagai jenis daftar yang terlibat dalam pemasa mempunyai alamat pemetaan yang berbeza, seperti yang ditunjukkan dalam jadual 5-1 dan 5-2 berikut.
Jadual 5-1 Senarai daftar V3A SysTick
Nama | Alamat akses | Penerangan | Tetapkan semula nilai |
STK_CTLR | 0xE000F000 | Daftar kawalan kaunter sistem | 0x00000000 |
STK_CNTL | 0xE000F004 | Daftar rendah kaunter sistem | 0xXXXXXXXXX |
STK_CNTH | 0xE000F008 | Daftar tinggi kaunter sistem
Nota: Hanya sah untuk V3A. |
0xXXXXXXXXX |
STK_CMPLR | 0xE000F00C | Daftar nilai perbandingan kiraan sistem rendah | 0xXXXXXXXXX |
STK_CMPHR | 0xE000F010 | Daftar nilai perbandingan kiraan sistem tinggi
Nota: Hanya sah untuk V3A. |
0xXXXXXXXXX |
Jadual 5-2 V3 senarai daftar SysTick model lain
Nama | Alamat akses | Penerangan | Tetapkan semula nilai |
STK_CTLR | 0xE000F000 | Daftar kawalan kaunter sistem | 0x00000000 |
STK_SR | 0xE000F004 | Daftar status kaunter sistem | 0x00000000 |
STK_CNTL | 0xE000F008 | Daftar rendah kaunter sistem | 0xXXXXXXXXX |
STK_CMPLR | 0xE000F010 | Kira nilai perbandingan daftar rendah | 0xXXXXXXXXX |
Setiap daftar diterangkan secara terperinci seperti berikut.
Daftar kawalan kaunter sistem (STK_CTLR)
Jadual 5-3 Daftar kawalan SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:5] | Terpelihara | RO | Terpelihara | 0 |
4 |
MODE |
RW |
Mod mengira: 1: Mengira mundur;
0: Kira. Nota: Tidak sah untuk V3A. |
0 |
3 |
STRE |
RW |
Kiraan muat semula automatik membolehkan bit:
1: Kira dari 0 sekali lagi selepas mengira sehingga nilai perbandingan, dan kira dari nilai perbandingan sekali lagi selepas mengira turun hingga 0; 0: Teruskan mengira naik/turun. Nota: Tidak sah untuk V3A. |
0 |
2 |
STCLK |
RW |
Bit pemilihan sumber counterclock:
1: HCLK sebagai asas masa; 0: HCLK/8 sebagai asas masa. Nota: Ia tidak sah untuk V3A, yang hanya menyokong HCLK/8 sebagai asas masa. |
0 |
1 | LAMAN | RW | Sampuk balas membolehkan bit kawalan: | 0 |
1: Dayakan gangguan balas; 0: Lumpuhkan gangguan balas.
Nota: Tidak sah untuk V3A. |
||||
0 | STE | RW | Kaunter sistem membolehkan bit kawalan. 1: Dayakan pembilang sistem STK;
0: Lumpuhkan pembilang sistem STK dan pembilang berhenti mengira. |
0 |
Daftar status kaunter sistem (STK_SR)
Daftar ini tidak terpakai kepada V3A.
Jadual 5-4 Daftar rendah kaunter SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
31 |
SWIE |
RW |
Pencetus gangguan perisian membolehkan (SWI): 1: Pencetus gangguan perisian;
0: Matikan picu. Nota: Bit ini mesti dibersihkan selepas memasuki gangguan perisian, jika tidak, ia akan sentiasa mencetuskan. |
0 |
[30:1] | Terpelihara | RO | Terpelihara | 0 |
0 |
CNTIF |
RW |
Kira bendera perbandingan, tulis 0 dengan jelas, tulis 1 tidak sah:
1: Kira sehingga nilai perbandingan dan kira hingga 0; 0: Nilai perbandingan tidak dicapai. |
0 |
Daftar rendah kaunter sistem (STK_CNTL)
Jadual 5-5 Daftar rendah kaunter SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:0] | CNTL | RW | Nilai kiraan kaunter semasa adalah 32 bit lebih rendah. Untuk V3A, daftar ini boleh dibaca sebagai 8-bit /16-bit
/32-bit, tetapi hanya boleh ditulis sebagai 8-bit, dan lain-lain model tidak terhad. |
0xXXXXXX XXX |
Nota: Daftar STK_CNTL dan daftar STK_CNTH dalam V3A bersama-sama membentuk pembilang sistem 64-bit.
Daftar tinggi kaunter sistem (STK_CNTH)
Jadual 5-6 Daftar tinggi kaunter SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:0] | CNTH | RW | Nilai kiraan kaunter semasa adalah 32 bit lebih tinggi. Daftar ini boleh dibaca dengan 8-bit/16-bit/32-bit, tetapi hanya boleh ditulis oleh 8-bit.
Nota: Hanya sah untuk V3A. |
0xXXXXXX XXX |
Nota: Daftar STK_CNTL dan daftar STK_CNTH dalam V3A bersama-sama membentuk pembilang sistem 64-bit.
Daftar rendah nilai perbandingan kiraan sistem (STK_CMPLR)
Jadual 5-7 Daftar rendah nilai perbandingan SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:0] | CMPL | RW | Tetapkan nilai perbandingan pembilang kepada 32 bit lebih rendah. Apabila nilai CMP dan nilai CNT adalah sama, gangguan STK akan dicetuskan. Untuk V3A, daftar ini boleh dibaca sebagai 8-bit /16-bit /32-bit, tetapi hanya boleh
ditulis sebagai 8-bit, dan model lain tidak terhad. |
0xXXXXXX XXX |
Nota: Daftar STK_CMPLR dan daftar STK_CMPHR dalam V3A bersama-sama membentuk nilai perbandingan kaunter 64-bit.
Daftar tinggi nilai perbandingan kiraan sistem (STK_CMPHR)
Jadual 5-8 Daftar tinggi nilai perbandingan SysTick
sedikit | Nama | Akses | Penerangan | Tetapkan semula nilai |
[31:0] | CMPH | RW | Tetapkan nilai perbandingan pembilang 32 bit lebih tinggi. Gangguan STK akan dicetuskan apabila nilai CMP dan nilai CNT adalah sama.
Daftar ini boleh dibaca dengan 8-bit/16-bit/32-bit, tetapi hanya boleh ditulis oleh 8-bit. Nota: Hanya sah untuk V3A. |
0xXXXXXX XXX |
Nota: Daftar STK_CMPLR dan daftar STK_CMPHR dalam V3A bersama-sama membentuk nilai perbandingan kaunter 64-bit.
Tetapan Kuasa Rendah Pemproses
- Mikropemproses siri QingKe V3 menyokong keadaan tidur melalui arahan WFI (Tunggu Gangguan) untuk mencapai penggunaan kuasa statik yang rendah.
- Bersama-sama dengan daftar kawalan sistem PFIC (PFIC_SCTLR), pelbagai mod Tidur dan arahan WFE boleh dilaksanakan.
Masukkan Tidur
- Mikropemproses siri QingKe V3 boleh tidur dalam dua cara, Tunggu Gangguan (WFI) dan Tunggu Acara (WFE). Kaedah WFI bermaksud bahawa mikropemproses pergi tidur, menunggu gangguan untuk bangun, dan kemudian bangun untuk gangguan yang sepadan untuk dilaksanakan. Kaedah WFE bermaksud bahawa mikropemproses akan tidur, menunggu peristiwa untuk bangun dan bangun untuk terus melaksanakan aliran program yang dihentikan sebelum ini.
- RISC-V standard menyokong arahan WFI, dan arahan WFI boleh dilaksanakan terus untuk memasuki tidur dengan kaedah WFI. Untuk kaedah WFE, bit WFITOWFE dalam daftar kawalan sistem PFIC_SCTLR digunakan untuk mengawal arahan WFI berikutnya sebagai pemprosesan WFE untuk mencapai kaedah WFE untuk memasuki tidur.
- Kedalaman tidur dikawal mengikut bit SLEEPDEEP dalam PFIC_SCTLR.
- Jika SLEEPDEEP dalam daftar PFIC_SCTLR dikosongkan kepada sifar, mikropemproses memasuki mod Tidur dan jam unit dalaman dibenarkan untuk dimatikan kecuali untuk SysTick dan sebahagian daripada logik bangun tidur.
- Jika SLEEPDEEP dalam daftar PFIC_SCTLR ditetapkan, mikropemproses memasuki mod tidur dalam dan semua jam sel dibenarkan untuk dimatikan.
- Apabila mikropemproses berada dalam mod Nyahpepijat, ia tidak boleh memasuki sebarang jenis mod Tidur.
Tidur Bangun
Mikropemproses siri QingKe V3 boleh dibangunkan selepas tidur kerana WFI dan WFE dengan cara berikut.
Selepas kaedah WFI pergi tidur, ia boleh dikejutkan oleh
- Mikropemproses boleh dibangunkan oleh sumber gangguan yang dijawab oleh pengawal gangguan. Selepas bangun, mikropemproses melaksanakan fungsi gangguan terlebih dahulu.
- Masukkan mod Tidur, permintaan nyahpepijat boleh membuatkan mikropemproses bangun dan memasuki tidur nyenyak, permintaan nyahpepijat tidak boleh membangunkan mikropemproses.
Selepas kaedah WFE tidur, mikropemproses boleh dibangunkan dengan perkara berikut.
- Peristiwa dalaman atau luaran, apabila tidak perlu mengkonfigurasi pengawal gangguan, bangun dan teruskan melaksanakan program.
- Jika sumber sampukan didayakan, mikropemproses dibangunkan apabila sampukan dijana, dan selepas bangun, mikropemproses melaksanakan fungsi sampukan terlebih dahulu.
- Jika bit SEVONPEND dalam PFIC_SCTLR dikonfigurasikan, pengawal sampukan tidak mendayakan sampukan, tetapi apabila isyarat belum selesai sampukan baharu dijana (isyarat belum selesai yang dijana sebelum ini tidak berkuat kuasa), ia juga boleh membuatkan mikropemproses bangun, dan bendera menunggu gangguan yang sepadan perlu dikosongkan secara manual selepas bangun.
- Permintaan nyahpepijat mod Tidur boleh membuatkan mikropemproses bangun dan memasuki tidur dalam, permintaan nyahpepijat tidak boleh membangunkan mikropemproses.
- Selain itu, keadaan mikropemproses selepas bangun boleh dikawal dengan mengkonfigurasi bit SLEEPONEXIT dalam PFIC_SCTLR.
- SLEEPONEXIT ditetapkan dan arahan pemulangan gangguan tahap terakhir (mret) akan mencetuskan tidur mod WFI.
SLEEPONEXIT dibersihkan tanpa kesan.
Pelbagai produk MCU yang dilengkapi dengan mikropemproses siri V3 boleh menggunakan mod tidur yang berbeza, mematikan peranti dan jam yang berbeza, melaksanakan dasar pengurusan kuasa yang berbeza dan kaedah bangun mengikut konfigurasi berbeza PFIC_SCTLR, dan merealisasikan pelbagai mod kuasa rendah.
Sokongan Nyahpepijat
- Mikropemproses siri QingKe V3 termasuk modul nyahpepijat perkakasan yang menyokong operasi penyahpepijatan yang kompleks. Apabila mikropemproses digantung, modul nyahpepijat boleh mengakses GPR, CSR, Memori, peranti luaran mikropemproses, dsb. melalui arahan abstrak, arahan penggunaan penimbal program, dsb. Modul nyahpepijat boleh menggantung dan menyambung semula operasi mikropemproses.
- Modul nyahpepijat mengikut spesifikasi Sokongan Nyahpepijat Luaran RISC-V Versi0.13.2, dokumentasi terperinci boleh dimuat turun daripada RISC-V International webtapak.
Modul Nyahpepijat
- Modul nyahpepijat di dalam mikropemproses, yang mampu melaksanakan operasi nyahpepijat yang dikeluarkan oleh hos nyahpepijat, termasuk.
- Akses kepada pendaftaran melalui antara muka nyahpepijat
- Tetapkan semula, gantung dan sambung semula mikropemproses melalui antara muka nyahpepijat
- Baca dan tulis memori, daftar arahan dan peranti luaran melalui antara muka nyahpepijat
- Gunakan berbilang arahan sewenang-wenangnya melalui antara muka nyahpepijat
- Tetapkan titik putus perisian melalui antara muka nyahpepijat
- Tetapkan titik putus perkakasan melalui antara muka nyahpepijat
- Menyokong pelaksanaan auto arahan abstrak
- Menyokong penyahpepijatan satu langkah
- Nota: V3A tidak menyokong titik putus perkakasan, titik putus perkakasan V3B menyokong pemadanan alamat arahan, dan titik putus perkakasan V3C menyokong pemadanan alamat arahan dan alamat data.
- Daftar dalaman modul penyahpepijatan menggunakan kod alamat 7-bit, dan daftar berikut dilaksanakan di dalam mikropemproses siri QingKe V3.
Jadual 7-1 Senarai daftar modul nyahpepijat
Nama | Alamat akses | Penerangan |
data0 | 0x04 | Daftar data 0, boleh digunakan untuk penyimpanan sementara data |
data1 | 0x05 | Daftar data 1, boleh digunakan untuk penyimpanan sementara data |
hilang kawalan | 0x10 | Daftar kawalan modul nyahpepijat |
dmstatus | 0x11 | Daftar status modul nyahpepijat |
hartinfo | 0x12 | Daftar status mikropemproses |
abstrak | 0x16 | Daftar status arahan abstrak |
perintah | 0x17 | Daftar arahan abstrak |
auto abstrak | 0x18 | Perlaksanaan auto arahan abstrak |
progbuf0-7 | 0x20-0x27 | Cache arahan mendaftar 0-7 |
haltsum0 | 0x40 | Jeda daftar status |
- Hos nyahpepijat boleh mengawal penggantungan mikropemproses, menyambung semula, menetapkan semula, dsb. dengan mengkonfigurasi daftar nyahkawal. Piawaian RISC-V mentakrifkan tiga jenis arahan abstrak: daftar akses, akses pantas dan memori akses.
- Mikropemproses QingKe V3A hanya menyokong akses daftar, model lain menyokong akses daftar dan memori, tetapi bukan akses pantas. Akses kepada daftar (GPR, CSR) dan akses berterusan kepada ingatan boleh direalisasikan dengan arahan abstrak.
- Modul nyahpepijat melaksanakan 8 daftar cache arahan progbuf0-7, dan hos nyahpepijat boleh cache berbilang arahan (yang boleh dimampatkan arahan) ke penimbal dan boleh memilih untuk terus melaksanakan arahan dalam daftar cache arahan selepas melaksanakan arahan abstrak atau laksana arahan cache secara langsung.
- Nota bahawa arahan terakhir dalam atur cara mestilah arahan "ebreak" atau "c.ebreak". Akses kepada storan, persisian, dsb. juga boleh dilakukan melalui arahan abstrak dan arahan yang dicache dalam program.
- Setiap daftar diterangkan secara terperinci seperti berikut.
- Daftar data 0 (data0)
Jadual 7-2 definisi daftar data
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | data0 | RW | Daftar data 0, digunakan untuk penyimpanan sementara data | 0 |
Daftar data 1 (data1)
Jadual 7-3 definisi daftar data1
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | data1 | RW | Daftar data 1, digunakan untuk penyimpanan sementara data | 0 |
Daftar kawalan modul nyahpepijat (nyahkawalan)
Daftar ini mengawal jeda, set semula dan sambung semula mikropemproses. Hos nyahpepijat menulis data ke medan yang sepadan untuk mencapai jeda (haltreq), set semula (ndmreset), sambung semula (resumereq). Anda menerangkan perkara berikut.
Jadual 7-4 nyahkawal definisi daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
31 | haltreq | WO | 0: Kosongkan permintaan jeda
1: Hantar permintaan jeda |
0 |
30 | resumereq | W1 | 0: Tidak sah
1: Pulihkan mikropemproses semasa Nota: Tulis 1 adalah sah dan perkakasan dibersihkan selepas mikropemproses dipulihkan |
0 |
29 | Terpelihara | RO | Terpelihara | 0 |
28 | ackhavereset | W1 | 0: Tidak sah
1: Kosongkan bit status penuaian mikropemproses |
0 |
[27:2] | Terpelihara | RO | Terpelihara | 0 |
1 | ndmreset | RW | 0: Kosongkan tetapan semula
1: Tetapkan semula keseluruhan sistem selain daripada modul nyahpepijat |
0 |
0 | nyahaktifkan | RW | 0: Tetapkan semula modul nyahpepijat
1: Modul Nyahpepijat berfungsi dengan betul |
0 |
Daftar status modul nyahpepijat (status dm)
- Daftar ini digunakan untuk menunjukkan status modul nyahpepijat dan merupakan daftar baca sahaja dengan penerangan berikut bagi setiap bit.
Jadual 7-5 definisi daftar dmstatus
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:20] | Terpelihara | RO | Terpelihara | 0 |
19 | allhaveset | RO | 0: Tidak sah
1: Tetapan semula mikropemproses |
0 |
18 | anyhaveset | RO | 0: Tidak sah
1: Tetapan semula mikropemproses |
0 |
17 | allresumeck | RO | 0: Tidak sah
1: Tetapan semula mikropemproses |
0 |
16 | anyresumeck | RO | 0: Tidak sah
1: Tetapan semula mikropemproses |
0 |
[15:14] | Terpelihara | RO | Terpelihara | 0 |
13 | aluvium | RO | 0: Tidak sah
1: Mikropemproses tidak tersedia |
0 |
12 | sebarang faedah | RO | 0: Tidak sah
1: Mikropemproses tidak tersedia |
0 |
11 | semua berjalan | RO | 0: Tidak sah
1: Mikropemproses sedang berjalan |
0 |
10 | sebarang larian | RO | 0: Tidak sah
1: Mikropemproses sedang berjalan |
0 |
9 | terhenti | RO | 0: Tidak sah
1: Mikropemproses berada dalam penggantungan |
0 |
8 | mana-mana terhenti | RO | 0: Tidak sah
1: Mikropemproses kehabisan penggantungan |
0 |
7 | disahkan |
RO |
0: Pengesahan diperlukan sebelum menggunakan modul nyahpepijat
1: Modul penyahpepijatan telah diperakui |
0x1 |
[6:4] | Terpelihara | RO | Terpelihara | 0 |
[3:0] | versi | RO | Menyahpepijat sistem sokongan seni bina versi 0010: V0.13 | 0x2 |
Daftar status mikropemproses (hartinfo)
Daftar ini digunakan untuk memberikan maklumat tentang mikropemproses kepada hos nyahpepijat dan merupakan daftar baca sahaja dengan setiap bit diterangkan seperti berikut.
Jadual 7-6 definisi daftar hartinfo
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:24] | Terpelihara | RO | Terpelihara | 0 |
[23:20] | calar | RO | Bilangan daftar calar yang disokong | 0x3 |
[19:17] | Terpelihara | RO | Terpelihara | 0 |
16 | DataAccess | RO | 0: Daftar data dipetakan ke alamat CSR
1: Daftar data dipetakan ke alamat memori |
0x1 |
[15:12] | ukuran data | RO | Bilangan daftar data | 0x2 |
[11:0] | tambah data |
RO |
Alamat offset data daftar data0,
yang alamat asasnya ialah 0xe0000000, tertakluk kepada bacaan tertentu. |
0xXXX |
Kawalan arahan abstrak dan daftar status (abstrak)
Daftar ini digunakan untuk menunjukkan pelaksanaan perintah abstrak. Hos nyahpepijat boleh membaca daftar ini untuk mengetahui sama ada arahan abstrak terakhir dilaksanakan atau tidak dan boleh menyemak sama ada ralat dijana semasa pelaksanaan arahan abstrak dan jenis ralat, yang diterangkan secara terperinci seperti berikut.
Jadual 7-7 abstrak mendaftar definisi
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:29] | Terpelihara | RO | Terpelihara | 0 |
[28:24] | progbufsize | RO | Menunjukkan bilangan program penimbal program
daftar cache |
0x8 |
[23:13] | Terpelihara | RO | Terpelihara | 0 |
12 | sibuk | RO | 0: Tiada arahan abstrak sedang dilaksanakan
1: Terdapat arahan abstrak sedang dilaksanakan Nota: Selepas pelaksanaan, perkakasan dikosongkan. |
0 |
11 | Terpelihara | RO | Terpelihara | 0 |
[10:8] | cmder | RW | Jenis ralat arahan abstrak 000: Tiada ralat
001: Pelaksanaan perintah abstrak untuk menulis kepada perintah, abstrak, daftar auto abstrak atau membaca dan menulis kepada data dan daftar progbuf 010: Tidak menyokong arahan abstrak semasa 011: Pelaksanaan perintah abstrak dengan pengecualian 100: Mikropemproses tidak digantung atau tidak tersedia dan tidak boleh melaksanakan arahan abstrak 101: Ralat bas 110: Ralat bit pariti semasa komunikasi 111: Ralat lain Nota: Untuk penulisan bit 1 digunakan untuk mengosongkan sifar. |
0 |
[7:4] | Terpelihara | RO | Terpelihara | 0 |
[3:0] | diskaun | RO | Bilangan daftar data | 0x2 |
- Hos penyahpepijatan boleh mengakses GPR, daftar CSR dan memori dengan menulis nilai konfigurasi yang berbeza ke dalam daftar perintah abstrak.
- Apabila mengakses daftar, bit daftar perintah ditakrifkan seperti berikut.
- Jadual 7-8 Definisi daftar arahan semasa mengakses daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:24] | jenis cmd | WO | Jenis arahan abstrak 0: Daftar akses;
1: Akses pantas (tidak disokong); 2: Akses kepada ingatan. |
0 |
23 | Terpelihara | WO | Terpelihara | 0 |
[22:20] | aarsize | WO | Akses lebar bit data daftar 000: 8-bit
001: 16-bit 010: 32-bit |
0 |
011: 64-bit (tidak disokong) 100: 128-bit (tidak disokong)
Nota: Apabila mengakses daftar floating-point FPR, hanya akses 32-bit disokong. |
||||
19 | aarpostincrement | WO | 0: Tiada kesan
1: Meningkatkan nilai regno secara automatik selepas mengakses daftar |
0 |
18 | jawatan eksekutif | WO | 0: Tiada kesan
1: Jalankan arahan abstrak dan kemudian laksanakan arahan dalam progbuf |
0 |
17 | pemindahan | WO | 0: Jangan laksanakan operasi yang ditentukan dengan menulis
1: Laksanakan manipulasi yang ditentukan dengan menulis |
0 |
16 | menulis | WO | 0: Salin data dari daftar yang ditentukan ke data0 1: Salin data dari daftar data0 ke daftar yang ditentukan |
0 |
[15:0] | regno | WO | Tentukan daftar akses 0x0000-0x0fff ialah CSR 0x1000-0x101f ialah GPR |
0 |
Apabila mengakses memori, bit dalam daftar arahan ditakrifkan seperti berikut.
Jadual 7-9 Definisi arahan Daftar semasa Mengakses Memori
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:24] | jenis cmd | WO | Jenis arahan abstrak 0: Daftar akses;
1: Akses pantas (tidak disokong); 2: Akses memori. |
0 |
23 | aamvirtual | WO | 0: Akses alamat fizikal;
1: Akses alamat maya. |
0 |
[22:20] | saiz lengan | WO | Akses lebar bit data memori 000: 8-bit;
001: 16-bit; 010: 32-bit; 011: 64-bit (tidak disokong); 100: 128-bit (tidak disokong); |
0 |
19 | aampostincrement | WO | 0: Tiada pengaruh;
1: Selepas mencapai memori dengan jayanya, tambahkan alamat yang disimpan dalam daftar data1 dengan bilangan bait yang sepadan dengan lebar bit yang dikonfigurasikan mengikut saiz lengan. Aamsize=0, diakses oleh bait, data1 tambah 1. Aamsize=1, diakses dengan separuh perkataan, data1 tambah 2. aamsize=2, diakses dengan bit, data1 tambah 4. |
0 |
18 | jawatan eksekutif | WO | 0: Tiada pengaruh;
1: Jalankan arahan dalam progbuf selepas melaksanakan arahan abstrak. |
0 |
17 | Rizab | RO | Terpelihara | 0 |
16 |
menulis |
WO |
0: Baca data dari alamat yang ditentukan oleh data1 hingga data0
1: Tulis data dalam data0 ke alamat yang ditentukan oleh data1. |
0 |
[15:14] |
khusus sasaran |
WO |
Definisi mod membaca dan menulis Tulis:
00, 01: Tulis terus ke ingatan; 10: Selepas data dalam data0 adalah ATAU dengan bit data dalam ingatan, hasilnya ditulis ke dalam ingatan (Hanya akses perkataan disokong). 11: Selepas menjumlahkan data dalam data0 dengan bit data dalam ingatan, tulis hasilnya ke dalam ingatan (Hanya akses perkataan disokong). Baca: 00, 01, 10, 11: Baca 0 terus dari ingatan. |
0 |
[13:0] | Rizab | RO | Terpelihara |
Daftar perlaksanaan automatik arahan abstrak (auto abstrak)
Daftar ini digunakan untuk mengkonfigurasi modul penyahpepijatan. Apabila membaca dan menulis progbufx dan data modul penyahpepijatan, arahan abstrak boleh dilaksanakan semula.
Penerangan daftar ini adalah seperti berikut:
Jadual 7-10 definisi daftar auto abstrak
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:16] | autoexecprogbuf | RW | Jika bit ditetapkan, bacaan dan penulisan progbufx yang sepadan akan menyebabkan arahan abstrak dalam daftar arahan dilaksanakan semula.
Nota: Siri V3 direka dengan 8 progbuf, sepadan dengan bit [23:16]. |
0 |
[15:12] | Rizab | RO | Terpelihara | 0 |
[11:0] | autoexecdata |
RW |
Jika bit ditetapkan kepada 1, bacaan dan penulisan daftar data yang sepadan akan menyebabkan arahan abstrak dalam daftar Perintah dilaksanakan semula.
Nota: Siri V3 direka dengan dua data daftar, sepadan dengan bit [1:0]. |
0 |
Daftar cache arahan (progbufx)
Daftar ini digunakan untuk menyimpan sebarang arahan, dan menggunakan operasi yang sepadan, termasuk 8, yang perlu memberi perhatian kepada pelaksanaan terakhir yang perlu "break" atau "c.ebreak".
Jadual 7-11 definisi daftar progbuf
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | progbuf | RW | Pengekodan arahan untuk operasi cache, yang
mungkin termasuk arahan mampatan |
0 |
Jeda daftar status (haltsum0)
Daftar ini digunakan untuk menunjukkan sama ada mikropemproses digantung atau tidak. Setiap bit menunjukkan status penggantungan mikropemproses, dan apabila terdapat hanya satu teras, hanya bit terendah daftar ini digunakan untuk menunjukkannya.
Jadual 7-12 definisi daftar haltsum0
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:1] | Terpelihara | RO | Terpelihara | 0 |
0 | haltsum0 | RO | 0: Mikropemproses beroperasi seperti biasa
1: Berhenti mikropemproses |
0 |
- Sebagai tambahan kepada daftar modul nyahpepijat yang disebutkan di atas, fungsi nyahpepijat juga melibatkan beberapa daftar CSR, terutamanya kawalan nyahpepijat dan daftar status dcsr dan dpc penunjuk arahan nyahpepijat, yang diterangkan secara terperinci seperti berikut.
- Kawalan nyahpepijat dan daftar status (dcsr)
Jadual 7-13 definisi daftar dcsr
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:28] | xdebugver | DRO | 0000: Penyahpepijatan luaran tidak disokong 0100: Sokong penyahpepijatan luaran standard
1111: Penyahpepijatan luaran disokong, tetapi tidak memenuhi spesifikasi |
0x4 |
[27:16] | Terpelihara | DRO | Terpelihara | 0 |
15 | rehat | DRW | 0: Perintah putus dalam mod mesin berkelakuan seperti yang diterangkan dalam keistimewaan file
1: Perintah putus dalam mod mesin boleh memasuki mod nyahpepijat |
0 |
[14:13] | Terpelihara | DRO | Terpelihara | 0 |
12 | perpisahan |
DRW |
0: Perintah break dalam mod pengguna berkelakuan seperti yang diterangkan dalam keistimewaan file
1: Perintah break dalam mod pengguna boleh memasuki mod nyahpepijat |
0 |
11 | langkah | DRW | 0: Gangguan dilumpuhkan di bawah penyahpepijatan satu langkah
1: Dayakan gangguan di bawah penyahpepijatan satu langkah |
0 |
10 | Terpelihara | DRO | Terpelihara | 0 |
9 | berhenti masa | DRW | 0: Pemasa sistem berjalan dalam mod Nyahpepijat
1: Pemasa sistem berhenti dalam mod Nyahpepijat |
0 |
[8:6] | sebab | DRO | Sebab untuk memasuki penyahpepijatan
001: Memasuki penyahpepijatan dalam bentuk perintah break (keutamaan 3) 010: Memasuki penyahpepijatan dalam bentuk modul pencetus (keutamaan 4, yang tertinggi) 011: Memasuki penyahpepijatan dalam bentuk permintaan jeda (keutamaan 1) 100: penyahpepijatan dalam bentuk penyahpepijatan satu langkah (keutamaan 0, paling rendah) |
0 |
101: masukkan mod nyahpepijat terus selepas set semula mikropemproses (keutamaan 2) Lain-lain: Terpelihara | ||||
[5:3] | Terpelihara | DRO | Terpelihara | 0 |
2 | langkah | DRW | 0: Matikan penyahpepijatan satu langkah
1: Dayakan penyahpepijatan satu langkah |
0 |
[1:0] | Sebelumnya | DRW | Mod keistimewaan 00: Mod pengguna
01: Mod penyelia (tidak disokong) 10: Terpelihara 11: Mod mesin Nota: Rakam mod istimewa apabila memasuki mod nyahpepijat, penyahpepijat boleh mengubah suai nilai ini untuk mengubah suai mod istimewa apabila keluar dari nyahpepijat |
0 |
Penunjuk atur cara mod nyahpepijat (DPC)
- Daftar ini digunakan untuk menyimpan alamat arahan seterusnya yang akan dilaksanakan selepas mikropemproses memasuki mod nyahpepijat, dan nilainya dikemas kini dengan peraturan yang berbeza bergantung pada sebab memasuki nyahpepijat. daftar dpc diterangkan secara terperinci seperti berikut.
Jadual 7-14 definisi daftar dpc
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | DPC | DRW | Alamat arahan | 0 |
Peraturan untuk mengemas kini daftar ditunjukkan dalam jadual berikut.
Jadual 7-15 peraturan kemas kini dpc
Masukkan kaedah penyahpepijatan | peraturan Kemas kini dpc |
rehat | Alamat arahan Ebreak |
satu langkah | Alamat arahan arahan seterusnya arahan semasa |
modul pencetus | Tidak disokong buat sementara waktu |
hentikan permintaan | Alamat arahan seterusnya yang akan dilaksanakan apabila memasuki Debug |
Antara Muka Debug
- Berbeza dengan standard JTAG antara muka yang ditakrifkan oleh RISC-V, mikropemproses siri QingKe V3 menggunakan 1- antara muka nyahpepijat bersiri wayar/2 wayar dan mengikut protokol antara muka nyahpepijat WCH V1.0.
- Antara muka nyahpepijat bertanggungjawab untuk komunikasi antara hos nyahpepijat dan modul nyahpepijat dan merealisasikan operasi baca/tulis hos nyahpepijat kepada daftar modul nyahpepijat.
- WCH mereka bentuk WCH_Link dan sumber terbuka binari skema dan programnya files, yang boleh digunakan untuk menyahpepijat semua mikropemproses seni bina RISC-V.
- Rujuk Manual Protokol Nyahpepijat WCH untuk protokol antara muka nyahpepijat tertentu.
Senarai Daftar CSR
- Seni bina RISC-V mentakrifkan beberapa Daftar Kawalan dan Status (CSR) untuk mengawal dan merekod status pengendalian mikropemproses.
- Beberapa CSR telah diperkenalkan dalam bahagian sebelumnya, dan bab ini akan memperincikan daftar CSR yang dilaksanakan dalam mikropemproses siri QingKe V3.
Senarai Daftar CSR
Jadual 8-1 Senarai Daftar CSR Mikropemproses
taip | Nama | CSR Alamat | Akses | Penerangan |
RISC-V
CSR standard |
marchid | 0xF12 | MRO | Daftar nombor seni bina |
mimpid | 0xF13 | MRO | Daftar penomboran pelaksanaan perkakasan | |
mstatus | 0x300 | MRW | Daftar status | |
misa | 0x301 | MRW | Daftar set arahan perkakasan | |
mtvec | 0x305 | MRW | Daftar alamat asas pengecualian | |
mscratch | 0x340 | MRW | Mod mesin stagdaftar masuk | |
MEPC | 0x341 | MRW | Daftar penunjuk program pengecualian | |
sebab | 0x342 | MRW | Daftar sebab pengecualian | |
mtval | 0x343 | MRW | Daftar nilai pengecualian | |
pmpcfg | 0x3A0+i | MRW | Daftar konfigurasi PMP | |
pmpaddr | 0x3B0+i | MRW | daftar alamat PMP | |
tselect | 0x7A0 | MRW | Daftar pemilihan pencetus nyahpepijat | |
tdata1 | 0x7A1 | MRW | Daftar data pencetus nyahpepijat 1 | |
tdata2 | 0x7A2 | MRW | Daftar data pencetus nyahpepijat 2 | |
dcsr | 0x7B0 | DRW | Kawalan nyahpepijat dan daftar status | |
dpc | 0x7B1 | DRW | Daftar penunjuk program mod nyahpepijat | |
dscratch0 | 0x7B2 | DRW | Mod nyahpepijat stagdalam daftar 0 | |
dscratch1 | 0x7B3 | DRW | Mod nyahpepijat stagdalam daftar 1 | |
CSR yang ditentukan oleh vendor |
gintenr | 0x800 | URW | Gangguan global membolehkan daftar |
intsyscr | 0x804 | URW | Mengganggu daftar kawalan sistem | |
corecfgr | 0xBC0 | MRW | Daftar konfigurasi mikropemproses | |
inestcr | 0xBC1 | MRW | Mengganggu daftar kawalan bersarang |
Daftar CSR Standard RISC-V
- Daftar nombor seni bina (marchid)
- Daftar ini ialah daftar baca sahaja untuk menunjukkan nombor seni bina perkakasan mikropemproses semasa, yang kebanyakannya terdiri daripada kod vendor, kod seni bina, kod siri dan kod versi. Setiap daripada mereka ditakrifkan seperti berikut.
Jadual 8-2 definisi daftar marchid
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
31 | Terpelihara | MRO | Terpelihara | 1 |
[30:26] | Penjual0 | MRO | Kod pengilang 0
Ditetapkan pada kod huruf "W". |
0x17 |
[25:21] | Penjual1 | MRO | Kod pengilang1
Ditetapkan pada kod huruf "C". |
0x03 |
[20:16] | Penjual2 | MRO | Kod pengilang 2
Ditetapkan pada kod huruf "H". |
0x08 |
15 | Terpelihara | MRO | Terpelihara | 1 |
[14:10] | Gerbang | MRO | Kod seni bina | 0x16 |
Seni bina RISC-V ditetapkan pada kod huruf "V". | ||||
[9:5] | bersiri | MRO | Kod siri
Siri QingKe V3, ditetapkan pada nombor "3" |
0x03 |
[4:0] | Versi | MRO | Kod versi
Boleh menjadi versi "A", "B", "C" dan huruf lain kod |
x |
Nombor pengilang dan nombor versi adalah abjad, dan nombor siri adalah angka. Jadual pengekodan huruf ditunjukkan dalam jadual berikut.
Jadual 8-3 Jadual 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 |
- Antaranya, mikropemproses QingKe V3A, daftar membaca kembali kepada 0.
Daftar penomboran pelaksanaan perkakasan (limpid)
- Daftar ini terutamanya terdiri daripada kod vendor, setiap satunya ditakrifkan seperti berikut.
Jadual 8-4 definisi daftar limpid
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
31 | Terpelihara | MRO | Terpelihara | 1 |
[30:26] | Penjual0 | MRO | Kod pengilang 0
Ditetapkan pada kod huruf "W". |
0x17 |
[25:21] | Penjual1 | MRO | Kod pengilang1
Ditetapkan pada kod huruf "C". |
0x03 |
[20:16] | Penjual2 | MRO | Kod pengilang 2
Ditetapkan pada kod huruf "H". |
0x08 |
15 | Terpelihara | MRO | Terpelihara | 1 |
[14:8] | Terpelihara | MRO | Terpelihara | 0 |
[7:4] | kecil | MRO | Nombor subversi | 0xX |
[3:0] | Major | MR0 | Nombor versi utama | 0xX |
- Daftar ini boleh dibaca dalam mana-mana pelaksanaan mesin, dan dalam pemproses siri QingKe V3A, daftar ini dibaca kembali kepada sifar.
Daftar status mod mesin (mstatus)
- Daftar ini telah diterangkan sebahagiannya dalam bahagian sebelumnya, dan orangnya diletakkan seperti berikut.
Jadual 8-5 takrif daftar mstatus
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:13] | Terpelihara | MRO | Terpelihara | 0 |
[12:11] | MPP | MRW | Mod istimewa sebelum memasuki rehat | 0 |
[10:8] | Terpelihara | MRO | Terpelihara | 0 |
7 | MPIE | MRW | Sampuk daya keadaan sebelum memasukkan sampukan | 0 |
[6:4] | Terpelihara | MRO | Terpelihara | 0 |
3 | MIE | MRW | Gangguan mod mesin membolehkan | 0 |
[2:0] | Terpelihara | MRO | Terpelihara | 0 |
- Medan MPP digunakan untuk menyimpan mod istimewa sebelum memasuki pengecualian atau sampukan dan digunakan untuk memulihkan mod istimewa selepas keluar dari pengecualian atau sampukan. MIE ialah bit pemboleh gangguan global, dan apabila memasukkan pengecualian atau gangguan, nilai MPIE dikemas kini kepada nilai MIE, dan perlu diperhatikan bahawa dalam mikropemproses siri QingKe V3, MIE tidak akan dikemas kini kepada 0 sebelum tahap terakhir sarang bersarang untuk memastikan sarang sarang dalam mod Mesin terus dilaksanakan. Apabila pengecualian atau gangguan dikeluarkan, mikropemproses kembali kepada mod Mesin yang disimpan oleh MPP, dan MIE dipulihkan kepada nilai MPIE.
- Mikropemproses QingKe V3 menyokong mod Mesin dan mod Pengguna, jika anda perlu menjadikan mikropemproses hanya berfungsi dalam mod Mesin, anda boleh menetapkan MPP kepada 0x3 dalam permulaan but file, iaitu, selepas kembali, ia akan sentiasa kekal dalam mod Mesin.
Daftar set arahan perkakasan (misa)
- Daftar ini digunakan untuk menunjukkan seni bina mikropemproses dan sambungan set arahan yang disokong, setiap satunya diterangkan seperti berikut.
Jadual 8-6 takrifan daftar misa
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:30] | MXL | MRO | Panjang perkataan mesin 1:32
2:64 3:128 |
1 |
[29:26] | Terpelihara | MRO | Terpelihara | 0 |
[25:0] | Sambungan | MRO | Sambungan set arahan | x |
- MXL digunakan untuk menunjukkan panjang perkataan mikropemproses, QingKe V3 ialah mikropemproses 32-bit, dan domain ditetapkan kepada 1.
- Sambungan digunakan untuk menunjukkan bahawa mikropemproses menyokong butiran set arahan lanjutan, setiap satu menunjukkan kelas sambungan, penerangan terperincinya ditunjukkan dalam jadual berikut.
Jadual 8-7 Butiran Sambungan Set Arahan
sedikit | Nama | Penerangan |
0 | A | Sambungan atom |
1 | B | Tentatif dikhaskan untuk sambungan Manipulasi Bit |
2 | C | Sambungan termampat |
3 | D | Sambungan titik terapung berketepatan dua kali |
4 | E | ISA asas RV32E |
5 | F | Sambungan titik terapung ketepatan tunggal |
6 | G | Pelanjutan standard tambahan ada |
7 | H | Sambungan hipervisor |
8 | I | RV32I/64I/128I asas ISA |
9 | J | Tentatif dikhaskan untuk sambungan Bahasa Terjemahan Dinamik |
10 | K | Terpelihara |
11 | L | Tentatif dikhaskan untuk sambungan Titik Terapung Perpuluhan |
12 | M | Sambungan Darab/Bahagi Integer |
13 | N | Gangguan peringkat pengguna disokong |
14 | O | Terpelihara |
15 | P | Tentatif dikhaskan untuk sambungan Packed-SIMD |
16 | Q | Sambungan titik terapung berketepatan empat |
17 | R | Terpelihara |
18 | S | Mod penyelia dilaksanakan |
19 | T | Tentatif dikhaskan untuk sambungan Memori Transaksional |
20 | U | Mod pengguna dilaksanakan |
21 | V | Tentatif dikhaskan untuk sambungan Vektor |
22 | W | Terpelihara |
23 | X | Sambungan bukan standard ada |
24 | Y | Terpelihara |
25 | Z | Terpelihara |
- Untuk exampOleh itu, untuk mikropemproses QingKe V3A, nilai daftar ialah 0x401001105, yang bermaksud seni bina set arahan yang disokong ialah RV32IMAC, dan ia mempunyai pelaksanaan mod Pengguna.
Daftar alamat asas pengecualian mod mesin (mtvec)
- Daftar ini digunakan untuk menyimpan alamat asas pengendali pengecualian atau gangguan dan dua bit yang lebih rendah digunakan untuk mengkonfigurasi mod dan kaedah pengenalan jadual vektor seperti yang diterangkan dalam Bahagian 3.2.
Mod mesin stagdaftar masuk (mscratch)
Jadual 8-8 definisi daftar mscratch
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | mscratch | MRW | Penyimpanan data | 0 |
Daftar ini ialah daftar 32-bit yang boleh dibaca dan boleh ditulis dalam mod mesin untuk penyimpanan data sementara. Untuk exampOleh itu, apabila memasukkan pengecualian atau pengendali sampukan, penuding tindanan pengguna SP disimpan dalam daftar ini dan penuding tindanan sampukan diberikan kepada daftar SP. Selepas keluar dari pengecualian atau gangguan, pulihkan nilai penuding tindanan pengguna SP dari awal. Iaitu, timbunan sampukan dan timbunan pengguna boleh diasingkan.
Daftar penunjuk program pengecualian mod mesin (peta)
Jadual 8-9 definisi daftar mepc
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | mepc | MRW | Penunjuk prosedur pengecualian | 0 |
- Daftar ini digunakan untuk menyimpan penunjuk program apabila memasukkan pengecualian atau gangguan.
- Ia digunakan untuk menyimpan penunjuk PC arahan sebelum memasukkan pengecualian apabila pengecualian atau gangguan dijana, dan mepc digunakan sebagai alamat pemulangan apabila pengecualian atau gangguan dikendalikan dan digunakan untuk pemulangan pengecualian atau gangguan.
- Walau bagaimanapun, adalah penting untuk diperhatikan.
- Apabila pengecualian berlaku, mepc dikemas kini kepada nilai PC arahan yang sedang menjana pengecualian.
- Apabila gangguan berlaku, mepc dikemas kini kepada nilai PC arahan seterusnya.
- Apabila anda perlu mengembalikan pengecualian selepas memproses pengecualian, anda harus memberi perhatian kepada mengubah suai nilai mepc, dan butiran lanjut boleh didapati dalam Bab 2 Pengecualian.
Daftar sebab pengecualian mod mesin (mcause)
Jadual 8-10 sebab definisi daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
31 | menyampuk | MRW | Medan petunjuk gangguan 0: Pengecualian
1: Gangguan |
0 |
[30:0] | Kod Pengecualian | MRW | Untuk kod pengecualian, lihat Jadual 2-1 untuk butiran | 0 |
- Daftar ini digunakan terutamanya untuk menyimpan punca pengecualian atau nombor gangguan gangguan. Bit tertingginya ialah medan Interrupt, yang digunakan untuk menunjukkan sama ada kejadian semasa adalah pengecualian atau gangguan.
- Bit yang lebih rendah ialah kod pengecualian, yang digunakan untuk menunjukkan sebab tertentu. Butirannya boleh didapati dalam Bab 2 Pengecualian.
Daftar nilai pengecualian mod mesin (mtval)
Jadual 8-11 definisi daftar mtval
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | mtval | MRW | Nilai pengecualian | 0 |
- Daftar ini digunakan untuk menyimpan nilai yang menyebabkan pengecualian apabila pengecualian berlaku. Untuk butiran seperti nilai dan masa penyimpanannya, sila rujuk Bab 2 Pengecualian.
Daftar konfigurasi PMP (pmpcfg
- Daftar ini digunakan terutamanya untuk mengkonfigurasi unit perlindungan memori fizikal, dan setiap 8 bit daftar ini digunakan untuk mengkonfigurasi perlindungan kawasan. Sila rujuk Bab 4 untuk definisi terperinci.
daftar alamat PMP (pmpaddr
- Daftar ini digunakan terutamanya untuk konfigurasi alamat unit perlindungan memori fizikal, yang mengekodkan 32 bit atas alamat fizikal 34-bit. Sila rujuk Bab 4 untuk kaedah konfigurasi khusus.
Daftar penunjuk program mod nyahpepijat (DPC)
- Daftar ini digunakan untuk menyimpan alamat arahan seterusnya yang akan dilaksanakan selepas mikropemproses masuk
- Mod nyahpepijat dan nilainya dikemas kini dengan peraturan berbeza bergantung pada sebab memasuki nyahpepijat. Rujuk Bahagian 6.1 untuk penerangan terperinci.
Nyahpepijat pencetus pilih daftar (pilih)
- Ia hanya sah untuk mikropemproses yang menyokong titik putus perkakasan dan paling banyak menyokong titik putus 4 saluran, dan 2 bit yang lebih rendah adalah sah.
- Apabila mengkonfigurasi setiap titik putus saluran, anda perlu memilih saluran yang sepadan melalui daftar ini sebelum konfigurasi.
Jadual 8-12 pilih definisi daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:2] | Terpelihara | MRO | Terpelihara | 0 |
[1:0] |
PILIH |
MRW |
Daftar pemilihan saluran titik putus dikonfigurasikan, iaitu, selepas saluran yang sepadan dipilih, daftar tdata1 dan tdata2 boleh dikendalikan untuk mengkonfigurasi titik putus
maklumat. |
X |
Nyahpepijat daftar data pencetus 1(tdata1)
Ia hanya sah untuk mikropemproses yang menyokong titik putus perkakasan. Mikropemproses hanya menyokong titik putus alamat arahan dan alamat data, dengan JENIS bit daftar tdata1 ialah nilai tetap 2, dan bit lain mematuhi definisi kawalan dalam piawaian penyahpepijatan.
Jadual 8-13 tdata1 definisi daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:28] | JENIS | MRO | Takrif jenis titik putus, jenis kawalan. | 0x2 |
27 |
DMODE |
MRO |
0: Daftar flip-flop yang berkaitan boleh diubah suai dalam kedua-dua mod mesin dan mod nyahpepijat;
1: Hanya mod nyahpepijat boleh mengubah suai daftar flip-flop yang berkaitan. |
1 |
[26:21] |
MASKMAX |
MRO |
Apabila MATCH=1, julat kuasa eksponen maksimum padanan dibenarkan, iaitu julat padanan maksimum yang dibenarkan ialah 231 bait. |
0x1F |
[20:13] | Terpelihara | MRO | Terpelihara | 0 |
12 |
TINDAKAN |
MRW |
Tetapkan mod pemprosesan apabila mencetuskan titik putus:
0: Apabila mencetuskan, masukkan titik putus dan panggil semula gangguan; 1: Masukkan mod nyahpepijat apabila dicetuskan. |
0 |
[11:8] | Terpelihara | MRO | Terpelihara | 0 |
7 |
PERLAWANAN |
MRW |
Konfigurasi dasar yang sepadan:
0: Padankan apabila nilai pencetus sama dengan TDATA2; 1: Nilai pencetus sepadan dengan bit m tinggi TDATA2, di mana m = 31–n, dan n ialah petikan 0 pertama TDATA2 (bermula dari bit rendah). |
0 |
6 |
M |
MRW |
Dayakan flip-flop dalam mod M:
0: Lumpuhkan pencetus dalam mod M; 1: Dayakan pencetus dalam mod M. |
0 |
[5:4] | Terpelihara | MRO | Terpelihara | 0 |
3 |
U |
MRW |
Dayakan pencetus dalam mod U:
0: Lumpuhkan pencetus dalam mod U; 1: Dayakan pencetus dalam mod U. |
0 |
2 |
MELAKSANAKAN |
MRW |
Arahan baca alamat pencetus didayakan: 0: Lumpuhkan;
1: Dayakan. |
0 |
1 |
KEDAI |
MRW |
Pencetus alamat penulisan data didayakan: 0: Lumpuhkan;
1: Dayakan. |
0 |
0 |
MUAT |
MRW |
Pencetus alamat baca data didayakan: 0: Lumpuhkan;
1: Dayakan. |
0 |
Nyahpepijat daftar data pencetus 2(tdata2)
Ia hanya sah untuk mikropemproses yang menyokong titik putus perkakasan dan digunakan untuk menyimpan nilai padanan pencetus.
Jadual 8-14 tdata2 definisi daftar
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | TDATA2 | MRW | Digunakan untuk menyimpan nilai yang sepadan. | X |
Kawalan nyahpepijat dan daftar status (dcsr)
Daftar ini digunakan untuk mengawal dan merekodkan keadaan berjalan mod nyahpepijat. Rujuk Bahagian 7.1 untuk butiran.
Penunjuk atur cara mod nyahpepijat (DPC)
Daftar ini digunakan untuk menyimpan alamat arahan seterusnya yang akan dilaksanakan selepas mikropemproses memasuki mod nyahpepijat, nilainya berbeza mengikut sebab memasuki mod penyahpepijatan, dan peraturan pengemaskinian juga berbeza. Rujuk Bahagian 7.1 untuk penerangan terperinci.
Mod nyahpepijat stagdaftar masuk (dscratch0-1)
Kumpulan daftar ini digunakan untuk penyimpanan sementara data dalam mod Nyahpepijat.
Jadual 8-15 definisi daftar dscratch0-1
sedikit | Nama | Akses | Penerangan | Tetapkan semula Nilai |
[31:0] | dscratch | DRW | Data mod nyahpepijat stagnilai ing | 0 |
Daftar CSR yang ditentukan pengguna
Mod pengguna gangguan global membolehkan daftar (gintenr)
- Daftar ini digunakan untuk mengawal membolehkan dan menutup gangguan global. Daya dan topeng gangguan global dalam mod mesin boleh dikawal oleh bit MIE dan MPIE dalam status, tetapi daftar ini tidak boleh dikendalikan dalam mod pengguna.
- Manakala gangguan global membolehkan daftar gintenr ialah pemetaan status MIE dan MPIE.
- Dalam mod pengguna, niat boleh digunakan untuk menetapkan dan mengosongkan MIE dan MPIE, seperti yang diterangkan dalam Bahagian 3.2 untuk butiran.
Nota
- Gangguan global tidak termasuk gangguan tidak bertopeng NMI dan pengecualian.
Daftar kawalan sistem gangguan (intsyscr)
Daftar ini digunakan terutamanya untuk mengkonfigurasi kedalaman sarang gangguan, menekan tindanan perkakasan dan fungsi lain yang berkaitan, seperti yang diterangkan dalam Bahagian 3.2 untuk butiran.
Daftar konfigurasi mikropemproses (corecfgr)
Daftar ini digunakan untuk mengawal sama ada sampukan NMI dibenarkan selepas sampukan melimpah dan sama ada permintaan sampukan dikosongkan apabila arahan pagar dilaksanakan. Sila rujuk Bahagian 3.2 untuk definisi khusus.
Mengganggu daftar kawalan bersarang (inestcr)
Daftar ini digunakan untuk menunjukkan keadaan sarang gangguan dan sama ada ia melimpah atau tidak, dan untuk mengawal tahap sarang maksimum. Sila rujuk Bahagian 3.2 untuk definisi khusus.
Dokumen / Sumber
![]() |
Mikropemproses WH V3 [pdf] Manual Pengguna V3 Mikropemproses, V3, Mikropemproses |