WH-ໂລໂກ້

WH V3 Microprocessor

WH-V3-Microprocessor-PRO

ຂໍ້ມູນຈໍາເພາະ

  • ແບບຈໍາລອງໄມໂຄຣໂປຣເຊສເຊີ: QingKeV3
  • ລຸ້ນ: V1.2
  • ຄຸນ​ນະ​ສົມ​ບັດ ISA​:
    • FPU ທໍ່
    • ການຄາດຄະເນສາຂາ
    • ຂັດຂວາງການສະຫນັບສະຫນູນ
    • HPE Physical Memory Protection (PMP)
    • ໂໝດການບໍລິໂພກພະລັງງານຕໍ່າ
    • ຄໍາແນະນໍາເພີ່ມເຕີມກໍານົດ Debug

ຄໍາແນະນໍາການນໍາໃຊ້ຜະລິດຕະພັນ

ເກີນview ຂອງ QingKe V3 Microprocessor

ໄມໂຄຣໂປຣເຊສເຊີຊຸດ QingKe V3 ລວມມີລຸ້ນ V3A, V3B, ແລະ V3C. ແຕ່ລະແບບມີຄຸນສົມບັດສະເພາະ ແລະຄວາມແຕກຕ່າງໂດຍອີງໃສ່ຄໍາຮ້ອງສະຫມັກຂອງມັນ.

ຊຸດຄໍາແນະນໍາ

ຊຸດຄໍາແນະນໍາ RV32I ປະກອບມີ 32 ຊຸດລົງທະບຽນຈາກ x0 ເຖິງ x31. ຊຸດ V3 ບໍ່ຮອງຮັບສ່ວນຂະຫຍາຍຈຸດລອຍ (F). ແຕ່ລະທະບຽນແມ່ນ 32 bits ໃນຂະຫນາດ.

ລົງທະບຽນຊຸດ

ຊຸດລົງທະບຽນ RV32I ປະກອບດ້ວຍການລົງທະບຽນຕໍ່ໄປນີ້.

  • x0: ລະຫັດແຂງ 0
  • x1: ກັບຄືນທີ່ຢູ່
  • x2: ຕົວຊີ້ stack
  • x3: ຕົວຊີ້ທົ່ວໂລກ
  • x4: ຕົວຊີ້ກະທູ້
  • x5-x7: ທະບຽນຊົ່ວຄາວ
  • x8: ບັນທຶກຕົວຊີ້ການລົງທະບຽນ/ກອບ
  • x9: ບັນ​ທຶກ​ການ​ລົງ​ທະ​ບຽນ / ຕົວ​ກໍາ​ນົດ​ການ​ທໍາ​ງານ / ຄ່າ​ກັບ​ຄືນ​ມາ​
  • x10-x11: ຕົວກໍານົດການເຮັດວຽກ
  • x12-x17: ບັນທຶກການລົງທະບຽນ
  • x18-x27: ທະບຽນຊົ່ວຄາວ
  • x28-x31: ລົງທະບຽນຜູ້ໂທ/Callee

ໂໝດສິດທິພິເສດ

ສະຖາປັດຕະຍະກໍາ RISC-V ມາດຕະຖານປະກອບມີສາມໂຫມດສິດທິພິເສດ: ໂຫມດເຄື່ອງຈັກ, ໂຫມດຜູ້ເບິ່ງແຍງ, ແລະໂຫມດຜູ້ໃຊ້. ໄມໂຄຣໂປຣເຊສເຊີຊຸດ QingKe V3 ຮອງຮັບໂໝດເຄື່ອງຈັກ ແລະໂໝດຜູ້ຄຸມງານ.

ຄໍາຖາມທີ່ຖາມເລື້ອຍໆ

Q: ແມ່ນຫຍັງຄືຮູບແບບທີ່ແຕກຕ່າງກັນໃນ QingKe V3 series microprocessors?

A: ຊຸດ QingKe V3 ປະກອບມີແບບຈໍາລອງ V3A, V3B, ແລະ V3C, ແຕ່ລະຄົນມີລັກສະນະສະເພາະແລະຄວາມແຕກຕ່າງທີ່ລາຍລະອຽດຢູ່ໃນຄູ່ມືຜູ້ໃຊ້.

Q: ມີຈໍານວນຊຸດລົງທະບຽນຢູ່ໃນຊຸດຄໍາແນະນໍາ RV32I?

A: ຊຸດຄໍາແນະນໍາ RV32I ສະຫນອງ 32 ຊຸດລົງທະບຽນຈາກ x0 ຫາ x31.

ຖາມ: ໂຫມດສິດທິພິເສດໃດທີ່ສະຫນັບສະຫນູນໂດຍ QingKe V3 microprocessor?

A: ໄມໂຄຣໂປຣເຊສເຊີຊຸດ QingKe V3 ຮອງຮັບໂໝດເຄື່ອງຈັກ ແລະ ໂໝດຜູ້ຄຸມເປັນສ່ວນໜຶ່ງຂອງສະຖາປັດຕະຍະກຳ RISC-V.

ເກີນview

QingKe V3 series microprocessors ແມ່ນ microprocessors MCU ທົ່ວໄປ 32-bit ທີ່ພັດທະນາດ້ວຍຕົນເອງໂດຍອີງໃສ່ສະຖາປັດຕະຍະກໍາຊຸດຄໍາແນະນໍາ RISC-V ມາດຕະຖານ. ຊຸດນີ້ປະກອບມີ V3A, V3B ແລະ V3C, ເຊິ່ງ V3A ສະຫນັບສະຫນູນຊຸດຄໍາແນະນໍາມາດຕະຖານ RV32IMAC ແລະ V3B/C ສະຫນັບສະຫນູນຊຸດຄໍາແນະນໍາມາດຕະຖານ RV32IMCB ແລະການຂະຫຍາຍຊຸດຄໍາແນະນໍາທີ່ກໍາຫນົດເອງ XW. ທັງສອງອັນນີ້ຮອງຮັບການຄູນແບບວົງຈອນດຽວແລະການແບ່ງຮາດແວ, ນອກຈາກການວາງຄວາມກົດດັນຂອງຮາດແວ (HPE), ການຂັດຂວາງແບບບໍ່ມີຕາຕະລາງ (VTF), ການໂຕ້ຕອບການດີບັ໊ກແບບ 1- ແລະ 2-wire ປັບປຸງ, ຄໍາແນະນໍາ “WFE”, ແລະຄຸນສົມບັດພິເສດອື່ນໆ. ນອກຈາກນັ້ນ, ມັນຍັງສະຫນັບສະຫນູນ Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), ປັບປຸງການໂຕ້ຕອບການດີບັກ 1-/2-wire, ແລະສະຫນັບສະຫນູນຄໍາແນະນໍາ "WFE".

ຄຸນສົມບັດ

ຄຸນສົມບັດ ລາຍລະອຽດ
ISA RV32IM[A]C[B]
ທໍ່ 3
FPU ບໍ່ຮອງຮັບ
ການຄາດຄະເນສາຂາ ການຄາດຄະເນສາຂາຄົງທີ່
ຂັດຂວາງ ສະຫນັບສະຫນູນການຂັດຂວາງທັງຫມົດ 256 ລວມທັງຂໍ້ຍົກເວັ້ນ, ແລະສະຫນັບສະຫນູນ VTF
HPE ຮອງຮັບ 2 ລະດັບຂອງ HPE
ການປົກປ້ອງຄວາມຈຳທາງກາຍ (PMP) ສະຫນັບສະຫນູນ
ໂໝດການບໍລິໂພກພະລັງງານຕໍ່າ ຮອງຮັບໂໝດການນອນຫຼັບ ແລະ ໂໝດນອນເລິກ, ແລະຮອງຮັບວິທີການນອນ WFI ແລະ WFE
ຊຸດຄໍາແນະນໍາແບບຂະຫຍາຍ ສະຫນັບສະຫນູນ
ດີບັກ 1/2-wire SDI, ມາດຕະຖານດີບັກ RISC-V

ເກີນview

QingKe V3 series microprocessors ປະກອບມີ V3A, V3B, ແລະ V3C, ມີບາງຄວາມແຕກຕ່າງລະຫວ່າງຊຸດຕາມຄໍາຮ້ອງສະຫມັກ, ຄວາມແຕກຕ່າງສະເພາະແມ່ນລາຍລະອຽດໃນຕາຕະລາງ 1-1.

ຕາຕະລາງ 1-1 ຫຼາຍກວ່າview ຂອງ QingKe V3 microprocessor

ຄຸນສົມບັດ ຕົວແບບ ISA ຈໍານວນລະດັບ HPE ການຂັດຂວາງ ຮັງ ຈໍາ​ນວນ​ຂອງ​ ລະດັບ VTF ຈໍານວນຊ່ອງ ທໍ່ vector ຮູບແບບການຕາຕະລາງ ຄໍາແນະນໍາຂະຫຍາຍ (XW) ຈໍານວນພື້ນທີ່ປ້ອງກັນຄວາມຊົງຈໍາ
V3A RV32IMAC 2 2 4 3 ຄໍາແນະນໍາ × ×
V3B RV32IMCB 2 2 4 3 ທີ່ຢູ່ / ຄໍາແນະນໍາ ×
V3C RV32IMCB 2 2 4 3 ທີ່ຢູ່ / ຄໍາແນະນໍາ 4

ໝາຍເຫດ: ການປ່ຽນໜ້າວຽກ OS ໂດຍທົ່ວໄປແລ້ວຈະໃຊ້ stack push, ເຊິ່ງບໍ່ຈຳກັດຈຳນວນລະດັບ

ຊຸດຄໍາແນະນໍາ

  • QingKe V3 series microprocessors ປະຕິບັດຕາມມາດຕະຖານ RISC-V Instruction Set Architecture (ISA). ເອກະສານລາຍລະອຽດຂອງມາດຕະຖານສາມາດພົບໄດ້ໃນ “ຄູ່ມືຊຸດຄໍາແນະນໍາ RISC-V, ສະບັບທີ I: User-Level ISA, Document Version 2.2” ໃນ RISC-V International webເວັບໄຊ. ຊຸດຄໍາແນະນໍາ RISC-V ມີສະຖາປັດຕະຍະກໍາທີ່ງ່າຍດາຍແລະສະຫນັບສະຫນູນການອອກແບບແບບໂມດູນ, ອະນຸຍາດໃຫ້ປະສົມປະສານທີ່ມີຄວາມຍືດຫຍຸ່ນໂດຍອີງໃສ່ຄວາມຕ້ອງການທີ່ແຕກຕ່າງກັນ, ແລະຊຸດ V3 ສະຫນັບສະຫນູນການຂະຫຍາຍຊຸດຄໍາແນະນໍາຕໍ່ໄປນີ້.
  • RV32: ສະຖາປັດຕະຍະກໍາ 32 ບິດ, ຈຸດປະສົງທົ່ວໄປຂອງທະບຽນບິດຄວາມກວ້າງຂອງ 32 ບິດ
  • I: ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ດໍາ​ເນີນ​ງານ​ຮູບ​ຮ່າງ​, ມີ 32 ການ​ຈົດ​ທະ​ບຽນ​ຮູບ​ຮ່າງ​
  • M: ສະຫນັບສະຫນູນຄໍາແນະນໍາການສ້າງການຄູນແລະການແບ່ງ
  • A: ສະຫນັບສະຫນູນຄໍາສັ່ງປະລໍາມະນູ
  • C: ສະຫນັບສະຫນູນຄໍາແນະນໍາການບີບອັດ 16-bit
  • B: ສະຫນັບສະຫນູນຄໍາແນະນໍາການຫມູນໃຊ້ບິດ
  • XW: ຄໍາແນະນໍາການບີບອັດ 16-bit ສໍາລັບ byte ຕົນເອງຂະຫຍາຍແລະການດໍາເນີນງານເຄິ່ງຫນຶ່ງຄໍາ

ໝາຍເຫດ:

  • ຊຸດຍ່ອຍຂອງຄໍາແນະນໍາທີ່ສະຫນັບສະຫນູນໂດຍຮູບແບບຕ່າງໆອາດຈະແຕກຕ່າງກັນ, ກະລຸນາເບິ່ງຕາຕະລາງ 1-1 ສໍາລັບລາຍລະອຽດ;
  • ເພື່ອປັບປຸງຄວາມຫນາແຫນ້ນຂອງລະຫັດຕື່ມອີກ, ຂະຫຍາຍຊຸດຍ່ອຍ XW, ເພີ່ມຄໍາແນະນໍາການບີບອັດຕໍ່ໄປນີ້ c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop, ການນໍາໃຊ້ທີ່ຈໍາເປັນຕ້ອງອີງໃສ່ MRS compiler ຫຼືເຄື່ອງມືທີ່ມັນສະຫນອງ;
  • V3B ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ສະ​ກັດ​ຄໍາ​ສັ່ງ (32bit​) ຄໍາ​ສັ່ງ​ຈາກ​ຄໍາ​ສອງ​ຄໍາ (64bit​) ແລະ​ການ​ສະ​ກັດ​ຄໍາ​ສັ່ງ (32bit​) ຈາກ​ຜົນ​ການ​ຄູນ (64bit​)​. ວິທີການນໍາໃຊ້ສະເພາະສາມາດອ້າງອີງເຖິງຫນ້າທີ່ຫ້ອງສະຫມຸດແລະຮ່ວມມືກັບ MRS compiler ຫຼືເຄື່ອງມືທີ່ສະຫນອງໂດຍມັນ;
  • V3B/C ຮອງຮັບຄຳສັ່ງສຳເນົາໜ່ວຍຄວາມຈຳ. ສໍາລັບການນໍາໃຊ້ສະເພາະ, ກະລຸນາເບິ່ງຫນ້າທີ່ຫ້ອງສະຫມຸດແລະຮ່ວມມືກັບ MRS compiler ຫຼືລະບົບຕ່ອງໂສ້ເຄື່ອງມືຂອງມັນ.

ລົງທະບຽນຊຸດ

RV32I ມີ 32 ຊຸດລົງທະບຽນຈາກ x0-x31. ຊຸດ V3 ບໍ່ຮອງຮັບການຂະຫຍາຍ “F”, ie, ບໍ່ມີຊຸດການລົງທະບຽນຈຸດລອຍ. ໃນ RV32, ແຕ່ລະທະບຽນແມ່ນ 32 bits. ຕາຕະລາງ 1-2 ຂ້າງລຸ່ມນີ້ລາຍຊື່ການລົງທະບຽນຂອງ RV32I ແລະຄໍາອະທິບາຍຂອງພວກເຂົາ.

ຕາຕະລາງ 1-2 ທະບຽນ RISC-V

ລົງທະບຽນ ຊື່ ABI ລາຍລະອຽດ ຜູ້ເກັບຮັກສາ
x0 ສູນ ລະຫັດແຂງ 0
x1 ra ກັບຄືນທີ່ຢູ່ ຜູ້ໂທ
x2 sp ຕົວຊີ້ stack ໂທ
x3 GP ຕົວຊີ້ທົ່ວໂລກ
x4 tp ຕົວຊີ້ກະທູ້
x5-7 t0-2 ລົງທະບຽນຊົ່ວຄາວ ຜູ້ໂທ
x8 s0/fp ບັນທຶກຕົວຊີ້ການລົງທະບຽນ/ກອບ ໂທ
x9 s1 ບັນທຶກການລົງທະບຽນ ໂທ
x10-11 a0-1 ພາລາມິເຕີຟັງຊັນ/ຄ່າກັບຄືນ ຜູ້ໂທ
x12-17 a2-7 ຕົວກໍານົດການເຮັດວຽກ ຜູ້ໂທ
x18-27 a2-11 ບັນທຶກການລົງທະບຽນ ໂທ
X28-31 t3-6 ລົງທະບຽນຊົ່ວຄາວ ຜູ້ໂທ

ຄຸນລັກສະນະຂອງ Callee ໃນຕາຕະລາງຂ້າງເທິງນີ້ຫມາຍຄວາມວ່າຂັ້ນຕອນທີ່ເອີ້ນວ່າບໍ່ໄດ້ບັນທຶກມູນຄ່າການລົງທະບຽນ, ແລະຄຸນລັກສະນະ Callee ຫມາຍຄວາມວ່າຂັ້ນຕອນທີ່ເອີ້ນວ່າຈະຊ່ວຍປະຢັດການລົງທະບຽນ.

ໂໝດສິດທິພິເສດ

  • ສະຖາປັດຕະຍະກໍາ RISC-V ມາດຕະຖານປະກອບມີສາມໂຫມດສິດທິພິເສດ: ໂຫມດເຄື່ອງຈັກ, ໂຫມດຜູ້ເບິ່ງແຍງ, ແລະໂຫມດຜູ້ໃຊ້, ດັ່ງທີ່ສະແດງຢູ່ໃນຕາຕະລາງ 1-3 ຂ້າງລຸ່ມນີ້.
  • ໂຫມດເຄື່ອງແມ່ນບັງຄັບ, ແລະໂຫມດອື່ນໆແມ່ນທາງເລືອກ. ສໍາ​ລັບ​ລາຍ​ລະ​ອຽດ​, ທ່ານ​ສາ​ມາດ​ເບິ່ງ The RISC-V Instruction Set Manual Volume II: Privileged Architecture”, ເຊິ່ງ​ສາ​ມາດ​ດາວ​ໂຫຼດ​ໄດ້​ຟຣີ​ຈາກ RISC-V International webເວັບໄຊ.

ຕາຕະລາງ 1-3 ຮູບແບບສິດທິພິເສດຂອງສະຖາປັດຕະຍະກຳ RISC-V

ລະຫັດ ຊື່ ຕົວຫຍໍ້
0b00 ໂໝດຜູ້ໃຊ້ U
0b01 ຕົວແບບຜູ້ຄຸມງານ S
0b10 ສະຫງວນໄວ້ ສະຫງວນໄວ້
0b11 ໂໝດເຄື່ອງ M
  • QingKe V3 series microprocessors ສະຫນັບສະຫນູນສອງໂຫມດສິດທິພິເສດເຫຼົ່ານີ້.

ໂໝດເຄື່ອງ

  • ໂຫມດເຄື່ອງຈັກມີອໍານາດສູງສຸດ, ໂປລແກລມໃນໂຫມດນີ້ສາມາດເຂົ້າເຖິງທຸກການຄວບຄຸມແລະສະຖານະພາບການລົງທະບຽນ (CSR), ແຕ່ຍັງສາມາດເຂົ້າເຖິງພື້ນທີ່ທີ່ຢູ່ທາງດ້ານຮ່າງກາຍທັງຫມົດ.
  • ຄ່າເລີ່ມຕົ້ນການເພີ່ມພະລັງງານແມ່ນຢູ່ໃນໂຫມດເຄື່ອງຈັກ, ເມື່ອການປະຕິບັດ mret (ຄໍາແນະນໍາຂອງເຄື່ອງຈັກໃນໂຫມດ) ກັບຄືນມາ, ອີງຕາມສະຖານະການລົງທະບຽນ CSR (ການລົງທະບຽນສະຖານະຂອງເຄື່ອງຈັກ) ໃນ MPP bit, ຖ້າ MPP = 0b00, ຫຼັງຈາກນັ້ນອອກຈາກໂຫມດເຄື່ອງຈັກເຂົ້າໄປໃນໂຫມດຜູ້ໃຊ້, MPP = 0b11, ຫຼັງຈາກນັ້ນສືບຕໍ່ຮັກສາຮູບແບບເຄື່ອງຈັກ.

ໂໝດຜູ້ໃຊ້

  • ໂຫມດຜູ້ໃຊ້ມີສິດທິພິເສດຕໍ່າສຸດ, ແລະມີພຽງແຕ່ການລົງທະບຽນ CSR ທີ່ຈໍາກັດເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງໄດ້ໃນໂຫມດນີ້. ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງເກີດຂຶ້ນ, microprocessor ໄປຈາກໂຫມດຜູ້ໃຊ້ໄປຫາໂຫມດເຄື່ອງຈັກເພື່ອຈັດການກັບຂໍ້ຍົກເວັ້ນແລະການຂັດຂວາງ.

ລົງທະບຽນ CSR

ຊຸດຂອງທະບຽນ CSR ຖືກກໍານົດໄວ້ໃນສະຖາປັດຕະຍະກໍາ RISC-V ເພື່ອຄວບຄຸມແລະບັນທຶກສະຖານະການເຮັດວຽກຂອງ microprocessor. CSRs ເຫຼົ່ານີ້ສາມາດຂະຫຍາຍໄດ້ໂດຍການລົງທະບຽນ 4096 ໂດຍໃຊ້ພື້ນທີ່ລະຫັດທີ່ຢູ່ພາຍໃນ 12-bit ທີ່ອຸທິດຕົນ. ແລະໃຊ້ສອງ CSR ສູງ[11:10] ເພື່ອກໍານົດສິດອ່ານ/ຂຽນຂອງທະບຽນນີ້, 0b00, 0b01, 0b10 ສໍາລັບການອ່ານ/ຂຽນທີ່ອະນຸຍາດ ແລະ 0b11 ສໍາລັບການອ່ານເທົ່ານັ້ນ. ໃຊ້ສອງ bits CSR[9:8] ເພື່ອກໍານົດລະດັບສິດທິພິເສດຕ່ໍາສຸດທີ່ສາມາດເຂົ້າເຖິງການລົງທະບຽນນີ້, ແລະມູນຄ່າແມ່ນສອດຄ່ອງກັບຮູບແບບສິດທິພິເສດທີ່ກໍານົດໄວ້ໃນຕາຕະລາງ 1-3. ການລົງທະບຽນ CSR ທີ່ໄດ້ປະຕິບັດຢູ່ໃນຈຸນລະພາກ QingKe V3 ມີລາຍລະອຽດຢູ່ໃນບົດທີ 8.

ຂໍ້ຍົກເວັ້ນ

ກົນ​ໄກ​ຍົກ​ເວັ້ນ, ​ແມ່ນ​ກົນ​ໄກ​ສະກັດ​ກັ້ນ ​ແລະ ຈັດການ “​ເຫດການ​ດຳ​ເນີນ​ງານ​ທີ່​ຜິດ​ປົກກະຕິ”. QingKe V3 series microprocessors ມີການຕິດຕັ້ງລະບົບການຕອບສະຫນອງຂໍ້ຍົກເວັ້ນທີ່ສາມາດຈັດການໄດ້ເຖິງ 256 ຂໍ້ຍົກເວັ້ນ, ລວມທັງການຂັດຂວາງ. ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງເກີດຂຶ້ນ, microprocessor ສາມາດຕອບສະຫນອງຢ່າງໄວວາແລະຈັດການກັບເຫດການການຍົກເວັ້ນແລະການຂັດຂວາງ.

ປະເພດຂໍ້ຍົກເວັ້ນ

ພຶດຕິກໍາຂອງຮາດແວຂອງ microprocessor ແມ່ນຄືກັນບໍ່ວ່າຈະເປັນການຍົກເວັ້ນຫຼືການຂັດຂວາງເກີດຂື້ນ. ໄມໂຄຣໂປຣເຊສເຊີຈະລະງັບໂປຣແກມປະຈຸບັນ, ຍ້າຍໄປບ່ອນຍົກເວັ້ນ ຫຼືຕົວຈັດການລົບກວນ, ແລະກັບຄືນໄປຫາໂປຣແກມທີ່ຖືກໂຈະກ່ອນໜ້ານີ້ ເມື່ອການປະມວນຜົນສຳເລັດແລ້ວ. ເວົ້າຢ່າງກວ້າງຂວາງ, ການຂັດຂວາງຍັງເປັນສ່ວນຫນຶ່ງຂອງຂໍ້ຍົກເວັ້ນ. ບໍ່ວ່າຈະເປັນເຫດການທີ່ເກີດຂຶ້ນໃນປະຈຸບັນເປັນການຂັດຂວາງ ຫຼືຂໍ້ຍົກເວັ້ນສາມາດເປັນໄດ້ viewed ໂດຍຜ່ານການຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກເຮັດໃຫ້ການລົງທະບຽນສາເຫດ. mcause[31] ແມ່ນພາກສະຫນາມຂັດຂວາງ, ເຊິ່ງຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກວ່າສາເຫດຂອງການຍົກເວັ້ນແມ່ນການຂັດຂວາງຫຼືຂໍ້ຍົກເວັ້ນ. mcause[31]=1 ໝາຍເຖິງການຂັດຂວາງ, mcause[31]=0 ໝາຍເຖິງຂໍ້ຍົກເວັ້ນ. mcause[30:0] ແມ່ນລະຫັດຂໍ້ຍົກເວັ້ນ, ເຊິ່ງໃຊ້ເພື່ອຊີ້ບອກສາເຫດສະເພາະຂອງຂໍ້ຍົກເວັ້ນ ຫຼື ຕົວເລກຂັດຂວາງ, ດັ່ງທີ່ສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້.

ຕາຕະລາງ 2-1 ລະຫັດການຍົກເວັ້ນໄມໂຄຣໂປຣເຊສເຊີ V3

ຂັດຂວາງ ຂໍ້ຍົກເວັ້ນ ລະຫັດ Synchronous / Asynchronous ເຫດຜົນສໍາລັບການຍົກເວັ້ນ
1 0-1 ສະຫງວນໄວ້
1 2 ບໍ່ຊິ້ງໂຄ້ງທີ່ຊັດເຈນ NMI ຂັດຂວາງ
1 3-11 ສະຫງວນໄວ້
1 12 ບໍ່ຊິ້ງໂຄ້ງທີ່ຊັດເຈນ SysTick ຂັດຂວາງ
1 13 ສະຫງວນໄວ້
1 14 synchronous ຊອບແວຂັດຂວາງ
1 15 ສະຫງວນໄວ້
1 16-255 ບໍ່ຊິ້ງໂຄ້ງທີ່ຊັດເຈນ ຂັດຂວາງພາຍນອກ 16-255
0 0 synchronous ຄໍາແນະນໍາທີ່ຢູ່ misalignment
0 1 synchronous ດຶງຂໍ້ມູນການເຂົ້າເຖິງຄໍາສັ່ງຜິດພາດ
0 2 synchronous ຄໍາແນະນໍາທີ່ຜິດກົດຫມາຍ
0 3 synchronous ຈຸດແຕກ
0 4 synchronous ໂຫລດຄໍາແນະນໍາການເຂົ້າເຖິງບໍ່ຖືກຕ້ອງການຈັດຕໍາແຫນ່ງ
0 5 ບໍ່ສອດຄ່ອງກັນ ໂຫລດຂໍ້ຜິດພາດໃນການເຂົ້າເຖິງຄໍາສັ່ງ
0 6 synchronous Store/AMO ການເຂົ້າຫາຄໍາແນະນໍາທີ່ຢູ່ບໍ່ຖືກຕ້ອງ
0 7 ບໍ່ສອດຄ່ອງກັນ Store/AMO ຜິດພາດການເຂົ້າເຖິງຄໍາສັ່ງ
0 8 synchronous ການໂທສະພາບແວດລ້ອມໃນໂຫມດຜູ້ໃຊ້
0 11 synchronous ການໂທສະພາບແວດລ້ອມໃນໂໝດເຄື່ອງ
  • Synchronous” ໃນຕາຕະລາງຫມາຍຄວາມວ່າຄໍາແນະນໍາສາມາດຕັ້ງຢູ່ບ່ອນທີ່ມັນຖືກປະຕິບັດ, ເຊັ່ນ: ການຢຸດຫຼືໂທຫາຄໍາແນະນໍາ, ແລະການປະຕິບັດແຕ່ລະຄໍາແນະນໍານັ້ນຈະເຮັດໃຫ້ເກີດຂໍ້ຍົກເວັ້ນ. "Asynchronous" ຫມາຍຄວາມວ່າມັນບໍ່ສາມາດກໍານົດຄໍາແນະນໍາໄດ້, ແລະຄ່າ PC ຄໍາແນະນໍາອາດຈະແຕກຕ່າງກັນໃນແຕ່ລະຄັ້ງທີ່ມີການຍົກເວັ້ນ. ຄໍາແນະນໍາ, ie, ສະຖານະຫຼັງຈາກການປະຕິບັດຄໍາແນະນໍາ, ເຊັ່ນ: ການຂັດຂວາງພາຍນອກ "ບໍ່ກົງກັນກັບຄວາມຊັດເຈນ" ຫມາຍຄວາມວ່າຂອບເຂດຂອງຄໍາແນະນໍາບໍ່ສາມາດຕັ້ງຢູ່ທີ່ຊັດເຈນ, ແລະບາງທີລັດຫຼັງຈາກຄໍາແນະນໍາໄດ້ຖືກຂັດຂວາງເຄິ່ງຫນຶ່ງຂອງການປະຕິບັດ, ເຊັ່ນ: ຄວາມຜິດພາດໃນການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ.
  • ການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາຕ້ອງໃຊ້ເວລາ, ແລະ microprocessor ປົກກະຕິແລ້ວບໍ່ລໍຖ້າເວລາສິ້ນສຸດຂອງການເຂົ້າເຖິງໃນເວລາທີ່ເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາແຕ່ສືບຕໍ່ປະຕິບັດຄໍາສັ່ງ, ເມື່ອຂໍ້ຍົກເວັ້ນຄວາມຜິດພາດໃນການເຂົ້າເຖິງເກີດຂຶ້ນອີກເທື່ອຫນຶ່ງ, microprocessor ໄດ້ປະຕິບັດຄໍາແນະນໍາຕໍ່ໄປແລ້ວ, ແລະບໍ່ສາມາດຕັ້ງຢູ່ໄດ້ຊັດເຈນ.

ໃສ່ຂໍ້ຍົກເວັ້ນ

ໃນເວລາທີ່ໂຄງການແມ່ນຢູ່ໃນຂະບວນການຂອງການດໍາເນີນງານປົກກະຕິຖ້າຫາກວ່າສໍາລັບບາງເຫດຜົນ, triggers ການຍົກເວັ້ນຫຼືຂັດຂວາງ. ພຶດຕິກໍາຂອງຮາດແວຂອງ microprocessor ໃນຈຸດນີ້ສາມາດສະຫຼຸບໄດ້ດັ່ງຕໍ່ໄປນີ້.

  1. ໂຈະການໄຫຼເຂົ້າຂອງໂປຣແກຣມປະຈຸບັນ ແລະຍ້າຍໄປທີ່ການປະຕິບັດຂໍ້ຍົກເວັ້ນ ຫຼືການຂັດຂວາງການເຮັດວຽກຂອງການຈັດການ. ທີ່ຢູ່ຖານການເຂົ້າແລະຮູບແບບທີ່ຢູ່ຂອງການຍົກເວັ້ນຫຼືຫນ້າທີ່ຂັດຂວາງແມ່ນຖືກກໍານົດໂດຍທີ່ຢູ່ຖານຂໍ້ຍົກເວັ້ນການລົງທະບຽນ mtvec. mtvec[31:2] ກໍານົດທີ່ຢູ່ພື້ນຖານຂອງການຍົກເວັ້ນຫຼືຟັງຊັນຂັດຂວາງ. mtvec[1:0] ກໍານົດຮູບແບບທີ່ຢູ່ຂອງຟັງຊັນຕົວຈັດການ. ເມື່ອ mtvec[1:0]=0, ຂໍ້ຍົກເວັ້ນ ແລະ ການຂັດຂວາງທັງໝົດໃຊ້ການເຂົ້າຮວມ, ເຊັ່ນ, ເມື່ອມີຂໍ້ຍົກເວັ້ນ ຫຼືການຂັດຈັງຫວະເກີດຂຶ້ນ, ມັນຈະຫັນໄປຫາ mtvec[31:2] ກຳນົດທີ່ຢູ່ຖານເພື່ອດຳເນີນການ. ເມື່ອ mtvec[1:0]=1, ການຍົກເວັ້ນແລະການຂັດຂວາງໃຊ້ຮູບແບບຕາຕະລາງ vector, ie, ແຕ່ລະຂໍ້ຍົກເວັ້ນແລະການຂັດຂວາງແມ່ນຕົວເລກ, ແລະທີ່ຢູ່ຈະຖືກຊົດເຊີຍຕາມຈໍານວນ interrupt *4, ແລະເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼື interrupt ເກີດຂື້ນ, ມັນຈະຖືກຍ້າຍໄປທີ່ທີ່ຢູ່ພື້ນຖານທີ່ກໍານົດໂດຍ mtvec[31:2] + interrupt number*4 Execution. ຕາຕະລາງ vector interrupt ຖືຄໍາແນະນໍາເພື່ອໂດດໄປຫາຫນ້າທີ່ຕົວຈັດການຂັດຂວາງ, ຫຼືມັນສາມາດເປັນຄໍາແນະນໍາອື່ນໆ.
  2. ອັບເດດທະບຽນ CSR
    • ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, ໄມໂຄຣໂປຣເຊສເຊີຈະປັບປຸງການລົງທະບຽນ CSR ທີ່ກ່ຽວຂ້ອງໂດຍອັດຕະໂນມັດ, ລວມທັງການຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກເຮັດໃຫ້ການລົງທະບຽນ mcause, ຕົວຊີ້ການຍົກເວັ້ນເຄື່ອງຈັກໃນໂຫມດ mepc, ມູນຄ່າການຍົກເວັ້ນເຄື່ອງຈັກໃນໂຫມດການລົງທະບຽນໂລຫະ, ແລະສະຖານະການລົງທະບຽນສະຖານະເຄື່ອງຈັກ.

ອັບເດດ mcause

ດັ່ງທີ່ໄດ້ກ່າວມາກ່ອນ, ຫຼັງຈາກໃສ່ຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, ມູນຄ່າຂອງມັນສະທ້ອນເຖິງປະເພດຂໍ້ຍົກເວັ້ນໃນປະຈຸບັນຫຼືຕົວເລກຂັດຂວາງ, ແລະຊອບແວສາມາດອ່ານຄ່າລົງທະບຽນນີ້ເພື່ອກວດເບິ່ງສາເຫດຂອງການຍົກເວັ້ນຫຼືກໍານົດແຫຼ່ງຂອງການຂັດຂວາງ, ຕາມລາຍລະອຽດໃນຕາຕະລາງ 2-1.

ອັບເດດ mepc

  • ຄໍານິຍາມມາດຕະຖານຂອງທີ່ຢູ່ສົ່ງຄືນຂອງ microprocessor ຫຼັງຈາກອອກຈາກການຍົກເວັ້ນຫຼືຂັດຂວາງຈະຖືກເກັບໄວ້ໃນ mepc.
  • ດັ່ງນັ້ນ, ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງ, ຮາດແວຈະປັບປຸງຄ່າ mepc ໂດຍອັດຕະໂນມັດກັບຄ່າ PC ຄໍາແນະນໍາໃນປະຈຸບັນເມື່ອພົບຂໍ້ຍົກເວັ້ນ, ຫຼືຄ່າ PC ຄໍາສັ່ງທີ່ດໍາເນີນການກ່ອນການຂັດຂວາງຕໍ່ໄປ.
  • ຫຼັງຈາກການຍົກເວັ້ນຫຼືຂັດຂວາງໄດ້ຖືກປະມວນຜົນ, microprocessor ໃຊ້ມູນຄ່າທີ່ບັນທຶກໄວ້ຂອງຕົນເປັນທີ່ຢູ່ກັບຄືນເພື່ອກັບຄືນໄປຫາສະຖານທີ່ຂອງການຂັດຂວາງເພື່ອສືບຕໍ່ປະຕິບັດ.
  • ຢ່າງໃດກໍ່ຕາມ, ມັນເປັນມູນຄ່າທີ່ສັງເກດວ່າ.
  1. MEPC ແມ່ນການລົງທະບຽນທີ່ສາມາດອ່ານໄດ້ແລະສາມາດຂຽນໄດ້, ແລະຊອບແວຍັງສາມາດດັດແປງມູນຄ່າເພື່ອດັດແປງສະຖານທີ່ຂອງຕົວຊີ້ PC ທີ່ເຮັດວຽກຫຼັງຈາກການກັບຄືນ.
  2. ເມື່ອການຂັດຂວາງເກີດຂຶ້ນ, ie, ເມື່ອສາເຫດການຍົກເວັ້ນລົງທະບຽນ mcause[31]=1, ມູນຄ່າຂອງແຜນທີ່ຖືກປັບປຸງເປັນມູນຄ່າ PC ຂອງຄໍາແນະນໍາທີ່ບໍ່ໄດ້ປະຕິບັດຕໍ່ໄປໃນເວລາທີ່ຂັດຂວາງ.
    • ເມື່ອມີຂໍ້ຍົກເວັ້ນເກີດຂຶ້ນ, ມູນຄ່າຂອງແຜນທີ່ຖືກປັບປຸງເປັນຄ່າ PC ຄໍາແນະນໍາຂອງຂໍ້ຍົກເວັ້ນໃນປະຈຸບັນ ເມື່ອຂໍ້ຍົກເວັ້ນເຮັດໃຫ້ລົງທະບຽນ mcause[31]=0. ດັ່ງນັ້ນໃນເວລານີ້ເມື່ອຂໍ້ຍົກເວັ້ນກັບຄືນມາ, ຖ້າພວກເຮົາກັບຄືນໂດຍກົງໂດຍໃຊ້ຄ່າ mepc, ພວກເຮົາສືບຕໍ່ປະຕິບັດຄໍາແນະນໍາທີ່ສ້າງຂໍ້ຍົກເວັ້ນກ່ອນ, ແລະໃນເວລານີ້, ພວກເຮົາຈະສືບຕໍ່ເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນ. ໂດຍປົກກະຕິແລ້ວ, ຫຼັງຈາກທີ່ພວກເຮົາຈັດການຂໍ້ຍົກເວັ້ນ, ພວກເຮົາສາມາດດັດແປງຄ່າຂອງ mepc ກັບຄ່າຂອງຄໍາແນະນໍາທີ່ບໍ່ໄດ້ປະຕິບັດຕໍ່ໄປແລະຫຼັງຈາກນັ້ນກັບຄືນ. ຕົວຢ່າງample, ຖ້າພວກເຮົາເຮັດໃຫ້ເກີດຂໍ້ຍົກເວັ້ນຍ້ອນການໂທ / break, ຫຼັງຈາກຈັດການກັບຂໍ້ຍົກເວັ້ນ, ນັບຕັ້ງແຕ່ການເອີ້ນຄືນ / break (c.ebreak ແມ່ນ 2 bytes) ແມ່ນຄໍາແນະນໍາ 4-byte, ພວກເຮົາພຽງແຕ່ຕ້ອງການຊອບແວເພື່ອດັດແປງຄ່າຂອງ mepc ເປັນ mepc +4 (c.ebreak ແມ່ນ mepc + 2) ແລະຫຼັງຈາກນັ້ນກັບຄືນ.

ອັບເດດ mtval

ເມື່ອມີຂໍ້ຍົກເວັ້ນແລະຂັດຂວາງ, ຮາດແວຈະປັບປຸງຄ່າຂອງ mtval ໂດຍອັດຕະໂນມັດ, ເຊິ່ງເປັນມູນຄ່າທີ່ເຮັດໃຫ້ເກີດຂໍ້ຍົກເວັ້ນ. ມູນຄ່າແມ່ນປົກກະຕິ.

  1. ຖ້າຂໍ້ຍົກເວັ້ນແມ່ນເກີດມາຈາກການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ, ຮາດແວຈະເກັບຮັກສາທີ່ຢູ່ຂອງການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາໃນເວລາທີ່ການຍົກເວັ້ນເຂົ້າໄປໃນ mtval.
  2. ຖ້າຂໍ້ຍົກເວັ້ນແມ່ນເກີດມາຈາກຄໍາແນະນໍາທີ່ຜິດກົດຫມາຍ, ຮາດແວຈະເກັບລະຫັດຄໍາແນະນໍາຂອງຄໍາແນະນໍາເຂົ້າໄປໃນ mtval.
  3. ຖ້າຂໍ້ຍົກເວັ້ນແມ່ນເກີດມາຈາກ breakpoint ຂອງຮາດແວ, ຮາດແວຈະເກັບຄ່າ PC ຢູ່ breakpoint ເປັນ mtval.
  4. ສໍາລັບຂໍ້ຍົກເວັ້ນອື່ນໆ, ຮາດແວກໍານົດຄ່າຂອງ mtval ເປັນ 0, ເຊັ່ນ: ການຢຸດ, ຂໍ້ຍົກເວັ້ນທີ່ເກີດຈາກຄໍາແນະນໍາການໂທ.
  5. ເມື່ອເຂົ້າໄປໃນການຂັດຂວາງ, ຮາດແວກໍານົດຄ່າຂອງ mtval ເປັນ 0.

ອັບເດດ mstatus

ເມື່ອເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນແລະການຂັດຂວາງ, ຮາດແວຈະປັບປຸງບາງບິດໃນ mstatus.

  1. MPIE ຖືກປັບປຸງເປັນຄ່າ MIE ກ່ອນທີ່ຈະເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, ແລະ MPIE ຖືກນໍາໃຊ້ເພື່ອຟື້ນຟູ MIE ຫຼັງຈາກການຍົກເວັ້ນແລະການຂັດຂວາງສິ້ນສຸດລົງ.
  2. MPP ໄດ້ຖືກອັບເດດເປັນຮູບແບບສິດທິພິເສດກ່ອນທີ່ຈະເຂົ້າໄປໃນການຍົກເວັ້ນແລະການຂັດຂວາງ, ແລະຫຼັງຈາກຂໍ້ຍົກເວັ້ນແລະການຂັດຂວາງສິ້ນສຸດລົງ, MPP ຖືກນໍາໃຊ້ເພື່ອຟື້ນຟູຮູບແບບສິດທິພິເສດທີ່ຜ່ານມາ.
  3. ໄມໂຄຣໂປຣເຊສເຊີ QingKe V3 ຮອງຮັບການຂັດຈັງຫວະການຮັງຢູ່ໃນໂໝດເຄື່ອງ, ແລະ MIE ຈະບໍ່ຖືກລຶບລ້າງຫຼັງຈາກໃສ່ຂໍ້ຍົກເວັ້ນ ແລະ ຂັດຂວາງ.

ອັບເດດໂໝດສິດທິພິເສດຂອງ microprocessor

  • ເມື່ອມີການຍົກເວັ້ນແລະການຂັດຂວາງ, ຮູບແບບສິດທິພິເສດຂອງ microprocessor ຈະຖືກປັບປຸງເປັນໂຫມດເຄື່ອງຈັກ.

ຟັງຊັນການຈັດການຂໍ້ຍົກເວັ້ນ

  • ເມື່ອເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, microprocessor ປະຕິບັດໂຄງການຈາກທີ່ຢູ່ແລະຮູບແບບທີ່ກໍານົດໂດຍທະບຽນ mtvec. ເມື່ອນໍາໃຊ້ການປ້ອນຂໍ້ມູນແບບປະສົມປະສານ, ໄມໂຄຣໂປຣເຊສເຊີໃຊ້ເວລາຄໍາແນະນໍາຈາກທີ່ຢູ່ພື້ນຖານທີ່ກໍານົດໂດຍ mtvec[31:2] ໂດຍອີງໃສ່ມູນຄ່າຂອງ mtvec[1], ຫຼືໄດ້ຮັບການຍົກເວັ້ນແລະຂັດຂວາງການຈັດການທີ່ຢູ່ເຂົ້າແລະດໍາເນີນການແທນ. ໃນເວລານີ້, ຫນ້າທີ່ການຍົກເວັ້ນແລະການຂັດຂວາງສາມາດກໍານົດວ່າສາເຫດແມ່ນຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງໂດຍອີງໃສ່ມູນຄ່າຂອງ mcause[31], ແລະປະເພດແລະສາເຫດຂອງການຍົກເວັ້ນຫຼືການຂັດຂວາງທີ່ສອດຄ້ອງກັນສາມາດຖືກຕັດສິນໂດຍລະຫັດການຍົກເວັ້ນແລະຈັດການຕາມຄວາມເຫມາະສົມ.
  • ເມື່ອໃຊ້ທີ່ຢູ່ພື້ນຖານ + ເລກຂັດຂວາງ *4 ສໍາລັບການຊົດເຊີຍ, ຮາດແວຈະໂດດໄປຫາຕາຕະລາງ vector ໂດຍອັດຕະໂນມັດເພື່ອເອົາທີ່ຢູ່ເຂົ້າຂອງຂໍ້ຍົກເວັ້ນຫຼືຫນ້າທີ່ຂັດຂວາງໂດຍອີງໃສ່ຈໍານວນຂັດຂວາງແລະໂດດເພື່ອປະຕິບັດມັນ.

ການຍົກເວັ້ນທາງອອກ

  • ຫຼັງຈາກການຍົກເວັ້ນຫຼືຕົວຈັດການຂັດຂວາງໄດ້ຖືກສໍາເລັດ, ມັນຈໍາເປັນຕ້ອງອອກຈາກໂຄງການບໍລິການ. ຫຼັງຈາກເຂົ້າໄປໃນການຍົກເວັ້ນແລະການຂັດຂວາງ, microprocessor ເຂົ້າສູ່ໂຫມດເຄື່ອງຈັກຈາກໂຫມດຜູ້ໃຊ້, ແລະການປຸງແຕ່ງຂໍ້ຍົກເວັ້ນແລະການຂັດຂວາງຍັງສໍາເລັດໃນໂຫມດເຄື່ອງຈັກ. ໃນເວລາທີ່ມີຄວາມຈໍາເປັນທີ່ຈະອອກຈາກການຍົກເວັ້ນແລະການຂັດຂວາງ, ມັນຈໍາເປັນຕ້ອງໃຊ້ຄໍາແນະນໍາ mret ເພື່ອກັບຄືນ. ໃນເວລານີ້, ຮາດແວ microprocessor ຈະປະຕິບັດການດັ່ງຕໍ່ໄປນີ້ໂດຍອັດຕະໂນມັດ.
  • ຕົວຊີ້ PC ຖືກຟື້ນຟູກັບມູນຄ່າຂອງ CSR ລົງທະບຽນ mepc, ie, ການປະຕິບັດເລີ່ມຕົ້ນຈາກທີ່ຢູ່ຄໍາແນະນໍາທີ່ບັນທຶກໄວ້ໂດຍ mepc. ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະຕ້ອງເອົາໃຈໃສ່ກັບການປະຕິບັດການຊົດເຊີຍຂອງ mepc ຫຼັງຈາກການຈັດການການຍົກເວັ້ນແມ່ນສໍາເລັດ.
  • ອັບເດດສະຖານະການລົງທະບຽນ CSR, MIE ຖືກຟື້ນຟູເປັນ MPIE, ແລະ MPP ຖືກນໍາໃຊ້ເພື່ອຟື້ນຟູຮູບແບບສິດທິພິເສດຂອງ microprocessor ທີ່ຜ່ານມາ.
  • ຂະບວນການຕອບສະຫນອງຂໍ້ຍົກເວັ້ນທັງຫມົດສາມາດຖືກອະທິບາຍໂດຍຮູບ 2-1 ຕໍ່ໄປນີ້.WH-V3-Microprocessor-fig-1

PFIC ແລະການຄວບຄຸມການຂັດຂວາງ

  • ໄມໂຄຣໂປຣເຊສເຊີ QingKe V3 ຖືກອອກແບບດ້ວຍ Programmable Fast Interrupt Controller (PFIC) ທີ່ສາມາດຈັດການການລົບກວນໄດ້ເຖິງ 256 ອັນ ລວມທັງຂໍ້ຍົກເວັ້ນ.
  • 16 ທໍາອິດຂອງພວກເຂົາຖືກແກ້ໄຂເປັນການຂັດຂວາງພາຍໃນຂອງ microprocessor, ແລະສ່ວນທີ່ເຫຼືອແມ່ນການຂັດຂວາງພາຍນອກ, ie ຈໍານວນສູງສຸດຂອງການຂັດຂວາງພາຍນອກສາມາດຂະຫຍາຍໄດ້ເຖິງ 240. ລັກສະນະຕົ້ນຕໍຂອງມັນແມ່ນດັ່ງຕໍ່ໄປນີ້.
  • 240 ການຂັດຂວາງພາຍນອກ, ແຕ່ລະຄໍາຮ້ອງຂໍຂັດຂວາງມີຕົວກະຕຸ້ນເອກະລາດແລະບິດຄວບຄຸມຫນ້າກາກ, ມີບິດສະຖານະພາບສະເພາະ.
  • Programmable interrupt priority ຮອງຮັບ 2 ລະດັບຂອງການວາງ
  • ໄວພິເສດຂັດຂວາງໃນ / ອອກກົນໄກ, stacking ອັດຕະໂນມັດຂອງຮາດແວ, ແລະການຟື້ນຕົວ, ຄວາມເລິກ HPE ສູງສຸດຂອງ 2 ລະດັບ.
  • Vector Table Free (VTF) ກົນໄກການຕອບໂຕ້ຂັດຂວາງ, 2 ຊ່ອງທາງທີ່ສາມາດ programmable ໂດຍກົງເພື່ອຂັດຂວາງທີ່ຢູ່ vector
  • ໝາຍເຫດ: ຄວາມເລິກຂອງຮັງສູງສຸດແລະຄວາມເລິກ HPE ທີ່ສະຫນັບສະຫນູນໂດຍຕົວຄວບຄຸມຂັດຂວາງແຕກຕ່າງກັນສໍາລັບຕົວແບບ microprocessor ທີ່ແຕກຕ່າງກັນ, ເຊິ່ງສາມາດພົບໄດ້ໃນຕາຕະລາງ 1-1.
  • ຕາຕະລາງ vector ຂອງການຂັດຂວາງແລະຂໍ້ຍົກເວັ້ນແມ່ນສະແດງຢູ່ໃນຕາຕະລາງ 3-1 ຂ້າງລຸ່ມນີ້.

ຕາຕະລາງ 3-1 ຂໍ້ຍົກເວັ້ນແລະຕາຕະລາງ vector ຂັດຂວາງ

ເລກ ບູລິມະສິດ ປະເພດ ຊື່ ລາຍລະອຽດ
0
1
2 -5 ແກ້ໄຂ NMI ການຂັດຈັງຫວະທີ່ບໍ່ໜ້າກາກ
3 -4 ແກ້ໄຂ EXC ຂໍ້ຍົກເວັ້ນຂັດຂວາງ
4
5 -3 ແກ້ໄຂ ECALL-M ການ​ໂທ​ກັບ​ຮູບ​ແບບ​ເຄື່ອງ​ຂັດ​ຂວາງ
6-7
8 -2 ແກ້ໄຂ ECALL-U ການ​ໂທ​ກັບ​ຮູບ​ແບບ​ຜູ້​ໃຊ້​ຂັດ​ຂວາງ​
9 -1 ແກ້ໄຂ ຈຸດເລີ່ມຕົ້ນ Breakpoint callback ຂັດຈັງຫວະ
10-11
12 0 ສາມາດຕັ້ງໂປຣແກຣມໄດ້ SysTick ເຄື່ອງຈັບເວລາລະບົບຂັດຈັງຫວະ
13
14 1 ສາມາດຕັ້ງໂປຣແກຣມໄດ້ SWI ຊອບແວຂັດຂວາງ
15
16-255 2-241 ສາມາດຕັ້ງໂປຣແກຣມໄດ້ ຂັດຂວາງພາຍນອກ ຂັດຂວາງພາຍນອກ 16-255

ໝາຍເຫດ: ECALL-M, ECALL-U, ແລະ BREAKPOINT ແມ່ນປະເພດທີ່ແຕກຕ່າງກັນທັງໝົດຂອງຂໍ້ຍົກເວັ້ນ EXC, ທີ່ເປັນເອກະລາດໃນ V3B/C ເພື່ອຄວາມສະດວກໃນການນຳໃຊ້, ແລະທີ່ຢູ່ 3 ອັນຂ້າງເທິງນີ້ຈະຖືກແບ່ງປັນກັບ EXC ໃນ V3A.

ຊຸດລົງທະບຽນ PFIC

ຕາຕະລາງ 3-2 ການລົງທະບຽນ PFIC

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_ISRx 0xE000E000

-0xE000E01C

RO ຂັດຂວາງການເປີດໃຊ້ສະຖານະລົງທະບຽນ x 0x00000000
PFIC_IPRx 0xE000E020

-0xE000E03C

RO ຂັດຂວາງສະຖານະການລໍຖ້າລົງທະບຽນ x 0x00000000
PFIC_ITHRESDR 0xE000E040 RW ຂັດຂວາງການລົງທະບຽນກໍານົດຂອບເຂດບູລິມະສິດ 0x00000000
PFIC_VTFBADDRR 0xE000E044 RW ລົງທະບຽນທີ່ຢູ່ຖານ VTF

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ

0x00000000
PFIC_CFGR 0xE000E048 RW ຂັດຂວາງການລົງທະບຽນການຕັ້ງຄ່າ

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ

0x00000000
PFIC_GISR 0xE000E04C RO ຂັດຂວາງການລົງທະບຽນສະຖານະພາບທົ່ວໂລກ 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

ລົງທະບຽນການກຳນົດຄ່າ ID ລົບກວນ VTF

ໝາຍເຫດ: ໃຊ້ໄດ້ສະເພາະກັບ V3B/C ເທົ່ານັ້ນ.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW ລົງທະບຽນທີ່ຢູ່ VTF x offset 0xXXXXXXXXX
PFIC_INRx 0xE000E100

-0xE000E11C

WO ຂັດຂວາງການເປີດໃຊ້ການຕັ້ງຄ່າລົງທະບຽນ x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO ຂັດຂວາງເປີດໃຊ້ clear register x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO ຂັດຂວາງການຕັ້ງຄ່າທີ່ລໍຖ້າລົງທະບຽນ x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO ຂັດຂວາງການລົງທະບຽນທີ່ຈະແຈ້ງ x 0x00000000
PFIC_IATRx 0xE000E300

-0xE000E31C

RO ຂັດຂວາງສະຖານະການເປີດໃຊ້ງານລົງທະບຽນ x 0x00000000
PFIC_IPRIORx 0xE000E400

-0xE000E43C

RW ຂັດຂວາງການລົງທະບຽນການຕັ້ງຄ່າບູລິມະສິດ 0x00000000
PFIC_SCTLR 0xE000ED10 RW ລົງທະບຽນການຄວບຄຸມລະບົບ 0x00000000

ໝາຍເຫດ:

  1. NMI, EXC, ECALL-M, ECALL-U, ແລະ BREAKPOINT ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນສະເໝີ.
  2. ECALL-M, ECALL-U, ແລະ BREAKPOINT ແມ່ນກໍລະນີຂອງ EXC.
  3. NMI, EXC, ECALL-M, ECALL-U, ແລະ BREAKPOINT ຮອງຮັບການຂັດຈັງຫວະທີ່ຍັງຄ້າງຢູ່ຢ່າງຈະແຈ້ງ ແລະການຕັ້ງຄ່າການດຳເນີນການ, ແຕ່ບໍ່ຂັດຈັງຫວະ ເປີດໃຊ້ງານທີ່ຊັດເຈນ ແລະການຕັ້ງຄ່າ.

ແຕ່ລະທະບຽນແມ່ນໄດ້ອະທິບາຍດັ່ງນີ້:

ຂັດຂວາງການເປີດໃຊ້ສະຖານະ ແລະຂັດຂວາງການລົງທະບຽນສະຖານະທີ່ຍັງຄ້າງຢູ່ (PFIC_ISR<0-7>/PFIC_IPR<0-7>)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 PFIC_ISR0  0xE000E000  RO Interrupt 0-31 ເປີດໃຊ້ສະຖານະລົງທະບຽນ, ຈໍານວນທັງຫມົດ 32 status bits [n], ຊີ້ບອກ #n interrupt ເປີດໃຊ້ສະຖານະ

ຫມາຍເຫດ: NMI ແລະ EXC ຖືກເປີດໃຊ້ ໂດຍຄ່າເລີ່ມຕົ້ນ

 ສໍາລັບ V3A: 0x0000000C

ສໍາລັບ V3B/C: 0x0000032C

PFIC_ISR1 0xE000E004 RO ຂັດຂວາງ 32-63 ເປີດການລົງທະບຽນສະຖານະ, ຈໍານວນທັງຫມົດ 32 ບິດສະຖານະພາບ 0x00000000
PFIC_ISR7 0xE000E01C RO ຂັດຂວາງ 224-255 ເປີດການລົງທະບຽນສະຖານະ, ຈໍານວນທັງຫມົດ 32 ບິດສະຖານະພາບ 0x00000000
PFIC_IPR0 0xE000E020 RO ຂັດຂວາງສະຖານະທີ່ຍັງຄ້າງຢູ່ 0-31 0x00000000
ລົງທະບຽນ, ຈໍານວນທັງຫມົດ 32 ສະຖານະພາບ bits [n], ຊີ້ໃຫ້ເຫັນສະຖານະທີ່ຍັງຄ້າງຂອງການຂັດຂວາງ #n
PFIC_IPR1 0xE000E024 RO ຂັດຂວາງການລົງທະບຽນສະຖານະທີ່ຍັງຄ້າງ 32-63, 32 bits ສະຖານະພາບໃນຈໍານວນທັງຫມົດ 0x00000000
PFIC_IPR7 0xE000E03C RO ຂັດຂວາງການລົງທະບຽນສະຖານະທີ່ຍັງຄ້າງ 244-255, 32 bits ສະຖານະພາບໃນຈໍານວນທັງຫມົດ 0x00000000

ສອງຊຸດຂອງທະບຽນແມ່ນໃຊ້ເພື່ອເປີດໃຊ້ງານແລະປິດການເປີດໃຊ້ການຂັດຂວາງທີ່ສອດຄ້ອງກັນ.

ຂັດຂວາງການເປີດໃຊ້ການຕັ້ງຄ່າ ແລະລຶບລ້າງການລົງທະບຽນ (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_IENR0 0xE000E100 WO Interrupt 0-31 ເປີດໃຊ້ການລົງທະບຽນການຕັ້ງຄ່າ, ຈໍານວນທັງຫມົດ 32 setting bits [n], ສໍາລັບ interrupt #n ເປີດໃຊ້ການຕັ້ງຄ່າ

ໝາຍເຫດ: NMI ແລະ EXC ແມ່ນ ເປີດໃຊ້ງານ ໂດຍຄ່າເລີ່ມຕົ້ນ

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO ຂັດຂວາງ 32-63 ເພື່ອເປີດໃຊ້ການລົງທະບຽນການຕັ້ງຄ່າ, ຈໍານວນທັງຫມົດ 32 bits ການຕັ້ງຄ່າ 0x00000000
PFIC_IENR7 0xE000E11C WO ຂັດຂວາງ 224-255 ເປີດໃຊ້ການຕັ້ງຄ່າ

ລົງທະບຽນ, ຈໍານວນທັງຫມົດ 32 ບິດການຕັ້ງຄ່າ

0x00000000
 PFIC_IRER0  0xE000E180  WO ຂັດຂວາງ 0-31 ເປີດໃຊ້ການລົງທະບຽນທີ່ຊັດເຈນ, ຈໍານວນທັງຫມົດ 32 clear bits [n], ສໍາລັບການຂັດຂວາງ #n ເປີດໃຊ້ clear ຫມາຍເຫດ: NMI ແລະ EXC ບໍ່ສາມາດເປັນ ດໍາເນີນການ  

 

0x00000000

PFIC_IRER1 0xE000E184 WO ການຂັດຂວາງ 32-63 ເຮັດໃຫ້ການລົງທະບຽນທີ່ຊັດເຈນ, ຈໍານວນທັງຫມົດ 32 ບິດທີ່ຊັດເຈນ 0x00000000
PFIC_IRER7 0xE000E19C WO ການຂັດຂວາງ 244-255 ເຮັດໃຫ້ການລົງທະບຽນທີ່ຊັດເຈນ, ຈໍານວນທັງຫມົດ 32 ບິດທີ່ຊັດເຈນ 0x00000000

ສອງຊຸດຂອງທະບຽນແມ່ນໃຊ້ເພື່ອເປີດໃຊ້ງານແລະປິດການເປີດໃຊ້ການຂັດຂວາງທີ່ສອດຄ້ອງກັນ.

ຂັດຂວາງການຕັ້ງຄ່າທີ່ຍັງຄ້າງຢູ່ ແລະລຶບລ້າງການລົງທະບຽນ (PFIC_IPSR<0-7>/PFIC_IPRR<0-7>)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 

PFIC_IPSR0

 

0xE000E200

 

WO

ຂັດຂວາງ 0-31 ລໍຖ້າການລົງທະບຽນ, 32

setting bits [n], ສໍາລັບ interrupt #n ລໍຖ້າການຕັ້ງຄ່າ

 

0x00000000

PFIC_IPSR1 0xE000E204 WO ຂັດຂວາງການລົງທະບຽນ 32-63 ທີ່ຍັງຄ້າງການລົງທະບຽນ,

ຈໍາ​ນວນ​ທັງ​ຫມົດ 32 bits ການ​ຕັ້ງ​ຄ່າ​

0x00000000
PFIC_IPSR7 0xE000E21C WO ຂັດຂວາງການຕັ້ງຄ່າທີ່ຍັງຄ້າງຢູ່ 224-255

ລົງ​ທະ​ບຽນ​, 32 bits ການ​ຕັ້ງ​ຄ່າ​ທັງ​ຫມົດ​

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

ຂັດຂວາງ 0-31 ລໍຖ້າການລົງທະບຽນທີ່ຊັດເຈນ, ຈໍານວນທັງຫມົດ 32 clear bits [n], ສໍາລັບການຂັດຂວາງ #n

ລໍຖ້າຈະແຈ້ງ

 

0x00000000

PFIC_IPRR1 0xE000E284 WO ຂັດຂວາງ 32-63 ລໍຖ້າການລົງທະບຽນທີ່ຈະແຈ້ງ,

ທັງ​ຫມົດ 32 bits ທີ່​ຈະ​ແຈ້ງ​

0x00000000
PFIC_IPRR7 0xE000E29C WO ຂັດຂວາງ 244-255 ລໍຖ້າການລົງທະບຽນທີ່ຈະແຈ້ງ,

ທັງ​ຫມົດ 32 bits ທີ່​ຈະ​ແຈ້ງ​

0x00000000

ເມື່ອໄມໂຄຣໂປຣເຊສເຊີເປີດໃຊ້ການຂັດຈັງຫວະ, ມັນສາມາດຖືກຕັ້ງໂດຍກົງຜ່ານທະບຽນທີ່ຄ້າງຢູ່ຂັດຈັງຫວະເພື່ອກະຕຸ້ນການລົບກວນ. ໃຊ້ການຂັດຂວາງການລົງທະບຽນທີ່ຍັງຄ້າງຢູ່ເພື່ອລຶບລ້າງ trigger ທີ່ຍັງຄ້າງຢູ່.

ຂັດຂວາງການລົງທະບຽນສະຖານະການເປີດໃຊ້ງານ (PFIC_IACTR<0-7>)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 PFIC_IACTR0  0xE000E300  RO Interrupt 0-31 ເປີດໃຊ້ການລົງທະບຽນສະຖານະດ້ວຍ 32 status bits [n], ສະແດງໃຫ້ເຫັນວ່າ interrupt #n ກໍາລັງຖືກປະຕິບັດ.  0x00000000
 PFIC_IACTR1  0xE000E304  RO ຂັດຂວາງການລົງທະບຽນສະຖານະພາບການເປີດໃຊ້ 32-63, 32 bits ສະຖານະພາບໃນ

ທັງໝົດ

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO ຂັດຂວາງການລົງທະບຽນສະຖານະພາບການເປີດໃຊ້ 224-255, ຈໍານວນທັງຫມົດ 32 ບິດສະຖານະພາບ  0x00000000

ແຕ່ລະ interrupt ມີ bit ສະຖານະການເຄື່ອນໄຫວທີ່ສ້າງຕັ້ງຂຶ້ນໃນເວລາທີ່ interrupt ໄດ້ຖືກເຂົ້າໄປໃນແລະລ້າງໂດຍຮາດແວໃນເວລາທີ່ຕະຫຼາດກັບຄືນມາ.

ຂັດຂວາງການລົງທະບຽນບູລິມະສິດ ແລະລະດັບຄວາມສຳຄັນ (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_IPRIOR0 0xE000E400 RW ຂັດຂວາງ 0 ການຕັ້ງຄ່າບູລິມະສິດ. V3A: [7:4]: ບູລິມະສິດຄວບຄຸມ bits ຖ້າການຕັ້ງຄ່າບໍ່ຖືກວາງໄວ້, ບໍ່ມີການຈອງບິດ ຖ້າການຕັ້ງຮັງຖືກຕັ້ງໄວ້, bit7 ແມ່ນບິດທີ່ຖືກຈອງໄວ້ລ່ວງໜ້າ. [3:0]: ສະຫງວນໄວ້, ແກ້ໄຂເປັນ 0  V3B: [7:6]: ບູລິມະສິດການຄວບຄຸມບິດ ຖ້າການຕັ້ງຄ່າບໍ່ຖືກວາງໄວ້, ບໍ່ມີບິດທີ່ຕັ້ງໄວ້ລ່ວງໜ້າທີ່ຖືກຕັ້ງໄວ້ທີ່ວາງໄວ້, ບິດທັງໝົດຈະຖືກຈອງໄວ້ລ່ວງໜ້າ, ແຕ່ການຂັດຂວາງເຖິງສອງລະດັບແມ່ນອະນຸຍາດໃຫ້ເກີດຂຶ້ນ [5:0]: ສະຫງວນໄວ້, ແກ້ໄຂເປັນ 0.
V3C:
[7:5]: ບູລິມະສິດການຄວບຄຸມ bits
ຖ້າການຕັ້ງຄ່າບໍ່ຖືກວາງໄວ້, ບໍ່ມີບິດເບືອນລ່ວງໜ້າ
ຖ້າ configured nested, bits ທັງຫມົດແມ່ນ preempted, ແຕ່ເຖິງສອງລະດັບຂອງ interrupts ແມ່ນອະນຸຍາດໃຫ້ເກີດຂຶ້ນ [4:0]: ສະຫງວນໄວ້, fixed ເປັນ 0 ຫມາຍເຫດ: ຂະຫນາດນ້ອຍກວ່າຄ່າບູລິມະສິດ, ຄວາມສໍາຄັນສູງ. ຖ້າບູລິມະສິດການລ່ວງລະເມີດດຽວກັນຂັດຂວາງການຂັດຂວາງໃນເວລາດຽວກັນ, ການຂັດຂວາງກັບຄວາມສໍາຄັນທີ່ສູງກວ່າຈະຖືກປະຕິບັດກ່ອນ.
0x00
PFIC_IPRIOR1 0xE000E401 RW ຂັດຂວາງ 1 ການຕັ້ງຄ່າບູລິມະສິດ, ຟັງຊັນດຽວກັນກັບ PFIC_IPRIOR0 0x00
PFIC_IPRIOR2 0xE000E402 RW ຂັດຂວາງ 2 ການຕັ້ງຄ່າບູລິມະສິດ, ຟັງຊັນດຽວກັນກັບ PFIC_IPRIOR0
PFIC_IPRIOR254 0xE000E4FE RW ຂັດຂວາງການຕັ້ງຄ່າບູລິມະສິດ 254, ຟັງຊັນດຽວກັນກັບ PFIC_IPRIOR0 0x00
PFIC_IPRIOR255 0xE000E4FF RW ຂັດຂວາງ 255 ການຕັ້ງຄ່າບູລິມະສິດ, ຟັງຊັນດຽວກັນກັບ PFIC_IPRIOR0 0x00
PFIC_ITHRESDR 0xE000E040 RW ຂັດຂວາງການກໍານົດຂອບເຂດບູລິມະສິດ

V3A:

[31:8]: ສະຫງວນ, ແກ້ໄຂເປັນ 0 [7:4]: ເກນບຸລິມະສິດ [3:0]: ສະຫງວນໄວ້, ແກ້ໄຂເປັນ 0

 V3B:

[31:8]: ສະຫງວນ, ແກ້ໄຂເປັນ 0 [7:5]: ເກນບຸລິມະສິດ [4:0]: ສະຫງວນໄວ້, ແກ້ໄຂເປັນ 0

 V3C:

[31:8]: ສະຫງວນ, ແກ້ໄຂເປັນ 0 [7:5]: ເກນບຸລິມະສິດ [4:0]: ສະຫງວນໄວ້, ແກ້ໄຂເປັນ 0

ໝາຍເຫດ: ສໍາລັບການຂັດຂວາງກັບຄ່າບູລິມະສິດ ≥ threshold, ຟັງຊັນການບໍລິການຂັດຂວາງບໍ່ໄດ້ຖືກປະຕິບັດເມື່ອມີ hang ເກີດຂຶ້ນ, ແລະເມື່ອລົງທະບຽນນີ້ແມ່ນ 0, ມັນຫມາຍຄວາມວ່າການລົງທະບຽນແມ່ນບໍ່ຖືກຕ້ອງ.

0x00

ການລົງທະບຽນການຕັ້ງຄ່າລົບກວນ (PFIC_CFGR)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_CFGR 0xE000E048 RW ຂັດຂວາງການລົງທະບຽນການຕັ້ງຄ່າ 0x00000000

ການລົງທະບຽນນີ້ແມ່ນຖືກຕ້ອງສໍາລັບ V3A, bits ຂອງມັນຖືກກໍານົດເປັນ:

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:16] ຄີລະຫັດ WO ທີ່ສອດຄ້ອງກັບບິດຄວບຄຸມເປົ້າຫມາຍທີ່ແຕກຕ່າງກັນ, ຂໍ້ມູນການກໍານົດການເຂົ້າເຖິງຄວາມປອດໄພທີ່ສອດຄ້ອງກັນຕ້ອງໄດ້ຮັບການຂຽນພ້ອມໆກັນເພື່ອຖືກດັດແກ້, ແລະຂໍ້ມູນການອ່ານຖືກແກ້ໄຂເປັນ 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. 0
[15:8] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
7 SYSRESET WO ຣີເຊັດລະບົບ (ຂຽນພ້ອມໆກັນໃສ່ KEY3). ລຶບລ້າງອັດຕະໂນມັດ 0.

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

ໝາຍເຫດ: ຟັງຊັນດຽວກັນກັບ PFIC_SCTLR ລົງທະບຽນ SYSRESET bit.

0
6 PFICRESET WO ຣີເຊັດໂມດູນ PFIC. ລຶບລ້າງອັດຕະໂນມັດ 0.

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

0
5 ດ່ວນ WO ຂໍ້​ຍົກ​ເວັ້ນ​ຂັດ​ຂວາງ​ທີ່​ຍັງ​ຄົງ​ຄ້າງ​ທີ່​ຈະ​ແຈ້ງ (ຂຽນ​ພ້ອມ​ກັນ​ກັບ KEY2​)

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

0
4 EXCSET WO ຂໍ້​ຍົກ​ເວັ້ນ​ຂັດ​ຂວາງ​ການ​ຕັ້ງ​ຄ່າ​ທີ່​ຍັງ​ຄົງ​ຄ້າງ (ຂຽນ​ພ້ອມ​ກັນ​ກັບ KEY2​)

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

0
3 NMIRESET WO NMI ຂັດຈັງຫວະທີ່ຍັງຄ້າງຢູ່ຈະແຈ້ງ (ຂຽນພ້ອມໆກັນຫາ KEY2)

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

0
2 NMISET WO ການ​ຕັ້ງ​ຄ່າ​ທີ່​ຍັງ​ຄົງ​ຄ້າງ NMI ຂັດ​ຂວາງ (ການ​ຂຽນ​ພ້ອມ​ກັນ​ກັບ KEY2​)

ການຂຽນ 1 ແມ່ນຖືກຕ້ອງ, ການຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

0
1 NESTCTRL RW ການຂັດຂວາງການຮັງເຮັດໃຫ້ສາມາດຄວບຄຸມໄດ້.

1: ປິດ; 0: ເປີດ (ການຂຽນ synchronous ກັບ KEY1)

0
0 HWSTKCTRL RW HPE ເປີດໃຊ້ການຄວບຄຸມ

1: ປິດ; 0: ເປີດ (ການຂຽນ synchronous ກັບ KEY1)

0

ຂັດຂວາງການລົງທະບຽນສະຖານະທົ່ວໂລກ (PFIC_GISR)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_GISR 0xE000E04C RO ຂັດຂວາງການລົງທະບຽນສະຖານະພາບທົ່ວໂລກ 0x00000000

ຄົນຂອງມັນຖືກ ກຳ ນົດເປັນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:14] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
 

 

13

 

 

ລັອກສະຕາ

 

 

RO

ປະຈຸບັນໂປເຊດເຊີຢູ່ໃນສະຖານະລັອກຫຼືບໍ່:

1: ລັດລັອກ;

0: ລັດບໍ່ລັອກ.

ໝາຍເຫດ: ບິດນີ້ໃຊ້ໄດ້ກັບ V3B/C ເທົ່ານັ້ນ.

 

 

0

 

 

12

 

 

DBGMODE

 

 

RO

ປະຈຸບັນໂຮງງານຜະລິດຢູ່ໃນສະຖານະດີບັກ: 1: ສະຖານະດີບັກ;

0: ສະຖານະທີ່ບໍ່ມີການດີບັກ.

ໝາຍເຫດ: ບິດນີ້ໃຊ້ໄດ້ກັບ V3B/C ເທົ່ານັ້ນ.

 

 

0

 

 

11

 

 

ໂລກ

 

 

RO

ເປີດໃຊ້ການລົບກວນທົ່ວໂລກ:

1: ເປີດໃຊ້ການຂັດຂວາງ;

0: ປິດການຂັດຂວາງ.

ໝາຍເຫດ: ບິດນີ້ໃຊ້ໄດ້ກັບ V3B/C ເທົ່ານັ້ນ.

10 ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
9 GPENDSTA RO ບໍ່ວ່າການຂັດຈັງຫວະກຳລັງລໍຖ້າຢູ່.

1: ແມ່ນ; 0: ບໍ່.

0
8 GACTSTA RO ບໍ່ວ່າການຂັດຂວາງກໍາລັງຖືກປະຕິບັດ.

1: ແມ່ນ; 0: ບໍ່.

0
 

 

[7:0]
 

 

NESTSTA

 

 

RO

ສະຖານະການຂັດຈັງຫວະການຮັງໃນປັດຈຸບັນ. 0x03: ໃນລະດັບ 2 ຂັດຂວາງ.

0x01: ໃນລະດັບ 1 ຂັດຂວາງ. 0x00: ບໍ່ມີການຂັດຂວາງເກີດຂຶ້ນ.

ອື່ນ: ສະຖານະການເປັນໄປບໍ່ໄດ້.

 

 

0

ທີ່ຢູ່ຖານ VTF ID ແລະທະບຽນທີ່ຢູ່ຊົດເຊີຍ (PFIC_VTFBADDRR/PFIC_VTFADDRR<0-3>)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 

 

PFIC_VTFBADDRR

 

 

0xE000E044

 

 

RW

[31:28]: ສູງ 4 bits ຂອງທີ່ຢູ່ເປົ້າໝາຍຂອງ VTF [27:0]: ສະຫງວນໄວ້

ການລົງທະບຽນນີ້ແມ່ນໃຊ້ໄດ້ສະເພາະກັບ V3A ເທົ່ານັ້ນ.

 

 

0x00000000

 

 

 

PFIC_VTFIDR

 

 

 

0xE000E050

 

 

 

RW

[31:24]: ຈໍານວນ VTF 3 [23:16]: ຈໍານວນ VTF 2 [15:8]: ຈໍານວນ VTF 1 [7:0]: ຈໍານວນ VTF 0.

ການລົງທະບຽນນີ້ໃຊ້ໄດ້ສະເພາະກັບ V3B/C ເທົ່ານັ້ນ.

 

 

 

0x00000000

 

 

 

 

 

 

 

 

PFIC_VTFADDRR0

 0xE000E060  RW V3A: [31:24]: VTF 0 interrupt number [23:0]: 24 bits ຕໍ່າຂອງທີ່ຢູ່ເປົ້າໝາຍ VTF, ເຊິ່ງ 20 bits ຕໍ່າຖືກຕັ້ງຄ່າໃຫ້ຖືກຕ້ອງ, ແລະ [23:20] ຖືກແກ້ໄຂເປັນ 0.

 V3B/C:

[31:1]: ທີ່ຢູ່ VTF 0, ຈັດຮຽງ 2-byte [0]:

1: ເປີດໃຊ້ຊ່ອງ VTF 0

0: ປິດການໃຊ້ງານ

 

 

 

 

 

 

 

ສໍາລັບ V3A: 0x00000000

ສໍາລັບ V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 1 interrupt number [23:0]: 24 bits ຕໍ່າຂອງທີ່ຢູ່ເປົ້າໝາຍ VTF, ເຊິ່ງ 20 bits ຕໍ່າຖືກຕັ້ງຄ່າໃຫ້ຖືກຕ້ອງ ແລະ [23:20] ຖືກແກ້ໄຂເປັນ 0.

 

V3B/C:

[31:1]: ທີ່ຢູ່ VTF 1, ຈັດຮຽງ 2-byte [0]:

1: ເປີດໃຊ້ຊ່ອງ VTF 1

0: ປິດການໃຊ້ງານ

 

 

 

 

 

 

 

ສໍາລັບ V3A: 0x00000000

ສໍາລັບ V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 2 interrupt number [23:0]: 24 bits ຕໍ່າຂອງທີ່ຢູ່ເປົ້າໝາຍ VTF, ເຊິ່ງ 20 bits ຕໍ່າຖືກຕັ້ງຄ່າໃຫ້ຖືກຕ້ອງ, ແລະ [23:20] ຖືກແກ້ໄຂເປັນ 0.

 

V3B/C:

[31:1]: ທີ່ຢູ່ VTF 2, ຈັດຮຽງ 2-byte [0]:

1: ເປີດໃຊ້ຊ່ອງ VTF 2

0: ປິດການໃຊ້ງານ

 

 

 

 

 

 

 

ສໍາລັບ V3A: 0x00000000

ສໍາລັບ V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: ສໍາລັບ V3A:
[31:24]: VTF 3 interrupt number [23:0]: ຕ່ຳ 24 bits ຂອງທີ່ຢູ່ເປົ້າໝາຍ VTF, ເຊິ່ງ 20 bits ຕ່ຳຖືກກຳນົດຄ່າໃຫ້ຖືກຕ້ອງ, ແລະ [23:20] ຖືກແກ້ໄຂເປັນ 0.

 V3B/C:

[31:1]: ທີ່ຢູ່ VTF 3, ຈັດຮຽງ 2-byte [0]:

1: ເປີດໃຊ້ຊ່ອງ VTF 3

0: ປິດການໃຊ້ງານ

0x00000000

ສໍາລັບ V3B/C: 0xXXXXXXXXX

ລົງທະບຽນການຄວບຄຸມລະບົບ (PFIC_SCTLR)

ຊື່ ເຂົ້າເຖິງ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
PFIC_SCTLR 0xE000ED10 RW ລົງທະບຽນການຄວບຄຸມລະບົບ 0x00000000

ແຕ່ລະຄົນຂອງພວກເຂົາຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້.

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
31 SYSRESET WO ຣີເຊັດລະບົບ, ລຶບອັດຕະໂນມັດ 0. ຂຽນ 1 ຖືກຕ້ອງ, ແລະຂຽນ 0 ບໍ່ຖືກຕ້ອງ.

ໝາຍເຫດ: ບິດນີ້ໃຊ້ໄດ້ກັບ V3B/C ເທົ່ານັ້ນ

0
[30:6] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
5 SETEVENT WO ກໍານົດເຫດການເພື່ອປຸກກໍລະນີ WFE. 0
 

4

SEVONPEND RW ເມື່ອເຫດການເກີດຂຶ້ນຫຼືຂັດຂວາງສະຖານະທີ່ຍັງຄ້າງຢູ່, ລະບົບສາມາດປຸກໄດ້ຫຼັງຈາກຄໍາແນະນໍາຂອງ WFE, ຫຼືຖ້າຄໍາແນະນໍາຂອງ WFE ບໍ່ໄດ້ຖືກປະຕິບັດ, ລະບົບຈະຖືກປຸກທັນທີຫຼັງຈາກການປະຕິບັດຄໍາແນະນໍາຕໍ່ໄປ.

1: ເຫດການທີ່ເປີດໃຊ້ງານແລະການຂັດຂວາງທັງຫມົດ (ລວມທັງການຂັດຂວາງທີ່ບໍ່ໄດ້ເປີດໃຊ້) ສາມາດປຸກລະບົບໄດ້.

0: ພຽງແຕ່ເປີດໃຊ້ເຫດການແລະເປີດໃຊ້ງານ

ການຂັດຂວາງສາມາດປຸກລະບົບ.

 

 

 

0

3 WFIITOWFE RW ປະຕິບັດຄໍາສັ່ງ WFI ຄືກັບວ່າມັນເປັນ WFE.

1: ປະຕິບັດຄໍາແນະນໍາ WFI ຕໍ່ມາເປັນຄໍາແນະນໍາ WFE.

0: ບໍ່ມີຜົນກະທົບ.

0
2 ນອນດີ RW ໂຫມດພະລັງງານຕ່ໍາຂອງລະບົບການຄວບຄຸມ. 0
1: deepsleep 0: ນອນ
1 SLEEPONEXI T RW ສະຖານະຂອງລະບົບຫຼັງຈາກການຄວບຄຸມອອກຈາກໂຄງການບໍລິການຂັດຂວາງ.

1: ລະບົບເຂົ້າສູ່ໂຫມດພະລັງງານຕ່ໍາ.

0: ລະບົບເຂົ້າສູ່ໂຄງການຕົ້ນຕໍ.

0
0 ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0

ການຂັດຂວາງການລົງທະບຽນ CSR ທີ່ກ່ຽວຂ້ອງກັບ

ນອກຈາກນັ້ນ, ການລົງທະບຽນ CSR ຕໍ່ໄປນີ້ຍັງມີຜົນກະທົບຢ່າງຫຼວງຫຼາຍຕໍ່ການປຸງແຕ່ງການຂັດຂວາງ. ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມລະບົບ (intsyscr)

ການລົງທະບຽນນີ້ບໍ່ຖືກຕ້ອງສໍາລັບ V3A ເທົ່ານັ້ນ:

ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
intsyscr 0x804 URW ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມລະບົບ 0x0000E002

ຄົນຂອງມັນຖືກ ກຳ ນົດວ່າ:

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 

 

 

31

 

 

 

ລັອກ

 

 

 

URO

0: ການລົງທະບຽນນີ້ສາມາດອ່ານແລະຂຽນໃນຮູບແບບຜູ້ໃຊ້;

1: ລົງທະບຽນນີ້ພຽງແຕ່ສາມາດອ່ານແລະຂຽນໃນໂຫມດເຄື່ອງ.

ຫມາຍເຫດ: ບິດການຕັ້ງຄ່ານີ້ແມ່ນຖືກຕ້ອງຈາກ

ເວີຊັ່ນ 1.0 ເປັນຕົ້ນໄປ.

 

 

 

0

[30:6] ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

ການຂັດຂວາງທົ່ວໂລກແລະການປິດຊຸດຮາດແວຖືກເປີດໃຊ້.

ຫມາຍເຫດ: ບິດນີ້ມັກຈະຖືກນໍາໃຊ້ໃນລະບົບປະຕິບັດການໃນເວລາທີ່ແທ້ຈິງ. ເມື່ອສະພາບການຖືກປ່ຽນໃນລະຫວ່າງການຂັດຈັງຫວະ, ການຕັ້ງຄ່າບິດນີ້ສາມາດປິດການລົບກວນທົ່ວໂລກ ແລະຍູ້ຮາດແວ stack. ເມື່ອສະຫຼັບບໍລິບົດສຳເລັດແລ້ວ ແລະຜົນຕອບແທນຂັດຂວາງ, ຮາດແວຈະ

ອັດຕະໂນມັດລ້າງບິດນີ້.

 

 

 

 

 

0

4 ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0
[3:2] PMTCFG URW ການຕັ້ງຄ່າບູລິມະສິດ bits preemption:

00: ຈໍານວນຂອງ preemption bits ແມ່ນ 0; 01: ຈໍານວນຂອງ preemption bits ແມ່ນ 1; 10: ຈໍານວນຂອງ preemption bits ແມ່ນ 2; 11: ຈໍານວນຂອງ preemption bits ແມ່ນ 3; ຫມາຍເຫດ: ບິດການຕັ້ງຄ່ານີ້ແມ່ນຖືກຕ້ອງຫຼັງຈາກ 1.0.

0
1 ຟັງ URW ຟັງຊັນ interrupt nesting ຖືກເປີດໃຊ້, ແລະຄ່າຄົງທີ່ແມ່ນ 1: 1
0: ປິດການໃຊ້ງານ;

1: ເປີດໃຊ້.

ຫມາຍເຫດ: 1. ລະດັບການຮັງຕົວຈິງຖືກຄວບຄຸມໂດຍ NEST_LVL ໃນ CSR 0xBC1;

2. ພຽງແຕ່ສະບັບຫຼັງຈາກ 1.0 ສາມາດເປັນ

ຂຽນ.

0 HWSTKEN URW ເປີດໃຊ້ Hardware stack:

0: ຟັງຊັນກົດ stack ຮາດແວຖືກປິດໃຊ້ງານ;

1: ຟັງຊັນກົດ stack ຂອງຮາດແວຖືກເປີດໃຊ້.

0

ລົງທະບຽນທີ່ຢູ່ຖານຂໍ້ຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກ (mtvec)

ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
mtvec 0x305 MRW ການຍົກເວັ້ນການລົງທະບຽນທີ່ຢູ່ຖານ 0x00000000

ຄົນຂອງມັນຖືກ ກຳ ນົດເປັນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:2] BASEADDR[31:2] MRW ຂັດຂວາງທີ່ຢູ່ຕາຕະລາງ vector, ບ່ອນທີ່

bits [9:2] ຖືກແກ້ໄຂເປັນ 0.

0
1 MODE1  

MRO

ຂັດຂວາງຮູບແບບການຮັບຮູ້ຕາຕະລາງ vector: 0: ກໍານົດໂດຍຄໍາແນະນໍາການເຕັ້ນໄປຫາ, ທີ່ມີຂອບເຂດຈໍາກັດ, ແລະສະຫນັບສະຫນູນຄໍາແນະນໍາທີ່ບໍ່ໂດດ;

1: ກໍານົດໂດຍທີ່ຢູ່ຢ່າງແທ້ຈິງ, ສະຫນັບສະຫນູນລະດັບເຕັມ, ແຕ່ຕ້ອງເຕັ້ນໄປຫາ.

ໝາຍເຫດ: ບິດນີ້ໃຊ້ໄດ້ກັບ V3B/C ເທົ່ານັ້ນ.

0
0 MODE0 MRW ຂັດຂວາງຫຼືຍົກເວັ້ນການເລືອກຮູບແບບທີ່ຢູ່.

0: ການ​ນໍາ​ໃຊ້​ທີ່​ຢູ່​ເຂົ້າ​ເປັນ​ເອ​ກະ​ພາບ​.

1: ທີ່ຢູ່ offset ອີງໃສ່ຕົວເລກຂັດຂວາງ *4.

0

ສໍາລັບ MCUs ທີ່ມີ microprocessors ຊຸດ V3, MODE0 ຖືກຕັ້ງຄ່າໃຫ້ເປັນ 1 ໂດຍຄ່າເລີ່ມຕົ້ນໃນການເລີ່ມຕົ້ນ. file, ແລະລາຍການສໍາລັບຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງແມ່ນຊົດເຊີຍຕາມຈໍານວນຂັດຂວາງ *4. ໃຫ້ສັງເກດວ່າ microprocessor V3A ເກັບຮັກສາຄໍາແນະນໍາກະໂດດຢູ່ໃນຕາຕະລາງ vector, ໃນຂະນະທີ່ microprocessor V3B/C ສາມາດເປັນຄໍາແນະນໍາການໂດດຫຼືໃຊ້ທີ່ຢູ່ຢ່າງແທ້ຈິງຂອງຟັງຊັນຂັດຂວາງ, ເຊິ່ງຖືກຕັ້ງຄ່າເປັນທີ່ຢູ່ຢ່າງແທ້ຈິງໃນການເລີ່ມຕົ້ນເລີ່ມຕົ້ນ. file.

ລົງທະບຽນການຕັ້ງຄ່າໄມໂຄຣໂປຣເຊສເຊີ (ຕົວແກ້ໄຂ)

ທະບຽນນີ້ບໍ່ຖືກຕ້ອງສຳລັບ V3A:

ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
corecfgr 0xBC0 MRW ລົງທະບຽນການຕັ້ງຄ່າໄມໂຄຣໂປຣເຊສເຊີ 0x00000001

ຄົນຂອງມັນຖືກ ກຳ ນົດເປັນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:8] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

MRW

ສະຖານະຫຼັກຜິດພາດຂັດຂວາງການເປີດໃຊ້ງານ:

0: ໃນສະຖານະການຜິດພາດ, ບໍ່ມີການລົບກວນ NMI ຖືກສ້າງຂຶ້ນ;

1: ໃນສະຖານະການຜິດພາດ, NMI interrupt ແມ່ນ

ສ້າງຂຶ້ນ.

 

 

0

6 ສະຫງວນໄວ້ MRO ຮັກສາໄວ້ 0. 0
5 IE_REMAP_EN MRW ການສ້າງແຜນທີ່ການລົງທະບຽນ MIE ເປີດໃຊ້:

0: ທີ່ຢູ່ CSR 0x800 ແມ່ນການລົງທະບຽນແບບອ່ານເທົ່ານັ້ນ ແລະຄ່າກັບຄືນແມ່ນຄ່າຂອງ STATUS;

1: ບິດ 3 ແລະ 7 ຂອງທີ່ຢູ່ CSR 0x800 ຖືກແຜນທີ່ເປັນບິດ MIE ຂອງທະບຽນ STATUS ແລະບິດ MPIE ຂອງທະບຽນ STATUS, ຕາມລໍາດັບ.

 

 

 

 

0

4 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
3 ROM_LOOP_ACC MRW ROM ການ​ເລັ່ງ​ຂະ​ບວນ​ການ​ຄໍາ​ແນະ​ນໍາ​ພື້ນ​ທີ່​ເປີດ​ໃຫ້​ໃຊ້​ງານ​:

0: ປິດຟັງຊັນການເລັ່ງຮອບວຽນຢູ່ໃນພື້ນທີ່ ROM;

1: ຄໍາແນະນໍາຢ່າງຕໍ່ເນື່ອງກັບຮ່າງກາຍ loop ພາຍໃນ 128 bytes ຈະໄດ້ຮັບການເລັ່ງຢ່າງເຕັມທີ່, ໃນຂະນະທີ່ຜູ້ທີ່ມີຮ່າງກາຍ loop ພາຍໃນ 256 bytes ຈະໄດ້ຮັບການເລັ່ງບາງສ່ວນ;

0
2 ROM_JUMP_ACC MRW ເປີດໃຊ້ການເລັ່ງການໂດດຄຳແນະນຳພື້ນທີ່ ROM ແລ້ວ:

0: ປິດການໃຊ້ງານການເລັ່ງການເຕັ້ນໄປຫາພື້ນທີ່ ROM;

1: ເປີດໃຊ້ການເລັ່ງການກະໂດດຂັ້ນໃນພື້ນທີ່ ROM.

0
[1:0] FETCH_MODE MRW ໂໝດດຶງຂໍ້ມູນ:

00: Prefetch ປິດ. ຟັງຊັນ prefetch ຄໍາແນະນໍາຖືກປິດໄວ້ເພື່ອຫຼີກເວັ້ນການດໍາເນີນການດຶງຄໍາແນະນໍາທີ່ບໍ່ຖືກຕ້ອງ, ແລະມີຫຼາຍຄໍາແນະນໍາທີ່ຖືກຕ້ອງຢູ່ໃນທໍ່ CPU. ຮູບແບບນີ້ມີການໃຊ້ພະລັງງານຕ່ໍາສຸດ, ແລະການປະຕິບັດຂອງມັນຫຼຸດລົງປະມານ 2 ~ 3 ເທື່ອ. 01: Prefetch Mode 1. ເມື່ອຟັງຊັນ prefetch instruction ເປີດ, CPU ຈະສືບຕໍ່ເຂົ້າຫາຫນ່ວຍຄວາມຈໍາຂອງ instruction ຈົນກ່ວາຈໍານວນຄໍາແນະນໍາທີ່ຈະປະຕິບັດໃນ buffer ຄໍາແນະນໍາພາຍໃນເກີນຈໍານວນທີ່ແນ່ນອນ, ຫຼື buffer ຄໍາແນະນໍາແມ່ນເຕັມ, ແລະ instruction fetching ຈະຖືກລະງັບ; (ຄວາມລົ້ມເຫຼວຂອງການຄາດຄະເນ CPU ຈະນໍາໄປສູ່ການປະຕິບັດການດຶງຂໍ້ມູນຊ້ໍາຊ້ອນ, ແລະໃນບາງກໍລະນີ, ຫນ່ວຍງານປະຕິບັດຈະແນະນໍາ 0 ~ 2 ຮອບຂອງຟອງ, ແລະການປະຕິບັດຂອງໂປລແກລມສ່ວນໃຫຍ່ຈະບໍ່ຫຼຸດລົງຢ່າງຈະແຈ້ງ); 10: ສະຫງວນ;
11: Prefetch Mode 2. ເມື່ອຟັງຊັນ prefetch instruction ເປີດ, CPU ຈະສືບຕໍ່ເຂົ້າຫາຫນ່ວຍຄວາມຈໍາຂອງ instruction, ແລະຖ້າ instruction buffer ເຕັມ, CPU ຈະສືບຕໍ່ພະຍາຍາມທີ່ຢູ່ໃຫມ່. ໂຫມດນີ້ມີປະສິດທິພາບສູງສຸດແລະການບໍລິໂພກພະລັງງານ. ຄວາມລົ້ມເຫຼວຂອງການຄາດຄະເນ CPU ແລະລອງໃຫມ່ຈະແນະນໍາການດໍາເນີນງານການດຶງຂໍ້ມູນຊ້ໍາຊ້ອນແລະອາດຈະສືບຕໍ່ຄອບຄອງແບນວິດຫນ່ວຍຄວາມຈໍາ. (ສຳລັບພື້ນທີ່ ROM, ລອງອີກຄັ້ງໝາຍເຖິງການເຂົ້າເຖິງທີ່ຢູ່ທີ່ບໍ່ຕໍ່ເນື່ອງ, ສະນັ້ນ ແນະນຳໃຫ້ເປີດ ROM_ACC_EN).

0x1

ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມແບບຊ້ອນກັນ (inestcr)

ການລົງທະບຽນນີ້ບໍ່ຖືກຕ້ອງພຽງແຕ່ສໍາລັບ V3A:

ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
ນັກລົງທຶນ 0xBC1 MRW ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມແບບຊ້ອນກັນ 0x00000000

ຄົນຂອງມັນຖືກ ກຳ ນົດເປັນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
31 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
30 NEST_OV MRW Interrupt/exception nested overflow flag bit, ຂຽນ 1 ເພື່ອລຶບ:

0: ການຂັດຂວາງບໍ່ໄດ້ລົ້ນ; 1: ຂັດຂວາງທຸງ overflow.

ໝາຍເຫດ: Interrupt overflow ຈະເກີດຂຶ້ນພຽງແຕ່ເມື່ອປະຕິບັດຟັງຊັນບໍລິການລົບກວນຂັ້ນສອງເພື່ອສ້າງຂໍ້ຍົກເວັ້ນການສັ່ງ ຫຼື NMI interrupt. ໃນເວລານີ້, ຂໍ້ຍົກເວັ້ນແລະ NMI ຂັດຂວາງເຂົ້າໄປໃນປົກກະຕິ, ແຕ່ CPU stack overflows, ດັ່ງນັ້ນທ່ານບໍ່ສາມາດອອກຈາກຂໍ້ຍົກເວັ້ນນີ້ແລະ.

NMI ຂັດຈັງຫວະ.

0
[29:12] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[11:8] NEST_STA MRO Nested status flag bit:

0000: ບໍ່ມີການຂັດຂວາງ;

0001: ລະດັບ 1 ຂັດຂວາງ;

0011: ລະດັບ 2 ຂັດຂວາງ (ຮັງ 1 ລະດັບ);

0
0111: ລະດັບ 3 ຂັດຂວາງ (ລົ້ນ);

1111: ລະດັບ 4 ຂັດຂວາງ (ລົ້ນ).

[7:2] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[1:0] NEST_LVL MRW ລະດັບການຮັງ:

00: ການເຮັດຮັງຖືກຫ້າມແລະຫນ້າທີ່ຮັງຖືກປິດ;

01: ການເຮັດຮັງໃນລະດັບທໍາອິດ, ເຊິ່ງເຮັດໃຫ້ການທໍາງານຂອງຮັງ;

ອື່ນ: ບໍ່ຖືກຕ້ອງ.

ຫມາຍເຫດ: ຂຽນ 10 ຫຼື 11 ໃສ່ພາກສະຫນາມນີ້, ແລະພາກສະຫນາມຈະຖືກຕັ້ງເປັນ 01. ເມື່ອຂຽນ 11 ໄປຫາພາກສະຫນາມນີ້, ອ່ານການລົງທະບຽນນີ້ເພື່ອໃຫ້ໄດ້ລະດັບການຮັງສູງສຸດຂອງຊິບ.

0

ໂໝດຜູ້ໃຊ້ລົບກວນທົ່ວໂລກ ເປີດລົງທະບຽນ (ຝຶກງານ)

ການລົງທະບຽນນີ້ບໍ່ຖືກຕ້ອງພຽງແຕ່ສໍາລັບ V3A:

ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
gintenr 0x800 URW Global interrupt ເປີດລົງທະບຽນ 0x00000000

ການລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມການເປີດໃຊ້ງານແລະຫນ້າກາກຂອງການລົບກວນທົ່ວໂລກ. ການເປີດໃຊ້ງານແລະຫນ້າກາກຂອງການລົບກວນທົ່ວໂລກໃນໂຫມດເຄື່ອງຈັກສາມາດຄວບຄຸມໄດ້ໂດຍ MIE ແລະ MPIE bits ໃນສະຖານະ, ແຕ່ການລົງທະບຽນນີ້ບໍ່ສາມາດດໍາເນີນການໃນຮູບແບບຜູ້ໃຊ້ໄດ້.
ການຂັດຂວາງການເປີດໃຊ້ການລົງທະບຽນ gintenr ທົ່ວໂລກແມ່ນການສ້າງແຜນທີ່ຂອງ MIE ແລະ MPIE ໃນ mstatus, ແລະສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດແລະລ້າງ MIE ແລະ MPIE ໂດຍການດໍາເນີນງານ gintenr ໃນໂຫມດຜູ້ໃຊ້.

ແຕ່ລະພວກມັນຖືກກໍານົດເປັນ:

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:13] ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0
[12:11] MPP URO ເຂົ້າສູ່ໂໝດສິດທິພິເສດກ່ອນການຂັດຈັງຫວະ. 0
[10:8] ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0
7 MPIE URW ເມື່ອ 0xBC0(CSR)bit5 ຖືກເປີດໃຊ້, ບິດນີ້

ສາມາດອ່ານແລະຂຽນໃນຮູບແບບຜູ້ໃຊ້.

0
[6:4] ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0
3 MIE URW ເມື່ອ 0xBC0(CSR)bit5 ຖືກເປີດໃຊ້, ບິດນີ້

ສາມາດອ່ານແລະຂຽນໃນຮູບແບບຜູ້ໃຊ້.

0
[1:0] ສະຫງວນໄວ້ URO ສະຫງວນໄວ້ 0

ຂັດຂວາງ Nesting

ສົມທົບກັບການຂັດຂວາງ, ການລົງທະບຽນການຕັ້ງຄ່າ PFIC_CFGR ແລະລົງທະບຽນບູລິມະສິດຂັດຂວາງ PFIC_IPRIOR, ການສ້າງຮັງຂອງຂັດຂວາງສາມາດເກີດຂຶ້ນໄດ້. ເປີດໃຊ້ nesting ໃນທະບຽນການຕັ້ງຄ່າລົບກວນ ( Nesting ໄດ້ຖືກເປີດໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບ microprocessors ຊຸດ V3) ແລະກໍານົດບູລິມະສິດຂອງ interrupt ທີ່ສອດຄ້ອງກັນ. ຄ່າບູລິມະສິດນ້ອຍກວ່າ, ບູລິມະສິດສູງກວ່າ. ມູນຄ່າຂອງບິດລ່ວງໜ້າໜ້ອຍລົງ, ບຸລິມະສິດການຈອງທີ່ສູງກວ່າ. ຖ້າມີການຂັດຂວາງທີ່ຫ້ອຍຢູ່ໃນເວລາດຽວກັນພາຍໃຕ້ບູລິມະສິດ preemption ດຽວກັນ, microprocessor ຕອບສະຫນອງຕໍ່ການຂັດຂວາງດ້ວຍຄ່າບູລິມະສິດຕ່ໍາ (ບູລິມະສິດສູງກວ່າ) ທໍາອິດ.

ຮາດແວ Prologue/Epilogue (HPE)

  • ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, ໄມໂຄຣໂປຣເຊສເຊີຢຸດການໄຫຼຂອງໂປຼແກຼມປະຈຸບັນແລະປ່ຽນໄປສູ່ການປະຕິບັດການຍົກເວັ້ນຫຼືການຂັດຂວາງ, ສະຖານທີ່ຂອງການໄຫຼຂອງໂປແກມໃນປະຈຸບັນຕ້ອງໄດ້ຮັບການບັນທຶກໄວ້. ຫຼັງຈາກການຍົກເວັ້ນຫຼືການຂັດຂວາງການກັບຄືນ, ມັນຈໍາເປັນຕ້ອງຟື້ນຟູສະຖານທີ່ແລະສືບຕໍ່ການປະຕິບັດການໄຫຼຂອງໂປຼແກຼມທີ່ຢຸດເຊົາ. ສໍາລັບ microprocessors ຊຸດ V3, "ເວັບໄຊ" ໃນທີ່ນີ້ຫມາຍເຖິງການລົງທະບຽນ Caller Saved ທັງຫມົດໃນຕາຕະລາງ 1-2.
  • ໄມໂຄຣໂປຣເຊສເຊີຊຸດ V3 ຮອງຮັບຮາດແວແບບວົງຈອນດຽວອັດຕະໂນມັດ 16 ຂອງການລົງທະບຽນຜູ້ໂທທີ່ບັນທຶກໄວ້ໃນຮູບເປັນພື້ນທີ່ stack ພາຍໃນທີ່ຜູ້ໃຊ້ບໍ່ເຫັນ. ເມື່ອມີຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງກັບຄືນມາ, ວົງຈອນດຽວຂອງຮາດແວຈະຟື້ນຟູຂໍ້ມູນຈາກພື້ນທີ່ stack ພາຍໃນໂດຍອັດຕະໂນມັດໄປສູ່ການລົງທະບຽນ 16 ຮູບ. HPE ຮອງຮັບການສ້າງຮັງໄດ້ເຖິງ 2 ລະດັບເລິກ.
  • A schematic ຂອງ stack ຄວາມກົດດັນຂອງ microprocessor ແມ່ນສະແດງຢູ່ໃນຮູບດັ່ງຕໍ່ໄປນີ້.WH-V3-Microprocessor-fig-2

ໝາຍເຫດ:

  1. ຟັງຊັນຂັດຂວາງໂດຍໃຊ້ HPE ຈໍາເປັນຕ້ອງຖືກລວບລວມໂດຍໃຊ້ MRS ຫຼືລະບົບຕ່ອງໂສ້ເຄື່ອງມືທີ່ສະຫນອງຂອງມັນແລະຫນ້າທີ່ຂັດຂວາງຕ້ອງໄດ້ຮັບການປະກາດດ້ວຍ __attribute__((interrupt(“WCH-Interrupt-fast”))).
  2. ຟັງຊັນຂັດຂວາງໂດຍໃຊ້ stack push ແມ່ນປະກາດໂດຍ __attribute__((interrupt())).

ຕາຕະລາງ vector ຟຣີ (VTF)

  • Programmable Fast Interrupt Controller (PFIC) ສະໜອງ 4 ຊ່ອງ VTF, ເຊັ່ນ: ການເຂົ້າເຖິງການເຂົ້າຟັງຊັນລົບກວນໂດຍກົງໂດຍບໍ່ຕ້ອງຜ່ານຂະບວນການຊອກຫາຕາຕະລາງ vector ທີ່ຂັດຂວາງ.
  • ຊ່ອງທາງ VTF ສາມາດຖືກເປີດໃຊ້ໂດຍການຂຽນຕົວເລກຂັດຂວາງຂອງມັນ, ທີ່ຢູ່ຖານຟັງຊັນການບໍລິການຂັດຂວາງ, ແລະທີ່ຢູ່ຊົດເຊີຍເຂົ້າໄປໃນທະບຽນຕົວຄວບຄຸມ PFIC ທີ່ສອດຄ້ອງກັນໃນຂະນະທີ່ກໍານົດຫນ້າທີ່ຂັດຂວາງຕາມປົກກະຕິ.
  • ຂະບວນການຕອບສະຫນອງ PFIC ສໍາລັບການຂັດຂວາງໄວແລະບໍ່ມີຕາຕະລາງແມ່ນສະແດງຢູ່ໃນຮູບ 3-2 ຂ້າງລຸ່ມນີ້.WH-V3-Microprocessor-fig-3

ການປົກປ້ອງຄວາມຊົງຈໍາທາງກາຍ PMP

  • ເພື່ອປັບປຸງຄວາມປອດໄພຂອງລະບົບ, ໂມດູນປ້ອງກັນຄວາມຊົງຈໍາທາງດ້ານຮ່າງກາຍ (PMP) ຖືກອອກແບບຕາມມາດຕະຖານສະຖາປັດຕະຍະກໍາ RISC-V ສໍາລັບ microprocessors ຊຸດ V3 ຂອງ barley ເຂດເນີນສູງ. ການ​ຄຸ້ມ​ຄອງ​ສິດ​ການ​ເຂົ້າ​ເຖິງ​ເຖິງ 4 ພາກ​ພື້ນ​ທາງ​ດ້ານ​ຮ່າງ​ກາຍ​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​. ການອະນຸຍາດປະກອບມີການອ່ານ (R), ຂຽນ (W), ແລະປະຕິບັດ (X) ຄຸນລັກສະນະ, ແລະຄວາມຍາວຂອງພື້ນທີ່ປ້ອງກັນສາມາດຖືກກໍານົດເປັນ 4 bytes ຢ່າງຫນ້ອຍ. ໂມດູນ PMP ມີຜົນສະເໝີໃນໂໝດຜູ້ໃຊ້, ແຕ່ມັນສາມາດມີຜົນເປັນທາງເລືອກໂດຍການລັອກຄຸນສົມບັດ (L) ໃນໂໝດເຄື່ອງ.
  • ຖ້າການເຂົ້າເຖິງລະເມີດຂອບເຂດການອະນຸຍາດໃນປະຈຸບັນ, ມັນຈະເຮັດໃຫ້ເກີດການລົບກວນທີ່ຜິດປົກກະຕິ. ໂມດູນ PMP ປະກອບມີສີ່ກຸ່ມຂອງການລົງທະບຽນການຕັ້ງຄ່າ 8-bit (ກຸ່ມຫນຶ່ງຂອງ 32-bit) ແລະສີ່ກຸ່ມຂອງທະບຽນທີ່ຢູ່, ທັງຫມົດນີ້ຕ້ອງໄດ້ຮັບການເຂົ້າເຖິງໃນຮູບແບບເຄື່ອງຈັກໂດຍຄໍາແນະນໍາ CSR.
  • ໝາຍເຫດ: ຈໍານວນພື້ນທີ່ປົກປ້ອງທີ່ສະຫນັບສະຫນູນໂດຍ PMP ໃນຮູບແບບຕ່າງໆຂອງ microprocessors ອາດຈະແຕກຕ່າງກັນ, ແລະຈໍານວນທີ່ສະຫນັບສະຫນູນໂດຍ pmpcfg ແລະ pmpaddr registers ກໍ່ແຕກຕ່າງກັນ. ເບິ່ງຕາຕະລາງ 1-1 ສໍາລັບລາຍລະອຽດ.

ຊຸດລົງທະບຽນ PMP

ບັນຊີລາຍຊື່ຂອງການລົງທະບຽນ CSR ສະຫນັບສະຫນູນໂດຍໂມດູນ PMP ຂອງ microprocessor V3 ແມ່ນສະແດງຢູ່ໃນຕາຕະລາງ 4-1 ຂ້າງລຸ່ມນີ້.

ຕາຕະລາງ 4-1 ຊຸດລົງທະບຽນໂມດູນ PMP

ຊື່ ທີ່ຢູ່ CSR ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
pmpcfg0 0x3A0 MRW ລົງທະບຽນການຕັ້ງຄ່າ PMP 0 0x00000000
pmpaddr0 0x3B0 MRW ລົງທະບຽນທີ່ຢູ່ PMP 0 0xXXXXXXXXX
pmpaddr1 0x3B1 MRW ລົງທະບຽນທີ່ຢູ່ PMP 1 0xXXXXXXXXX
pmpaddr2 0x3B2 MRW ລົງທະບຽນທີ່ຢູ່ PMP 2 0xXXXXXXXXX
pmpaddr3 0x3B3 MRW ລົງທະບຽນທີ່ຢູ່ PMP 3 0xXXXXXXXXX

pmp

pmpcfg ແມ່ນການລົງທະບຽນການຕັ້ງຄ່າຂອງຫນ່ວຍບໍລິການ PMP, ແລະແຕ່ລະທະບຽນປະກອບດ້ວຍສີ່ພາກສະຫນາມ 8-bit pumping, ທີ່ສອດຄ້ອງກັນກັບການຕັ້ງຄ່າຂອງສີ່ພາກພື້ນ, ແລະ pumping ເປັນຕົວແທນຂອງຄ່າການຕັ້ງຄ່າຂອງພາກພື້ນ i. ຮູບແບບຂອງມັນຖືກສະແດງຢູ່ໃນຕາຕະລາງ 4-2 ຕໍ່ໄປນີ້.

ຕາຕະລາງ 4-2 pmpcfg0 ລົງທະບຽນWH-V3-Microprocessor-fig-4

pmpcfg ຖືກນໍາໃຊ້ເພື່ອກໍານົດພື້ນທີ່ I ແລະຄໍານິຍາມ bit ຂອງມັນໄດ້ຖືກອະທິບາຍໄວ້ໃນຕາຕະລາງ 4-3 ຕໍ່ໄປນີ້.

ຕາຕະລາງ 4-3 pmp

ບິດ ຊື່ ລາຍລະອຽດ
7 L ການລັອກຖືກເປີດໃຊ້ງານ ແລະສາມາດປົດລັອກໄດ້ໃນໂໝດເຄື່ອງ. 0: ບໍ່ໄດ້ລັອກ;

1: ລັອກທະບຽນທີ່ກ່ຽວຂ້ອງ.

[6:5] ສະຫງວນໄວ້
[4:3] A ການຈັດຮຽງທີ່ຢູ່ ແລະການເລືອກໄລຍະພື້ນທີ່ປ້ອງກັນ. 00: ປິດ (PMP ປິດ)

01: TOR (ການປົກປ້ອງການຈັດຕໍາແຫນ່ງເທິງ) 10: NA4 (ການປ້ອງກັນສີ່ໄບຕ໌ຄົງທີ່)

11: NAPOT (2(G+2) ການປົກປ້ອງໄບຕ໌, G≥1)

2 X ຄຸນລັກສະນະທີ່ປະຕິບັດໄດ້.
0: ບໍ່ມີການອະນຸຍາດປະຕິບັດ;

1: ປະຕິບັດການອະນຸຍາດ.

 

1

 

W

ຄຸນລັກສະນະທີ່ສາມາດຂຽນໄດ້.

0: ບໍ່ມີການອະນຸຍາດຂຽນ 1: ການອະນຸຍາດຂຽນ.

 

0

 

R

ຄຸນລັກສະນະທີ່ສາມາດອ່ານໄດ້

0: ບໍ່ມີການອະນຸຍາດອ່ານ 1: ການອະນຸຍາດອ່ານ.

pmpaddr

ທະບຽນ pmpaddr ຖືກນໍາໃຊ້ເພື່ອກໍານົດທີ່ຢູ່ຂອງພື້ນທີ່ I. ຄໍານິຍາມມາດຕະຖານແມ່ນຢູ່ພາຍໃຕ້ສະຖາປັດຕະຍະ RV32, ເຊິ່ງເປັນການເຂົ້າລະຫັດຂອງ 32 bits ເທິງຂອງທີ່ຢູ່ທາງດ້ານຮ່າງກາຍ 34-bit, ແລະຮູບແບບຂອງມັນຖືກສະແດງຢູ່ໃນຕາຕະລາງ 4-4 ຕໍ່ໄປນີ້.
ພື້ນທີ່ທີ່ຢູ່ທາງກາຍະພາບທັງໝົດຂອງ V3 microprocessor ແມ່ນ 4G, ດັ່ງນັ້ນສອງບິດເທິງຂອງທະບຽນນີ້ບໍ່ໄດ້ໃຊ້.

ຕາຕະລາງ 4-4 pmpaddr WH-V3-Microprocessor-fig-5

ເມື່ອ NAPOT ຖືກເລືອກ, ບິດຕ່ໍາຂອງທະບຽນທີ່ຢູ່ຍັງຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກຂະຫນາດຂອງພື້ນທີ່ປ້ອງກັນໃນປະຈຸບັນ, ດັ່ງທີ່ສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້, ບ່ອນທີ່ 'y' ແມ່ນເລັກນ້ອຍຂອງທະບຽນ.
ຕາຕະລາງ 4-5 ຕາຕະລາງຄວາມສໍາພັນລະຫວ່າງການຕັ້ງຄ່າ PMP ແລະການລົງທະບຽນທີ່ຢູ່ແລະພື້ນທີ່ປ້ອງກັນ.

pmpaddr pmpcfg. ກ ການຈັບຄູ່ທີ່ຢູ່ແລະຂະຫນາດພື້ນຖານ
yyyy…yyyy NA4 ດ້ວຍ 'yy…yyyy00' ເປັນທີ່ຢູ່ພື້ນຖານ, ພື້ນທີ່ 4-byte ຈະຖືກປົກປ້ອງ.
yyyy…yyy0 ນາໂພທ ດ້ວຍ 'yy…yyy000' ເປັນທີ່ຢູ່ພື້ນຖານ, ພື້ນທີ່ 8-byte ຈະຖືກປົກປ້ອງ.
yyyy…yy01 ນາໂພທ ດ້ວຍ 'yy…yy0000' ເປັນທີ່ຢູ່ພື້ນຖານ, ພື້ນທີ່ 16-byte ຈະຖືກປົກປ້ອງ.
yyyy…y011 ນາໂພທ ດ້ວຍ 'yy…y00000' ເປັນທີ່ຢູ່ພື້ນຖານ, ພື້ນທີ່ 16-byte ຈະຖືກປົກປ້ອງ.
yyy01…111 ນາໂພທ ດ້ວຍ 'y0…000000' ເປັນທີ່ຢູ່ພື້ນຖານ, ພື້ນທີ່ 231-byte ຖືກປົກປ້ອງ.
yy011…111 ນາໂພທ ປົກປ້ອງພື້ນທີ່ທັງຫມົດ 232-byte.

ກົນໄກການປົກປ້ອງ

X/W/R ໃນ pmpcfg ຖືກນໍາໃຊ້ເພື່ອກໍານົດອໍານາດການປົກປ້ອງຂອງພື້ນທີ່ I, ແລະການລະເມີດສິດອໍານາດທີ່ກ່ຽວຂ້ອງຈະເຮັດໃຫ້ມີຂໍ້ຍົກເວັ້ນທີ່ສອດຄ້ອງກັນ:

  1. ເມື່ອພະຍາຍາມດຶງເອົາຄໍາແນະນໍາໃນພື້ນທີ່ PMP ໂດຍບໍ່ມີເຈົ້າຫນ້າທີ່ປະຕິບັດ, ມັນຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດໃນການດຶງຂໍ້ມູນຄໍາແນະນໍາ (mcause = 1).
  2. ເມື່ອພະຍາຍາມຂຽນຂໍ້ມູນຢູ່ໃນພື້ນທີ່ PMP ໂດຍບໍ່ມີການອະນຸຍາດເປັນລາຍລັກອັກສອນ, ມັນຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດ (mcause = 7) ໃນການເຂົ້າເຖິງຄໍາແນະນໍາໃນຮ້ານ.
  3. ເມື່ອພະຍາຍາມອ່ານຂໍ້ມູນໃນພື້ນທີ່ PMP ໂດຍບໍ່ມີການອະນຸຍາດອ່ານ, ມັນຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດໃນການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາທີ່ຜິດປົກກະຕິ (mcause = 5) ສໍາລັບຄໍາແນະນໍາການໂຫຼດ.

A ໃນ pmpcfg ຖືກ​ນໍາ​ໃຊ້​ເພື່ອ​ກໍາ​ນົດ​ໄລ​ຍະ​ການ​ປົກ​ປັກ​ຮັກ​ສາ​ແລະ​ການ​ຈັດ​ຕໍາ​ແຫນ່ງ​ທີ່​ຢູ່​ຂອງ​ພາກ​ພື້ນ I​, ແລະ​ເພື່ອ​ປົກ​ປັກ​ຮັກ​ສາ​ຄວາມ​ຊົງ​ຈໍາ​ຂອງ A_ADDR ≤ ພາກ​ພື້ນ < i > < B_ADDR (ທັງ A_ADDR ແລະ B_ADDR ແມ່ນ​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ຈັດ​ຮຽງ​ໃນ 4 bytes​:

  1. ຖ້າ B _ ADDR–A_ADDR = = 22, ໂໝດ NA4 ຖືກຮັບຮອງເອົາ;
  2. ຖ້າ B _ ADDR–A_ADDR = = 2(G+2), G≥1, ແລະທີ່ຢູ່ _ ເປັນ 2(g+2), ວິທີການ NAPOT ໄດ້ຖືກຮັບຮອງເອົາ;
  3. ຖ້າບໍ່ດັ່ງນັ້ນ, ຮູບແບບ TOP ຖືກຮັບຮອງເອົາ.

ຕາຕະລາງ 4-6 ວິທີການຈັບຄູ່ທີ່ຢູ່ PMP

ຄ່າ ຊື່ ລາຍລະອຽດ
0b00 ປິດ ບໍ່ມີພື້ນທີ່ເພື່ອປົກປ້ອງ
0b01 TOR ການປົກປ້ອງພື້ນທີ່ຈັດຮຽງດ້ານເທິງ.

ພາຍໃຕ້ pmp

pmpaddri = B_ADDR >> 2.

ຫມາຍເຫດ: ຖ້າພື້ນທີ່ 0 ຂອງ PMP ຖືກຕັ້ງຄ່າເປັນໂຫມດ TOR (i=0), ຂອບເຂດຕ່ໍາຂອງພື້ນທີ່ປ້ອງກັນແມ່ນ 0 ທີ່ຢູ່, ie 0 ≤ addr < pmpaddr0, ທັງຫມົດພາຍໃນຂອບເຂດທີ່ກົງກັນ.

0b10 NA4 ແກ້ໄຂການປ້ອງກັນພື້ນທີ່ 4-byte.

pmp

0b11 ນາໂພທ ປົກປ້ອງພາກພື້ນ 2(G+2) ດ້ວຍ G ≥ 1, ເມື່ອ A_ADDR ແມ່ນ 2(G+2) ຈັດຮຽງ. pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1.
  • L bit ໃນ pmp
  • QingKe V3 series microprocessors ສະຫນັບສະຫນູນການປົກປ້ອງຫຼາຍເຂດ. ເມື່ອການດຳເນີນການດຽວກັນກົງກັບຫຼາຍເຂດໃນເວລາດຽວກັນ, ເຂດທີ່ມີຕົວເລກນ້ອຍກວ່າຈະຖືກຈັບຄູ່ກ່ອນ.

ໂມງຈັບເວລາລະບົບ (SysTick)

  • QingKe V3 series microprocessor ຖືກອອກແບບມາດ້ວຍຕົວນັບ 32-bit ຫຼື 64-bit (SysTick) ພາຍໃນ. ແຫຼ່ງໂມງຂອງມັນແມ່ນໂມງລະບົບຫຼືການແບ່ງ 8 ຄວາມຖີ່ຂອງມັນ, ແລະ V3A ຮອງຮັບການແບ່ງ 8 ຄວາມຖີ່ເທົ່ານັ້ນ.
  • ມັນ​ສາ​ມາດ​ສະ​ຫນອງ​ຖານ​ທີ່​ໃຊ້​ເວ​ລາ​, ກໍາ​ນົດ​ເວ​ລາ​, ແລະ​ການ​ວັດ​ແທກ​ລະ​ບົບ​ປະ​ຕິ​ບັດ​ການ​ທີ່​ໃຊ້​ເວ​ລາ​ທີ່​ແທ້​ຈິງ​. ປະເພດຕ່າງໆຂອງທະບຽນທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງຈັບເວລາມີທີ່ຢູ່ແຜນທີ່ທີ່ແຕກຕ່າງກັນ, ດັ່ງທີ່ສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້ 5-1 ແລະ 5-2.

ຕາຕະລາງ 5-1 ບັນຊີລາຍຊື່ລົງທະບຽນ V3A SysTick

ຊື່ ເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
STK_CTLR 0xE000F000 ລົງທະບຽນການຄວບຄຸມລະບົບ counter 0x00000000
STK_CNTL 0xE000F004 ລະບົບ counter ຕ່ໍາລົງທະບຽນ 0xXXXXXXXXX
STK_CNTH 0xE000F008 ລະບົບ counter ການລົງທະບຽນສູງ

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C ຄ່າການປຽບທຽບຈຳນວນລະບົບການລົງທະບຽນຕໍ່າ 0xXXXXXXXXX
STK_CMPHR 0xE000F010 ການປຽບທຽບລະບົບການນັບມູນຄ່າການລົງທະບຽນສູງ

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ.

0xXXXXXXXXX

ຕາຕະລາງ 5-2 V3 SysTick ບັນຊີລາຍຊື່ລົງທະບຽນຂອງຕົວແບບອື່ນໆ

ຊື່ ເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
STK_CTLR 0xE000F000 ລົງທະບຽນການຄວບຄຸມລະບົບ counter 0x00000000
STK_SR 0xE000F004 ລົງທະບຽນສະຖານະການຕ້ານລະບົບ 0x00000000
STK_CNTL 0xE000F008 ການລົງທະບຽນຕ່ໍາຂອງລະບົບ counter 0xXXXXXXXXX
STK_CMPLR 0xE000F010 ນັບມູນຄ່າການປຽບທຽບຕ່ໍາລົງທະບຽນ 0xXXXXXXXXX

ແຕ່ລະທະບຽນແມ່ນໄດ້ອະທິບາຍລາຍລະອຽດດັ່ງນີ້.

ທະບຽນການຄວບຄຸມລະບົບ counter (STK_CTLR)

ຕາຕະລາງ 5-3 ລົງທະບຽນການຄວບຄຸມ SysTick

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:5] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
 

 

4

 

 

ໂໝດ

 

 

RW

ຮູບແບບການນັບ: 1: ນັບລົງ;

0: ນັບເຖິງ.

ໝາຍເຫດ: ບໍ່ຖືກຕ້ອງສຳລັບ V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

ການໂຫຼດໃໝ່ອັດຕະໂນມັດເປີດ bit:

1: ນັບຈາກ 0 ອີກເທື່ອໜຶ່ງ ຫຼັງຈາກນັບເຖິງຄ່າສົມທຽບ, ແລະ ນັບຈາກຄ່າປຽບທຽບອີກຄັ້ງ ຫຼັງຈາກນັບລົງເປັນ 0;

0: ສືບຕໍ່ນັບຂຶ້ນ/ລົງ.

ໝາຍເຫດ: ບໍ່ຖືກຕ້ອງສຳລັບ V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

ບິດການເລືອກແຫຼ່ງນັບນັບ:

1: HCLK ເປັນພື້ນຖານເວລາ; 0: HCLK/8 ເປັນຖານເວລາ.

ຫມາຍເຫດ: ມັນບໍ່ຖືກຕ້ອງສໍາລັບ V3A, ເຊິ່ງພຽງແຕ່ສະຫນັບສະຫນູນ

HCLK/8 ເປັນຖານເວລາ.

 

 

0

1 ເວັບໄຊ RW ຕ້ານການຂັດຂວາງການເປີດໃຊ້ບິດຄວບຄຸມ: 0
1: ເປີດໃຊ້ counter interrupt; 0: ປິດການຂັດຂວາງການຕ້ານການຂັດຂວາງ.

ໝາຍເຫດ: ບໍ່ຖືກຕ້ອງສຳລັບ V3A.

0 STE RW ຕົວຕ້ານການລະບົບເຮັດໃຫ້ສາມາດຄວບຄຸມໄດ້. 1: ເປີດໃຊ້ລະບົບ counter STK;

0: ປິດການໃຊ້ງານລະບົບເຄົາເຕີ STK ແລະເຄົາເຕີຢຸດນັບ.

0

ລົງທະບຽນສະຖານະການຕ້ານລະບົບ (STK_SR)

ທະບຽນນີ້ບໍ່ນຳໃຊ້ກັບ V3A.

ຕາຕະລາງ 5-4 SysTick counter low register

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
 

 

31

 

 

SWIE

 

 

RW

Software interrupt trigger enable (SWI): 1: ກະຕຸ້ນຊອບແວຂັດຂວາງ;

0: ປິດຕົວກະຕຸ້ນ.

ໝາຍເຫດ: ບິດນີ້ຈະຕ້ອງຖືກລຶບລ້າງຫຼັງຈາກເຂົ້າໄປຂັດຈັງຫວະຂອງຊອບແວ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະກະຕຸ້ນສະເໝີ.

 

 

0

[30:1] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
 

 

0

 

 

CNTIF

 

 

RW

ນັບທຸງປຽບທຽບ, ຂຽນ 0 ຢ່າງຊັດເຈນ, ຂຽນ 1 ບໍ່ຖືກຕ້ອງ:

1: ນັບເຖິງຄ່າປຽບທຽບ ແລະ ນັບລົງເປັນ 0;

0: ຄ່າການປຽບທຽບບໍ່ຮອດ.

 

 

0

ການ​ລົງ​ທະ​ບຽນ​ຕົວ​ນັບ​ຕ​່​ໍ​າ​ລະ​ບົບ (STK_CNTL)

ຕາຕະລາງ 5-5 SysTick counter low register

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:0] CNTL RW ຄ່ານັບນັບປະຈຸບັນແມ່ນຕ່ຳກວ່າ 32 ບິດ. ສໍາລັບ V3A, ທະບຽນນີ້ສາມາດອ່ານໄດ້ເປັນ 8-bit / 16-bit

/32-bit, ແຕ່ສາມາດຂຽນເປັນ 8-bit, ແລະອື່ນໆ

ແບບບໍ່ຈໍາກັດ.

0xXXXXXXXXX

ໝາຍເຫດ: ລົງທະບຽນ STK_CNTL ແລະລົງທະບຽນ STK_CNTH ໃນ V3A ຮ່ວມກັນປະກອບເປັນຕົວນັບລະບົບ 64-bit.

ລະບົບ counter high register (STK_CNTH)

ຕາຕະລາງ 5-6 SysTick counter high register

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:0] CNTH RW ຄ່ານັບນັບປະຈຸບັນແມ່ນສູງກວ່າ 32 bits. ທະບຽນນີ້ສາມາດອ່ານໄດ້ໂດຍ 8-bit/16-bit/32-bit, ແຕ່ສາມາດຂຽນໄດ້ພຽງແຕ່ 8-bit.

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ.

0xXXXXXXXXX

ໝາຍເຫດ: ລົງທະບຽນ STK_CNTL ແລະລົງທະບຽນ STK_CNTH ໃນ V3A ຮ່ວມກັນປະກອບເປັນຕົວນັບລະບົບ 64-bit.

ຄ່າການປຽບທຽບການນັບລະບົບຕ່ຳ (STK_CMPLR)

ຕາຕະລາງ 5-7 ມູນຄ່າການປຽບທຽບ SysTick ລົງທະບຽນຕໍ່າ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:0] CMPL RW ກໍານົດຄ່າການປຽບທຽບ counter ເປັນ 32 bits ຕ່ໍາກວ່າ. ເມື່ອຄ່າ CMP ແລະຄ່າ CNT ເທົ່າກັບ, STK interrupt ຈະຖືກກະຕຸ້ນ. ສໍາລັບ V3A, ລົງທະບຽນນີ້ສາມາດອ່ານໄດ້ເປັນ 8-bit / 16-bit / 32-bit, ແຕ່ພຽງແຕ່ສາມາດເປັນ.

ຂຽນເປັນ 8-bit, ແລະຮູບແບບອື່ນໆແມ່ນບໍ່ຈໍາກັດ.

0xXXXXXXXXX

ໝາຍເຫດ: ການລົງທະບຽນ STK_CMPLR ແລະທະບຽນ STK_CMPHR ໃນ V3A ຮ່ວມກັນປະກອບເປັນມູນຄ່າການປຽບທຽບ 64-bit.

ຄ່າການປຽບທຽບການນັບລະບົບສູງ (STK_CMPHR)

ຕາຕະລາງ 5-8 ມູນຄ່າການປຽບທຽບ SysTick ລົງທະບຽນສູງ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ປັບຄ່າ
[31:0] CMPH RW ຕັ້ງຄ່າການປຽບທຽບ counter 32 bits ສູງກວ່າ. ການຂັດຂວາງ STK ຈະຖືກກະຕຸ້ນເມື່ອຄ່າ CMP ແລະຄ່າ CNT ເທົ່າທຽມກັນ.

ທະບຽນນີ້ສາມາດອ່ານໄດ້ໂດຍ 8-bit/16-bit/32-bit, ແຕ່ສາມາດຂຽນໄດ້ພຽງແຕ່ 8-bit.

ໝາຍເຫດ: ສາມາດໃຊ້ໄດ້ກັບ V3A ເທົ່ານັ້ນ.

0xXXXXXXXXX

ໝາຍເຫດ: ການລົງທະບຽນ STK_CMPLR ແລະທະບຽນ STK_CMPHR ໃນ V3A ຮ່ວມກັນປະກອບເປັນມູນຄ່າການປຽບທຽບ 64-bit.

ການຕັ້ງຄ່າພະລັງງານຕໍ່າຂອງໂປເຊດເຊີ

  • QingKe V3 series microprocessors ຮອງຮັບການນອນຫຼັບຜ່ານຄໍາແນະນໍາ WFI (Wait for Interrupt) ເພື່ອບັນລຸການໃຊ້ພະລັງງານຄົງທີ່ຕໍ່າ.
  • ພ້ອມກັບການລົງທະບຽນການຄວບຄຸມລະບົບຂອງ PFIC (PFIC_SCTLR), ຮູບແບບການນອນ ແລະຄໍາແນະນໍາ WFE ຕ່າງໆສາມາດຖືກປະຕິບັດໄດ້.

ເຂົ້ານອນ

  • QingKe V3 series microprocessors ສາມາດນອນໄດ້ສອງວິທີ, Wait for Interrupt (WFI) ແລະ Wait for Event (WFE). ວິທີການ WFI ຫມາຍຄວາມວ່າ microprocessor ໄປນອນ, ລໍຖ້າການລົບກວນທີ່ຈະຕື່ນຂຶ້ນ, ແລະຫຼັງຈາກນັ້ນຕື່ນນອນກັບການຂັດຂວາງທີ່ສອດຄ້ອງກັນເພື່ອປະຕິບັດ. ວິທີການ WFE ຫມາຍຄວາມວ່າ microprocessor ໄປນອນ, ລໍຖ້າເຫດການທີ່ຈະຕື່ນຂຶ້ນ, ແລະຕື່ນຂຶ້ນມາເພື່ອສືບຕໍ່ປະຕິບັດການໄຫຼຂອງໂປຼແກຼມທີ່ຢຸດກ່ອນຫນ້ານີ້.
  • RISC-V ມາດຕະຖານສະຫນັບສະຫນູນຄໍາແນະນໍາ WFI, ແລະຄໍາສັ່ງ WFI ສາມາດຖືກປະຕິບັດໂດຍກົງເພື່ອເຂົ້ານອນໂດຍວິທີການ WFI. ສໍາລັບວິທີການ WFE, ບິດ WFITOWFE ໃນລະບົບການລົງທະບຽນ PFIC_SCTLR ຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມຄໍາສັ່ງ WFI ຕໍ່ມາເປັນການປະມວນຜົນ WFE ເພື່ອບັນລຸວິທີການ WFE ເຂົ້າໄປໃນການນອນ.
  • ຄວາມເລິກຂອງການນອນແມ່ນຄວບຄຸມໂດຍ SLEEPDEEP bit ໃນ PFIC_SCTLR.
  • ຖ້າ SLEEPDEEP ໃນທະບຽນ PFIC_SCTLR ຖືກລຶບລ້າງໃຫ້ເປັນສູນ, ໄມໂຄຣໂປຣເຊສເຊີຈະເຂົ້າສູ່ໂໝດການນອນ ແລະໂມງໜ່ວຍພາຍໃນແມ່ນອະນຸຍາດໃຫ້ປິດໄດ້ ຍົກເວັ້ນສຳລັບ SysTick ແລະສ່ວນໜຶ່ງຂອງເຫດຜົນການປຸກ.
  • ຖ້າ SLEEPDEEP ໃນທະບຽນ PFIC_SCTLR ຖືກຕັ້ງ, ໄມໂຄຣໂປຣເຊສເຊີຈະເຂົ້າສູ່ໂໝດການນອນເລິກ ແລະໂມງເຊວທັງໝົດຖືກອະນຸຍາດໃຫ້ປິດໄດ້.
  • ເມື່ອໄມໂຄຣໂປຣເຊສເຊີຢູ່ໃນໂໝດດີບັກ, ມັນບໍ່ສາມາດເຂົ້າໂໝດນອນຫຼັບໄດ້.

ຕື່ນນອນ

ໄມໂຄຣໂປຣເຊສເຊີຊຸດ QingKe V3 ສາມາດປຸກໄດ້ຫຼັງຈາກນອນຫຼັບເນື່ອງຈາກ WFI ແລະ WFE ໃນວິທີຕໍ່ໄປນີ້.

ຫຼັງຈາກວິທີການ WFI ໄປນອນ, ມັນສາມາດໄດ້ຮັບການປຸກໂດຍ

  1. ໄມໂຄຣໂປຣເຊສເຊີສາມາດຖືກປຸກໄດ້ໂດຍແຫຼ່ງລົບກວນທີ່ຕອບສະໜອງໂດຍຕົວຄວບຄຸມລົບກວນ. ຫຼັງຈາກຕື່ນນອນ, ໄມໂຄຣໂປຣເຊສເຊີຈະປະຕິບັດໜ້າທີ່ຂັດຂວາງກ່ອນ.
  2. ເຂົ້າສູ່ໂໝດການນອນ, ການຮ້ອງຂໍແກ້ບັນຫາສາມາດເຮັດໃຫ້ໄມໂຄຣໂປຣເຊສເຊີປຸກ ແລະເຂົ້າສູ່ການນອນຫຼັບໄດ້, ການຮ້ອງຂໍແກ້ບັນຫາບໍ່ສາມາດປຸກ microprocessor ໄດ້.

ຫຼັງຈາກວິທີການ WFE ໄປນອນ, microprocessor ສາມາດຖືກປຸກໂດຍດັ່ງຕໍ່ໄປນີ້.

  1. ເຫດການພາຍໃນຫຼືພາຍນອກ, ເມື່ອບໍ່ຈໍາເປັນຕ້ອງກໍານົດຕົວຄວບຄຸມການຂັດຂວາງ, ຕື່ນຂຶ້ນແລະສືບຕໍ່ດໍາເນີນໂຄງການ.
  2. ຖ້າແຫຼ່ງລົບກວນຖືກເປີດໃຊ້, ໄມໂຄຣໂປຣເຊສເຊີຖືກປຸກເມື່ອມີການລົບກວນຖືກສ້າງຂື້ນ, ແລະຫຼັງຈາກຕື່ນຂຶ້ນມາ, ໄມໂຄຣໂປຣເຊສເຊີຈະປະຕິບັດໜ້າທີ່ລົບກວນກ່ອນ.
  3. ຖ້າບິດ SEVONPEND ໃນ PFIC_SCTLR ຖືກຕັ້ງຄ່າ, ຕົວຄວບຄຸມການຂັດຈັງຫວະບໍ່ໄດ້ເປີດໃຊ້ການລົບກວນ, ແຕ່ເມື່ອສັນຍານລໍຖ້າການລົບກວນໃໝ່ຖືກສ້າງຂື້ນ (ສັນຍານທີ່ຄ້າງຢູ່ທີ່ສ້າງຂຶ້ນກ່ອນໜ້ານີ້ບໍ່ມີຜົນ), ມັນຍັງສາມາດເຮັດໃຫ້ໄມໂຄຣໂປຣເຊສເຊີຕື່ນຂຶ້ນໄດ້, ແລະທຸງທີ່ຄ້າງຢູ່ລະຫວ່າງການລົບກວນທີ່ສອດຄ້ອງກັນຈະຕ້ອງຖືກລຶບລ້າງດ້ວຍຕົນເອງຫຼັງຈາກຕື່ນນອນ.
  4. ການຮ້ອງຂໍການດີບັ໊ກໃນໂໝດການນອນສາມາດເຮັດໃຫ້ໄມໂຄຣໂປຣເຊສເຊີປຸກ ແລະເຂົ້າສູ່ການນອນຫຼັບໄດ້, ການຮ້ອງຂໍການດີບັກບໍ່ສາມາດປຸກໄມໂຄຣໂປຣເຊສເຊີໄດ້.
  • ນອກຈາກນັ້ນ, ສະຖານະຂອງ microprocessor ຫຼັງຈາກຕື່ນນອນສາມາດຄວບຄຸມໄດ້ໂດຍການຕັ້ງຄ່າ SLEEPONEXIT bit ໃນ PFIC_SCTLR.
  • SLEEPONEXIT ຖືກຕັ້ງໄວ້ ແລະລະດັບສຸດທ້າຍຂອງຄໍາສັ່ງກັບຄືນຂັດຂວາງ (mret) ຈະກະຕຸ້ນການນອນຂອງ WFI mode.

SLEEPONEXIT ຖືກລຶບລ້າງໂດຍບໍ່ມີຜົນກະທົບ.

ຜະລິດຕະພັນ MCU ຕ່າງໆທີ່ມີອຸປະກອນ microprocessors ຊຸດ V3 ສາມາດຮັບຮອງເອົາຮູບແບບການນອນທີ່ແຕກຕ່າງກັນ, ປິດອຸປະກອນຂ້າງຄຽງແລະໂມງທີ່ແຕກຕ່າງກັນ, ປະຕິບັດນະໂຍບາຍການຄຸ້ມຄອງພະລັງງານທີ່ແຕກຕ່າງກັນແລະວິທີການປຸກຕາມການຕັ້ງຄ່າທີ່ແຕກຕ່າງກັນຂອງ PFIC_SCTLR, ແລະຮັບຮູ້ໂຫມດພະລັງງານຕ່ໍາຕ່າງໆ.

ສະຫນັບສະຫນູນດີບັກ

  • QingKe V3 series microprocessors ປະກອບມີໂມດູນດີບັກຮາດແວທີ່ສະຫນັບສະຫນູນການດໍາເນີນການແກ້ໄຂທີ່ສັບສົນ. ເມື່ອ microprocessor ຖືກໂຈະ, ໂມດູນ debug ສາມາດເຂົ້າເຖິງ GPRs ຂອງ microprocessor, CSRs, Memory, ອຸປະກອນພາຍນອກ, ແລະອື່ນໆໂດຍຜ່ານຄໍາສັ່ງ abstract, program buffer deployment, etc. module debug can suspend and resume the microprocessor.
  • ໂມດູນດີບັກປະຕິບັດຕາມຂໍ້ສະເພາະຂອງ RISC-V External Debug Support Version0.13.2, ເອກະສານລາຍລະອຽດສາມາດດາວໂຫຼດໄດ້ຈາກ RISC-V International webເວັບໄຊ.

ໂມດູນດີບັກ

  • ໂມດູນດີບັກພາຍໃນ microprocessor, ສາມາດປະຕິບັດການດີບັ໊ກທີ່ອອກໂດຍແມ່ຂ່າຍດີບັກ, ລວມມີ.
  • ການເຂົ້າເຖິງການລົງທະບຽນໂດຍຜ່ານການໂຕ້ຕອບການດີບັກ
  • ຣີເຊັດ, ໂຈະ, ແລະສືບຕໍ່ microprocessor ຜ່ານຕົວໂຕ້ຕອບດີບັກ
  • ອ່ານແລະຂຽນຫນ່ວຍຄວາມຈໍາ, ລົງທະບຽນຄໍາແນະນໍາ, ແລະອຸປະກອນພາຍນອກໂດຍຜ່ານການໂຕ້ຕອບດີບັກ
  • ນຳໃຊ້ຫຼາຍຄຳແນະນຳທີ່ມັກຜ່ານຕົວໂຕ້ຕອບດີບັກ
  • ກໍານົດຈຸດແບ່ງຊອບແວໂດຍຜ່ານການໂຕ້ຕອບດີບັກ
  • ຕັ້ງຄ່າຈຸດແບ່ງຮາດແວຜ່ານການໂຕ້ຕອບດີບັກ
  • ສະຫນັບສະຫນູນຄໍາສັ່ງ abstract ການປະຕິບັດອັດຕະໂນມັດ
  • ສະຫນັບສະຫນູນການດີບັກຂັ້ນຕອນດຽວ
  • ໝາຍເຫດ: V3A ບໍ່ຮອງຮັບຈຸດແບ່ງຮາດແວ, ຈຸດແບ່ງຮາດແວ V3B ຮອງຮັບການຈັບຄູ່ທີ່ຢູ່ຄໍາແນະນໍາ, ແລະຈຸດແບ່ງຮາດແວ V3C ຮອງຮັບການຈັບຄູ່ທີ່ຢູ່ຄໍາແນະນໍາ ແລະທີ່ຢູ່ຂໍ້ມູນ.
  • ການລົງທະບຽນພາຍໃນຂອງໂມດູນການດີບັກໃຊ້ລະຫັດທີ່ຢູ່ 7-ບິດ, ແລະການລົງທະບຽນຕໍ່ໄປນີ້ຖືກປະຕິບັດຢູ່ໃນຕົວປະມວນຜົນ microprocessors ຊຸດ QingKe V3.

ຕາຕະລາງ 7-1 Debug module register list

ຊື່ ເຂົ້າເຖິງ ລາຍລະອຽດ
ຂໍ້​ມູນ0 0x04 ລົງທະບຽນຂໍ້ມູນ 0, ສາມາດໃຊ້ສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວ
ຂໍ້​ມູນ1 0x05 ລົງທະບຽນຂໍ້ມູນ 1, ສາມາດໃຊ້ສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວ
ຄວບຄຸມ 0x10 ລົງທະບຽນການຄວບຄຸມໂມດູນດີບັກ
dmstatus 0x11 ການລົງທະບຽນສະຖານະໂມດູນດີບັກ
ຂໍ້​ມູນ 0x12 ລົງທະບຽນສະຖານະໄມໂຄຣໂປຣເຊສເຊີ
ບົດຄັດຫຍໍ້ 0x16 ລົງທະບຽນສະຖານະການຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ
ຄໍາສັ່ງ 0x17 ລົງທະບຽນຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ
ອັດຕະໂນມັດ abstract 0x18 ຄໍາ​ສັ່ງ Abstract ການ​ປະ​ຕິ​ບັດ​ອັດ​ຕະ​ໂນ​ມັດ​
progbuf0-7 0x20-0x27 cache ການສອນລົງທະບຽນ 0-7
haltsum0 0x40 ຢຸດການລົງທະບຽນສະຖານະ
  • ໂຮສດີບັກສາມາດຄວບຄຸມການລະງັບ microprocessor, ສືບຕໍ່, ຣີເຊັດ, ແລະອື່ນໆ. ໂດຍການຕັ້ງຄ່າຕົວຄວບຄຸມການລົງທະບຽນ. ມາດຕະຖານ RISC-V ກໍານົດສາມປະເພດຂອງຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ: ລົງທະບຽນການເຂົ້າເຖິງ, ການເຂົ້າເຖິງໄວ, ແລະຫນ່ວຍຄວາມຈໍາເຂົ້າເຖິງ.
  • ໄມໂຄຣໂປຣເຊສເຊີ QingKe V3A ຮອງຮັບການເຂົ້າເຖິງການລົງທະບຽນເທົ່ານັ້ນ, ຮູບແບບອື່ນໆຮອງຮັບການລົງທະບຽນ ແລະການເຂົ້າເຖິງໜ່ວຍຄວາມຈຳ, ແຕ່ບໍ່ແມ່ນການເຂົ້າເຖິງໄວ. ການເຂົ້າເຖິງການລົງທະບຽນ (GPRs, CSRs) ແລະການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາຢ່າງຕໍ່ເນື່ອງສາມາດຖືກຮັບຮູ້ໂດຍຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ.
  • ໂມດູນດີບັກປະຕິບັດ 8 ຄໍາສັ່ງ cache ລົງທະບຽນ progbuf0-7, ແລະແມ່ຂ່າຍດີບັກສາມາດ cache ຄໍາແນະນໍາຫຼາຍ (ຊຶ່ງສາມາດບີບອັດຄໍາແນະນໍາ) ກັບ buffer ແລະສາມາດເລືອກທີ່ຈະສືບຕໍ່ປະຕິບັດຄໍາແນະນໍາໃນ cache ຄໍາແນະນໍາຫຼັງຈາກປະຕິບັດຄໍາສັ່ງ abstract ຫຼືປະຕິບັດຄໍາສັ່ງ cache ໂດຍກົງ.
  • ໝາຍເຫດ ວ່າຄໍາແນະນໍາສຸດທ້າຍໃນໂຄງການຕ້ອງເປັນຄໍາແນະນໍາ "ebreak" ຫຼື "c.ebreak". ການເຂົ້າເຖິງການເກັບຮັກສາ, ອຸປະກອນຕໍ່ພ່ວງ, ແລະອື່ນໆແມ່ນເປັນໄປໄດ້ໂດຍຜ່ານຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນແລະຄໍາແນະນໍາທີ່ເກັບໄວ້ໃນໂຄງການ.
  • ແຕ່ລະທະບຽນແມ່ນໄດ້ອະທິບາຍລາຍລະອຽດດັ່ງນີ້.
  • ບັນທຶກຂໍ້ມູນ 0 (data0)

ຕາຕະລາງ 7-2 ນິຍາມການລົງທະບຽນຂໍ້ມູນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] ຂໍ້​ມູນ0 RW ລົງທະບຽນຂໍ້ມູນ 0, ໃຊ້ສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວ 0

ບັນທຶກຂໍ້ມູນ 1 (data1)

ຕາຕະລາງ 7-3 data1 ຄໍານິຍາມລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] ຂໍ້​ມູນ1 RW ລົງທະບຽນຂໍ້ມູນ 1, ໃຊ້ສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວ 0

ລົງທະບຽນຄວບຄຸມໂມດູນດີບັກ (ຕົວຄວບຄຸມ)

ການລົງທະບຽນນີ້ຄວບຄຸມການຢຸດຊົ່ວຄາວ, ຣີເຊັດ ແລະສືບຕໍ່ຂອງ microprocessor. ໂຮສດີບັກຂຽນຂໍ້ມູນໃສ່ຊ່ອງຂໍ້ມູນທີ່ສອດຄ້ອງກັນເພື່ອບັນລຸການຢຸດຊົ່ວຄາວ (haltreq), ຣີເຊັດ (ndmreset), ສືບຕໍ່ ( resumereq). ທ່ານອະທິບາຍດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-4 ຄໍານິຍາມຂອງການຄວບຄຸມການລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
31 haltreq WO 0: ລຶບຄຳຮ້ອງຂໍຢຸດຊົ່ວຄາວ

1: ສົ່ງຄໍາຮ້ອງຂໍຢຸດຊົ່ວຄາວ

0
30 resumerq W1 0: ບໍ່ຖືກຕ້ອງ

1: ຟື້ນຟູ microprocessor ປັດຈຸບັນ

ຫມາຍເຫດ: ຂຽນ 1 ແມ່ນຖືກຕ້ອງແລະຮາດແວຖືກລຶບລ້າງຫຼັງຈາກ microprocessor ຖືກຟື້ນຕົວ

0
29 ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
28 ຕັ້ງ​ຄືນ​ໃໝ່ W1 0: ບໍ່ຖືກຕ້ອງ

1: ລ້າງສະຖານະການເກັບກ່ຽວຂອງ microprocessor

0
[27:2] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
1 ndmreset RW 0: ລຶບຣີເຊັດ

1: ຣີເຊັດລະບົບທັງໝົດນອກຈາກໂມດູນດີບັກ

 

0

0 ປິດໃຊ້ງານ RW 0: ຣີເຊັດໂມດູນດີບັກ

1: ໂມດູນ Debug ເຮັດວຽກຢ່າງຖືກຕ້ອງ

0

ການລົງທະບຽນສະຖານະໂມດູນດີບັກ (ສະຖານະ dm)

  • ການລົງທະບຽນນີ້ແມ່ນໃຊ້ເພື່ອຊີ້ບອກສະຖານະຂອງໂມດູນດີບັກ ແລະເປັນການລົງທະບຽນແບບອ່ານຢ່າງດຽວກັບລາຍລະອຽດຕໍ່ໄປນີ້ຂອງແຕ່ລະບິດ.

ຕາຕະລາງ 7-5 ຄໍານິຍາມການລົງທະບຽນ dmstatus

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:20] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
19 ຕັ້ງຄ່າທັງໝົດ RO 0: ບໍ່ຖືກຕ້ອງ

1: ຣີເຊັດໄມໂຄຣໂປຣເຊສເຊີ

0
18 ຕັ້ງອັນໃດກໍໄດ້ RO 0: ບໍ່ຖືກຕ້ອງ

1: ຣີເຊັດໄມໂຄຣໂປຣເຊສເຊີ

0
17 ປະຫວັດຫຍໍ້ທັງໝົດ RO 0: ບໍ່ຖືກຕ້ອງ

1: ຣີເຊັດໄມໂຄຣໂປຣເຊສເຊີ

0
16 ຊີວະປະຫວັດຫຍໍ້ RO 0: ບໍ່ຖືກຕ້ອງ

1: ຣີເຊັດໄມໂຄຣໂປຣເຊສເຊີ

0
[15:14] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
13 ລ່ອງລອຍ RO 0: ບໍ່ຖືກຕ້ອງ

1: microprocessor ບໍ່ສາມາດໃຊ້ໄດ້

0
12 ປະໂຫຍດໃດໆ RO 0: ບໍ່ຖືກຕ້ອງ

1: microprocessor ບໍ່ສາມາດໃຊ້ໄດ້

0
11 ແລ່ນທັງຫມົດ RO 0: ບໍ່ຖືກຕ້ອງ

1: ໄມໂຄຣໂປຣເຊສເຊີກຳລັງແລ່ນ

0
10 ແລ່ນໃດໆ RO 0: ບໍ່ຖືກຕ້ອງ

1: ໄມໂຄຣໂປຣເຊສເຊີກຳລັງແລ່ນ

0
9 ຢຸດ RO 0: ບໍ່ຖືກຕ້ອງ

1: microprocessor ຢູ່ໃນ suspension

0
8 ຢຸດໃດໆ RO 0: ບໍ່ຖືກຕ້ອງ

1: Microprocessor ອອກຈາກ suspension

0
7 ຮັບຮອງ  

RO

0: ຕ້ອງມີການກວດສອບຄວາມຖືກຕ້ອງກ່ອນທີ່ຈະໃຊ້ໂມດູນດີບັກ

1: ໂມດູນ debugging ໄດ້ຮັບການຢັ້ງຢືນ

 

0x1

[6:4] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
[3:0] ສະບັບ RO Debugging ລະບົບສະຫນັບສະຫນູນສະຖາປັດຕະຍະ 0010: V0.13 0x2

ລົງທະບຽນສະຖານະໄມໂຄຣໂປຣເຊສເຊີ (hartinfo)

ລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອສະຫນອງຂໍ້ມູນກ່ຽວກັບ microprocessor ກັບ host debug ແລະເປັນການລົງທະບຽນອ່ານໄດ້ຢ່າງດຽວກັບແຕ່ລະ bit ອະທິບາຍດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-6 hartinfo register ຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:24] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
[23:20] ຮອຍຂີດຂ່ວນ RO ຈໍານວນການລົງທະບຽນ scratch ສະຫນັບສະຫນູນ 0x3
[19:17] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
16 ການເຂົ້າເຖິງຂໍ້ມູນ RO 0: ການລົງທະບຽນຂໍ້ມູນຖືກສ້າງແຜນທີ່ໄປຫາທີ່ຢູ່ CSR

1: ບັນທຶກຂໍ້ມູນຖືກແຜນທີ່ກັບທີ່ຢູ່ຫນ່ວຍຄວາມຈໍາ

0x1
[15:12] ຂະຫນາດຂໍ້ມູນ RO ຈໍານວນການລົງທະບຽນຂໍ້ມູນ 0x2
  [11:0] ເພີ່ມ​ຂໍ້​ມູນ​  

RO

ທີ່ຢູ່ offset ຂອງຂໍ້ມູນລົງທະບຽນ data0,

ທີ່ຢູ່ພື້ນຖານຂອງມັນແມ່ນ 0xe0000000, ແມ່ນຂຶ້ນກັບການອ່ານສະເພາະ.

0xXXX

ການ​ຄວບ​ຄຸມ​ຄໍາ​ສັ່ງ​ທີ່​ບໍ່​ມີ​ຕົວ​ຕົນ​ແລະ​ສະ​ຖາ​ນະ​ພາບ (ບົດ​ຄັດ​ຫຍໍ້​)

ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກການປະຕິບັດຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ. ເຈົ້າພາບ debug ສາມາດອ່ານການລົງທະບຽນນີ້ເພື່ອຮູ້ວ່າຄໍາສັ່ງ abstract ສຸດທ້າຍຖືກປະຕິບັດຫຼືບໍ່ແລະສາມາດກວດເບິ່ງວ່າມີຂໍ້ຜິດພາດທີ່ເກີດຂື້ນໃນລະຫວ່າງການປະຕິບັດຄໍາສັ່ງ abstract ແລະປະເພດຂອງຂໍ້ຜິດພາດ, ເຊິ່ງອະທິບາຍລາຍລະອຽດດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-7 abstracts register ຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:29] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
[28:24] progbufsize RO ຊີ້ບອກຈໍານວນຂອງໂປຣແກຣມ buffer program

ລົງທະບຽນ cache

0x8
[23:13] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
12 ຫວ່າງ RO 0: ບໍ່ມີຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນກໍາລັງປະຕິບັດ

1: ມີຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນຖືກປະຕິບັດ

ຫມາຍ​ເຫດ​: ຫຼັງ​ຈາກ​ການ​ປະ​ຕິ​ບັດ​, ຮາດ​ແວ​ໄດ້​ຖືກ​ລົບ​ລ້າງ​.

 

0

11 ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
[10:8] cmder RW Abstract commanderror type 000: ບໍ່ມີຂໍ້ຜິດພາດ

001: ການປະຕິບັດຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນເພື່ອຂຽນໃສ່ຄໍາສັ່ງ, abstracts, abstract auto registers ຫຼືອ່ານແລະຂຽນກັບຂໍ້ມູນແລະ progbuf ລົງທະບຽນ

010: ບໍ່ຮອງຮັບຄໍາສັ່ງ abstract ໃນປັດຈຸບັນ 011: ການປະຕິບັດຄໍາສັ່ງ abstract ໂດຍມີຂໍ້ຍົກເວັ້ນ 100: microprocessor ບໍ່ຖືກໂຈະ ຫຼືບໍ່ມີ ແລະບໍ່ສາມາດປະຕິບັດຄໍາສັ່ງ abstract 101: Bus error

110: Parity bit error ລະຫວ່າງການສື່ສານ 111: ຂໍ້ຜິດພາດອື່ນໆ

ຫມາຍເຫດ: ສໍາລັບການຂຽນ bit 1 ແມ່ນໃຊ້ເພື່ອລົບສູນ.

 

 

 

 

 

 

 

0

[7:4] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
[3:0] ສ່ວນຫຼຸດ RO ຈໍານວນການລົງທະບຽນຂໍ້ມູນ 0x2
  • Debugging hosts ສາມາດເຂົ້າເຖິງ GPRs, CSR registers, ແລະຄວາມຊົງຈໍາໂດຍການຂຽນຄ່າການຕັ້ງຄ່າທີ່ແຕກຕ່າງກັນເຂົ້າໄປໃນທະບຽນຄໍາສັ່ງ abstract.
  • ເມື່ອເຂົ້າເຖິງທະບຽນ, ບິດລົງທະບຽນຄໍາສັ່ງແມ່ນຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້.
  • ຕາຕະລາງ 7-8 ຄໍານິຍາມຂອງຄໍາສັ່ງລົງທະບຽນເມື່ອເຂົ້າເຖິງທະບຽນ
ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:24] ປະເພດ cmd WO ປະເພດຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ 0: ລົງທະບຽນການເຂົ້າເຖິງ;

1: ການເຂົ້າເຖິງໄວ (ບໍ່ສະຫນັບສະຫນູນ);

2: ການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ.

0
23 ສະຫງວນໄວ້ WO ສະຫງວນໄວ້ 0
[22:20] aarsize WO Access register data bit width 000: 8-bit

001:16-ບິດ

010:32-ບິດ

0
011: 64-bit (ບໍ່ຮອງຮັບ) 100: 128-bit (ບໍ່ຮອງຮັບ)

ຫມາຍເຫດ: ເມື່ອເຂົ້າເຖິງການລົງທະບຽນຈຸດລອຍ

FPRs, ພຽງແຕ່ການເຂົ້າເຖິງ 32-bit ແມ່ນສະຫນັບສະຫນູນ.

19 aarpostincrement WO 0: ບໍ່ມີຜົນກະທົບ

1: ອັດຕະໂນມັດເພີ່ມມູນຄ່າຂອງ regno ຫຼັງຈາກການເຂົ້າເຖິງການລົງທະບຽນ

 

0

18 ຕອບ exec WO 0: ບໍ່ມີຜົນກະທົບ

1:ປະຕິບັດຄໍາສັ່ງ abstract ແລະຫຼັງຈາກນັ້ນປະຕິບັດຄໍາສັ່ງໃນ progbuf

 

0

17 ໂອນ WO 0: ຢ່າປະຕິບັດການດໍາເນີນການທີ່ລະບຸໄວ້ໂດຍການຂຽນ

1: ປະຕິບັດການຫມູນໃຊ້ທີ່ລະບຸໂດຍການຂຽນ

0
16 ຂຽນ WO 0: ຄັດລອກຂໍ້ມູນຈາກທະບຽນທີ່ລະບຸໄວ້ເປັນ data0 1: ສຳເນົາຂໍ້ມູນຈາກທະບຽນ data0 ໄປໃສ່ທະບຽນທີ່ກຳນົດໄວ້  

0

[15:0] regno WO ລະບຸການລົງທະບຽນການເຂົ້າເຖິງ 0x0000-0x0fff ແມ່ນ CSRs 0x1000-0x101f ແມ່ນ GPRs  

0

ເມື່ອເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ, bits ໃນທະບຽນຄໍາສັ່ງຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-9 ຄໍານິຍາມຂອງຄໍາສັ່ງລົງທະບຽນເມື່ອເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:24] ປະເພດ cmd WO ປະເພດຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນ 0: ລົງທະບຽນການເຂົ້າເຖິງ;

1: ການເຂົ້າເຖິງໄວ (ບໍ່ສະຫນັບສະຫນູນ);

2: ເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ.

0
23 aamvirtual WO 0: ເຂົ້າເຖິງທີ່ຢູ່ທາງດ້ານຮ່າງກາຍ;

1: ເຂົ້າເຖິງທີ່ຢູ່ virtual.

0
[22:20] ຂະຫນາດແຂນ WO ເຂົ້າເຖິງຂໍ້ມູນຫນ່ວຍຄວາມຈໍາ bit width 000: 8-bit;

001: 16-ບິດ;

010: 32-ບິດ;

011: 64-bit (ບໍ່ຮອງຮັບ); 100: 128-bit (ບໍ່ຮອງຮັບ);

 

0

19 aampostincrement WO 0: ບໍ່ມີອິດທິພົນ;

1: ຫຼັງຈາກການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາສົບຜົນສໍາເລັດ, ເພີ່ມທີ່ຢູ່ເກັບຮັກສາໄວ້ໃນ data1 ລົງທະບຽນໂດຍຈໍານວນຂອງ bytes ທີ່ສອດຄ້ອງກັນກັບ bit width ກໍານົດໂດຍຂະຫນາດແຂນ.

Aamsize=0, ເຂົ້າເຖິງໂດຍ byte, data1 ບວກ 1.

Aamsize=1, ເຂົ້າເຖິງໂດຍເຄິ່ງຄຳ, data1 ບວກ 2. aamsize=2, ເຂົ້າເຖິງໂດຍບິດ, data1 ບວກ 4.

 

0

18 ຕອບ exec WO 0: ບໍ່ມີອິດທິພົນ;

1: ປະຕິບັດຄໍາສັ່ງໃນ progbuf ຫຼັງຈາກປະຕິບັດຄໍາສັ່ງ abstract.

0
17 ຈອງ RO ສະຫງວນໄວ້ 0
 

 

16

 

 

ຂຽນ

 

 

WO

0: ອ່ານຂໍ້ມູນຈາກທີ່ຢູ່ທີ່ລະບຸໂດຍ data1 ຫາ data0

1: ຂຽນຂໍ້ມູນໃນ data0 ໄປຫາທີ່ຢູ່ທີ່ກໍານົດໄວ້ໂດຍ

ຂໍ້​ມູນ1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

ເປົ້າໝາຍສະເພາະ

 

 

 

 

 

 

WO

ນິຍາມຂອງຮູບແບບການອ່ານ ແລະການຂຽນ ຂຽນ:

00, 01: ຂຽນໂດຍກົງໃສ່ຄວາມຊົງຈໍາ;

10: ຫຼັງຈາກຂໍ້ມູນໃນ data0 ແມ່ນ OR ກັບ bits ຂໍ້ມູນໃນຫນ່ວຍຄວາມຈໍາ, ຜົນໄດ້ຮັບຈະຖືກຂຽນເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ (ພຽງແຕ່ການເຂົ້າເຖິງຄໍາສັບແມ່ນສະຫນັບສະຫນູນ).

11: ຫຼັງຈາກສະຫຼຸບຂໍ້ມູນໃນ data0 ກັບ bits ຂໍ້ມູນໃນຫນ່ວຍຄວາມຈໍາ, ຂຽນຜົນໄດ້ຮັບເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ (ພຽງແຕ່ການເຂົ້າເຖິງຄໍາສັບແມ່ນສະຫນັບສະຫນູນ).

ອ່ານ:

00, 01, 10, 11: ອ່ານ 0 ໂດຍກົງຈາກຫນ່ວຍຄວາມຈໍາ.

 

 

 

 

 

 

0

[13:0] ຈອງ RO ສະຫງວນໄວ້

ບັນ​ດາ​ການ​ຈົດ​ທະ​ບຽນ​ການ​ປະ​ຕິ​ບັດ​ອັດ​ຕະ​ໂນ​ມັດ (Abstract auto)

ທະບຽນນີ້ຖືກໃຊ້ເພື່ອຕັ້ງຄ່າໂມດູນດີບັກ. ເມື່ອອ່ານແລະຂຽນ progbufx ແລະຂໍ້ມູນຂອງໂມດູນ debugging, ຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນສາມາດຖືກປະຕິບັດອີກເທື່ອຫນຶ່ງ.

ລາຍ​ລະ​ອຽດ​ຂອງ​ການ​ລົງ​ທະ​ບຽນ​ນີ້​ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

ຕາຕະລາງ 7-10 abstract auto register definition

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:16] autoexecprogbuf RW ຖ້າມີການຕັ້ງຄ່າເລັກນ້ອຍ, ການອ່ານແລະການຂຽນທີ່ສອດຄ້ອງກັນຂອງ progbufx ຈະເຮັດໃຫ້ຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນຢູ່ໃນທະບຽນຄໍາສັ່ງຖືກປະຕິບັດອີກເທື່ອຫນຶ່ງ.

ຫມາຍເຫດ: ຊຸດ V3 ຖືກອອກແບບດ້ວຍ 8 progbufs, ສອດຄ້ອງກັບ bits [23:16].

 

0

[15:12] ຈອງ RO ສະຫງວນໄວ້ 0
[11:0] autoexecdata  

RW

ຖ້າບິດຖືກຕັ້ງເປັນ 1, ການອ່ານແລະການຂຽນທີ່ສອດຄ້ອງກັນຂອງທະບຽນຂໍ້ມູນຈະເຮັດໃຫ້ຄໍາສັ່ງທີ່ບໍ່ມີຕົວຕົນຢູ່ໃນທະບຽນຄໍາສັ່ງຖືກປະຕິບັດອີກເທື່ອຫນຶ່ງ.

ໝາຍເຫດ: ຊຸດ V3 ຖືກອອກແບບດ້ວຍຂໍ້ມູນສອງອັນ ລົງທະບຽນ, ທີ່ສອດຄ້ອງກັນກັບ bits [1:0].

0

ການລົງທະບຽນ cache ຄໍາແນະນໍາ (progbufx)

ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາຄໍາແນະນໍາໃດໆ, ແລະປະຕິບັດການດໍາເນີນການທີ່ສອດຄ້ອງກັນ, ລວມທັງ 8, ເຊິ່ງຈໍາເປັນຕ້ອງເອົາໃຈໃສ່ກັບການປະຕິບັດສຸດທ້າຍທີ່ຕ້ອງການ "break" ຫຼື "c.ebreak".

ຕາຕະລາງ 7-11 ຄໍານິຍາມການລົງທະບຽນ progbuf

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] ໂປຣແກມ RW ການເຂົ້າລະຫັດຄໍາແນະນໍາສໍາລັບການດໍາເນີນການ cache, ເຊິ່ງ

ອາດຈະປະກອບມີຄໍາແນະນໍາການບີບອັດ

0

ຢຸດການລົງທະບຽນສະຖານະ (haltsum0)

ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກວ່າ microprocessor ຖືກໂຈະຫຼືບໍ່. ແຕ່ລະບິດຊີ້ບອກສະຖານະການໂຈະຂອງ microprocessor, ແລະເມື່ອມີພຽງແຕ່ຫນຶ່ງຫຼັກ, ພຽງແຕ່ບິດຕ່ໍາສຸດຂອງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກມັນ.

ຕາຕະລາງ 7-12 haltsum0 ຄໍານິຍາມລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:1] ສະຫງວນໄວ້ RO ສະຫງວນໄວ້ 0
0 haltsum0 RO 0: ໄມໂຄຣໂປຣເຊສເຊີເຮັດວຽກຕາມປົກກະຕິ

1: ໄມໂຄຣໂປຣເຊສເຊີຢຸດ

0
  • ນອກເຫນືອຈາກການລົງທະບຽນທີ່ໄດ້ກ່າວມາຂ້າງເທິງຂອງໂມດູນດີບັກ, ຟັງຊັນດີບັກຍັງກ່ຽວຂ້ອງກັບການລົງທະບຽນ CSR, ຕົ້ນຕໍແມ່ນການຄວບຄຸມການດີບັກແລະສະຖານະພາບການລົງທະບຽນ dcsr ແລະຕົວຊີ້ຄໍາແນະນໍາ debug dpc, ເຊິ່ງໄດ້ອະທິບາຍລາຍລະອຽດດັ່ງຕໍ່ໄປນີ້.
  • ການ​ຄວບ​ຄຸມ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ແລະ​ສະ​ຖາ​ນະ​ພາບ (dcsr​)

ຕາຕະລາງ 7-13 ຄໍານິຍາມການລົງທະບຽນ dcsr

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:28] xdebugver DRO 0000: ບໍ່ຮອງຮັບການດີບັກພາຍນອກ 0100: ຮອງຮັບການດີບັກພາຍນອກມາດຕະຖານ

1111: ການດີບັກພາຍນອກໄດ້ຮັບການສະຫນັບສະຫນູນ, ແຕ່ບໍ່ຕອບສະຫນອງ

ສະເພາະ

 

 

0x4

[27:16] ສະຫງວນໄວ້ DRO ສະຫງວນໄວ້ 0
15 ພັກຜ່ອນ DRW 0: ຄໍາສັ່ງຢຸດໃນໂຫມດເຄື່ອງປະຕິບັດຕົວຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນສິດທິພິເສດ file

1: ຄໍາສັ່ງ break ໃນໂຫມດເຄື່ອງສາມາດເຂົ້າໄປໃນໂຫມດດີບັກ

 

 

0

[14:13] ສະຫງວນໄວ້ DRO ສະຫງວນໄວ້ 0
12 ການແຕກແຍກ  

DRW

0: ຄໍາສັ່ງ break ໃນໂຫມດຜູ້ໃຊ້ປະຕິບັດຕົວຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນສິດທິພິເສດ file

1: ຄໍາສັ່ງ break ໃນໂຫມດຜູ້ໃຊ້ສາມາດເຂົ້າໄປໃນໂຫມດ debug

 

 

0

11 ຂັ້ນ​ຕອນ​ DRW 0: ການຂັດຂວາງຖືກປິດການໃຊ້ງານພາຍໃຕ້ການດີບັກຂັ້ນຕອນດຽວ

1: ເປີດໃຊ້ການຂັດຂວາງພາຍໃຕ້ການດີບັກຂັ້ນຕອນດຽວ

0
10 ສະຫງວນໄວ້ DRO ສະຫງວນໄວ້ 0
9 ເວລາຢຸດ DRW 0: ເຄື່ອງຈັບເວລາລະບົບແລ່ນຢູ່ໃນໂໝດດີບັກ

1: ຕົວຈັບເວລາລະບົບຢຸດຢູ່ໃນໂໝດດີບັກ

0
  [8:6] ສາເຫດ DRO ເຫດຜົນສໍາລັບການເຂົ້າສູ່ debugging

001: ເຂົ້າສູ່ debugging ໃນຮູບແບບຂອງ break command (priority 3)

010: ເຂົ້າສູ່ການດີບັກໃນຮູບແບບຂອງໂມດູນ trigger (ບູລິມະສິດ 4, ສູງສຸດ)

011: ປ້ອນການດີບັກໃນຮູບແບບການຮ້ອງຂໍຢຸດຊົ່ວຄາວ (ບູລິມະສິດ 1)

100: debugging ໃນຮູບແບບຂອງການ debugging ຂັ້ນຕອນດຽວ

(ບູລິມະສິດ 0, ຕໍ່າສຸດ)

0
101: ເຂົ້າສູ່ໂໝດດີບັກໂດຍກົງຫຼັງຈາກຣີເຊັດ microprocessor (ບູລິມະສິດ 2) ອື່ນໆ: ສະຫງວນໄວ້
[5:3] ສະຫງວນໄວ້ DRO ສະຫງວນໄວ້ 0
2 ຂັ້ນ​ຕອນ​ DRW 0: ປິດການດີບັກຂັ້ນຕອນດຽວ

1: ເປີດໃຊ້ການດີບັກຂັ້ນຕອນດຽວ

0
[1:0] ກ່ອນໜ້າ DRW ໂໝດສິດທິພິເສດ 00: ໂໝດຜູ້ໃຊ້

01: ໂໝດຜູ້ຄຸມງານ (ບໍ່ຮອງຮັບ) 10: ສະຫງວນໄວ້

11: ໂໝດເຄື່ອງ

ໝາຍເຫດ: ບັນທຶກໂໝດສິດທິພິເສດເມື່ອເຂົ້າສູ່ໂໝດດີບັກ, ຕົວດີບັກສາມາດແກ້ໄຂຄ່ານີ້ເພື່ອແກ້ໄຂໂໝດສິດທິພິເສດເມື່ອອອກຈາກການດີບັກ

 

 

 

 

0

ຕົວຊີ້ໂປຣແກຣມໂໝດດີບັກ (DPC)

  • ການລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາທີ່ຢູ່ຂອງຄໍາແນະນໍາຕໍ່ໄປທີ່ຈະດໍາເນີນການຫຼັງຈາກ microprocessor ເຂົ້າສູ່ໂຫມດດີບັກ, ແລະມູນຄ່າຂອງມັນຖືກປັບປຸງດ້ວຍກົດລະບຽບທີ່ແຕກຕ່າງກັນໂດຍອີງຕາມເຫດຜົນສໍາລັບການເຂົ້າສູ່ debug. ການລົງທະບຽນ dpc ໄດ້ຖືກອະທິບາຍໄວ້ໃນລາຍລະອຽດດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-14 ຄໍານິຍາມການລົງທະບຽນ dpc

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] DPC DRW ທີ່ຢູ່ຄໍາແນະນໍາ 0

ກົດລະບຽບການປັບປຸງການລົງທະບຽນແມ່ນສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້.

ຕາຕະລາງ 7-15 ກົດລະບຽບການປັບປຸງ dpc

ກະລຸນາໃສ່ວິທີການດີບັກ dpc ກົດລະບຽບການປັບປຸງ
ພັກຜ່ອນ ທີ່ຢູ່ຂອງຄໍາແນະນໍາ Ebreak
ຂັ້ນ​ຕອນ​ດຽວ​ ທີ່ຢູ່ຄໍາແນະນໍາຂອງຄໍາແນະນໍາຕໍ່ໄປຂອງຄໍາແນະນໍາໃນປະຈຸບັນ
ໂມດູນກະຕຸ້ນ ບໍ່ຮອງຮັບຊົ່ວຄາວ
ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ຢຸດ​ເຊົາ​ການ​ ທີ່​ຢູ່​ຂອງ​ຄໍາ​ແນະ​ນໍາ​ຕໍ່​ໄປ​ທີ່​ຈະ​ປະ​ຕິ​ບັດ​ໃນ​ເວ​ລາ​ທີ່​ເຂົ້າ Debug​

ການໂຕ້ຕອບ Debug

  • ແຕກຕ່າງຈາກມາດຕະຖານ JTAG ອິນເຕີເຟດທີ່ກຳນົດໂດຍ RISC-V, QingKe V3 series microprocessor ນຳໃຊ້ 1- ເປັນສາຍ/2-wire ການໂຕ້ຕອບການດີບັກ serial ແລະປະຕິບັດຕາມ WCH debug interface protocol V1.0.
  • ການໂຕ້ຕອບການດີບັ໊ກແມ່ນຮັບຜິດຊອບຕໍ່ການສື່ສານລະຫວ່າງແມ່ຂ່າຍດີບັກ ແລະໂມດູນດີບັກ ແລະຮັບຮູ້ການປະຕິບັດການອ່ານ/ຂຽນຂອງແມ່ຂ່າຍດີບັກຕໍ່ກັບການລົງທະບຽນໂມດູນດີບັກ.
  • WCH ອອກແບບ WCH_Link ແລະ open source ຂອງມັນ schematic ແລະ program binary files, ເຊິ່ງສາມາດໃຊ້ສໍາລັບການ debugging microprocessors ທັງຫມົດຂອງສະຖາປັດຕະ RISC-V.
  • ອ້າງອີງເຖິງ WCH Debug Protocol Manual ສໍາລັບໂປຣໂຕຄອນການໂຕ້ຕອບການດີບັກສະເພາະ.

ລາຍຊື່ລົງທະບຽນ CSR

  • ສະຖາປັດຕະຍະກໍາ RISC-V ກໍານົດຈໍານວນການຄວບຄຸມແລະສະຖານະພາບການລົງທະບຽນ (CSRs) ສໍາລັບການຄວບຄຸມແລະບັນທຶກສະຖານະການປະຕິບັດງານຂອງ microprocessor.
  • ບາງສ່ວນຂອງ CSRs ໄດ້ຖືກນໍາສະເຫນີໃນພາກກ່ອນ, ແລະບົດນີ້ຈະລາຍລະອຽດກ່ຽວກັບການລົງທະບຽນ CSR ທີ່ຖືກປະຕິບັດໃນ QingKe V3 series microprocessors.

ລາຍຊື່ລົງທະບຽນ CSR

ຕາຕະລາງ 8-1 ບັນຊີລາຍຊື່ຂອງ Microprocessor CSR ລົງທະບຽນ

ປະເພດ ຊື່ CSR ທີ່ຢູ່ ການເຂົ້າເຖິງ ລາຍລະອຽດ
RISC-V

ມາດຕະຖານ CSR

marchid 0xF12 MRO ທະບຽນເລກສະຖາປັດ
ຂີ້ຄ້ານ 0xF13 MRO ການລົງທະບຽນຕົວເລກການປະຕິບັດຮາດແວ
mstatus 0x300 MRW ສະຖານະການລົງທະບຽນ
ມິຊາ 0x301 MRW ລົງທະບຽນຊຸດຄໍາແນະນໍາຂອງຮາດແວ
mtvec 0x305 MRW ການຍົກເວັ້ນການລົງທະບຽນທີ່ຢູ່ຖານ
mscratch 0x340 MRW ໂໝດເຄື່ອງ stagລົງທະບຽນ
MEPC 0x341 MRW ລົງທະບຽນຕົວຊີ້ໂຄງການຍົກເວັ້ນ
ສາເຫດ 0x342 MRW ການລົງທະບຽນສາເຫດຍົກເວັ້ນ
mtval 0x343 MRW ການລົງທະບຽນມູນຄ່າການຍົກເວັ້ນ
pmpcfg 0x3A0+i MRW ລົງທະບຽນການຕັ້ງຄ່າ PMP
pmpaddr 0x3B0+i MRW ລົງທະບຽນທີ່ຢູ່ PMP
ເລືອກ 0x7A0 MRW Debug trigger ການລົງທະບຽນລົງທະບຽນ
tdata1 0x7A1 MRW Debug trigger data register 1
tdata2 0x7A2 MRW Debug trigger data register 2
dcsr 0x7B0 DRW ການ​ຄວບ​ຄຸມ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ແລະ​ການ​ຈົດ​ທະ​ບຽນ​ສະ​ຖາ​ນະ​ພາບ​
dpc 0x7B1 DRW ການລົງທະບຽນຕົວຊີ້ໂປຣແກຣມຮູບແບບດີບັກ
dscratch0 0x7B2 DRW ໂໝດດີບັກ stagລົງ​ທະ​ບຽນ 0
dscratch1 0x7B3 DRW ໂໝດດີບັກ stagລົງ​ທະ​ບຽນ 1
 

ຜູ້ຂາຍໄດ້ກໍານົດ CSR

gintenr 0x800 URW Global interrupt ເປີດລົງທະບຽນ
intsyscr 0x804 URW ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມລະບົບ
corecfgr 0xBC0 MRW ລົງທະບຽນການຕັ້ງຄ່າໄມໂຄຣໂປຣເຊສເຊີ
inestcr 0xBC1 MRW ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມແບບຊ້ອນກັນ

ການລົງທະບຽນ CSR ມາດຕະຖານ RISC-V

  • ທະບຽນເລກສະຖາປັດຕະຍະກຳ (marchid)
  • ທະບຽນນີ້ແມ່ນການລົງທະບຽນແບບອ່ານເທົ່ານັ້ນເພື່ອຊີ້ບອກໝາຍເລກສະຖາປັດຕະຍະກຳຮາດແວຂອງຈຸນລະພາກປະຈຸບັນ, ເຊິ່ງສ່ວນໃຫຍ່ແມ່ນປະກອບດ້ວຍລະຫັດຜູ້ຂາຍ, ລະຫັດສະຖາປັດຕະຍະກຳ, ລະຫັດຊຸດ ແລະລະຫັດເວີຊັນ. ແຕ່ລະຄົນຂອງພວກເຂົາຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-2 ຄໍານິຍາມການລົງທະບຽນ marchid

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
31 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 1
[30:26] ຜູ້ຂາຍ0 MRO ລະຫັດຜູ້ຜະລິດ 0

ແກ້ໄຂກັບຕົວອັກສອນ “W” ລະຫັດ

0x17
[25:21] ຜູ້ຂາຍ1 MRO ລະ​ຫັດ​ຜູ້​ຜະ​ລິດ 1

ຖືກແກ້ໄຂກັບລະຫັດ "C".

0x03
[20:16] ຜູ້ຂາຍ2 MRO ລະຫັດຜູ້ຜະລິດ 2

ຖືກແກ້ໄຂກັບຕົວອັກສອນ “H” ລະຫັດ

0x08
15 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 1
[14:10] Arch MRO ລະຫັດສະຖາປັດຕະຍະກໍາ 0x16
ສະຖາປັດຕະຍະກຳ RISC-V ຖືກສ້ອມແຊມໃສ່ລະຫັດຕົວອັກສອນ “V”
[9:5] ລໍາດັບ MRO ລະຫັດຊຸດ

ຊຸດ QingKe V3, ຖືກແກ້ໄຂເປັນເລກ “3”

0x03
[4:0] ຮຸ່ນ MRO ລະຫັດເວີຊັນ

ສາມາດເປັນສະບັບ “A”, “B”, “C” ແລະຕົວອັກສອນອື່ນໆຂອງລະຫັດ

x

ໝາຍເລກຜູ້ຜະລິດ ແລະໝາຍເລກລຸ້ນແມ່ນເປັນຕົວໜັງສື, ແລະໝາຍເລກຊຸດແມ່ນເປັນຕົວເລກ. ຕາຕະລາງການເຂົ້າລະຫັດຂອງຕົວອັກສອນແມ່ນສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-3 ຕາຕະລາງການວາງແຜນຕົວອັກສອນ

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
  • ໃນບັນດາພວກເຂົາ, QingKe V3A microprocessor, ລົງທະບຽນອ່ານກັບຄືນໄປບ່ອນ 0.

ການລົງທະບຽນຕົວເລກການປະຕິບັດຮາດແວ (ຈໍາກັດ)

  • ການລົງທະບຽນນີ້ແມ່ນສ່ວນໃຫຍ່ແມ່ນປະກອບດ້ວຍລະຫັດຜູ້ຂາຍ, ແຕ່ລະອັນແມ່ນຖືກກໍານົດດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-4 ຄໍານິຍາມການລົງທະບຽນlimpid

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
31 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 1
[30:26] ຜູ້ຂາຍ0 MRO ລະຫັດຜູ້ຜະລິດ 0

ແກ້ໄຂກັບຕົວອັກສອນ “W” ລະຫັດ

0x17
[25:21] ຜູ້ຂາຍ1 MRO ລະ​ຫັດ​ຜູ້​ຜະ​ລິດ 1

ຖືກແກ້ໄຂກັບລະຫັດ "C".

0x03
[20:16] ຜູ້ຂາຍ2 MRO ລະຫັດຜູ້ຜະລິດ 2

ຖືກແກ້ໄຂກັບຕົວອັກສອນ “H” ລະຫັດ

0x08
15 ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 1
[14:8] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[7:4] ເລັກນ້ອຍ MRO ຈໍານວນການໂຄ່ນລົ້ມ 0xX
[3:0] ຫລັກ MR0 ໝາຍເລກລຸ້ນຫຼັກ 0xX
  • ທະບຽນນີ້ແມ່ນສາມາດອ່ານໄດ້ໃນການປະຕິບັດເຄື່ອງຈັກໃດໆ, ແລະໃນໂຮງງານຜະລິດຊຸດ QingKe V3A, ທະບຽນນີ້ອ່ານກັບສູນ.

ການລົງທະບຽນສະຖານະຂອງເຄື່ອງຈັກ (mstatus)

  • ການລົງທະບຽນນີ້ໄດ້ຖືກອະທິບາຍບາງສ່ວນໃນພາກກ່ອນ, ແລະຄົນຂອງມັນຖືກຈັດໃສ່ດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-5 mstatus register ຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:13] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[12:11] MPP MRW ຮູບແບບສິດທິພິເສດກ່ອນທີ່ຈະເຂົ້າໄປໃນການພັກຜ່ອນ 0
[10:8] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
7 MPIE MRW ຂັດຂວາງການເປີດໃຊ້ສະຖານະກ່ອນທີ່ຈະເຂົ້າໄປໃນການຂັດຂວາງ 0
[6:4] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
3 MIE MRW ໂໝດເຄື່ອງລົບກວນເປີດໃຊ້ງານ 0
[2:0] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
  • ຊ່ອງຂໍ້ມູນ MPP ຖືກນໍາໃຊ້ເພື່ອບັນທຶກໂຫມດສິດທິພິເສດກ່ອນທີ່ຈະເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງແລະຖືກນໍາໃຊ້ເພື່ອຟື້ນຟູໂຫມດສິດທິພິເສດຫຼັງຈາກອອກຈາກການຍົກເວັ້ນຫຼືຂັດຂວາງ. MIE ແມ່ນບິດເປີດການຂັດຂວາງທົ່ວໂລກ, ແລະເມື່ອເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ, ມູນຄ່າຂອງ MPIE ຈະຖືກປັບປຸງເປັນມູນຄ່າຂອງ MIE, ແລະຄວນສັງເກດວ່າໃນ microprocessors ຊຸດ QingKe V3, MIE ຈະບໍ່ຖືກປັບປຸງເປັນ 0 ກ່ອນທີ່ລະດັບສຸດທ້າຍຂອງການຂັດຂວາງ nested ເພື່ອຮັບປະກັນວ່າການຂັດຂວາງການຮັງຢູ່ໃນໂຫມດເຄື່ອງຈັກຍັງສືບຕໍ່ດໍາເນີນການ. ເມື່ອມີການຍົກເວັ້ນຫຼືຂັດຂວາງ, ໄມໂຄຣໂປຣເຊສເຊີຈະກັບຄືນສູ່ໂຫມດເຄື່ອງທີ່ບັນທຶກໄວ້ໂດຍ MPP, ແລະ MIE ຈະຖືກຟື້ນຟູເປັນຄ່າ MPIE.
  • QingKe V3 microprocessor ສະຫນັບສະຫນູນໂຫມດເຄື່ອງຈັກແລະໂຫມດຜູ້ໃຊ້, ຖ້າທ່ານຕ້ອງການເຮັດໃຫ້ microprocessor ເຮັດວຽກພຽງແຕ່ຢູ່ໃນໂຫມດເຄື່ອງຈັກ, ທ່ານສາມາດຕັ້ງ MPP ເປັນ 0x3 ໃນການເລີ່ມຕົ້ນຂອງການບູດ. file, ນັ້ນແມ່ນ, ຫຼັງຈາກກັບຄືນມາ, ມັນຈະຢູ່ໃນໂຫມດເຄື່ອງຈັກສະ ເໝີ.

ລົງທະບຽນຊຸດຄໍາແນະນໍາຮາດແວ (misa)

  • ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກສະຖາປັດຕະຍະກໍາຂອງ microprocessor ແລະການຂະຫຍາຍຊຸດຄໍາແນະນໍາທີ່ສະຫນັບສະຫນູນ, ແຕ່ລະອັນໄດ້ຖືກອະທິບາຍດັ່ງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-6 ຄໍານິຍາມການລົງທະບຽນ misa

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:30] MXL MRO ຄວາມຍາວຂອງເຄື່ອງຈັກ 1:32

2:64

3:128

1
[29:26] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[25:0] ສ່ວນຂະຫຍາຍ MRO ການຂະຫຍາຍຊຸດຄໍາແນະນໍາ x
  • MXL ຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກຄວາມຍາວຄໍາສັບຂອງ microprocessor, QingKe V3 ແມ່ນ microprocessors 32-bit, ແລະໂດເມນໄດ້ຖືກແກ້ໄຂເປັນ 1.
  • ສ່ວນຂະຫຍາຍຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກວ່າ microprocessor ສະຫນັບສະຫນູນລາຍລະອຽດຊຸດຄໍາແນະນໍາທີ່ຂະຫຍາຍ, ແຕ່ລະຄົນຊີ້ໃຫ້ເຫັນເຖິງການຂະຫຍາຍ, ລາຍລະອຽດຂອງມັນແມ່ນສະແດງຢູ່ໃນຕາຕະລາງຕໍ່ໄປນີ້.

ຕາຕະລາງ 8-7 ລາຍລະອຽດການຂະຫຍາຍຊຸດຄໍາແນະນໍາ

ບິດ ຊື່ ລາຍລະອຽດ
0 A ການຂະຫຍາຍປະລໍາມະນູ
1 B ສະຫງວນໄວ້ຢ່າງບໍ່ຢຸດຢັ້ງສຳລັບສ່ວນຂະຫຍາຍ Bit-Manipulation
2 C ການຂະຫຍາຍທີ່ຖືກບີບອັດ
3 D ການຂະຫຍາຍຈຸດລອຍທີ່ມີຄວາມຊັດເຈນສອງເທົ່າ
4 E RV32E ພື້ນຖານ ISA
5 F ການຂະຫຍາຍຈຸດລອຍແບບຄວາມຊັດເຈນດຽວ
6 G ມີສ່ວນຂະຫຍາຍມາດຕະຖານເພີ່ມເຕີມ
7 H ສ່ວນຂະຫຍາຍ Hypervisor
8 I RV32I/64I/128I ຖານ ISA
9 J ສະຫງວນໄວ້ຊົ່ວຄາວສຳລັບສ່ວນຂະຫຍາຍພາສາທີ່ແປແບບໄດນາມິກ
10 K ສະຫງວນໄວ້
11 L ສະຫງວນໄວ້ຢ່າງບໍ່ຢຸດຢັ້ງສຳລັບການຂະຫຍາຍຈຸດເລື່ອນເລກຖານສິບ
12 M Integer Multiply/Divide extension
13 N ຮອງຮັບການຂັດຂວາງລະດັບຜູ້ໃຊ້
14 O ສະຫງວນໄວ້
15 P ສະຫງວນໄວ້ຊົ່ວຄາວສໍາລັບການຂະຫຍາຍ Packed-SIMD
16 Q ການຂະຫຍາຍຈຸດເລື່ອນຄວາມຊັດເຈນ quad
17 R ສະຫງວນໄວ້
18 S ນຳໃຊ້ໂໝດຜູ້ຄຸມງານແລ້ວ
19 T ສະຫງວນໄວ້ຊົ່ວຄາວສຳລັບການຂະຫຍາຍໜ່ວຍຄວາມຈຳທຸລະກຳ
20 U ຮູບແບບຜູ້ໃຊ້ຖືກປະຕິບັດ
21 V ສະຫງວນໄວ້ຊົ່ວຄາວສໍາລັບການຂະຫຍາຍ Vector
22 W ສະຫງວນໄວ້
23 X ມີສ່ວນຂະຫຍາຍທີ່ບໍ່ແມ່ນມາດຕະຖານ
24 Y ສະຫງວນໄວ້
25 Z ສະຫງວນໄວ້
  • ຕົວຢ່າງample, ສໍາລັບ QingKe V3A microprocessor, ມູນຄ່າການລົງທະບຽນແມ່ນ 0x401001105, ຊຶ່ງຫມາຍຄວາມວ່າສະຖາປັດຕະຍະກໍາຊຸດຄໍາແນະນໍາທີ່ສະຫນັບສະຫນູນແມ່ນ RV32IMAC, ແລະມັນມີການປະຕິບັດຮູບແບບຜູ້ໃຊ້.

ລົງທະບຽນທີ່ຢູ່ຖານຂໍ້ຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກ (mtvec)

  • ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາທີ່ຢູ່ພື້ນຖານຂອງຂໍ້ຍົກເວັ້ນຫຼືຕົວຈັດການຂັດຂວາງແລະສອງບິດຕ່ໍາຖືກນໍາໃຊ້ເພື່ອກໍານົດຮູບແບບແລະວິທີການກໍານົດຂອງຕາຕະລາງ vector ດັ່ງທີ່ອະທິບາຍໄວ້ໃນພາກ 3.2.

ໂໝດເຄື່ອງ stagລົງທະບຽນ (mscratch)

ຕາຕະລາງ 8-8 ຄໍານິຍາມການລົງທະບຽນ mscratch

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] mscratch MRW ການເກັບຮັກສາຂໍ້ມູນ 0

ການລົງທະບຽນນີ້ແມ່ນ 32-bit ທີ່ອ່ານໄດ້ແລະຂຽນໄດ້ໃນໂຫມດເຄື່ອງສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວ. ຕົວຢ່າງample, ເມື່ອເຂົ້າໄປໃນການຍົກເວັ້ນຫຼືຕົວຈັດການຂັດຂວາງ, ຜູ້ໃຊ້ stack pointer SP ຖືກເກັບໄວ້ໃນທະບຽນນີ້ແລະຕົວຊີ້ stack interrupt ຖືກມອບຫມາຍໃຫ້ລົງທະບຽນ SP. ຫຼັງຈາກອອກຈາກການຍົກເວັ້ນຫຼືຂັດຂວາງ, ຟື້ນຟູຄ່າຂອງຕົວຊີ້ SP ຜູ້ໃຊ້ stack ຈາກ scratch. ນັ້ນແມ່ນ, stack ຂັດຂວາງແລະ stack ຜູ້ໃຊ້ສາມາດແຍກໄດ້.

ໂປຣແກຣມຕົວຊີ້ການຍົກເວັ້ນໂປຣແກຣມໂໝດເຄື່ອງຈັກ (ແຜນທີ່)

ຕາຕະລາງ 8-9 mepc ຄໍານິຍາມການລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] mepc MRW ຕົວຊີ້ຂັ້ນຕອນການຍົກເວັ້ນ 0
  • ລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອບັນທຶກຕົວຊີ້ໂຄງການໃນເວລາທີ່ເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງ.
  • ມັນຖືກນໍາໃຊ້ເພື່ອບັນທຶກຕົວຊີ້ PC ຄໍາແນະນໍາກ່ອນທີ່ຈະເຂົ້າໄປໃນຂໍ້ຍົກເວັ້ນໃນເວລາທີ່ການຍົກເວັ້ນຫຼືການຂັດຂວາງຖືກສ້າງຂື້ນ, ແລະ mepc ຖືກນໍາໃຊ້ເປັນທີ່ຢູ່ກັບຄືນເມື່ອຂໍ້ຍົກເວັ້ນຫຼືຂັດຂວາງຖືກຈັດການແລະໃຊ້ສໍາລັບການຍົກເວັ້ນຫຼືການຂັດຂວາງ.
  • ຢ່າງໃດກໍ່ຕາມ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າ.
  • ເມື່ອມີຂໍ້ຍົກເວັ້ນເກີດຂຶ້ນ, mepc ຈະຖືກປັບປຸງເປັນມູນຄ່າ PC ຂອງຄໍາແນະນໍາທີ່ປະຈຸບັນສ້າງຂໍ້ຍົກເວັ້ນ.
  • ເມື່ອມີການຂັດຂວາງ, mepc ຈະຖືກປັບປຸງໃຫ້ກັບຄ່າ PC ຂອງຄໍາແນະນໍາຕໍ່ໄປ.
  • ເມື່ອທ່ານຕ້ອງການສົ່ງຄືນຂໍ້ຍົກເວັ້ນຫຼັງຈາກການປຸງແຕ່ງຂໍ້ຍົກເວັ້ນ, ທ່ານຄວນເອົາໃຈໃສ່ກັບການປ່ຽນແປງມູນຄ່າຂອງ mepc, ແລະລາຍລະອຽດເພີ່ມເຕີມສາມາດພົບໄດ້ໃນບົດທີ 2 ຂໍ້ຍົກເວັ້ນ.

ການຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກເຮັດໃຫ້ການລົງທະບຽນ (mcause)

ຕາຕະລາງ 8-10 mcause register ຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
31 ຂັດຂວາງ MRW ຊ່ອງສະແດງການຂັດຂວາງ 0: ຂໍ້ຍົກເວັ້ນ

1: ການຂັດຂວາງ

 

0

[30:0] ລະຫັດຂໍ້ຍົກເວັ້ນ MRW ສໍາລັບລະຫັດການຍົກເວັ້ນ, ເບິ່ງຕາຕະລາງ 2-1 ສໍາລັບລາຍລະອຽດ 0
  • ທະບຽນນີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ເພື່ອເກັບຮັກສາສາເຫດຂອງການຍົກເວັ້ນຫຼືຈໍານວນການຂັດຂວາງການຂັດຂວາງ. ບິດສູງສຸດຂອງມັນແມ່ນພາກສະຫນາມ Interrupt, ເຊິ່ງຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກວ່າການປະກົດຕົວໃນປະຈຸບັນເປັນຂໍ້ຍົກເວັ້ນຫຼືການຂັດຂວາງ.
  • ບິດຕ່ໍາແມ່ນລະຫັດຂໍ້ຍົກເວັ້ນ, ເຊິ່ງຖືກນໍາໃຊ້ເພື່ອຊີ້ບອກສາເຫດສະເພາະ. ລາຍລະອຽດຂອງມັນສາມາດພົບໄດ້ໃນພາກທີ 2 ຂໍ້ຍົກເວັ້ນ.

ການລົງທະບຽນມູນຄ່າການຍົກເວັ້ນຮູບແບບເຄື່ອງຈັກ (mtval)

ຕາຕະລາງ 8-11 ຄໍານິຍາມຂອງທະບຽນ mtval

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] mtval MRW ຄ່າຍົກເວັ້ນ 0
  • ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຖືມູນຄ່າທີ່ເຮັດໃຫ້ເກີດຂໍ້ຍົກເວັ້ນເມື່ອມີຂໍ້ຍົກເວັ້ນເກີດຂຶ້ນ. ສໍາລັບລາຍລະອຽດເຊັ່ນ: ມູນຄ່າແລະເວລາຂອງການເກັບຮັກສາຂອງມັນ, ກະລຸນາເບິ່ງບົດທີ 2 ຂໍ້ຍົກເວັ້ນ.

ລົງທະບຽນການຕັ້ງຄ່າ PMP (pmpcfg

  • ທະບຽນນີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ເພື່ອກໍາຫນົດຄ່າຫນ່ວຍຄວາມຈໍາທາງກາຍະພາບ, ແລະທຸກໆ 8 bits ຂອງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອກໍານົດການປົກປັກຮັກສາພື້ນທີ່. ກະລຸນາເບິ່ງບົດທີ 4 ສໍາລັບຄໍານິຍາມລະອຽດ.

ລົງທະບຽນທີ່ຢູ່ PMP (pmpaddr

  • ການລົງທະບຽນນີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ສໍາລັບການຕັ້ງຄ່າທີ່ຢູ່ຂອງຫນ່ວຍຄວາມຈໍາທາງດ້ານຮ່າງກາຍ, ເຊິ່ງເຂົ້າລະຫັດ 32 bits ຂອງທີ່ຢູ່ທາງດ້ານຮ່າງກາຍ 34-bit. ກະລຸນາເບິ່ງບົດທີ 4 ສໍາລັບວິທີການກໍານົດສະເພາະ.

ການລົງທະບຽນຕົວຊີ້ໂປຣແກຣມຮູບແບບດີບັກ (DPC)

  • ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາທີ່ຢູ່ຂອງຄໍາແນະນໍາຕໍ່ໄປທີ່ຈະດໍາເນີນການຫຼັງຈາກ microprocessor ເຂົ້າມາ
  • ໂຫມດດີບັກ ແລະຄ່າຂອງມັນຖືກປັບປຸງດ້ວຍກົດລະບຽບທີ່ແຕກຕ່າງກັນຂຶ້ນກັບເຫດຜົນສໍາລັບການເຂົ້າສູ່ດີບັກ. ເບິ່ງພາກ 6.1 ສໍາລັບລາຍລະອຽດລາຍລະອຽດ.

Debug trigger ເລືອກລົງທະບຽນ (ເລືອກ)

  • ມັນໃຊ້ໄດ້ສະເພາະກັບໂປເຊດເຊີຈຸນລະພາກທີ່ຮອງຮັບຈຸດແບ່ງຮາດແວ ແລະ ຮອງຮັບຈຸດແບ່ງ 4 ຊ່ອງເປັນສ່ວນໃຫຍ່, ແລະ 2 bits ຕ່ໍາຂອງມັນແມ່ນຖືກຕ້ອງ.
  • ເມື່ອຕັ້ງຄ່າແຕ່ລະຈຸດແບ່ງຊ່ອງ, ທ່ານຈໍາເປັນຕ້ອງເລືອກຊ່ອງທາງທີ່ສອດຄ້ອງກັນໂດຍຜ່ານການລົງທະບຽນນີ້ກ່ອນທີ່ຈະຕັ້ງຄ່າ.

ຕາຕະລາງ 8-12 ເລືອກຄໍານິຍາມລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:2] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
[1:0]  

ເລືອກ

 

MRW

ການລົງທະບຽນການຄັດເລືອກຊ່ອງ breakpoint ໄດ້ຖືກຕັ້ງຄ່າ, ນັ້ນແມ່ນ, ຫຼັງຈາກເລືອກຊ່ອງທີ່ສອດຄ້ອງກັນ, ການລົງທະບຽນ tdata1 ແລະ tdata2 ສາມາດດໍາເນີນການເພື່ອກໍານົດຄ່າ breakpoint.

ຂໍ້ມູນ.

 

X

Debug trigger data register 1(tdata1)

ມັນໃຊ້ໄດ້ສະເພາະກັບໄມໂຄຣໂປຣເຊສເຊີທີ່ຮອງຮັບຈຸດແບ່ງຮາດແວເທົ່ານັ້ນ. Microprocessors ພຽງແຕ່ສະຫນັບສະຫນູນທີ່ຢູ່ຄໍາແນະນໍາແລະຈຸດຢຸດທີ່ຢູ່ຂໍ້ມູນ, ບ່ອນທີ່ bit TYPE ຂອງທະບຽນ tdata1 ເປັນຄ່າຄົງທີ່ຂອງ 2, ແລະ bits ອື່ນໆສອດຄ່ອງກັບຄໍານິຍາມຂອງການຄວບຄຸມໃນມາດຕະຖານ debugging.

ຕາຕະລາງ 8-13 tdata1 ການລົງທະບຽນຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:28] ປະເພດ MRO ປະເພດ Breakpoint ຄໍານິຍາມ, ປະເພດການຄວບຄຸມ. 0x2
 

 

27

 

 

DMODE

 

 

MRO

0: ການລົງທະບຽນທີ່ກ່ຽວຂ້ອງຂອງ flip-flop ສາມາດແກ້ໄຂໄດ້ທັງໃນໂຫມດເຄື່ອງແລະຮູບແບບການດີບັກ;

1: ມີພຽງແຕ່ຮູບແບບການດີບັກສາມາດແກ້ໄຂການລົງທະບຽນທີ່ກ່ຽວຂ້ອງຂອງ flip-flop ໄດ້.

 

 

1

  [26:21]  

MASKMAX

 

MRO

ເມື່ອ MATCH=1, ຂອບເຂດການຈັບຄູ່ແບບເລກກຳລັງສູງສຸດແມ່ນອະນຸຍາດ, ນັ້ນແມ່ນ, ຊ່ວງການຈັບຄູ່ທີ່ອະນຸຍາດສູງສຸດແມ່ນ 231 ໄບຕ໌.  

0x1F

[20:13] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
 

 

12

 

 

ປະຕິບັດ

 

 

MRW

ຕັ້ງຄ່າໂໝດການປະມວນຜົນເມື່ອເປີດໃຊ້ຈຸດຢຸດ:

0: ເມື່ອກະຕຸ້ນ, ເຂົ້າໄປໃນຈຸດຢຸດແລະໂທຫາການຂັດຂວາງ;

1: ເຂົ້າສູ່ໂໝດດີບັກເມື່ອຖືກກະຕຸ້ນ.

 

 

0

[11:8] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
 

 

 

7

 

 

 

ການແຂ່ງຂັນ

 

 

 

MRW

ການກຳນົດຄ່ານະໂຍບາຍທີ່ກົງກັນ:

0: ຈັບຄູ່ເມື່ອຄ່າ trigger ເທົ່າກັບ TDATA2;

1: ຄ່າ trigger ກົງກັບ high m bit ຂອງ TDATA2, ເຊິ່ງ m = 31–n, ແລະ n ແມ່ນ 0 quote ທຳອິດຂອງ TDATA2 (ເລີ່ມຈາກຄ່າ low bit).

 

 

 

0

 

6

 

M

 

MRW

ເປີດໃຊ້ flip-flop ໃນໂຫມດ M:

0: ປິດໃຊ້ງານຕົວກະຕຸ້ນໃນໂຫມດ M; 1: ເປີດໃຊ້ຕົວກະຕຸ້ນໃນໂໝດ M.

 

0

[5:4] ສະຫງວນໄວ້ MRO ສະຫງວນໄວ້ 0
 

3

 

U

 

MRW

ເປີດໃຊ້ຕົວກະຕຸ້ນໃນໂໝດ U:

0: ປິດການໃຊ້ງານຕົວກະຕຸ້ນໃນໂຫມດ U; 1: ເປີດໃຊ້ຕົວກະຕຸ້ນໃນໂຫມດ U.

 

0

 

2

 

ປະຕິບັດ

 

MRW

ຄໍາແນະນໍາການອ່ານທີ່ຢູ່ trigger ເປີດໃຊ້: 0: ປິດການໃຊ້ງານ;

1: ເປີດໃຊ້.

 

0

 

1

 

ເກັບຮັກສາ

 

MRW

ຂໍ້ມູນການຂຽນທີ່ຢູ່ trigger ເປີດໃຊ້: 0: ປິດການໃຊ້ງານ;

1: ເປີດໃຊ້.

 

0

 

0

 

ໂຫຼດ

 

MRW

ຂໍ້​ມູນ​ການ​ອ່ານ​ທີ່​ຢູ່​ກະ​ຕຸ້ນ​ໃຫ້​ໃຊ້​ງານ​: 0​: ປິດ​ການ​ທໍາ​ງານ​;

1: ເປີດໃຊ້.

 

0

Debug trigger data register 2(tdata2)

ມັນໃຊ້ໄດ້ສະເພາະກັບໄມໂຄຣໂປຣເຊສເຊີທີ່ຮອງຮັບຈຸດແບ່ງຮາດແວ ແລະໃຊ້ເພື່ອບັນທຶກຄ່າທີ່ກົງກັນຂອງທຣິກເກີ.

ຕາຕະລາງ 8-14 tdata2 ການລົງທະບຽນຄໍານິຍາມ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] TDATA2 MRW ໃຊ້ເພື່ອບັນທຶກຄ່າທີ່ກົງກັນ. X

ການ​ຄວບ​ຄຸມ​ການ​ແກ້​ໄຂ​ບັນ​ຫາ​ແລະ​ສະ​ຖາ​ນະ​ພາບ (dcsr​)

ການລົງທະບຽນນີ້ແມ່ນໃຊ້ເພື່ອຄວບຄຸມ ແລະບັນທຶກສະຖານະການເຮັດວຽກຂອງໂໝດດີບັກ. ເບິ່ງພາກ 7.1 ສໍາລັບລາຍລະອຽດ.

ຕົວຊີ້ໂປຣແກຣມໂໝດດີບັກ (DPC)

ລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາທີ່ຢູ່ຂອງຄໍາແນະນໍາຕໍ່ໄປທີ່ຈະດໍາເນີນການຫຼັງຈາກ microprocessor ເຂົ້າສູ່ໂຫມດ debugging, ມູນຄ່າຂອງມັນຈະແຕກຕ່າງກັນໄປຕາມເຫດຜົນສໍາລັບການເຂົ້າສູ່ໂຫມດ debugging, ແລະກົດລະບຽບການປັບປຸງຍັງແຕກຕ່າງກັນ. ເບິ່ງພາກ 7.1 ສໍາລັບລາຍລະອຽດລາຍລະອຽດ.

ໂໝດດີບັກ stagລົງທະບຽນ (dscratch0-1)

ກຸ່ມຂອງທະບຽນນີ້ແມ່ນໃຊ້ສໍາລັບການເກັບຮັກສາຂໍ້ມູນຊົ່ວຄາວໃນໂຫມດດີບັກ.

ຕາຕະລາງ 8-15 dscratch0-1 ຄໍານິຍາມລົງທະບຽນ

ບິດ ຊື່ ການເຂົ້າເຖິງ ລາຍລະອຽດ ຕັ້ງຄ່າຄືນໃ່
[31:0] dscratch DRW ຂໍ້ມູນໂໝດດີບັກ stagມູນຄ່າ 0
ການລົງທະບຽນ CSR ທີ່ກຳນົດໂດຍຜູ້ໃຊ້

ໂໝດຜູ້ໃຊ້ລົບກວນທົ່ວໂລກ ເປີດລົງທະບຽນ (gintenr)

  • ການລົງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມການເປີດໃຊ້ງານແລະຫນ້າກາກຂອງການລົບກວນທົ່ວໂລກ. ການເປີດໃຊ້ງານແລະຫນ້າກາກຂອງການລົບກວນທົ່ວໂລກໃນໂຫມດເຄື່ອງຈັກສາມາດຄວບຄຸມໄດ້ໂດຍ MIE ແລະ MPIE bits ໃນສະຖານະ, ແຕ່ການລົງທະບຽນນີ້ບໍ່ສາມາດດໍາເນີນການໃນຮູບແບບຜູ້ໃຊ້ໄດ້.
  • ໃນຂະນະທີ່ການຂັດຂວາງທົ່ວໂລກເຮັດໃຫ້ການລົງທະບຽນ gintenr ແມ່ນການສ້າງແຜນທີ່ຂອງ MIE ແລະ MPIE ໃນສະຖານະ.
  • ໃນໂຫມດຜູ້ໃຊ້, ຄວາມຕັ້ງໃຈສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດແລະລ້າງ MIE ແລະ MPIE, ດັ່ງທີ່ອະທິບາຍໄວ້ໃນພາກ 3.2 ສໍາລັບລາຍລະອຽດ.

ໝາຍເຫດ

  • ການຂັດຂວາງທົ່ວໂລກບໍ່ລວມເອົາການຂັດຂວາງທີ່ບໍ່ເປີດເຜີຍ NMI ແລະຂໍ້ຍົກເວັ້ນ.

ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມລະບົບ (intsyscr)

ການລົງທະບຽນນີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ເພື່ອກໍານົດຄວາມເລິກຂອງຮັງຂັດຂັດຈັງຫວະ, ການກົດຄ້າງຮາດແວ, ແລະຟັງຊັນທີ່ກ່ຽວຂ້ອງອື່ນໆ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນພາກ 3.2 ສໍາລັບລາຍລະອຽດ.

ລົງທະບຽນການຕັ້ງຄ່າໄມໂຄຣໂປຣເຊສເຊີ (corecfgr)

ທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມວ່າ NMI interrupt ໄດ້ຖືກອະນຸຍາດໃຫ້ຫຼັງຈາກການຂັດຂວາງ overflows ແລະບໍ່ວ່າການຮ້ອງຂໍການຂັດຂວາງໄດ້ຖືກລຶບລ້າງໃນເວລາທີ່ຄໍາແນະນໍາຮົ້ວຖືກປະຕິບັດ. ກະລຸນາເບິ່ງພາກ 3.2 ສໍາລັບຄໍານິຍາມສະເພາະ.

ຂັດຂວາງການລົງທະບຽນການຄວບຄຸມແບບຊ້ອນກັນ (inestcr)

ທະບຽນນີ້ຖືກໃຊ້ເພື່ອຊີ້ບອກເຖິງສະຖານະຂອງຮັງທີ່ຖືກຂັດຈັງຫວະ ແລະວ່າມັນຈະລົ້ນຫຼືບໍ່, ແລະເພື່ອຄວບຄຸມລະດັບການຮັງສູງສຸດ. ກະລຸນາເບິ່ງພາກ 3.2 ສໍາລັບຄໍານິຍາມສະເພາະ.

ເອກະສານ / ຊັບພະຍາກອນ

WH V3 Microprocessor [pdf] ຄູ່ມືຜູ້ໃຊ້
V3 Microprocessor, V3, ໄມໂຄຣໂປຣເຊສເຊີ

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *