WH-лого

Микропроцесор WH V3

WH-V3-Микропроцесор-ПРО

Спецификации

  • Модел на микропроцесор: QingKeV3
  • Верзија: V1.2
  • Карактеристики на ISA:
    • FPU на гасоводот
    • Предвидување на гранка
    • Прекинете ја поддршката
    • Заштита на физичка меморија HPE (PMP)
    • Режим со мала потрошувачка на енергија
    • Дебагирање на проширено множество инструкции

Упатство за употреба на производот

Во текот наview на микропроцесорот QingKe V3

Микропроцесорите од серијата QingKe V3 вклучуваат модели V3A, V3B и V3C. Секој модел има специфични карактеристики и разлики врз основа на неговата примена.

Комплет инструкции

Комплетот со инструкции RV32I вклучува 32 регистри од x0 до x31. Серијата V3 не поддржува продолжување со подвижна запирка (F). Секој регистер е со големина од 32 бита.

Регистрирај сет

Комплетот на регистри RV32I се состои од следните регистри.

  • x0: Хардкодирано 0
  • x1: Врати адреса
  • x2: Покажувач на магацинот
  • x3: Глобален покажувач
  • x4: Покажувач на конец
  • x5-x7: Привремени регистри
  • x8: Зачувај регистар/покажувач на рамка
  • x9: Зачувување на параметрите на регистарот/функцијата/враќање вредности
  • x10-x11: Параметри на функцијата
  • x12-x17: Зачувај регистри
  • x18-x27: Привремени регистри
  • x28-x31: Повикувачот/Callee се регистрира

Режим на привилегии

Стандардната архитектура RISC-V вклучува три привилегирани режими: машински режим, режим на супервизор и режим на корисник. Микропроцесорите од серијата QingKe V3 поддржуваат машински режим и режим на супервизор.

Најчесто поставувани прашања

П: Кои се различните модели во микропроцесорите од серијата QingKe V3?

A: Серијата QingKe V3 вклучува модели V3A, V3B и V3C, секој со специфични карактеристики и разлики наведени во упатството за употреба.

П: Колку регистри се достапни во комплетот инструкции RV32I?

A: Комплетот со инструкции RV32I обезбедува 32 регистри од x0 до x31.

П: Кои привилегирани режими се поддржани од микропроцесорот QingKe V3?

A: Микропроцесорите од серијата QingKe V3 поддржуваат режим на машина и режим на супервизор како дел од архитектурата RISC-V.

Во текот наview

Микропроцесорите од серијата QingKe V3 се саморазвиени 32-битни MCU микропроцесори за општа намена базирани на стандардна архитектура на инструкциски сет RISC-V. Оваа серија вклучува V3A, V3B и V3C, од кои V3A поддржува продолжување на стандардниот сет на инструкции RV32IMAC и V3B/C поддржува продолжување на стандардниот сет на инструкции RV32IMCB и приспособена екстензија на сет на инструкции XW. И двете поддржуваат множење во еден циклус и делење на хардверот, покрај хардверскиот оџак за притисок (HPE), прекинот без табела (VTF), рационализираните интерфејси за дебагирање со 1 и 2 жици, инструкциите за „WFE“ и други специјални карактеристики. Покрај тоа, поддржува и хардверски пролог/епилог (HPE), без векторска табела (VTF), рационализиран интерфејс за дебагирање со 1-/2 жица и поддршка за инструкции „WFE“.

Карактеристики

Карактеристики Опис
ISA RV32IM[A]C[B]
Гасовод 3
FPU Не е поддржано
Предвидување на гранка Статичка гранка предвидување
Прекини Поддржете вкупно 256 прекини вклучувајќи исклучоци и поддржува VTF
HPE Поддржете 2 нивоа на HPE
Заштита на физичка меморија (PMP) Поддржано
Режим со мала потрошувачка на енергија Поддржете ги режимите за спиење и длабокото спиење и поддржете ги методите за спиење WFI и WFE
Проширен сет на инструкции Поддржано
Отстранување грешки 1/2-жица SDI, стандардно дебагирање RISC-V

Во текот наview

Микропроцесорите од серијата QingKe V3 вклучуваат V3A, V3B и V3C, има некои разлики помеѓу сериите според апликацијата, специфичните разлики се детално опишани во Табела 1-1.

Табела 1-1 Надview на микропроцесорот QingKe V3

Карактеристика Модел ISA Број на нивоа на HPE Прекини гнездење број на нивоа ВТФ број на канали Гасовод Вектор режим на маса Проширена инструкција (XW) Број на области за заштита на меморијата
V3A RV32IMAC 2 2 4 3 Упатство × ×
V3B RV32IMCB 2 2 4 3 Адреса/Упатство ×
V3C RV32IMCB 2 2 4 3 Адреса/Упатство 4

Забелешка: Префрлувањето на задачите на оперативниот систем генерално користи притисок на стек, што не е ограничено на бројот на нивоа

Комплет инструкции

  • Микропроцесорите од серијата QingKe V3 го следат стандардот RISC-V Instruction Set Architecture (ISA). Детална документација за стандардот може да се најде во „Прирачник за комплет инструкции RISC-V, Том I: ISA на ниво на корисник, верзија на документот 2.2“ на RISC-V International webсајт. Комплетот со инструкции RISC-V има едноставна архитектура и поддржува модуларен дизајн, овозможувајќи флексибилни комбинации врз основа на различни потреби, а серијата V3 ги поддржува следните екстензии на множеството инструкции.
  • RV32: 32-битна архитектура, општа намена регистерски бит ширина од 32 бита
  • I: Поддржува операција за обликување, со 32 регистри за обликување
  • M: Поддржете ги инструкциите за обликување множење и делење
  • A: Поддржете атомски команди
  • C: Поддржете 16-битна инструкција за компресија
  • B: Поддршка за инструкции за манипулација со битови
  • XW: 16-битни инструкции за компресија за операции со само-продолжување бајти и половина збор

Забелешка:

  • Подмножеството инструкции поддржани од различни модели може да биде различно, ве молиме погледнете ја Табела 1-1 за детали;
  • Со цел дополнително да ја подобрите густината на кодот, проширете го подмножеството XW, додајте ги следните упатства за компресија c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shop , чија употреба треба да се заснова на компајлерот MRS или синџирот на алатки што тој го обезбедува;
  • V3B поддржува извлекување на инструкција за збор (32 бита) од двоен збор (64 бита) и извлекување на инструкција за збор (32 бита) од резултат на множење (64 бита). Специфичниот метод на употреба може да се однесува на функцијата на библиотеката и да соработува со компајлерот MRS или синџирот на алатки обезбедени од него;
  • V3B/C поддржува инструкции за копирање на меморијата. За специфична употреба, ве молиме погледнете ја функцијата на библиотеката и соработувајте со компајлерот MRS или неговиот синџир на алатки.

Регистрирај сет

RV32I има 32 регистри од x0-x31. Серијата V3 не поддржува екстензија „F“, т.е. нема сет на регистри со подвижна запирка. Во RV32, секој регистар е 32 бита. Табелата 1-2 подолу ги наведува регистрите на RV32I и нивните описи.

Табела 1-2 RISC-V регистри

Регистрирајте се Име на ABI Опис Чувар
x0 нула Хардкодирано 0
x1 ra Врати адреса Повикувач
x2 sp Покажувач на стек Кали
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 Привремен регистар Повикувач

Атрибутот Caller во горната табела значи дека повиканата процедура не ја зачувува вредноста на регистарот, а атрибутот Callee значи дека повиканата постапка го зачувува регистарот.

Режим на привилегии

  • Стандардната архитектура RISC-V вклучува три привилегирани режими: машински режим, режим на супервизор и режим на корисник, како што е прикажано во Табела 1-3 подолу.
  • Машинскиот режим е задолжителен, а другите режими се опционални. За детали, можете да се повикате на Прирачникот за комплетот инструкции RISC-V Volume II: Privileged Architecture“, кој може да се преземе бесплатно од RISC-V International webсајт.

Табела 1-3 Режим на привилегии на архитектурата RISC-V

Код Име Кратенки
0b00 Кориснички режим U
0b01 Модел на супервизор S
0b10 Резервирано Резервирано
0b11 Машински режим M
  • Микропроцесорите од серијата QingKe V3 поддржуваат два од овие привилегирани режими.

Машински режим

  • Машинскиот режим има највисока моќ, програмата во овој режим може да пристапи до сите контролни и статусни регистри (CSR), но исто така може да пристапи и до сите области на физичка адреса.
  • Стандардно за вклучување е во машински режим, кога се враќа извршувањето на mret (инструкција за враќање на машинскиот режим), според статусот на регистарот CSR (регистар за статус на машински режим) во MPP битот, ако MPP = 0b00, тогаш излезете од режимот на машина во режим на корисник, MPP = 0b11, а потоа продолжете да го задржувате режимот на машина.

Кориснички режим

  • Корисничкиот режим има најниска привилегија и во овој режим може да се пристапи само до ограничените регистри за ООП. Кога ќе се појави исклучок или прекин, микропроцесорот оди од режим на корисник во режим на машина за да се справи со исклучоците и прекините.

Регистар за ООП

Серија регистри за CSR се дефинирани во архитектурата RISC-V за контрола и снимање на работната состојба на микропроцесорот. Овие CSR може да се прошират со 4096 регистри користејќи внатрешен посветен 12-битен простор за адресно кодирање. И користете ги високите два CSR[11:10] за да ја дефинирате дозволата за читање/запишување на овој регистар, 0b00, 0b01, 0b10 за дозволено читање/запишување и 0b11 за само за читање. Користете ги двата бита CSR[9:8] за да го дефинирате најниското ниво на привилегии што може да пристапи до овој регистар, а вредноста одговара на режимот на привилегии дефиниран во Табела 1-3. Регистрите за ООП имплементирани во микропроцесорот QingKe V3 се детално опишани во Поглавје 8.

Исклучок

Механизам за исклучок, кој е механизам за пресретнување и справување со „невообичаени оперативни настани“. Микропроцесорите од серијата QingKe V3 се опремени со систем за одговор на исклучоци кој може да се справи со до 256 исклучоци, вклучително и прекини. Кога ќе се појави исклучок или прекин, микропроцесорот може брзо да одговори и да се справи со исклучоците и настаните од прекин.

Видови исклучоци

Хардверското однесување на микропроцесорот е исто без разлика дали се случува исклучок или прекин. Микропроцесорот ја суспендира тековната програма, се префрла на управувачот со исклучоци или прекини и се враќа на претходно суспендираната програма кога обработката ќе заврши. Општо кажано, прекините се исто така дел од исклучоците. Дали точно моменталната појава е прекин или исклучок може да биде viewед преку Машински режим исклучок причина регистар причината. Mcause[31] е полето за прекин, кое се користи за да покаже дали причината за исклучокот е прекин или исклучок. mcause[31]=1 значи прекин, mcause[31]=0 значи исклучок. mcause[30:0] е кодот за исклучок, кој се користи за означување на конкретната причина за исклучокот или бројот на прекини, како што е прикажано во следната табела.

Табела 2-1 V3 шифри за исклучок на микропроцесорот

Прекини Исклучок шифри Синхрони / Асинхрони Причина за исклучок
1 0-1 Резервирано
1 2 Прецизно асинхроно NMI го прекинува
1 3-11 Резервирано
1 12 Прецизно асинхроно SysTick прекинува
1 13 Резервирано
1 14 Синхрони Софтверот го прекинува
1 15 Резервирано
1 16-255 Прецизно асинхроно Надворешен прекин 16-255
0 0 Синхрони Неусогласеност на адресата на инструкциите
0 1 Синхрони Грешка за пристап до командата за преземање
0 2 Синхрони Незаконски инструкции
0 3 Синхрони Точки на прекин
0 4 Синхрони Непорамнување на адресата за пристап до инструкциите за вчитување
0 5 Непрецизно асинхроно Грешка за пристап до командата за вчитување
0 6 Синхрони Неусогласеност на адресата за пристап до инструкциите за продавница/AMO
0 7 Непрецизно асинхроно Грешка за пристап до командата Store/AMO
0 8 Синхрони Повик за животна средина во режим на корисник
0 11 Синхрони Повик за животна средина во машински режим
  • Synchronous“ во табелата значи дека инструкцијата може да се наоѓа токму на местото каде што е извршена, како што е инструкција за прекин или повик, и секое извршување на таа инструкција ќе активира исклучок. „Асинхроно“ значи дека не е можно прецизно да се одреди инструкција, а вредноста на компјутерот на инструкцијата може да биде различна секогаш кога ќе се појави исклучок. „Прецизно асинхроно“ значи дека исклучокот може да се наоѓа точно на границата на инструкцијата, т.е. состојбата по извршувањето на инструкцијата, како што е надворешен прекин. „Непрецизно асинхроно“ значи дека границата на инструкцијата не може прецизно да се лоцира, а можеби и состојбата по инструкцијата е прекината на половина пат од извршувањето, како што е грешка при пристап до меморијата.
  • Пристапот до меморијата бара време, а микропроцесорот обично не го чека крајот на пристапот кога пристапува до меморијата, туку продолжува да ја извршува инструкцијата, кога повторно ќе се појави исклучок од пристапната грешка, микропроцесорот веќе ги извршил следните инструкции и не може да биде прецизно се наоѓа.

Внесување Исклучок

Кога програмата е во процес на нормална работа, ако поради некоја причина, активира исклучок или прекин. Хардверското однесување на микропроцесорот во овој момент може да се сумира на следниов начин.

  1. Суспендирајте го тековниот тек на програмата и преминете на извршување на функциите за ракување со исклучоци или прекини. Адресата на базата за влез и режимот на адресирање на функцијата исклучок или прекин се дефинирани со основниот адресен регистар за исклучок mtvec. mtvec[31:2] ја дефинира основната адреса на функцијата исклучок или прекин. mtvec[1:0] го дефинира режимот на адресирање на функцијата на управувачот. кога mtvec[1:0]=0, сите исклучоци и прекини користат унифициран запис, т.е., кога ќе се појави исклучок или прекин, се врти кон mtvec[31:2] што ја дефинира основната адреса што треба да се изврши. Кога mtvec[1:0]=1, исклучоците и прекините користат режим на векторска табела, т.е., секој исклучок и прекин се нумерирани, а адресата е поместена според прекинот број*4, а кога ќе се појави исклучок или прекин, тој се поместува. до основната адреса дефинирана со mtvec[31:2] + број на прекин*4 Извршување. Табелата за вектор на прекини содржи инструкција за прескокнување до функцијата на управувачот со прекини, или може да бидат други инструкции.
  2. Ажурирајте го регистарот за ООП
    • Кога ќе се внесе исклучок или прекин, микропроцесорот автоматски ги ажурира релевантните CSR регистри, вклучувајќи го и исклучокот од машински режим предизвикува регистар mcause, Регистарот за покажувач за исклучок на режимот на машината mepc, металниот регистар за вредност на исклучок на машината режим и статусот на регистарот за статус на режим на машина.

Ажурирај го mcause

Како што споменавме претходно, по внесувањето исклучок или прекин, неговата вредност го одразува тековниот тип на исклучок или број на прекин, а софтверот може да ја прочита оваа вредност на регистарот за да ја провери причината за исклучокот или да го одреди изворот на прекинот, како што е опишано во Табела 2 -1.

Ажурирајте го mepc

  • Стандардната дефиниција на повратната адреса на микропроцесорот по излегување од исклучок или прекин е зачувана во mepc.
  • Значи, кога ќе се појави исклучок или прекин, хардверот автоматски ја ажурира вредноста на mepc до тековната вредност на компјутерот со инструкција кога ќе се сретне исклучокот или следната претходно извршена инструкциска вредност на компјутерот пред прекинот.
  • Откако ќе се обработи исклучокот или прекинот, микропроцесорот ја користи својата зачувана вредност како повратна адреса за да се врати на локацијата на прекинот за да продолжи со извршувањето.
  • Сепак, вреди да се напомене дека.
  1. MEPC е регистер за читање и запишување, а софтверот исто така може да ја измени вредноста за да ја измени локацијата на покажувачот на компјутерот што работи по враќањето.
  2. Кога ќе се појави прекин, т.е., кога исклучокот причина регистрира mcause[31]=1, вредноста на мапите се ажурира до вредноста на компјутерот на следната неизвршена инструкција во моментот на прекинот.
    • Кога ќе се појави исклучок, вредноста на мапите се ажурира до вредноста на инструкцискиот компјутер на тековниот исклучок кога исклучокот предизвикува регистар mcause[31]=0. Така, во ова време кога се враќа исклучокот, ако се вратиме директно користејќи ја вредноста на mepc, продолжуваме да ја извршуваме инструкцијата што го генерирала исклучокот претходно, и во ова време, ќе продолжиме да го внесуваме исклучокот. Обично, откако ќе се справиме со исклучокот, можеме да ја измениме вредноста на mepc до вредноста на следната неизвршена инструкција и потоа да се вратиме. За прample, ако предизвикаме исклучок поради повик/пауза, откако ќе се справиме со исклучокот, бидејќи отповикувањето/прекинувањето (c.ebreak е 2 бајти) е инструкција од 4 бајти, ни треба софтверот само за да ја измени вредноста на mepc во mepc +4 (c.ebreak е mepc+2) и потоа вратете се.

Ажурирајте го mtval

Кога се внесуваат исклучоци и прекини, хардверот автоматски ќе ја ажурира вредноста на mtval, што е вредноста што го предизвика исклучокот. Вредноста е типична.

  1. Ако исклучок е предизвикан од пристап до меморија, хардверот ќе ја складира адресата на пристапот до меморијата во моментот на исклучокот во mtval.
  2. Ако исклучокот е предизвикан од нелегална инструкција, хардверот ќе го складира кодот за инструкција на инструкцијата во mtval.
  3. Ако исклучокот е предизвикан од точка на прекин на хардверот, хардверот ќе ја складира вредноста на компјутерот на точката на прекин во mtval.
  4. За други исклучоци, хардверот ја поставува вредноста на mtval на 0, како што е пауза, исклучок предизвикан од инструкции за повик.
  5. При внесување на прекинот, хардверот ја поставува вредноста на mtval на 0.

Ажурирајте го mstatus

По внесување исклучоци и прекини, хардверот ажурира одредени битови во mstatus.

  1. MPIE се ажурира на вредноста MIE пред да се внесе исклучокот или прекинот, а MPIE се користи за враќање на MIE откако исклучокот и прекинот ќе завршат.
  2. MPP се ажурира во привилегираниот режим пред да се внесат исклучоци и прекини, а откако ќе завршат исклучоците и прекините, MPP се користи за враќање на претходниот привилегиран режим.
  3. Микропроцесорот QingKe V3 поддржува вгнездување на прекини во режим на машина, а MIE нема да се брише по внесување исклучоци и прекини.

Ажурирајте го режимот на привилегија на микропроцесорот

  • Кога ќе се појават исклучоци и прекини, привилегираниот режим на микропроцесорот се ажурира во Машински режим.

Функции за ракување со исклучоци

  • По внесување исклучок или прекин, микропроцесорот ја извршува програмата од адресата и режимот дефинирани од mtvec регистарот. Кога го користи унифицираниот запис, микропроцесорот зема инструкција за скок од основната адреса дефинирана со mtvec[31:2] врз основа на вредноста на mtvec[1], или ја добива адресата за внесување на функцијата за ракување со исклучок и прекин и наместо тоа оди да ја изврши. . Во овој момент, функцијата за справување со исклучок и прекин може да определи дали причината е исклучок или прекин врз основа на вредноста на mcause[31], а видот и причината за исклучокот или соодветниот прекин може да се процени според кодот за исклучок и соодветно се постапува.
  • Кога се користи основната адреса + број на прекин *4 за поместување, хардверот автоматски скока до векторската табела за да ја добие влезната адреса на функцијата за исклучок или прекин врз основа на бројот на прекинот и скока за да го изврши.

Исклучок Излез

  • Откако ќе заврши управувачот со исклучоци или прекини, потребно е да излезете од сервисната програма. По внесување на исклучоци и прекини, микропроцесорот влегува во Машински режим од Кориснички режим, а обработката на исклучоците и прекините се завршува и во Машинскиот режим. Кога е потребно да излезете од исклучоците и прекините, неопходно е да се користи инструкцијата mret за враќање. Во тоа време, хардверот на микропроцесорот автоматски ќе ги изврши следните операции.
  • Покажувачот на PC се враќа на вредноста на CSR регистарот mepc, т.е. извршувањето започнува на адресата за инструкција зачувана од mepc. Потребно е да се обрне внимание на офсет операцијата на mepc откако ќе се заврши ракувањето со исклучоците.
  • Ажурирајте го статусот на регистарот за CSR, MIE се враќа на MPIE, а MPP се користи за враќање на привилегираниот режим на претходниот микропроцесор.
  • Целиот процес на одговор на исклучок може да се опише на следната слика 2-1.WH-V3-Микропроцесор-сл-1

PFIC и контрола на прекини

  • Микропроцесорот QingKe V3 е дизајниран со програмабилен контролер за брз прекин (PFIC) кој може да управува до 256 прекини, вклучувајќи исклучоци.
  • Првите 16 од нив се фиксирани како внатрешни прекини на микропроцесорот, а останатите се надворешни прекини, односно максималниот број на надворешни прекини може да се продолжи на 240. Нејзините главни карактеристики се следните.
  • 240 надворешни прекини, секое барање за прекин има независни контролни битови за активирање и маски, со посветени битови за статус
  • Програмабилниот приоритет на прекин поддржува 2 нивоа на вгнездување
  • Специјален брз прекин во/надвор од механизмот, хардверско автоматско натрупување и обновување, максимална длабочина на HPE од 2 нивоа
  • Механизам за одговор на прекини без векторска табела (VTF), 2-канален програмабилен директен пристап до векторски адреси на прекини
  • Забелешка: Максималната длабочина на гнездење и длабочината на HPE поддржани од контролорите за прекин се разликуваат за различни модели на микропроцесори, што може да се најдат во Табела 1-1.
  • Векторската табела на прекини и исклучоци е прикажана во Табела 3-1 подолу.

Табела 3-1 Векторска табела со исклучоци и прекини

Број Приоритет Тип Име Опис
0
1
2 -5 Поправено NMI Прекин што не може да се маскира
3 -4 Поправено EXC Исклучок прекин
4
5 -3 Поправено ECALL-M Прекин на повратен повик во машински режим
6-7
8 -2 Поправено ECALL-U Прекин на повратен повик на кориснички режим
9 -1 Поправено ТОЧКА НА ПРЕКРУЖУВАЊЕ Прекин на повратен повик во точка на прекин
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 ВТФ базен регистер за адреси

Забелешка: Важи само за V3A

0x00000000
PFIC_CFGR 0xE000E048 RW Регистар за конфигурација на прекини

Забелешка: Важи само за V3A

0x00000000
PFIC_GISR 0xE000E04C RO Прекинете го регистарот за глобален статус 0x00000002
 

PFIC_VTFIDR

 

0xE000E050

 

RW

Регистар за конфигурација на ИД за прекин на VTF

Забелешка: Важи само за V3B/C.

 

0x00000000

PFIC_VTFADDRRx 0xE000E060

-0xE000E06C

RW VTF x офсет адресен регистар 0xXXXXXXXXX
PFIC_IENRx 0xE000E100

-0xE000E11C

WO Регистар за поставки за овозможување прекини x 0x00000000
PFIC_IRERx 0xE000E180

-0xE000E19C

WO Прекин овозможува чист регистар x 0x00000000
PFIC_IPSRx 0xE000E200

-0xE000E21C

WO Регистер за поставување прекини во очекување x 0x00000000
PFIC_IPRRx 0xE000E280

-0xE000E29C

WO Прекин во очекување чист регистар x 0x00000000
PFIC_IACTRx 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 Прекинот 0-31 овозможува статусен регистар, вкупно 32 статусни бита [n], што покажува #n прекинот овозможува статус

Забелешка: 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 статусни бита [n], што укажува на статусот на чекање на прекин #n
PFIC_IPR1 0xE000E024 RO Прекини 32-63 регистри за статус на чекање, вкупно 32 статусни бита 0x00000000
PFIC_IPR7 0xE000E03C RO Прекин 244-255 во очекување статус регистар, вкупно 32 статусни бита 0x00000000

Две групи на регистри се користат за да се овозможат и де-овозможат соодветните прекини.

Поставување за овозможување прекин и исчистете ги регистрите (PFIC_IENR<0-7>/PFIC_IRER<0-7>)3

Име Пристапете до адресата Пристап Опис Ресетирајте ја вредноста
PFIC_IENR0 0xE000E100 WO Прекинот 0-31 овозможува регистер за поставување, вкупно 32 бита за поставување [n], за дотерување овозможување прекин #n

Забелешка: NMI и EXC се овозможено стандардно

 

 

 

0x00000000

PFIC_IENR1 0xE000E104 WO Прекинете 32-63 за да го овозможите регистарот за поставки, вкупно 32 бита за поставување 0x00000000
PFIC_IENR7 0xE000E11C WO Прекини 224-255 овозможи поставување

регистар, вкупно 32 бита за поставување

0x00000000
 PFIC_IRER0  0xE000E180  WO Прекините 0-31 овозможуваат чист регистар, вкупно 32 чисти бита [n], за прекин #n овозможуваат чист Забелешка: 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

поставки за битови [n], за прекин #n поставка на чекање

 

0x00000000

PFIC_IPSR1 0xE000E204 WO Прекини 32-63 во очекување на регистер за поставување,

вкупно 32 бита за поставување

0x00000000
PFIC_IPSR7 0xE000E21C WO Прекини 224-255 во очекување на поставување

регистар, вкупно 32 бита за поставување

0x00000000
 

PFIC_IPRR0

 

0xE000E280

 

WO

Прекин 0-31 во очекување на јасен регистар, вкупно 32 чисти бита [n], за прекин #n

во очекување јасно

 

0x00000000

PFIC_IPRR1 0xE000E284 WO Прекини 32-63 во очекување на јасен регистар,

вкупно 32 јасни бита

0x00000000
PFIC_IPRR7 0xE000E29C WO Прекини 244-255 во очекување на јасен регистар,

вкупно 32 јасни бита

0x00000000

Кога микропроцесорот овозможува прекин, тој може да се постави директно преку регистарот за прекин на чекање за да го активира прекинот. Користете го прекинувачот во очекување на чист регистар за да го избришете активирањето што чека.

Регистар за статус на активирање прекин (PFIC_IACTR<0-7>)

Име Пристапете до адресата Пристап Опис Ресетирајте ја вредноста
 PFIC_IACTR0  0xE000E300  RO Прекинот 0-31 го активира статусниот регистар со 32 статусни бита [n], што покажува дека прекинот #n се извршува  0x00000000
 PFIC_IACTR1  0xE000E304  RO Прекини 32-63 регистри за статус на активирање, 32 статусни бита во

вкупно

 

0x00000000

 PFIC_IACTR7  0xE000E31C  RO Регистри за статус на активирање прекини 224-255, вкупно 32 статусни бита  0x00000000

Секој прекин има бит за активен статус кој се поставува кога прекинот се внесува и се брише од хардверот кога пазарот се враќа.

Регистри за приоритет на прекин и праг на приоритет (PFIC_IPRIOR<0-7>/PFIC_ITHRESDR)

Име Пристапете до адресата Пристап Опис Ресетирајте ја вредноста
PFIC_IPRIOR0 0xE000E400 RW Прекини 0 приоритетна конфигурација. V3A: [7:4]: Приоритетни контролни битови Ако конфигурацијата не е вгнездена, нема бит за претпочитање Ако вгнездувањето е конфигурирано, битот 7 е бит кој е претходно преземен. [3:0]: Резервирано, фиксирано на 0  V3B: [7:6]: Приоритетни контролни битови Ако конфигурацијата не е вгнездена, не се вгнездени никакви превентивни битови, сите битови се превентирани, но дозволено е да се појават до две нивоа на прекини [5:0]: резервирани, фиксирани на 0
V3C:
[7:5]: Битови за приоритетна контрола
Ако конфигурацијата не е вгнездена, нема превентивни битови
Ако се конфигурирани вгнездени, сите битови се превентирани, но дозволено е да се појават до две нивоа на прекини [4:0]: Резервирано, фиксирано на 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

Забелешка: За прекини со приоритетна вредност ≥ праг, функцијата за услуга за прекин не се извршува кога ќе се појави вис, а кога овој регистар е 0, тоа значи дека регистарот на праг е неважечки.

0x00

Регистар за конфигурација на прекини (PFIC_CFGR)

Име Пристапете до адресата Пристап Опис Ресетирајте ја вредноста
PFIC_CFGR 0xE000E048 RW Регистар за конфигурација на прекини 0x00000000

Овој регистар важи само за V3A, неговите битови се дефинирани како:

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:16] КЛУЧЕН КОД WO Соодветно на различни битови за контрола на целта, соодветните податоци за идентификација на безбедносен пристап треба да се напишат истовремено за да се изменат, а податоците за читање се фиксираат на 0. KEY1 = 0xFA05; KEY2 = 0xBCAF; KEY3 = 0xBEEF. 0
[15:8] Резервирано RO Резервирано 0
7 SYSRESET WO Ресетирање на системот (истовремено запишување на KEY3). Автоматско бришење 0.

Пишувањето 1 е валидно, пишувањето 0 е неважечко.

Забелешка: Истата функција како и битот SYSRESET на регистарот PFIC_SCTLR.

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: вклучено (синхроно запишување на KEY1)

0
0 HWSTKCTRL RW HPE овозможува контрола

1: исклучено; 0: вклучено (синхроно запишување на 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 ГПЕНДСТА RO Дали прекинот во моментов е на чекање.

1: Да; 0: Не.

0
8 ГАКСТА 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 бита од целната адреса на 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 број на прекин [23:0]: ниските 24 бита од целната адреса на VTF, од кои ниските 20 бита се конфигурирани да бидат валидни и [23:20] е фиксирана на 0 .

 V3B/C:

[31:1]: VTF 0 адреса, 2-бајти порамнета [0]:

1: Овозможете VTF 0 канал

0: Оневозможи

 

 

 

 

 

 

 

За V3A: 0x00000000

За V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR1

 

 

 

 

 

 

 

 

0xE000E064

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 1 број на прекин [23:0]: Ниските 24 бита од целната адреса на VTF, од кои ниските 20 бита се конфигурирани да бидат валидни и [23:20] се фиксирани на 0.

 

V3B/C:

[31:1]: VTF 1 адреса, 2-бајти порамнета [0]:

1: Овозможете VTF 1 канал

0: Оневозможи

 

 

 

 

 

 

 

За V3A: 0x00000000

За V3B/C: 0xXXXXXXXXX

 

 

 

 

 

 

 

 

PFIC_VTFADDRR2

 

 

 

 

 

 

 

 

0xE000E068

 

 

 

 

 

 

 

 

RW

V3A: [31:24]: VTF 2 број на прекин [23:0]: ниските 24 бита од целната адреса на VTF, од кои ниските 20 бита се конфигурирани да бидат валидни и [23:20] е фиксирана на 0 .

 

V3B/C:

[31:1]: VTF 2 адреса, 2-бајти порамнета [0]:

1: Овозможете VTF 2 канал

0: Оневозможи

 

 

 

 

 

 

 

За V3A: 0x00000000

За V3B/C: 0xXXXXXXXXX

PFIC_VTFADDRR3 0xE000E06C RW V3A: За V3A:
[31:24]: VTF 3 број на прекин [23:0]: ниските 24 бита од целната адреса на VTF, од кои ниските 20 бита се конфигурирани да важат и [23:20] се фиксираат на 0.

 V3B/C:

[31:1]: VTF 3 адреса, 2-бајти порамнета [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 СЕТЕВЕНТ WO Поставете го настанот да го разбуди случајот WFE. 0
 

4

SEVONPEND RW Кога ќе се случи настан или ќе ја прекине состојбата на чекање, системот може да се разбуди по инструкцијата WFE, или ако инструкцијата WFE не се изврши, системот ќе се разбуди веднаш по следното извршување на инструкцијата.

1: Овозможените настани и сите прекини (вклучувајќи неовозможени прекини) може да го разбудат системот.

0: Само овозможени настани и овозможени

прекините може да го разбудат системот.

 

 

 

0

3 WFITOWFE RW Извршете ја командата WFI како да е WFE.

1: Третирајте ја следната WFI инструкција како WFE инструкција.

0: Нема ефект.

0
2 СПИЈ RW Режим со мала моќност на контролниот систем. 0
1: длабок сон 0: спиење
1 SLEEPONEXI Т RW Статусот на системот по контролата ја напушта програмата за сервисирање на прекини.

1: Системот влегува во режим на ниска потрошувачка на енергија.

0: Системот влегува во главната програма.

0
0 Резервирано RO Резервирано 0

Регистри за ООП поврзани со прекини

Дополнително, следните регистри за ООП имаат значително влијание врз обработката на прекините. Регистар за контрола на системот за прекини (intsyscr)

Овој регистар не е валиден само за V3A:

Име ООП Адреса Пристап Опис Ресетирајте ја вредноста
intsyscr 0x804 URW Прекини системски контролен регистар 0x0000E002

Нејзините луѓе се дефинирани како:

Бит Име Пристап Опис Ресетирајте ја вредноста
 

 

 

31

 

 

 

ЗАКЛУЧУВАЊЕ

 

 

 

УРО

0: Овој регистар може да се чита и пишува во кориснички режим;

1: Овој регистар може да се чита и запишува само во машински режим.

Забелешка: Овој бит за конфигурација важи од

верзија 1.0 наваму.

 

 

 

0

[30:6] Резервирано УРО Резервирано 0x380
 

 

 

 

 

5

 

 

 

 

 

GIHWSTKNEN

 

 

 

 

 

URW1

Глобалниот прекин и исклучувањето на стекот на хардвер се овозможени.

Забелешка: Овој бит често се користи во оперативни системи во реално време. Кога контекстот се менува за време на прекин, поставувањето на овој бит може да го исклучи глобалниот прекин и да го турка стекот на хардверот. Кога ќе заврши прекинувачот за контекст и ќе се врати прекинот, хардверот ќе

автоматски исчистете го овој бит.

 

 

 

 

 

0

4 Резервирано УРО Резервирано 0
[3:2] PMTCFG URW Конфигурација на приоритетни битови за претпочитање:

00: Бројот на битови за превенција е 0; 01: Бројот на битови за превенција е 1; 10: Бројот на битови за превенција е 2; 11: Бројот на битови за превенција е 3; Забелешка: Овој бит за конфигурација важи после 1.0.

0
1 СЛУШАЈ URW Функцијата за вгнездување на прекини е овозможена, а фиксната вредност е 1: 1
0: Оневозможи;

1: Овозможи.

Забелешка: 1. Вистинското ниво на гнездење е контролирано од NEST_LVL во CSR 0xBC1;

2. Може да бидат само верзии по 1.0

напишано.

0 HWSTKEN URW Овозможи стек на хардвер:

0: Функцијата за притискање на магацинот на хардверот е оневозможена;

1: Функцијата за притискање на хардверски стек е овозможена.

0

Основен регистар на адреси со исклучок на машински режим (mtvec)

Име ООП Адреса Пристап Опис Ресетирајте ја вредноста
мтвец 0x305 МРВ Исклучок на базен адресен регистар 0x00000000

Нејзините луѓе се дефинирани како

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:2] BASEADDR[31:2] МРВ Прекинете ја основната адреса на векторската табела, каде

битовите [9:2] се фиксирани на 0.

0
1 РЕЖИМ 1  

МРО

Режим за препознавање на векторска табела: 0: Идентификувајте со инструкција за скок, со ограничен опсег и поддржувајте инструкции без скокање;

1: Идентификувајте по апсолутна адреса, поддржувајте цел опсег, но мора да скокнете.

Забелешка: Овој бит важи само за V3B/C.

0
0 РЕЖИМ 0 МРВ Избор на режим на адреса за внесување прекин или исклучок.

0: Употреба на униформа влезна адреса.

1: Поместување на адресата врз основа на број на прекин *4.

0

За MCU со микропроцесори од серијата V3, MODE0 е конфигуриран да биде стандардно 1 при стартување file, а записите за исклучоци или прекини се поместуваат според прекинот број *4. Забележете дека микропроцесорот V3A складира инструкција за скок на векторската табела, додека микропроцесорот V3B/C може или инструкција за скок или да ја користи апсолутната адреса на функцијата за прекин, која е конфигурирана како апсолутна адреса при стандардното стартување file.

Регистар за конфигурација на микропроцесор (коректор)

Овој регистар е неважечки за V3A:

Име ООП Адреса Пристап Опис Ресетирајте ја вредноста
corecfgr 0xBC0 МРВ Регистар за конфигурација на микропроцесор 0x00000001

Нејзините луѓе се дефинирани како

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:8] Резервирано МРО Резервирано 0
 

 

7

 

 

CSTA_FAULT_IE

 

 

МРВ

Овозможи прекин на грешка во централниот статус:

0: При грешка во статусот, не се генерира прекин NMI;

1: При грешка во статусот, NMI прекин е

генерирана.

 

 

0

6 Резервирано МРО Чувајте го 0. 0
5 IE_REMAP_MK МРВ Мапирањето на регистарот MIE овозможува:

0: CSR адресата 0x800 е регистар само за читање и повратната вредност е вредноста на STATUS;

1: Битовите 3 и 7 од адресата CSR 0x800 се пресликуваат на бит MIE од регистарот STATUS и бит MPIE од регистарот STATUS, соодветно.

 

 

 

 

0

4 Резервирано МРО Резервирано 0
3 ROM_LOOP_ACC МРВ Забрзувањето на јамката за инструкции во областа ROM овозможува:

0: Исклучете ја функцијата за циклично забрзување во областа ROM;

1: Континуираните инструкции со тело на јамка во рамките на 128 бајти ќе бидат целосно забрзани, додека оние со тело на јамка во рамките на 256 бајти ќе бидат делумно забрзани;

0
2 ROM_JUMP_ACC МРВ Овозможено е забрзување на скок со инструкции во областа ROM:

0: Оневозможете го забрзувањето на скокот со инструкции во областа ROM;

1: Овозможете забрзување на скок со инструкции во областа ROM.

0
[1:0] FETCH_MODE МРВ Режим на преземање:

00: Prefetch е исклучено. Функцијата за претходно преземање инструкции е исклучена за да се избегнат неважечки операции за преземање инструкции и има најмногу една валидна инструкција на цевководот на процесорот. Овој модел има најниска потрошувачка на енергија, а неговите перформанси паѓаат за околу 2 ~ 3 пати. 01: Режим на претходно преземање 1. Кога е вклучена функцијата за претходно преземање на инструкции, процесорот ќе продолжи да пристапува до меморијата на инструкциите додека бројот на инструкции што треба да се извршат во внатрешниот тампон на инструкции не надмине одреден број или додека инструкцискиот тампон не е полн, и преземањето на инструкциите ќе биде суспендирано; (Неуспехот во предвидувањето на процесорот ќе доведе до излишна операција за преземање, а во некои случаи, единицата за извршување ќе воведе 0 ~ 2 циклуси на меурчиња, а перформансите на повеќето програми нема да се намалат очигледно); 10: Резервирано;
11: Режим за претходно преземање 2. Кога е вклучена функцијата за претходно преземање на инструкции, процесорот ќе продолжи да пристапува до меморијата на инструкциите, а ако тампонот за инструкции е полн, процесорот ќе продолжи повторно да ја испроба адресата. Овој режим има највисоки перформанси и потрошувачка на енергија. Неуспехот на предвидувањето на процесорот и повторното обид ќе воведат непотребни операции за преземање и може да продолжат да го окупираат пропусниот опсег на меморијата. (За областа ROM, обидот повторно значи неконтинуиран пристап до адресата, па затоа се препорачува да го вклучите ROM_ACC_EN).

0x1

Прекини вгнезден контролен регистар (inestcr)

Овој регистар е неважечки само за V3A:

Име ООП Адреса Пристап Опис Ресетирајте ја вредноста
инвеститор 0xBC1 МРВ Прекинете го вгнездениот контролен регистар 0x00000000

Нејзините луѓе се дефинирани како

Бит Име Пристап Опис Ресетирајте ја вредноста
31 Резервирано МРО Резервирано 0
30 NEST_OV МРВ Бит за знаменце за вгнездено прелевање на прекин/исклучок, напишете 1 за да исчистите:

0: Прекинот не се прелеа; 1: Знаме за прелевање на прекин.

Забелешка: Прелевање на прекин ќе се случи само кога се извршува секундарната услуга за прекин за да се генерира исклучок од инструкции или прекин на NMI. Во овој момент, исклучокот и прекинот NMI влегуваат нормално, но магацинот на процесорот се прелева, така што не можете да излезете од овој исклучок и

NMI прекин.

0
[29:12] Резервирано МРО Резервирано 0
[11:8] NEST_STA МРО Вгнезден бит за знаменце за статус:

0000: Без прекин;

0001: Прекин на ниво 1;

0011: прекин на ниво 2 (вгнездување на 1 ниво);

0
0111: Прекин на ниво 3 (прелевање);

1111: Прекин на ниво 4 (прелевање).

[7:2] Резервирано МРО Резервирано 0
[1:0] NEST_LVL МРВ Ниво на гнездење:

00: Вгнездувањето е забрането и функцијата за гнездење е исклучена;

01: Вгнездување на прво ниво, кое ја вклучува функцијата за гнездење;

Друго: Неважечки.

Забелешка: Напишете 10 или 11 на ова поле и полето ќе биде поставено на 01. Кога пишувате 11 на ова поле, прочитајте го овој регистар за да го добиете највисокото ниво на вгнездување на чипот.

0

Регистар за овозможување на глобален прекин во режим на корисник (стажант)

Овој регистар е неважечки само за V3A:

Име ООП Адреса Пристап Опис Ресетирајте ја вредноста
гинтенр 0x800 URW Регистар за овозможување глобален прекин 0x00000000

Овој регистар се користи за контрола на овозможувањето и маската на глобалниот прекин. Овозможувањето и маската на глобалниот прекин во машинскиот режим може да се контролираат со битовите MIE и MPIE во статус, но овој регистар не може да се ракува во кориснички режим.
Глобалниот регистер за овозможување прекини gintenr е мапирање на MIE и MPIE во mstatus и може да се користи за поставување и чистење на MIE и MPIE со користење на gintenr во кориснички режим.

Секој од нив е дефиниран како:

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:13] Резервирано УРО Резервирано 0
[12:11] MPP УРО Влезете во привилегиран режим пред прекин. 0
[10:8] Резервирано УРО Резервирано 0
7 МПИЕ URW Кога е овозможено 0xBC0(CSR)bit5, овој бит

може да се чита и пишува во кориснички режим.

0
[6:4] Резервирано УРО Резервирано 0
3 МИЕ URW Кога е овозможено 0xBC0(CSR)bit5, овој бит

може да се чита и пишува во кориснички режим.

0
[1:0] Резервирано УРО Резервирано 0

Прекинете го вгнездувањето

Во врска со прекинот, конфигурацискиот регистар PFIC_CFGR и регистарот за приоритет на прекин PFIC_IPRIOR, може да се дозволи вгнездување на прекини. Овозможете вгнездување во регистарот за конфигурација на прекини (Вгнездувањето е стандардно вклучено за микропроцесорите од серијата V3) и конфигурирајте го приоритетот на соодветниот прекин. Колку е помала вредноста на приоритетот, толку е поголем приоритетот. Колку е помала вредноста на битот за претпочитање, толку е поголем приоритетот за превенција. Ако има прекини кои висат во исто време под истиот приоритет на превентива, микропроцесорот прво реагира на прекинот со вредност со помал приоритет (повисок приоритет).

Хардверски пролог/епилог (HPE)

  • Кога ќе се појави исклучок или прекин, микропроцесорот го запира тековниот тек на програмата и се префрла на извршување на функцијата за справување со исклучоци или прекини, местото на тековниот тек на програмата треба да се зачува. Откако ќе се врати исклучокот или прекинот, неопходно е да се врати страницата и да се продолжи со извршувањето на запрениот проток на програмата. За микропроцесорите од серијата V3, „локацијата“ овде се однесува на сите регистри зачувани во повикувачот во Табела 1-2.
  • Микропроцесорите од серијата V3 поддржуваат хардверско автоматско зачувување со еден циклус на 16 обликувани регистри зачувани од повикувачи во внатрешен оџак што не е видлив за корисникот. Кога ќе се врати исклучок или прекин, хардверскиот единечен циклус автоматски ги обновува податоците од внатрешната област на стек во регистрите во форма на 16. HPE поддржува гнездење до 2 нивоа длабоко.
  • Шема на магацинот за притисок на микропроцесорот е прикажана на следната слика.WH-V3-Микропроцесор-сл-2

Забелешка:

  1. Функциите за прекини кои користат HPE треба да се компајлираат со помош на MRS или неговиот обезбеден синџир на алатки и функцијата за прекин треба да се декларира со __атрибут__((interrupt(“WCH-Interrupt-fast”))).
  2. Функцијата за прекин користејќи stack push се декларира со __атрибут__((interrupt())).

Без векторска табела (VTF)

  • Програмабилниот контролер за брз прекин (PFIC) обезбедува 4 VTF канали, т.е. директен пристап до влезот на функцијата за прекин без да помине низ процесот на пребарување на векторската табела за прекини.
  • Каналот VTF може да се овозможи со запишување на неговиот број за прекин, адресата на базата на функцијата за прекин и офсет адресата во соодветниот регистар на PFIC контролер додека нормално се конфигурира функцијата за прекин.
  • Процесот на одговор на PFIC за брзи и без табели прекини е прикажан на Слика 3-2 подолу.WH-V3-Микропроцесор-сл-3

Заштита на физичка меморија PMP

  • Со цел да се подобри безбедноста на системот, модулот за заштита на физичка меморија (PMP) е дизајниран според стандардот за архитектура RISC-V за микропроцесорите од серијата V3 од планински јачмен. Поддржано е управувањето со правата за пристап до 4 физички региони. Дозволите вклучуваат атрибути за читање (R), запишување (W) и извршување (X), а должината на заштитената област може да се постави на најмалку 4 бајти. PMP модулот секогаш стапува на сила во кориснички режим, но може да стапи на сила опционално со заклучување на атрибутот (L) во машинскиот режим.
  • Ако пристапот го прекрши тековното ограничување на дозволата, ќе предизвика ненормален прекин. Модулот PMP вклучува четири групи на 8-битни конфигурациски регистри (една група од 32-битни) и четири групи на адресни регистри, до кои сите треба да се пристапат во машински режим преку инструкции за CSR.
  • Забелешка: Бројот на заштитени подрачја поддржани од PMP во различни модели на микропроцесори може да биде различен, а различен е и бројот поддржан од pmpcfg и pmpaddr регистрите. Видете Табела 1-1 за детали.

PMP Регистерски сет

Списокот на CSR регистри поддржани од PMP модулот на микропроцесорот V3 е прикажан во Табела 4-1 подолу.

Табела 4-1 Збир на регистри на PMP модули

Име Адреса за ООП Пристап Опис Ресетирајте ја вредноста
pmpcfg0 0x3A0 МРВ PMP конфигурациски регистар 0 0x00000000
pmpaddr0 0x3B0 МРВ Регистар за PMP адреса 0 0xXXXXXXXXX
pmpaddr1 0x3B1 МРВ Регистар за PMP адреса 1 0xXXXXXXXXX
pmpaddr2 0x3B2 МРВ Регистар за PMP адреса 2 0xXXXXXXXXX
pmpaddr3 0x3B3 МРВ Регистар за PMP адреса 3 0xXXXXXXXXX

pmp

п Неговиот формат е прикажан во следната табела 8-4.

Табела 4-2 pmpcfg0 регистарWH-V3-Микропроцесор-сл-4

pmpcfg се користи за конфигурирање на областа I и нејзината бит дефиниција е опишана во следната табела 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 бита од 34-битна физичка адреса, а нејзиниот формат е прикажан во следната табела 4-4 .
Целиот физички адресен простор на V3 микропроцесорот е 4G, така што горните два бита од овој регистар не се користат.

Табела 4-4 pmpaddr WH-V3-Микропроцесор-сл-5

Кога е избран NAPOT, нискиот бит од регистерот за адреси исто така се користи за означување на големината на тековната заштитна област, како што е прикажано во следната табела, каде што 'y' е бит од регистарот.
Табела 4-5 Табела за врски помеѓу конфигурацијата на PMP и регистарот за адреси и заштитеното подрачје.

pmpaddr pmpcfg. А Соодветна основна адреса и големина
yyyy…yyyy NA4 Со „yy…yyyy00“ како основна адреса, областа од 4 бајти е заштитена.
yyyy…yyy0 НАПОТ Со „yy…yyyy000“ како основна адреса, областа од 8 бајти е заштитена.
yyyy…yy01 НАПОТ Со „yy…yy0000“ како основна адреса, областа од 16 бајти е заштитена.
yyyy…y011 НАПОТ Со „yy…y00000“ како основна адреса, областа од 16 бајти е заштитена.
yyyy01…111 НАПОТ Со „y0…000000“ како основна адреса, областа од 231 бајти е заштитена.
yy011…111 НАПОТ Заштитете ја целата област од 232 бајти.

Заштитен механизам

X/W/R во pmpcfg се користи за поставување на органот за заштита на областа I, а прекршувањето на релевантниот орган ќе предизвика соодветен исклучок:

  1. Кога се обидувате да преземете инструкции во областа PMP без овластување за извршување, тоа ќе предизвика исклучок од грешка при преземање на инструкции (mcause=1).
  2. Кога се обидувате да запишете податоци во областа PMP без писмена дозвола, тоа ќе предизвика исклучок од грешка (mcause=7) во пристапот до инструкциите за продавница.
  3. Кога се обидувате да прочитате податоци во областа PMP без дозвола за читање, тоа ќе предизвика ненормална грешка при пристапот до меморијата (mcause=5) за инструкцијата за вчитување.

А во pmpcfg се користи за поставување на заштитниот опсег и порамнување на адреси на регионот I и за заштита на меморијата на A_ADDR ≤ регион < i > < B_ADDR (и A_ADDR и B_ADDR се бара да се порамнат во 4 бајти):

  1. Ако B _ ADDR–A_ADDR = = 22, режимот NA4 е усвоен;
  2. Ако B _ ADDR–A_ADDR = = 2(G+2), G≥1, а _ адресата е 2(g+2), методот NAPOT е усвоен;
  3. Во спротивно, режимот ТОП е усвоен.

Табела 4-6 Методи за совпаѓање на PMP адреса

Вредност Име Опис
0b00 ИСКЛУЧЕНО Нема област за заштита
0b01 TOR Заштита на горната усогласена област.

Под pmp

pmpaddri = B_ADDR >> 2.

Забелешка: Ако областа 0 на PMP е конфигурирана како TOR режим (i=0), долната граница на заштитната област е 0 адреса, т.е. 0 ≤ addr < pmpaddr0, сето тоа е во опсегот што одговара.

0b10 NA4 Фиксна заштита на областа од 4 бајти.

pmp

0b11 НАПОТ Заштитете го регионот 2(G+2) со G ≥ 1, кога A_ADDR е порамнет 2(G+2). pmpaddri = ((A_ADDR|(2(G+2)-1)) &~(1< >1.
  • L битот во pmp
  • Микропроцесорите од серијата QingKe V3 поддржуваат заштита на повеќе зони. Кога истата операција се совпаѓа со повеќе зони во исто време, зоната со помалиот број се совпаѓа прво.

Системски тајмер (SysTick)

  • Микропроцесорот од серијата QingKe V3 е дизајниран со 32-битен или 64-битен бројач (SysTick) внатре. Неговиот извор на часовник е системскиот часовник или неговата 8-фреквентна поделба, а V3A поддржува само 8-фреквентна поделба.
  • Може да обезбеди временска база, тајминг и време за мерење за оперативен систем во реално време. Различни типови на регистри вклучени во тајмерот имаат различни адреси за мапирање, како што е прикажано во следните табели 5-1 и 5-2.

Табела 5-1 Список на регистри V3A SysTick

Име Пристапете до адресата Опис Ресетирајте ја вредноста
STK_CTLR 0xE000F000 Регистар за контрола на системскиот бројач 0x00000000
STK_CNTL 0xE000F004 Системски бројач низок регистар 0xXXXXXXXXX
STK_CNTH 0xE000F008 Системски бројач висок регистар

Забелешка: Важи само за V3A.

0xXXXXXXXXX
STK_CMPLR 0xE000F00C Системски број споредбена вредност низок регистар 0xXXXXXXXXX
STK_CMPHR 0xE000F010 Системски број споредбена вредност висока регистер

Забелешка: Важи само за V3A.

0xXXXXXXXXX

Табела 5-2 V3 SysTick регистарски список на други модели

Име Пристапете до адресата Опис Ресетирајте ја вредноста
STK_CTLR 0xE000F000 Регистар за контрола на системскиот бројач 0x00000000
STK_SR 0xE000F004 Регистар за статус на системски бројач 0x00000000
STK_CNTL 0xE000F008 Нискиот регистар на системскиот бројач 0xXXXXXXXXX
STK_CMPLR 0xE000F010 Брои споредбена вредност низок регистар 0xXXXXXXXXX

Секој регистар е детално опишан на следниов начин.

Регистар за контрола на системскиот бројач (STK_CTLR)

Табела 5-3 SysTick контролни регистри

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:5] Резервирано RO Резервирано 0
 

 

4

 

 

РЕЖИМ

 

 

RW

Режим на броење: 1: Одбројување;

0: Брои нагоре.

Забелешка: Неважечки за V3A.

 

 

0

 

 

 

3

 

 

 

STRE

 

 

 

RW

Бит за овозможување на автоматско повторно вчитување:

1: Повторно брои од 0 откако ќе се преброи до споредбената вредност и повторно брои од споредбената вредност по одбројувањето до 0;

0: Продолжете со броење нагоре/надолу.

Забелешка: Неважечки за V3A.

 

 

 

0

 

 

2

 

 

STCLK

 

 

RW

Бит за избор на извор на контрачасовник:

1: HCLK како временска основа; 0: HCLK/8 како временска основа.

Забелешка: не е валиден за V3A, кој само поддржува

HCLK/8 како временска основа.

 

 

0

1 САЈТОТ RW Контролни битови за овозможување на контра прекин: 0
1: Овозможи прекин на бројачот; 0: Оневозможи прекин на бројачот.

Забелешка: Неважечки за V3A.

0 СТЕ RW Системскиот бројач овозможува контролен бит. 1: Овозможете системски бројач STK;

0: Исклучете го системскиот бројач STK и бројачот престанува да брои.

0

Регистар за статус на системски бројач (STK_SR)

Овој регистар не се однесува на V3A.

Табела 5-4 SysTick бројач низок регистар

Бит Име Пристап Опис Ресетирајте ја вредноста
 

 

31

 

 

SWIE

 

 

RW

Овозможување на активирањето за прекин на софтверот (SWI): 1: Активирање на прекин на софтверот;

0: Исклучете го чкрапалото.

Забелешка: Овој бит мора да се исчисти откако ќе влезе во прекинот на софтверот, инаку секогаш ќе се активира.

 

 

0

[30:1] Резервирано RO Резервирано 0
 

 

0

 

 

CNTIF

 

 

RW

Знаме за споредба на броење, јасно напишете 0, напишете 1 не е валидно:

1: Бројте до споредбената вредност и одбројте до 0;

0: Споредбената вредност не е постигната.

 

 

0

Низок регистар на системски бројач (STK_CNTL)

Табела 5-5 SysTick бројач низок регистар

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:0] CNTL RW Тековната вредност на бројачот е 32 бита помала. За V3A, овој регистар може да се чита како 8-битен /16-битен

/32-битна, но може да се запише само како 8-битна, и друго

моделите не се ограничени.

0xXXXXXX XXX

Забелешка: Регистрирајте STK_CNTL и регистрирајте STK_CNTH во V3A заедно сочинуваат 64-битен системски бројач.

Висок регистер на системски бројач (STK_CNTH)

Табела 5-6 SysTick бројач висок регистар

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:0] CNTH RW Тековната вредност на бројачот е 32 бита поголема. Овој регистар може да се чита со 8-битни/16-битни/32-битни, но може да се запише само со 8-битни.

Забелешка: Важи само за V3A.

0xXXXXXX XXX

Забелешка: Регистрирајте STK_CNTL и регистрирајте STK_CNTH во V3A заедно сочинуваат 64-битен системски бројач.

Споредбена вредност на системскиот број низок регистар (STK_CMPLR)

Табела 5-7 SysTick споредбена вредност низок регистар

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:0] CMPL RW Поставете ја вредноста за споредба на бројачот на 32 бита пониско. Кога вредноста на CMP и вредноста на CNT се еднакви, ќе се активира STK прекин. За V3A, овој регистар може да се чита како 8-битен /16-битен /32-битен, но може да биде само

напишани како 8-битни, а другите модели не се ограничени.

0xXXXXXX XXX

Забелешка: Регистарот STK_CMPLR и регистарот STK_CMPHR во V3A заедно ја сочинуваат 64-битната споредбена вредност на бројачот.

Системски број споредбена вредност на висок регистар (STK_CMPHR)

Табела 5-8 SysTick споредбена вредност висок регистар

Бит Име Пристап Опис Ресетирајте ја вредноста
[31:0] CMPH RW Поставете ја вредноста за споредба на бројачот 32 бита повисока. Прекинот STK ќе се активира кога вредноста на CMP и вредноста на CNT се еднакви.

Овој регистар може да се чита со 8-битни/16-битни/32-битни, но може да се запише само со 8-битни.

Забелешка: Важи само за V3A.

0xXXXXXX XXX

Забелешка: Регистарот STK_CMPLR и регистарот STK_CMPHR во V3A заедно ја сочинуваат 64-битната споредбена вредност на бројачот.

Поставки за ниска моќност на процесорот

  • Микропроцесорите од серијата QingKe V3 поддржуваат состојба на мирување преку инструкција WFI (Wait for Interrupt) за да се постигне мала статичка потрошувачка на енергија.
  • Заедно со системскиот контролен регистар на PFIC (PFIC_SCTLR), може да се имплементираат различни режими на спиење и WFE инструкции.

Влезете во Sleep

  • Микропроцесорите од серијата QingKe V3 можат да спијат на два начина, Wait for Interrupt (WFI) и Wait For Event (WFE). Методот WFI значи дека микропроцесорот оди во мирување, чека прекин да се разбуди и потоа се буди до соодветниот прекин за да се изврши. Методот WFE значи дека микропроцесорот оди во мирување, чека настан да се разбуди и се буди за да продолжи со извршувањето на претходно запрениот програмски тек.
  • Стандардниот RISC-V поддржува WFI инструкции, а командата WFI може да се изврши директно за да влезе во мирување со методот WFI. За методот WFE, битот WFITOWFE во регистерот за контрола на системот PFIC_SCTLR се користи за контрола на следните WFI команди како WFE обработка за да се постигне WFE методот за внесување на мирување.
  • Длабочината на спиење се контролира според битот SLEEPDEEP во PFIC_SCTLR.
  • Ако SLEEPDEEP во регистарот PFIC_SCTLR се исчисти на нула, микропроцесорот влегува во режим на мирување и на внатрешниот часовник на единицата му е дозволено да се исклучи освен SysTick и дел од логиката за будење.
  • Ако е поставен SLEEPDEEP во регистарот PFIC_SCTLR, микропроцесорот влегува во режим на длабок сон и на сите клеточни часовници им е дозволено да се исклучат.
  • Кога микропроцесорот е во режим за отстранување грешки, не е можно да се влезе каков било вид на режим на мирување.

Будење во сон

Микропроцесорите од серијата QingKe V3 може да се разбудат по спиење поради WFI и WFE на следниве начини.

Откако методот WFI ќе заспие, може да се разбуди

  1. Микропроцесорот може да се разбуди од изворот на прекин на кој реагира контролорот за прекини. По будењето, микропроцесорот прво ја извршува функцијата за прекин.
  2. Влезете во режим на мирување, барањето за отстранување грешки може да го натера микропроцесорот да се разбуди и да влезе во длабок сон, барањето за отстранување грешки не може да го разбуди микропроцесорот.

Откако методот WFE ќе заспие, микропроцесорот може да се разбуди со следново.

  1. Внатрешни или надворешни настани, кога нема потреба да го конфигурирате контролорот за прекини, разбудете се и продолжете да ја извршувате програмата.
  2. Ако е овозможен извор на прекин, микропроцесорот се буди кога се генерира прекин, а по будењето, микропроцесорот прво ја извршува функцијата за прекин.
  3. Ако битот SEVONPEND во PFIC_SCTLR е конфигуриран, контролорот за прекин не го овозможува прекинот, но кога ќе се генерира нов сигнал на чекање за прекин (претходно генерираниот сигнал на чекање не стапува во сила), тој исто така може да го натера микропроцесорот да се разбуди и соодветното знаменце за прекин на чекање треба да се избрише рачно по будењето.
  4. Барањето за отстранување грешки во режим на мирување може да го натера микропроцесорот да се разбуди и да влезе во длабок сон, барањето за отстранување грешки не може да го разбуди микропроцесорот.
  • Дополнително, состојбата на микропроцесорот по будењето може да се контролира со конфигурирање на битот SLEEPONEXIT во PFIC_SCTLR.
  • SLEEPONEXIT е поставен и инструкцијата за враќање на прекинот на последното ниво (mret) ќе го активира режимот на мирување WFI.

SLEEPONEXIT се брише без ефект.

Различни производи на MCU опремени со микропроцесори од серијата V3 можат да усвојат различни режими на мирување, да исклучуваат различни периферни уреди и часовници, да имплементираат различни политики за управување со енергија и методи за будење според различни конфигурации на PFIC_SCTLR и да реализираат различни режими со мала моќност.

Поддршка за дебагирање

  • Микропроцесорите од серијата QingKe V3 вклучуваат хардверски модул за отстранување грешки што поддржува сложени операции за отстранување грешки. Кога микропроцесорот е суспендиран, модулот за отстранување грешки може да пристапи до GPR, CSR, меморија, надворешни уреди, итн. на микропроцесорот преку апстрактни команди, инструкции за распоредување на програмскиот бафер итн. Модулот за отстранување грешки може да го прекине и продолжи функционирањето на микропроцесорот.
  • Модулот за отстранување грешки ја следи спецификацијата RISC-V External Debug Support Version0.13.2, детална документација може да се преземе од RISC-V International webсајт.

Модул за отстранување грешки

  • Модулот за отстранување грешки во микропроцесорот, способен да врши операции за отстранување грешки издадени од домаќинот за отстранување грешки, вклучува.
  • Пристап до регистри преку интерфејсот за отстранување грешки
  • Ресетирање, суспендирање и продолжување на микропроцесорот преку интерфејсот за отстранување грешки
  • Меморија за читање и пишување, регистри на инструкции и надворешни уреди преку интерфејсот за отстранување грешки
  • Распоредете повеќе произволни инструкции преку интерфејсот за отстранување грешки
  • Поставете точки на прекин на софтверот преку интерфејсот за отстранување грешки
  • Поставете хардверски точки на прекин преку интерфејсот за отстранување грешки
  • Поддржете автоматско извршување на апстрактната команда
  • Поддржете дебагирање во еден чекор
  • Забелешка: V3A не поддржува хардверски точки на прекин, V3B хардверски точки на прекин поддржуваат совпаѓање на адреси на инструкции, а точките на прекин на хардверот V3C поддржуваат совпаѓање на адреси на инструкции и адреси на податоци.
  • Внатрешните регистри на модулот за дебагирање користат 7-битен адресен код, а следните регистри се имплементирани во микропроцесорите од серијата QingKe V3.

Табела 7-1 Список на регистар на модули за отстранување грешки

Име Пристапете до адресата Опис
податоци0 0x04 Регистарот на податоци 0, може да се користи за привремено складирање на податоци
податоци1 0x05 Регистарот на податоци 1, може да се користи за привремено складирање на податоци
деконтрола 0x10 Регистер за контрола на модулот за отстранување грешки
dmstatus 0x11 Регистар за статус на модул за отстранување грешки
хартиинфо 0x12 Регистар за статус на микропроцесор
апстракти 0x16 Регистер за статус на апстрактна команда
команда 0x17 Регистер за апстрактни команди
апстрактно автоматско 0x18 Автоматско извршување на апстрактната команда
прогбуф0-7 0х20-0х27 Инструкциски кеш регистри 0-7
haltsum0 0x40 Паузирајте го статусниот регистар
  • Домаќинот за отстранување грешки може да го контролира суспендирањето, продолжувањето, ресетирањето, итн. на микропроцесорот со конфигурирање на регистерот за деконтрола. Стандардот RISC-V дефинира три типа апстрактни команди: пристапен регистар, брз пристап и меморија за пристап.
  • Микропроцесорот QingKe V3A поддржува само пристап до регистарот, другите модели поддржуваат пристап до регистрација и меморија, но не и брз пристап. Пристап до регистри (GPR, CSR) и континуиран пристап до меморија може да се реализира со апстрактни команди.
  • Модулот за отстранување грешки имплементира 8 регистри на кешот на инструкции progbuf0-7, а домаќинот за отстранување грешки може да кешира повеќе инструкции (кои можат да бидат компресирани инструкции) во баферот и може да избере да продолжи со извршување на инструкциите во регистрите за кеш на инструкции по извршувањето на апстрактната команда или да изврши директно кешираните инструкции.
  • Забелешка дека последната инструкција во програмите треба да биде инструкција „ebreak“ или „c.ebreak“. Пристапот до складирање, периферни уреди итн. е исто така возможен преку апстрактни команди и инструкции кеширани во програмите.
  • Секој регистар е детално опишан на следниов начин.
  • Регистар на податоци 0 (податоци0)

Табела 7-2 Дефиниција на регистарот на податоци

Бит Име Пристап Опис Ресетирај вредност
[31:0] податоци0 RW Регистар на податоци 0, кој се користи за привремено складирање на податоци 0

Регистар на податоци 1 (податоци1)

Табела 7-3 data1 регистер дефиниција

Бит Име Пристап Опис Ресетирај вредност
[31:0] податоци1 RW Регистар на податоци 1, кој се користи за привремено складирање на податоци 0

Регистер за контрола на модулот за отстранување грешки (деконтрола)

Овој регистар го контролира паузирањето, ресетирањето и продолжувањето на микропроцесорот. Домаќинот за отстранување грешки запишува податоци во соодветното поле за да постигне пауза (haltreq), ресетирање (ndmreset), продолжување (resumereq). Го опишуваш следново.

Табела 7-4 деконтрола дефиниција на регистарот

Бит Име Пристап Опис Ресетирај вредност
31 haltreq WO 0: Исчистете го барањето за пауза

1: Испратете барање за пауза

0
30 resumereq W1 0: Неважечки

1: Вратете го тековниот микропроцесор

Забелешка: Напиши 1 е валиден и хардверот се брише откако ќе се врати микропроцесорот

0
29 Резервирано RO Резервирано 0
28 ackhavereset W1 0: Неважечки

1: Избришете го битот за статус на берба на микропроцесорот

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 allhavereset RO 0: Неважечки

1: Ресетирање на микропроцесорот

0
18 anyhaverset RO 0: Неважечки

1: Ресетирање на микропроцесорот

0
17 allresumeack RO 0: Неважечки

1: Ресетирање на микропроцесорот

0
16 anyresumeack RO 0: Неважечки

1: Ресетирање на микропроцесорот

0
[15:14] Резервирано RO Резервирано 0
13 алувијални RO 0: Неважечки

1: Микропроцесорот не е достапен

0
12 каква било корист RO 0: Неважечки

1: Микропроцесорот не е достапен

0
11 сите трчаат RO 0: Неважечки

1: Микропроцесорот работи

0
10 секое трчање RO 0: Неважечки

1: Микропроцесорот работи

0
9 запрен RO 0: Неважечки

1: Микропроцесорот е во суспензија

0
8 било запрено RO 0: Неважечки

1: Микропроцесорот излезе од суспензија

0
7 автентицирани  

RO

0: Потребна е автентикација пред да се користи модулот за отстранување грешки

1: Модулот за дебагирање е сертифициран

 

0x1

[6:4] Резервирано RO Резервирано 0
[3:0] верзија RO Верзија за архитектура за поддршка на системот за дебагирање 0010: V0.13 0x2

Регистар за статус на микропроцесор (hartinfo)

Овој регистар се користи за да обезбеди информации за микропроцесорот на домаќинот за отстранување грешки и е регистар само за читање со секој бит опишан на следниов начин.

Табела 7-6 Дефиниција на хартиинфо регистарот

Бит Име Пристап Опис Ресетирај вредност
[31:24] Резервирано RO Резервирано 0
[23:20] гребење RO Број на поддржани регистри за гребење 0x3
[19:17] Резервирано RO Резервирано 0
16 Пристап до податоци RO 0: Регистарот на податоци е мапиран на адресата за ООП

1: Регистарот на податоци е мапиран на мемориската адреса

0x1
[15:12] големината на податоците RO Број на регистри на податоци 0x2
  [11:0] додадени податоци  

RO

Офсет адресата на податочниот регистар data0,

чија основна адреса е 0xe0000000, е предмет на специфично читање.

0xXXX

Апстрактна командна контрола и статус регистри (апстракти)

Овој регистар се користи за означување на извршувањето на апстрактната команда. Домаќинот за отстранување грешки може да го прочита овој регистар за да знае дали последната апстрактна команда е извршена или не и може да провери дали е генерирана грешка при извршувањето на апстрактната команда и видот на грешката, што е детално опишано на следниов начин.

Табела 7-7 апстракти ги регистрира дефинициите

Бит Име Пристап Опис Ресетирај вредност
[31:29] Резервирано RO Резервирано 0
[28:24] progbufsize RO Го означува бројот на програмски баферски програми

кеш регистри

0x8
[23:13] Резервирано RO Резервирано 0
12 зафатен RO 0: Ниту една апстрактна команда не се извршува

1: Постојат апстрактни команди кои се извршуваат

Забелешка: По извршувањето, хардверот се брише.

 

0

11 Резервирано RO Резервирано 0
[10:8] cmder RW Тип на грешка во апстрактната команда 000: Нема грешка

001: Извршување на апстрактна команда за пишување во команда, апстракти, апстрактни автоматски регистри или читање и пишување на податоци и прогбаф регистри

010: Не поддржува моментална апстрактна команда 011: Извршување на апстрактна команда со исклучок 100: Микропроцесорот не е суспендиран или недостапен и не може да изврши апстрактни команди 101: Грешка во магистралата

110: Грешка во бит за парност при комуникација 111: Други грешки

Забелешка: за пишување битови 1 се користи за да се избрише нулата.

 

 

 

 

 

 

 

0

[7:4] Резервирано RO Резервирано 0
[3:0] попуст RO Број на регистри на податоци 0x2
  • Домаќините за дебагирање можат да пристапат до GPR, CSR регистри и меморија со запишување различни конфигурациски вредности во апстрактниот команден регистар.
  • При пристап до регистрите, битовите на командниот регистар се дефинираат на следниов начин.
  • Табела 7-8 Дефиниција на команден регистар при пристап до регистри
Бит Име Пристап Опис Ресетирај вредност
[31:24] тип cmd WO Апстрактна команда тип 0: Регистар за пристап;

1: Брз пристап (не е поддржан);

2: Пристап до меморија.

0
23 Резервирано WO Резервирано 0
[22:20] аарсизираат WO Пристапете до широчина на бит на податоци од регистарот 000: 8-битни

001: 16-битен

010: 32-битен

0
011: 64-битен (не е поддржан) 100: 128-битен (не е поддржан)

Забелешка: При пристап до регистри со подвижна запирка

FPRs, поддржан е само 32-битен пристап.

19 aarpostincrement WO 0: Нема ефект

1: Автоматски зголемете ја вредноста на regno по пристапот до регистарот

 

0

18 пост извршен WO 0: Нема ефект

1: Извршете ја апстрактната команда и потоа извршете ја командата во 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

При пристап до меморијата, битовите во командниот регистар се дефинирани на следниов начин.

Табела 7-9 Дефиниција на команда Регистрирај се кога пристапуваш до меморија

Бит Име Пристап Опис Ресетирај вредност
[31:24] тип cmd WO Апстрактна команда тип 0: Регистар за пристап;

1: Брз пристап (не е поддржан);

2: Пристап до меморија.

0
23 аамвиртуелен WO 0: Пристап до физичка адреса;

1: Пристапете до виртуелната адреса.

0
[22:20] големина на раката WO Пристапете до мемориски податочен бит ширина 000: 8-битна;

001: 16-битен;

010: 32-битен;

011: 64-битен (не е поддржан); 100: 128-битни (не е поддржано);

 

0

19 aampостинкремент WO 0: Нема влијание;

1: По успешното пристапување до меморијата, зголемете ја адресата зачувана во регистарот data1 со бројот на бајти што одговараат на ширината на битот конфигурирана според големината на раката.

Aamsize=0, пристапено со бајт, податоци1 плус 1.

Aamsize=1, пристапено со половина збор, data1 плус 2. aamsize=2, пристапено со бит, data1 плус 4.

 

0

18 пост извршен WO 0: Нема влијание;

1: Извршете ја командата во progbuf откако ќе ја извршите апстрактната команда.

0
17 Резервирај RO Резервирано 0
 

 

16

 

 

пишуваат

 

 

WO

0: Читајте податоци од адресата наведена од data1 до data0

1: Запишете податоци во data0 на адресата наведена од

податоци1.

 

 

0

 

 

 

 

 

 

[15:14]
 

 

 

 

 

 

специфични за целта

 

 

 

 

 

 

WO

Дефиниција на режимот на читање и пишување Напиши:

00, 01: пишувајте директно во меморијата;

10: Откако податоците во data0 се ИЛИ со податочните битови во меморијата, резултатот се запишува во меморијата (Поддржан е само пристап со зборови).

11: Откако ќе ги соберете податоците во data0 со битовите на податоци во меморијата, запишете го резултатот во меморијата (Поддржан е само пристап со зборови).

Прочитајте:

00, 01, 10, 11: Читајте 0 директно од меморијата.

 

 

 

 

 

 

0

[13:0] Резервирај RO Резервирано

Регистер за автоматско извршување на апстрактна команда (автоматско апстрактно)

Овој регистар се користи за конфигурирање на модулот за дебагирање. При читање и пишување progbufx и податоци на модулот за дебагирање, апстрактната команда може повторно да се изврши.

Описот на овој регистар е како што следува:

Табела 7-10 Дефиниција за апстрактни авторегистри

Бит Име Пристап Опис Ресетирај вредност
[31:16] autoexecprogbuf RW Ако е поставен бит, соодветното читање и пишување на progbufx ќе предизвика апстрактната команда во командниот регистар повторно да се изврши.

Забелешка: Серијата V3 е дизајнирана со 8 прогматери, што одговара на битови [23:16].

 

0

[15:12] Резервирај RO Резервирано 0
[11:0] autoexecdata  

RW

Ако некој бит е поставен на 1, соодветното читање и пишување на регистарот на податоци ќе предизвика апстрактната команда во командниот регистар повторно да се изврши.

Забелешка: V3 серијата е дизајнирана со два податоци регистри, што одговараат на битови [1:0].

0

Регистар за кеш на инструкции (progbufx)

Овој регистар се користи за складирање на која било инструкција и распоредување на соодветната операција, вклучително и 8, која треба да обрне внимание на последното извршување што треба да биде „break“ или „c.ebreak“.

Табела 7-11 Дефиниција на прогбуф регистар

Бит Име Пристап Опис Ресетирај вредност
[31:0] прогбуф RW Кодирање на инструкции за кеш операции, кои

може да вклучува инструкции за компресија

0

Паузирајте го статусниот регистар (haltsum0)

Овој регистар се користи за да покаже дали микропроцесорот е суспендиран или не. Секој бит го означува суспендираниот статус на микропроцесорот, а кога има само едно јадро, само најнискиот бит од овој регистар се користи за негово означување.

Табела 7-12 haltsum0 регистер дефиниција

Бит Име Пристап Опис Ресетирај вредност
[31:1] Резервирано RO Резервирано 0
0 haltsum0 RO 0: Микропроцесорот работи нормално

1: Стоп на микропроцесорот

0
  • Покрај горенаведените регистри на модулот за дебагирање, функцијата за отстранување грешки вклучува и некои CSR регистри, главно контролата за отстранување грешки и статусниот регистар dcsr и покажувачот за инструкции за отстранување грешки dpc, кои се детално опишани на следниов начин.
  • Контрола за отстранување грешки и статусен регистар (dcsr)

Табела 7-13 dcsr регистер дефиниција

Бит Име Пристап Опис Ресетирај вредност
[31:28] xdebugver ДРО 0000: Надворешното отстранување грешки не е поддржано 0100: Поддржете стандардно надворешно отстранување грешки

1111: Надворешното дебагирање е поддржано, но не се исполнува

спецификацијата

 

 

0x4

[27:16] Резервирано ДРО Резервирано 0
15 пауза DRW 0: Командата за пауза во машинскиот режим се однесува како што е опишано во привилегијата file

1: Командата за пауза во машинскиот режим може да влезе во режим за отстранување грешки

 

 

0

[14:13] Резервирано ДРО Резервирано 0
12 раскинување  

DRW

0: Командата за пауза во кориснички режим се однесува како што е опишано во привилегијата file

1: Командата пауза во режим на корисник може да влезе во режим за отстранување грешки

 

 

0

11 чекор DRW 0: Прекините се оневозможени при отстранување грешки во еден чекор

1: Овозможете прекини при отстранување грешки во еден чекор

0
10 Резервирано ДРО Резервирано 0
9 стоп време DRW 0: Системскиот тајмер работи во режим за отстранување грешки

1: Системскиот тајмер запира во режимот за отстранување грешки

0
  [8:6] причина ДРО Причини за влегување во дебагирање

001: Внесување дебагирање во форма на команда за прекин (приоритет 3)

010: Внесување дебагирање во форма на модул за активирање (приоритет 4, највисок)

011: Внесување дебагирање во форма на барање за пауза (приоритет 1)

100: дебагирање во форма на дебагирање во еден чекор

(приоритет 0, најнизок)

0
101: внесете го режимот за отстранување грешки директно по ресетирањето на микропроцесорот (приоритет 2) Други: резервирано
[5:3] Резервирано ДРО Резервирано 0
2 чекор DRW 0: Исклучете дебагирање во еден чекор

1: Овозможете дебагирање во еден чекор

0
[1:0] Прет DRW Режим на привилегии 00: Кориснички режим

01: Режим на супервизор (не е поддржан) 10: Резервирано

11: Машински режим

Забелешка: Снимајте го привилегираниот режим кога влегувате во режим за отстранување грешки, дебагерот може да ја измени оваа вредност за да го измени привилегираниот режим кога излегувате од отстранување грешки

 

 

 

 

0

Програмски покажувач на режимот за отстранување грешки (DPC)

  • Овој регистер се користи за складирање на адресата на следната инструкција што треба да се изврши откако микропроцесорот ќе влезе во режим за отстранување грешки, а неговата вредност се ажурира со различни правила во зависност од причината за внесување на дебагирање. dpc регистарот е детално опишан на следниов начин.

Табела 7-14 дефиниции на dpc регистар

Бит Име Пристап Опис Ресетирај вредност
[31:0] DPC DRW Адреса на инструкции 0

Правилата за ажурирање на регистрите се прикажани во следната табела.

Правила за ажурирање на табела 7-15 dpc

Внесете го методот за отстранување грешки dpc Правила за ажурирање
пауза Адреса на инструкцијата Ebreak
еден чекор Адреса на инструкција на следната инструкција од тековната инструкција
модул за активирање Привремено не е поддржано
барање за запирање Адреса на следната инструкција што треба да се изврши при внесување на Debug

Интерфејс за дебагирање

  • Различно од стандардниот ЈTAG интерфејс дефиниран од RISC-V, микропроцесорот од серијата QingKe V3 прифаќа 1-жичен/2-жичен сериски интерфејс за отстранување грешки и го следи WCH протоколот за интерфејс за отстранување грешки V1.0.
  • Интерфејсот за отстранување грешки е одговорен за комуникацијата помеѓу домаќинот за отстранување грешки и модулот за отстранување грешки и ја реализира операцијата за читање/запишување на домаќинот за отстранување грешки во регистрите на модулот за отстранување грешки.
  • WCH го дизајнираше WCH_Link и неговиот шематски и програмски бинар со отворен код files, кој може да се користи за дебагирање на сите микропроцесори од архитектурата RISC-V.
  • Погледнете во Прирачникот за протокол за отстранување грешки на WCH за специфични протоколи за интерфејс за отстранување грешки.

Список на регистри за ООП

  • Архитектурата RISC-V дефинира голем број контролни и статусни регистри (CSR) за контролирање и снимање на работниот статус на микропроцесорот.
  • Некои од CSR беа воведени во претходниот дел, и ова поглавје ќе ги детализира регистрите за CSR имплементирани во микропроцесорите од серијата QingKe V3.

Список на регистри за ООП

Табела 8-1 Список на регистри за ООП на микропроцесори

Тип Име ООП Адреса Пристап Опис
RISC-V

Стандардна ООП

маршид 0xF12 МРО Регистар на архитектонски броеви
благ 0xF13 МРО Регистар за нумерирање на имплементација на хардвер
mstatus 0x300 МРВ Регистар на статус
миза 0x301 МРВ Регистар за хардверски инструкции
мтвец 0x305 МРВ Исклучок на базен адресен регистар
mscratch 0x340 МРВ Машински режим stagинг регистар
MEPC 0x341 МРВ Исклучок програмски покажувач регистар
бидејќи 0x342 МРВ Исклучок причина регистар
мтвал 0x343 МРВ Регистар на исклучоци за вредности
pmpcfg 0x3A0+i МРВ Регистар за конфигурација на PMP
pmpaddr 0x3B0+i МРВ Регистар за адреси на PMP
изберете 0x7A0 МРВ Отстранете грешки од регистарот за избор на активирач
tdata1 0x7A1 МРВ Отстранување грешки во регистарот на податоци за активирање 1
tdata2 0x7A2 МРВ Отстранување грешки во регистарот на податоци за активирање 2
dcsr 0x7B0 DRW Контрола на дебагирање и статус регистри
dpc 0x7B1 DRW Регистар на покажувач на програмскиот режим за отстранување грешки
dscratch0 0x7B2 DRW Режим за отстранување грешки stagвнесете го регистарот 0
dscratch1 0x7B3 DRW Режим за отстранување грешки stagвнесете го регистарот 1
 

ООП дефинирана од продавачот

гинтенр 0x800 URW Регистар за овозможување глобален прекин
intsyscr 0x804 URW Прекини системски контролен регистар
corecfgr 0xBC0 МРВ Регистар за конфигурација на микропроцесор
inestcr 0xBC1 МРВ Прекинете го вгнездениот контролен регистар

RISC-V Стандардни регистри за ООП

  • Регистар на архитектонски броеви (мархид)
  • Овој регистар е регистер само за читање за да го означи тековниот број на архитектура на хардверот на микропроцесорот, кој главно се состои од код на продавач, код за архитектура, сериски код и код на верзијата. Секој од нив е дефиниран на следниов начин.

Табела 8-2 Дефиниција на мархидниот регистар

Бит Име Пристап Опис Ресетирај вредност
31 Резервирано МРО Резервирано 1
[30:26] Вендер0 МРО Код на производителот 0

Фиксиран на шифрата на буквата „W“.

0x17
[25:21] Вендер1 МРО Код на производителот 1

Фиксиран на шифрата на буквата „Ц“.

0x03
[20:16] Вендер2 МРО Код на производителот 2

Фиксиран на шифрата на буквата „H“.

0x08
15 Резервирано МРО Резервирано 1
[14:10] Арх МРО Архитектонски код 0x16
Архитектурата RISC-V е фиксирана на шифрата на буквата „V“.
[9:5] Сериски МРО Код на серијата

QingKe V3 серија, фиксирана на бројот „3“

0x03
[4:0] Верзија МРО Код на верзијата

Може да биде верзијата „А“, „Б“, „Ц“ и други букви од кодот

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, регистарот се враќа на 0.

Регистар за нумерирање на имплементацијата на хардверот (проѕирен)

  • Овој регистар главно е составен од кодови на продавачи, од кои секоја е дефинирана на следниов начин.

Табела 8-4 дефиниција на проѕирен регистар

Бит Име Пристап Опис Ресетирај вредност
31 Резервирано МРО Резервирано 1
[30:26] Вендер0 МРО Код на производителот 0

Фиксиран на шифрата на буквата „W“.

0x17
[25:21] Вендер1 МРО Код на производителот 1

Фиксиран на шифрата на буквата „Ц“.

0x03
[20:16] Вендер2 МРО Код на производителот 2

Фиксиран на шифрата на буквата „H“.

0x08
15 Резервирано МРО Резервирано 1
[14:8] Резервирано МРО Резервирано 0
[7:4] Малолетни МРО Број на субверзија 0xX
[3:0] мајор MR0 Број на главната верзија 0xX
  • Овој регистер може да се чита во која било машинска имплементација, а во процесорот од серијата QingKe V3A, овој регистар се враќа на нула.

Регистар за статус на машински режим (mstatus)

  • Овој регистар е делумно опишан во претходниот дел, а неговите луѓе се позиционирани на следниов начин.

Табела 8-5 Дефиниција на mstatus регистар

Бит Име Пристап Опис Ресетирај вредност
[31:13] Резервирано МРО Резервирано 0
[12:11] MPP МРВ Привилегиран режим пред да влезете во паузата 0
[10:8] Резервирано МРО Резервирано 0
7 МПИЕ МРВ Состојба за овозможување прекин пред да внесете прекин 0
[6:4] Резервирано МРО Резервирано 0
3 МИЕ МРВ Овозможи прекин на машинскиот режим 0
[2:0] Резервирано МРО Резервирано 0
  • Полето MPP се користи за зачувување на привилегираниот режим пред да се внесе исклучок или прекин и се користи за враќање на привилегираниот режим по излегување од исклучокот или прекинот. MIE е бит за овозможување на глобален прекин и при внесување на исклучок или прекин, вредноста на MPIE се ажурира на вредноста на MIE и треба да се забележи дека во микропроцесорите од серијата QingKe V3, MIE нема да се ажурира на 0 пред последното ниво на вгнездени прекини за да се осигури дека вгнездувањето на прекини во режимот на машината продолжува да се извршува. Кога ќе се излезе од исклучок или прекин, микропроцесорот се враќа во режимот Machine зачуван од MPP, а MIE се враќа на вредноста MPIE.
  • Микропроцесорот QingKe V3 поддржува машински режим и режим на корисник, ако треба да направите микропроцесорот да работи само во машински режим, можете да го поставите MPP на 0x3 при иницијализацијата на подигањето file, односно по враќањето секогаш ќе остане во режим на машина.

Регистар за хардверски инструкции (misa)

  • Овој регистар се користи за означување на архитектурата на микропроцесорот и поддржаните екстензии на множеството инструкции, од кои секоја е опишана на следниов начин.

Табела 8-6 Дефиниција на миса регистар

Бит Име Пристап Опис Ресетирај вредност
[31:30] MXL МРО Должина на машинскиот збор 1:32

2:64

3:128

1
[29:26] Резервирано МРО Резервирано 0
[25:0] Екстензии МРО Екстензии на множество инструкции x
  • MXL се користи за означување на должината на зборот на микропроцесорот, QingKe V3 се 32-битни микропроцесори, а доменот е фиксиран на 1.
  • Екстензии се користат за да се означи дека микропроцесорот поддржува детали за проширено множество инструкции, секое означува класа на екстензии, неговиот детален опис е прикажан во следната табела.

Табела 8-7 Детали за наставката на множеството инструкции

Бит Име Опис
0 A Атомско проширување
1 B Привремено резервирано за екстензија за бит-манипулација
2 C Компресирано продолжување
3 D Двојно прецизно продолжување со подвижна запирка
4 E RV32E база ISA
5 F Еднопрецизно продолжување со подвижна запирка
6 G Присутни се дополнителни стандардни екстензии
7 H Екстензија на хипервизор
8 I RV32I/64I/128I база ISA
9 J Привремено резервирано за екстензијата динамички преведени јазици
10 K Резервирано
11 L Привремено резервирано за децимална подвижна запирка
12 M Наставка за множење/делење на цел број
13 N Поддржани прекини на ниво на корисник
14 O Резервирано
15 P Привремено резервирано за наставката Packed-SIMD
16 Q Продолжување со подвижна запирка со четири прецизност
17 R Резервирано
18 S Имплементиран е режим на супервизор
19 T Привремено резервирано за проширување на трансакциската меморија
20 U Корисничкиот режим е имплементиран
21 V Привремено резервирано за Векторска екстензија
22 W Резервирано
23 X Присутни се нестандардни наставки
24 Y Резервирано
25 Z Резервирано
  • За прample, за микропроцесорот QingKe V3A, вредноста на регистерот е 0x401001105, што значи дека поддржаната архитектура на множество инструкции е RV32IMAC и има имплементација на режим на корисник.

Основен регистар на адреси со исклучок на машински режим (mtvec)

  • Овој регистар се користи за складирање на основната адреса на управувачот со исклучоци или прекини, а долните два бита се користат за конфигурирање на режимот и методот за идентификација на векторската табела како што е опишано во Дел 3.2.

Машински режим stagрегистер за внесување (mscratch)

Табела 8-8 mscratch регистар дефиниции

Бит Име Пристап Опис Ресетирај вредност
[31:0] mscratch МРВ Складирање податоци 0

Овој регистар е 32-битен читлив и запишуван регистар во машински режим за привремено складирање на податоци. За прample, кога се внесува исклучок или управувач со прекини, корисничкиот покажувач на стек SP се зачувува во овој регистар и покажувачот на стек за прекин е доделен на SP регистарот. По излегувањето од исклучокот или прекинот, вратете ја вредноста на покажувачот на корисничкиот стек SP од нула. Односно, стекот на прекини и корисничкиот стек може да се изолираат.

Регистар на покажувач на програма за исклучок на машински режим (карта)

Табела 8-9 мепц регистер дефиниции

Бит Име Пристап Опис Ресетирај вредност
[31:0] mepc МРВ Покажувач на процедура за исклучок 0
  • Овој регистар се користи за зачувување на покажувачот на програмата при внесување исклучок или прекин.
  • Се користи за зачувување на инструкцискиот покажувач на PC пред да се внесе исклучок кога се генерира исклучок или прекин, а mepc се користи како повратна адреса кога се ракува со исклучокот или прекинот и се користи за враќање исклучок или прекин.
  • Сепак, важно е да се напомене дека.
  • Кога ќе се појави исклучок, mepc се ажурира на вредноста на компјутерот на инструкцијата што моментално го генерира исклучокот.
  • Кога ќе дојде до прекин, mepc се ажурира на вредноста на компјутерот на следната инструкција.
  • Кога треба да вратите исклучок по обработката на исклучокот, треба да обрнете внимание на менување на вредноста на mepc, а повеќе детали може да најдете во Поглавје 2 Исклучоци.

Регистер за причини за исклучок од машински режим (mcause)

Табела 8-10 mcause регистер дефиниција

Бит Име Пристап Опис Ресетирај вредност
31 Прекини МРВ Поле за индикација за прекин 0: Исклучок

1: Прекин

 

0

[30:0] Код за исклучок МРВ За шифри за исклучок, видете ја Табела 2-1 за детали 0
  • Овој регистар главно се користи за складирање на причината за исклучокот или бројот на прекини на прекинот. Нејзиниот највисок бит е полето Interrupt, кое се користи за да покаже дали моменталната појава е исклучок или прекин.
  • Долниот бит е кодот за исклучок, кој се користи за означување на конкретната причина. Неговите детали може да се најдат во Поглавје 2 Исклучоци.

Регистар за исклучок на вредност на машински режим (mtval)

Табела 8-11 mtval регистер дефиниција

Бит Име Пристап Опис Ресетирај вредност
[31:0] мтвал МРВ Исклучок вредност 0
  • Овој регистар се користи за задржување на вредноста што го предизвикала исклучокот кога ќе се појави исклучок. За детали како што се вредноста и времето на неговото складирање, погледнете во Поглавје 2 Исклучоци.

PMP конфигурациски регистар (pmpcfg

  • Овој регистер главно се користи за конфигурирање на единицата за заштита на физичката меморија, а секои 8 бита од овој регистар се користат за конфигурирање на заштита на област. Ве молиме погледнете го Поглавје 4 за детална дефиниција.

Регистар на PMP адреси (pmpaddr

  • Овој регистар главно се користи за адресна конфигурација на единицата за заштита на физичката меморија, која ги кодира горните 32 бита од 34-битна физичка адреса. Ве молиме погледнете во Поглавје 4 за конкретниот метод на конфигурација.

Регистар на покажувач на програма за режим на отстранување грешки (DPC)

  • Овој регистар се користи за складирање на адресата на следната инструкција што треба да се изврши откако микропроцесорот ќе влезе
  • Режимот за отстранување грешки и неговата вредност се ажурираат со различни правила во зависност од причината за внесување на отстранување грешки. Видете во Дел 6.1 за детален опис.

Регистер за избор на активирач за отстранување грешки (избери)

  • Важи само за микропроцесори кои поддржуваат хардверски точки на прекин и поддржуваат најмногу 4-канални точки на прекин, а неговите пониски 2 бита се валидни.
  • Кога ја конфигурирате секоја точка на прекин на каналот, треба да го изберете соодветниот канал преку овој регистар пред конфигурацијата.

Табела 8-12 изберете дефиниција на регистарот

Бит Име Пристап Опис Ресетирај вредност
[31:2] Резервирано МРО Резервирано 0
[1:0]  

ИЗБЕРИ

 

МРВ

Регистарот за избор на канал за точка на прекин е конфигуриран, односно, откако ќе се избере соодветниот канал, може да се работи со регистрите tdata1 и tdata2 за да се конфигурира точка на прекин

информации.

 

X

Отстранување грешки во регистарот на податоци за активирање 1 (tdata1)

Важи само за микропроцесори кои поддржуваат хардверски точки на прекин. Микропроцесорите поддржуваат само точки на прекин на адреси на инструкции и адреси на податоци, каде што битот TYPE на регистарот tdata1 е фиксна вредност од 2, а другите битови се усогласени со дефиницијата за контрола во стандардот за дебагирање.

Табела 8-13 Дефиниција на регистарот tdata1

Бит Име Пристап Опис Ресетирај вредност
[31:28] ТИП МРО Дефиниција на тип на точка на прекин, тип на контрола. 0x2
 

 

27

 

 

DMODE

 

 

МРО

0: Релевантните регистри на флип-флопот може да се менуваат и во машинскиот и во режимот за дебагирање;

1: Само режимот за отстранување грешки може да ги менува соодветните регистри на флип-флопот.

 

 

1

  [26:21]  

МАСКМАКС

 

МРО

Кога MATCH=1, дозволен е максимален опсег на експоненцијална моќност на совпаѓање, односно максимално дозволениот опсег на совпаѓање е 231 бајти.  

0x1F

[20:13] Резервирано МРО Резервирано 0
 

 

12

 

 

АКЦИЈА

 

 

МРВ

Поставете го режимот на обработка кога активирате точка на прекин:

0: Кога се активира, внесете ја точката на прекин и повикајте го прекинот;

1: Влезете во режим за отстранување грешки кога ќе се активира.

 

 

0

[11:8] Резервирано МРО Резервирано 0
 

 

 

7

 

 

 

НАТПРЕВАР

 

 

 

МРВ

Соодветна конфигурација на политиката:

0: Се совпаѓа кога вредноста на активирањето е еднаква на TDATA2;

1: Вредноста на активирањето се совпаѓа со високиот m бит на TDATA2, каде што m = 31–n, а n е првиот цитат од 0 на TDATA2 (почнувајќи од нискиот бит).

 

 

 

0

 

6

 

M

 

МРВ

Овозможете флип-флоп во режимот М:

0: Оневозможете го активирањето во режимот М; 1: Овозможете го активирањето во режимот М.

 

0

[5:4] Резервирано МРО Резервирано 0
 

3

 

U

 

МРВ

Овозможи активирање во режим U:

0: Оневозможете го активирањето во режимот U; 1: Овозможете го активирањето во режимот U.

 

0

 

2

 

ИЗВРШИ

 

МРВ

Активирањето на адресата за читање инструкции е овозможено: 0: Оневозможи;

1: Овозможи.

 

0

 

1

 

ПРОДАВНИЦА

 

МРВ

Активирањето на адресата за пишување податоци е овозможено: 0: Оневозможи;

1: Овозможи.

 

0

 

0

 

LOAD

 

МРВ

Активирањето на адресата за читање податоци е овозможено: 0: Оневозможи;

1: Овозможи.

 

0

Отстранување грешки во регистарот на податоци за активирање 2 (tdata2)

Важи само за микропроцесори кои поддржуваат точки на прекин на хардверот и се користи за зачувување на вредноста што одговара на активирањето.

Табела 8-14 Дефиниција на регистарот tdata2

Бит Име Пристап Опис Ресетирај вредност
[31:0] TDATA2 МРВ Се користи за зачувување на соодветните вредности. X

Контрола за отстранување грешки и статусен регистар (dcsr)

Овој регистар се користи за контрола и снимање на состојбата на режимот за дебагирање. Видете во Дел 7.1 за детали.

Програмски покажувач на режимот за отстранување грешки (DPC)

Овој регистар се користи за зачувување на адресата на следната инструкција што треба да се изврши откако микропроцесорот ќе влезе во режим на дебагирање, неговата вредност е различна според причините за влегување во режимот за дебагирање, а различни се и правилата за ажурирање. Видете во Дел 7.1 за детален опис.

Режим за отстранување грешки stagрегистар (dscratch0-1)

Оваа група на регистри се користи за привремено складирање на податоци во режимот Debug.

Табела 8-15 dscratch0-1 регистер дефиниции

Бит Име Пристап Опис Ресетирај вредност
[31:0] гребење DRW Податоци за режимот за отстранување грешки stagвредност 0
Регистар за ООП дефиниран од корисникот

Регистар за овозможување глобален прекин во режим на корисник (gintenr)

  • Овој регистар се користи за контрола на овозможувањето и маската на глобалниот прекин. Овозможувањето и маската на глобалниот прекин во машинскиот режим може да се контролираат со битовите MIE и MPIE во статус, но овој регистар не може да се ракува во кориснички режим.
  • Додека глобалниот прекин овозможува регистар gintenr е мапирањето на MIE и MPIE во статус.
  • Во кориснички режим, намерата може да се користи за поставување и чистење на MIE и MPIE, како што е опишано во Дел 3.2 за детали.

Забелешка

  • Глобалните прекини не вклучуваат демаскирани прекини NMI и исклучоци.

Регистар за контрола на системот за прекини (intsyscr)

Овој регистар главно се користи за конфигурирање на длабочината на вгнездување на прекини, притискање на хардверски стек и други сродни функции, како што е опишано во Дел 3.2 за детали.

Регистар за конфигурација на микропроцесор (corecfgr)

Овој регистар се користи за да се контролира дали прекинот NMI е дозволен по прелевањето на прекинот и дали барањето за прекин се брише кога ќе се изврши инструкцијата за ограда. Ве молиме погледнете го делот 3.2 за конкретната дефиниција.

Прекини вгнезден контролен регистар (inestcr)

Овој регистар се користи за означување на состојбата на вгнездување на прекин и дали тој се прелева или не, и за контрола на максималното ниво на гнездење. Ве молиме погледнете го делот 3.2 за конкретната дефиниција.

Документи / ресурси

Микропроцесор WH V3 [pdf] Упатство за користење
V3 Микропроцесор, V3, Микропроцесор

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *