
Мікрапрацэсар WH V3

Тэхнічныя характарыстыкі
- Мадэль мікрапрацэсара: QingKeV3
- Версія: V1.2
- Асаблівасці ISA:
- Трубаправодны ФПУ
- Прадказанне галіны
- Перапыніць падтрымку
- HPE Physical Memory Protection (PMP)
- Рэжым нізкага энергаспажывання
- Адладка пашыранага набору інструкцый
Інструкцыя па ўжыванні прадукту
Скончанаview мікрапрацэсара QingKe V3
Мікрапрацэсары серыі QingKe V3 ўключаюць мадэлі V3A, V3B і V3C. Кожная мадэль мае асаблівасці і адрозненні ў залежнасці ад прымянення.
Набор інструкцый
Набор інструкцый RV32I уключае 32 наборы рэгістраў ад x0 да x31. Серыя V3 не падтрымлівае пашырэнне з плаваючай кропкай (F). Кожны рэгістр мае памер 32 біта.
Рэгістрацыя Набор
Набор рэгістраў RV32I складаецца з наступных рэгістраў.
- х0: Жорстка закодаваны 0
- х1: Зваротны адрас
- x2: паказальнік стэка
- х3: Глабальны паказальнік
- х4: Паказальнік ніткі
- х5-х7: Часовыя рэестры
- х8: Захаваць рэгістр/паказальнік кадра
- х9: Захаваць параметры рэгістра/функцыі/вярнутыя значэнні
- х10-х11: Параметры функцый
- х12-х17: Захаваць рэестры
- х18-х27: Часовыя рэестры
- х28-х31: Рэгістры абанентаў/абанентаў
Рэжым прывілеяў
Стандартная архітэктура RISC-V уключае тры прывілеяваныя рэжымы: рэжым машыны, рэжым супервізора і рэжым карыстальніка. Мікрапрацэсары серыі QingKe V3 падтрымліваюць машынны рэжым і рэжым Supervisor.
Часта задаюць пытанні
Пытанне: якія розныя мадэлі мікрапрацэсараў серыі QingKe V3?
A: Серыя QingKe V3 уключае мадэлі V3A, V3B і V3C, кожная з якіх мае пэўныя асаблівасці і адрозненні, падрабязна апісаныя ў кіраўніцтве карыстальніка.
Пытанне: колькі набораў рэгістраў даступна ў наборы інструкцый RV32I?
A: Набор інструкцый RV32I забяспечвае 32 наборы рэгістраў ад x0 да x31.
Пытанне: Якія прывілеяваныя рэжымы падтрымліваюцца мікрапрацэсарам QingKe V3?
A: Мікрапрацэсары серыі QingKe V3 падтрымліваюць машынны рэжым і рэжым Supervisor як частку архітэктуры RISC-V.
Скончанаview
Мікрапрацэсары серыі QingKe V3 - гэта 32-разрадныя мікрапрацэсары MCU агульнага прызначэння ўласнай распрацоўкі, заснаваныя на стандартнай архітэктуры набору інструкцый RISC-V. Гэтая серыя ўключае V3A, V3B і V3C, з якіх V3A падтрымлівае пашырэнне стандартнага набору інструкцый RV32IMAC, а V3B/C падтрымлівае пашырэнне стандартнага набору інструкцый RV32IMCB і індывідуальнае пашырэнне набору інструкцый XW. Абодва яны падтрымліваюць множанне за адзін цыкл і апаратнае дзяленне, у дадатак да апаратнага стэка ціску (HPE), перапынення без табліцы (VTF), абцякальных 1- і 2-правадных інтэрфейсаў адладкі, інструкцый "WFE" і іншых спецыяльных функцый. Акрамя таго, ён таксама падтрымлівае Hardware Prologue/Epilogue (HPE), Vector Table Free (VTF), аптымізаваны 1-/2-правадны інтэрфейс адладкі і падтрымку інструкцый «WFE».
Асаблівасці
| Асаблівасці | Апісанне |
| ISA | RV32IM[A]C[B] |
| Трубаправод | 3 |
| ФПУ | Не падтрымліваецца |
| Прадказанне галіны | Статычнае прагназаванне галін |
| Перапыніць | Падтрымка ў агульнай складанасці 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 (ISA). Падрабязную дакументацыю па стандарту можна знайсці ў «The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 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 | Паказальнік стэка | Callee |
| x3 | GP | Глабальны паказальнік | – |
| x4 | tp | Паказальнік ніткі | – |
| х5-7 | t0-2 | Часовы рэестр | Абанент |
| x8 | s0/fp | Захаваць рэгістр/паказальнік кадра | Callee |
| x9 | s1 | Захаваць рэестр | Callee |
| х10-11 | а0-1 | Параметры функцыі/вярнутыя значэнні | Абанент |
| х12-17 | а2-7 | Параметры функцый | Абанент |
| х18-27 | а2-11 | Захаваць рэестр | Callee |
| X28-31 | t3-6 | Часовы рэестр | Абанент |
Атрыбут Caller у прыведзенай вышэй табліцы азначае, што выкліканая працэдура не захоўвае значэнне рэестра, а атрыбут Callee азначае, што выкліканая працэдура захоўвае рэестр.
Рэжым прывілеяў
- Стандартная архітэктура RISC-V уключае тры прывілеяваныя рэжымы: рэжым машыны, рэжым супервізора і рэжым карыстальніка, як паказана ў табліцы 1-3 ніжэй.
- Аўтаматны рэжым з'яўляецца абавязковым, а астатнія - па жаданні. Для атрымання падрабязнай інфармацыі вы можаце звярнуцца да The RISC-V Instruction Set Manual Volume II: Privileged Architecture”, які можна спампаваць бясплатна з RISC-V International webсайт.
Табліца 1-3 Рэжым прывілеяў архітэктуры RISC-V
| Код | Імя | Скарачэнні |
| 0b00 | Рэжым карыстальніка | U |
| 0b01 | Мадэль кіраўніка | S |
| 0b10 | Зарэзерваваны | Зарэзерваваны |
| 0b11 | Машынны рэжым | M |
- Мікрапрацэсары серыі QingKe V3 падтрымліваюць два з гэтых прывілеяваных рэжымаў.
Машынны рэжым
- Машынны рэжым мае найвышэйшыя паўнамоцтвы, праграма ў гэтым рэжыме можа атрымаць доступ да ўсіх рэгістраў кіравання і стану (CSR), а таксама да ўсіх абласцей фізічнага адраса.
- Па змаўчанні ўключэнне ўключаецца ў машынным рэжыме, калі выкананне mret (інструкцыя вяртання ў машынны рэжым) вяртаецца ў адпаведнасці са станам рэгістра CSR (рэгістр стану машыннага рэжыму) у біце MPP, калі MPP = 0b00, выйдзіце з машыннага рэжыму у карыстальніцкі рэжым, MPP = 0b11, затым працягвайце захоўваць машынны рэжым.
Рэжым карыстальніка
- Карыстальніцкі рэжым мае самыя нізкія прывілеі, і ў гэтым рэжыме можна атрымаць доступ толькі да абмежаваных рэгістраў CSR. Калі адбываецца выключэнне або перапыненне, мікрапрацэсар пераходзіць з рэжыму карыстальніка ў рэжым машыны для апрацоўкі выключэнняў і перапыненняў.
Рэестр КСА
Серыя рэгістраў CSR вызначана ў архітэктуры RISC-V для кантролю і запісу працоўнага стану мікрапрацэсара. Гэтыя CSR могуць быць пашыраны на 4096 рэгістраў з выкарыстаннем унутранай спецыяльнай 12-бітнай прасторы кадавання адрасоў. І выкарыстоўвайце высокі два CSR [11:10], каб вызначыць дазвол на чытанне/запіс гэтага рэгістра, 0b00, 0b01, 0b10 для дазволенага чытання/запісу і 0b11 для дазволу толькі для чытання. Выкарыстоўвайце два біта CSR[9:8], каб вызначыць самы нізкі ўзровень прывілеяў, які можа атрымаць доступ да гэтага рэгістра, і значэнне адпавядае рэжыму прывілеяў, вызначаным у табліцы 1-3. Рэгістры CSR, рэалізаваныя ў мікрапрацэсары 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 | Сінхронныя | Памылка доступу каманды Fetch |
| 0 | 2 | Сінхронныя | Незаконныя інструкцыі |
| 0 | 3 | Сінхронныя | Кропкі спынення |
| 0 | 4 | Сінхронныя | Неадпаведнасць адраса доступу інструкцыі загрузкі |
| 0 | 5 | Недакладны асінхронны | Памылка доступу да каманды загрузкі |
| 0 | 6 | Сінхронныя | Нясупадзенне адраса доступу да інструкцый Store/AMO |
| 0 | 7 | Недакладны асінхронны | Памылка доступу да каманды Store/AMO |
| 0 | 8 | Сінхронныя | Выклік асяроддзя ў карыстальніцкім рэжыме |
| 0 | 11 | Сінхронныя | Выклік асяроддзя ў машынным рэжыме |
- Synchronous» у табліцы азначае, што інструкцыя можа знаходзіцца менавіта там, дзе яна выконваецца, напрыклад, інструкцыя перапынку або выкліку, і кожнае выкананне гэтай інструкцыі будзе выклікаць выключэнне. «Асінхронны» азначае, што немагчыма дакладна вызначыць інструкцыю, а значэнне PC інструкцыі можа адрознівацца кожны раз, калі ўзнікае выключэнне. "Дакладны асінхронны" азначае, што выключэнне можа быць размешчана дакладна на мяжы інструкцыі, г.зн. стан пасля выканання інструкцыі, напрыклад, знешняе перапыненне. «Недакладны асінхронны» азначае, што мяжа інструкцыі не можа быць дакладна вызначана, і, магчыма, стан пасля таго, як інструкцыя была перапыненая на паўдарогі выканання, напрыклад, памылка доступу да памяці.
- Доступ да памяці патрабуе часу, і мікрапрацэсар звычайна не чакае заканчэння доступу пры звароце да памяці, а працягвае выконваць інструкцыю, калі памылка доступу ўзнікае зноў, мікрапрацэсар ужо выканаў наступныя інструкцыі і не можа быць дакладна размешчаны.
Увод выключэння
Калі праграма знаходзіцца ў працэсе нармальнай працы, па нейкай прычыне выклікае выключэнне або перапыненне. Апаратныя паводзіны мікрапрацэсара ў гэты момант можна абагульніць наступным чынам.
- Прыпыніць бягучы паток праграмы і перайсці да выканання функцый апрацоўкі выключэнняў або перапыненняў. Базавы адрас запісу і рэжым адрасавання функцыі выключэння або перапынення вызначаюцца рэгістрам базавага адраса запісу выключэння mtvec. mtvec[31:2] вызначае базавы адрас функцыі выключэння або перапынення. mtvec[1:0] вызначае рэжым адрасавання функцыі апрацоўшчыка. калі mtvec[1:0]=0, усе выключэнні і перапыненні выкарыстоўваюць уніфікаваны запіс, г. зн., калі адбываецца выключэнне або перапыненне, ён звяртаецца да mtvec[31:2], які вызначае базавы адрас для выканання. Калі mtvec[1:0]=1, выключэнні і перапыненні выкарыстоўваюць рэжым вектарнай табліцы, г.зн. кожнае выключэнне і перапыненне нумаруецца, і адрас зрушаны ў адпаведнасці з нумарам перапынення*4, і калі адбываецца выключэнне або перапыненне, ён зрушваецца на базавы адрас, вызначаны mtvec[31:2] + нумар перапынення*4 Выкананне. Табліца вектараў перапыненняў змяшчае інструкцыю для пераходу да функцыі апрацоўшчыка перапыненняў, або гэта могуць быць іншыя інструкцыі.
- Абнавіць рэестр CSR
- Пры ўводзе выключэння або перапынення мікрапрацэсар аўтаматычна абнаўляе адпаведныя рэгістры CSR, у тым ліку рэгістр прычыны выключэння машыннага рэжыму mcause, рэгістр паказальніка выключэння машыннага рэжыму mepc, рэгістр значэння выключэння машыннага рэжыму metal і стан рэгістра стану машыннага рэжыму.
Абнаўленне mcause
Як згадвалася раней, пасля ўводу выключэння або перапынення яго значэнне адлюстроўвае бягучы тып выключэння або нумар перапынення, і праграмнае забеспячэнне можа прачытаць значэнне гэтага рэгістра, каб праверыць прычыну выключэння або вызначыць крыніцу перапынення, як падрабязна апісана ў табліцы 2. -1.
Абнаўленне mepc
- Стандартнае вызначэнне зваротнага адраса мікрапрацэсара пасля выхаду з выключэння або перапынення захоўваецца ў mepc.
- Такім чынам, калі адбываецца выключэнне або перапыненне, апаратнае забеспячэнне аўтаматычна абнаўляе значэнне mepc да бягучага значэння PC інструкцыі, калі сустракаецца выключэнне, або да наступнага папярэдне выкананага значэння PC інструкцыі перад перапыненнем.
- Пасля апрацоўкі выключэння або перапынення мікрапрацэсар выкарыстоўвае захаванае значэнне ў якасці зваротнага адраса для вяртання да месца перапынення для працягу выканання.
- Аднак варта адзначыць, што.
- MEPC - гэта рэгістр, які можна чытаць і запісваць, і праграмнае забеспячэнне таксама можа змяняць значэнне, каб змяніць месцазнаходжанне паказальніка ПК, які працуе пасля вяртання.
- Калі адбываецца перапыненне, г.зн. калі прычына выключэння рэгіструе mcause[31]=1, значэнне карт абнаўляецца да значэння PC наступнай нявыкананай інструкцыі ў момант перапынення.
- Пры ўзнікненні выключэння значэнне карт абнаўляецца да значэння ПК інструкцыі бягучага выключэння, калі выключэнне выклікае рэгістр mcause[31]=0. Такім чынам, у гэты час, калі выключэнне вяртаецца, калі мы вяртаемся непасрэдна з выкарыстаннем значэння mepc, мы працягваем выконваць інструкцыю, якая раней стварала выключэнне, і ў гэты час мы будзем працягваць уводзіць выключэнне. Звычайна пасля апрацоўкі выключэння мы можам змяніць значэнне mepc на значэнне наступнай нявыкананай інструкцыі і потым вярнуцца. Напрыкладample, калі мы выклікаем выключэнне з-за выкліку/разрыву, пасля апрацоўкі выключэння, паколькі recall/break (c.ebreak складае 2 байты) з'яўляецца 4-байтавай інструкцыяй, нам спатрэбіцца толькі праграмнае забеспячэнне для змены значэння mepc на mepc +4 (c.ebreak - гэта mepc+2), а затым вярнуцца.
Абнаўленне mtval
Пры ўводзе выключэнняў і перапыненняў апаратнае забеспячэнне аўтаматычна абновіць значэнне mtval, якое з'яўляецца значэннем, якое выклікала выключэнне. Значэнне звычайнае.
- Калі выключэнне выклікана доступам да памяці, апаратнае забеспячэнне захавае адрас доступу да памяці ў момант выключэння ў mtval.
- Калі выключэнне выклікана недапушчальнай інструкцыяй, апаратнае забеспячэнне захавае код інструкцыі ў mtval.
- Калі выключэнне выклікана апаратнай кропкай супыну, апаратнае забеспячэнне захавае значэнне ПК у кропцы перапынку ў mtval.
- Для іншых выключэнняў абсталяванне ўсталёўвае значэнне mtval у 0, напрыклад, перапынак, выключэнне, выкліканае інструкцыяй выкліку.
- Пры ўваходзе ў перапыненне апаратнае забеспячэнне ўсталёўвае значэнне mtval у 0.
Абнавіць mstatus
Пасля ўводу выключэнняў і перапыненняў апаратнае забеспячэнне абнаўляе пэўныя біты ў mstatus.
- MPIE абнаўляецца да значэння MIE перад уваходам у выключэнне або перапыненне, і MPIE выкарыстоўваецца для аднаўлення MIE пасля таго, як выключэнне і перапыненне скончыліся.
- MPP абнаўляецца да прывілеяванага рэжыму перад уваходам у выключэнні і перапыненні, а пасля заканчэння выключэнняў і перапыненняў MPP выкарыстоўваецца для аднаўлення папярэдняга прывілеяванага рэжыму.
- Мікрапрацэсар QingKe V3 падтрымлівае ўкладанне перапыненняў у машынным рэжыме, і MIE не будзе выдалены пасля ўводу выключэнняў і перапыненняў.
Абнавіць рэжым прывілеяў мікрапрацэсара
- Калі ўзнікаюць выключэнні і перапыненні, прывілеяваны рэжым мікрапрацэсара абнаўляецца ў машынны рэжым.
Функцыі апрацоўкі выключэнняў
- Пасля ўводу выключэння або перапынення мікрапрацэсар выконвае праграму з адраса і рэжыму, вызначаных рэестрам mtvec. Пры выкарыстанні ўніфікаванага запісу мікрапрацэсар прымае інструкцыю пераходу з базавага адраса, вызначанага mtvec[31:2] на аснове значэння mtvec[1], або атрымлівае адрас запісу функцыі апрацоўкі выключэнняў і перапыненняў і адпраўляецца на выкананне замест гэтага . У гэты час функцыя апрацоўкі выключэнняў і перапыненняў можа вызначыць, ці з'яўляецца прычына выключэннем або перапыненнем, на падставе значэння mcause [31], а тып і прычыну выключэння або адпаведнага перапынення можна вызначыць па коду выключэння і апрацоўваюцца адпаведна.
- Пры выкарыстанні базавага адраса + нумар перапынення *4 для зрушэння апаратнае забеспячэнне аўтаматычна пераходзіць да вектарнай табліцы, каб атрымаць адрас ўваходу функцыі выключэння або перапынення на аснове нумара перапынення і пераходзіць да яго выканання.
Выключэнне Выхад
- Пасля завяршэння апрацоўшчыка выключэння або перапынення неабходна выйсці з службовай праграмы. Пасля ўводу выключэнняў і перапыненняў мікрапрацэсар пераходзіць у машынны рэжым з рэжыму карыстальніка, і апрацоўка выключэнняў і перапыненняў таксама завяршаецца ў машынным рэжыме. Калі неабходна выйсці з выключэнняў і перапыненняў, для вяртання неабходна выкарыстоўваць інструкцыю mret. У гэты час апаратнае забеспячэнне мікрапрацэсара будзе аўтаматычна выконваць наступныя аперацыі.
- Паказальнік ПК аднаўляецца да значэння рэгістра CSR mepc, г.зн. выкананне пачынаецца па адрасе інструкцыі, захаваным mepc. Неабходна звярнуць увагу на аперацыю зрушэння mepc пасля завяршэння апрацоўкі выключэнняў.
- Абнавіце статус рэгістра CSR, MIE аднаўляецца ў MPIE, а MPP выкарыстоўваецца для аднаўлення прывілеяванага рэжыму папярэдняга мікрапрацэсара.
- Увесь працэс рэагавання на выключэнне можа быць апісаны наступным малюнкам 2-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 | Выпраўлена | НМІ | Немаскіраванае перапыненне |
| 3 | -4 | Выпраўлена | ВЫКЛ | Перапыненне выключэння |
| 4 | – | – | – | – |
| 5 | -3 | Выпраўлена | ЭКАЛ-М | Перапыненне зваротнага выкліку машыннага рэжыму |
| 6-7 | – | – | – | – |
| 8 | -2 | Выпраўлена | ЭКАЛЛ-У | Перапыненне зваротнага выкліку рэжыму карыстальніка |
| 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 | Базавы адрасны рэестр VTF
Заўвага: дзейнічае толькі для V3A |
0x00000000 |
| PFIC_CFGR | 0xE000E048 | RW | Рэгістр канфігурацыі перапынення
Заўвага: дзейнічае толькі для V3A |
0x00000000 |
| PFIC_GISR | 0xE000E04C | RO | Перапыніце глабальны рэестр статусу | 0x00000002 |
|
PFIC_VTFIDR |
0xE000E050 |
RW |
Рэгістр канфігурацыі ID перапынення VTF
Заўвага: дзейнічае толькі для V3B/C. |
0x00000000 |
| PFIC_VTFADDRRx | 0xE000E060
-0xE000E06C |
RW | Рэгістр адрасоў зрушэння VTF x | 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 |
Заўвага:
- NMI, EXC, ECALL-M, ECALL-U і BREAKPOINT заўсёды ўключаны па змаўчанні.
- ECALL-M, ECALL-U і BREAKPOINT - гэта выпадак EXC.
- 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
Заўвага: НМІ і ВЫКЛ ёсць уключаны па змаўчанні |
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 | СІСТЭМНЫ СКІД | 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 і рэгістры адрасоў зрушэння (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: 0xXXXXXXXX |
|
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: 0xXXXXXXXX |
|
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: 0xXXXXXXXX |
| 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: 0xXXXXXXXX |
Рэгістр кіравання сістэмай (PFIC_SCTLR)
| Імя | Адрас доступу | Доступ | Апісанне | Скінуць значэнне |
| PFIC_SCTLR | 0xE000ED10 | RW | Рэестр кіравання сістэмай | 0x00000000 |
Кожны з іх вызначаецца наступным чынам.
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| 31 | СІСТЭМНЫ СКІД | WO | Скід сістэмы, аўтаматычная ачыстка 0. Запіс 1 сапраўдны, а запіс 0 несапраўдны.
Заўвага: гэты біт сапраўдны толькі для V3B/C |
0 |
| [30:6] | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| 5 | СЭТЭВЕНТ | WO | Усталюйце падзею для абуджэння корпуса WFE. | 0 |
|
4 |
СЕВОНПЕНД | RW | Калі адбываецца падзея або перапыняе стан чакання, сістэму можна вывесці з рэжыму сну пасля інструкцыі WFE, або, калі інструкцыя WFE не выканана, сістэма будзе абуджана адразу пасля наступнага выканання інструкцыі.
1: Уключаныя падзеі і ўсе перапыненні (уключаючы неўключаныя перапыненні) могуць абудзіць сістэму. 0: толькі ўключаныя падзеі і ўключаны перапыненні могуць абудзіць сістэму. |
0 |
| 3 | WFITOWFE | RW | Выканайце каманду WFI, як быццам гэта WFE.
1: разглядайце наступную інструкцыю WFI як інструкцыю WFE. 0: Няма эфекту. |
0 |
| 2 | СПАЦЬ | RW | Рэжым малой магутнасці сістэмы кіравання. | 0 |
| 1: глыбокі сон 0: сон | ||||
| 1 | СЛІПАНЕКСІ Т | RW | Стан сістэмы пасля выхаду кіравання з праграмы абслугоўвання перапыненняў.
1: Сістэма пераходзіць у рэжым нізкага энергаспажывання. 0: сістэма пераходзіць у асноўную праграму. |
0 |
| 0 | Зарэзерваваны | RO | Зарэзерваваны | 0 |
Рэгістры CSR, звязаныя з перапыненнямі
Акрамя таго, наступныя рэгістры CSR таксама аказваюць значны ўплыў на апрацоўку перапыненняў. Рэгістр кіравання сістэмай перапынення (intsyscr)
Гэты рэестр не дзейнічае толькі для V3A:
| Імя | КСА Адрас | Доступ | Апісанне | Скінуць значэнне |
| інцыскр | 0x804 | URW | Рэгістр кіравання сістэмай перапынення | 0x0000E002 |
Яго людзі вызначаюцца як:
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
|
31 |
ЗАМОК |
УРО |
0: Гэты рэгістр можна чытаць і запісваць у карыстальніцкім рэжыме;
1: Гэты рэгістр можна чытаць і запісваць толькі ў машынным рэжыме. Заўвага: гэты біт канфігурацыі дзейнічае з версія 1.0 і далей. |
0 |
| [30:6] | Зарэзерваваны | УРО | Зарэзерваваны | 0x380 |
|
5 |
ГІХВСТКНЕН |
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 | ХВСТКЕН | URW | Уключыць апаратны стэк:
0: функцыя націску апаратнага стэка адключана; 1: уключана функцыя націскання апаратнага стэка. |
0 |
Рэгістр базавых адрасоў выключэння машыннага рэжыму (mtvec)
| Імя | КСА Адрас | Доступ | Апісанне | Скінуць значэнне |
| mtvec | 0x305 | МРВ | Рэестр базавых адрасоў выключэнняў | 0x00000000 |
Яго людзі вызначаюцца як
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:2] | BASEADDR[31:2] | МРВ | Базавы адрас табліцы вектара перапынення, дзе
біты [9:2] маюць значэнне 0. |
0 |
| 1 | РЭЖЫМ1 |
MRO |
Рэжым распазнання табліцы вектараў перапынення: 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] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
|
7 |
CSTA_FAULT_IE |
МРВ |
Памылка стану ядра ўключыць перапыненне:
0: пры памылцы стану не ствараецца перапыненне NMI; 1: Пры памылцы стану адбываецца перапыненне NMI генеруецца. |
0 |
| 6 | Зарэзерваваны | MRO | Трымайце 0. | 0 |
| 5 | IE_REMAP_EN | МРВ | Адлюстраванне рэгістра MIE дазваляе:
0: адрас CSR 0x800 з'яўляецца рэгістрам толькі для чытання, а вяртанае значэнне - гэта значэнне STATUS; 1: Біты 3 і 7 адраса CSR 0x800 супастаўляюцца з бітам MIE рэестра STATUS і бітам MPIE рэгістра STATUS адпаведна. |
0 |
| 4 | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| 3 | ROM_LOOP_ACC | МРВ | Паскарэнне цыкла інструкцый вобласці ROM дазваляе:
0: Выключыць функцыю цыклічнага паскарэння ў вобласці ПЗУ; 1: бесперапынныя інструкцыі з целам цыкла ў межах 128 байт будуць цалкам паскораны, у той час як інструкцыі з целам цыклу ў межах 256 байт будуць паскораны часткова; |
0 |
| 2 | ROM_JUMP_ACC | МРВ | Уключана паскарэнне пераходу інструкцый вобласці ПЗУ:
0: Адключыць паскарэнне інструкцый вобласці ПЗУ; 1: Уключыць паскарэнне пераходу інструкцый у вобласці ПЗУ. |
0 |
| [1:0] | FETCH_MODE | МРВ | Рэжым атрымання:
00: папярэдняя выбарка выключана. Функцыя папярэдняй выбаркі інструкцый выключана, каб пазбегнуць несапраўдных аперацый выбаркі інструкцый, і ў канвееры працэсара ёсць не больш за адну сапраўдную інструкцыю. Гэтая мадэль мае самае нізкае энергаспажыванне, а яе прадукцыйнасць зніжаецца прыкладна ў 2 ~ 3 разы. 01: Рэжым папярэдняй выбаркі 1. Калі функцыя папярэдняй выбаркі інструкцый уключана, працэсар будзе працягваць доступ да памяці інструкцый, пакуль колькасць інструкцый, якія павінны быць выкананы ва ўнутраным буферы інструкцый, не перавысіць пэўную колькасць, або пакуль буфер інструкцый не будзе запоўнены, і выбарка інструкцый будзе прыпыненая; (Збой прагназавання працэсара прывядзе да залішняй аперацыі выбаркі, і ў некаторых выпадках выканаўчы блок увядзе 0 ~ 2 цыклы бурбалак, і прадукцыйнасць большасці праграм відавочна не знізіцца); 10: Зарэзерваваны; |
0x1 |
Перапыненне ўкладзенага рэгістра кіравання (inestcr)
Гэты рэестр несапраўдны толькі для V3A:
| Імя | КСА Адрас | Доступ | Апісанне | Скінуць значэнне |
| інвестар | 0xBC1 | МРВ | Перапыненне ўкладзенага рэгістра кіравання | 0x00000000 |
Яго людзі вызначаюцца як
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| 31 | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| 30 | NEST_OV | МРВ | Біт укладзенага сцяга перапаўнення перапынення/выключэння, напішыце 1, каб ачысціць:
0: перапыненне не перапоўнілася; 1: Сцяг перапаўнення перапынення. Заўвага: перапаўненне перапынення будзе адбывацца толькі пры выкананні функцыі абслугоўвання другаснага перапынення для стварэння выключэння інструкцыі або перапынення NMI. У гэты час выключэнне і перапыненне NMI ўваходзяць нармальна, але стэк працэсара перапаўняецца, таму вы не можаце выйсці з гэтага выключэння і Перапыненне NMI. |
0 |
| [29:12] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| [11:8] | NEST_STA | MRO | Укладзены біт сцяга стану:
0000: Няма перапынення; 0001: перапыненне ўзроўню 1; 0011: перапыненне ўзроўню 2 (укладзенасць 1 ўзроўню); |
0 |
| 0111: перапыненне ўзроўню 3 (перапаўненне);
1111: Перапыненне ўзроўню 4 (перапаўненне). |
||||
| [7:2] | Зарэзерваваны | MRO | Зарэзерваваны | 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 | MPIE | URW | Калі 0xBC0(CSR)bit5 уключаны, гэты біт
можна чытаць і пісаць у карыстальніцкім рэжыме. |
0 |
| [6:4] | Зарэзерваваны | УРО | Зарэзерваваны | 0 |
| 3 | MIE | URW | Калі 0xBC0(CSR)bit5 уключаны, гэты біт
можна чытаць і пісаць у карыстальніцкім рэжыме. |
0 |
| [1:0] | Зарэзерваваны | УРО | Зарэзерваваны | 0 |
Перапыненне ўкладвання
У спалучэнні з перапыненнем, рэгістрам канфігурацыі PFIC_CFGR і рэгістрам прыярытэту перапынення PFIC_IPRIOR можа быць дазволена ўкладанне перапыненняў. Уключыце ўкладзенасць у рэгістры канфігурацыі перапынення (укладзенасць уключана па змаўчанні для мікрапрацэсараў серыі V3) і наладзьце прыярытэт адпаведнага перапынення. Чым меншае значэнне прыярытэту, тым вышэйшы прыярытэт. Чым меншае значэнне біта апярэджання, тым вышэйшы прыярытэт выключэння. Калі ёсць перапыненні, якія вісяць у той жа час з тым жа прыярытэтам выключэння, мікрапрацэсар адказвае на перапыненне з больш нізкім значэннем прыярытэту (вышэйшым прыярытэтам) першым.
Апаратны пралог/эпілог (HPE)
- Калі адбываецца выключэнне або перапыненне, мікрапрацэсар спыняе бягучы паток праграмы і пераходзіць да выканання функцыі апрацоўкі выключэння або перапынення, месца бягучага патоку праграмы неабходна захаваць. Пасля вяртання выключэння або перапынення неабходна аднавіць сайт і працягнуць выкананне спыненага патоку праграмы. Для мікрапрацэсараў серыі V3 «сайт» адносіцца да ўсіх рэестраў захаваных абанентаў у табліцы 1-2.
- Мікрапрацэсары серыі V3 падтрымліваюць апаратнае аднацыклавае аўтаматычнае захаванне 16 сфармаваных рэестраў, захаваных абанентам, ва ўнутраную вобласць стэка, якая не бачная карыстальніку. Пры вяртанні выключэння або перапынення апаратны адзіночны цыкл аўтаматычна аднаўляе даныя з вобласці ўнутранага стэка ў 16-падобныя рэгістры. HPE падтрымлівае ўкладзенасць да 2 узроўняў.
- Схема стэка ціску мікрапрацэсара паказана на наступным малюнку.

Заўвага:
- Функцыі перапынення, якія выкарыстоўваюць HPE, павінны быць скампіляваны з дапамогай MRS або прадастаўленай ім інструментальнай ланцужкі, а функцыя перапынення павінна быць аб'яўлена з дапамогай __attribute__((interrupt(“WCH-Interrupt-fast”))).
- Функцыя перапынення, якая выкарыстоўвае штуршок стэка, аб'яўляецца __attribute__((interrupt())).
Вектарная табліца бясплатна (VTF)
- Праграмуемы кантролер хуткага перапынення (PFIC) забяспечвае 4 канала VTF, г.зн. прамы доступ да запісу функцыі перапынення без праходжання працэсу пошуку вектара перапынення ў табліцы.
- Канал VTF можна ўключыць, запісаўшы яго нумар перапынення, базавы адрас функцыі абслугоўвання перапынення і адрас зрушэння ў адпаведны рэгістр кантролера PFIC пры звычайнай канфігурацыі функцыі перапынення.
- Працэс адказу PFIC для хуткіх перапыненняў без табліцы паказаны на малюнку 3-2 ніжэй.

Абарона фізічнай памяці PMP
- У мэтах павышэння бяспекі сістэмы модуль абароны фізічнай памяці (PMP) распрацаваны ў адпаведнасці са стандартам архітэктуры RISC-V для мікрапрацэсараў серыі V3 высакагорнага ячменю. Падтрымліваецца кіраванне правамі доступу да 4 фізічных рэгіёнаў. Дазволы ўключаюць атрыбуты чытання (R), запісу (W) і выканання (X), а даўжыню абароненай вобласці можна ўсталяваць не менш за 4 байты. Модуль PMP заўсёды ўступае ў сілу ў карыстальніцкім рэжыме, але ён можа ўступіць у сілу па жаданні, заблакіраваўшы атрыбут (L) у машынным рэжыме.
- Калі доступ парушае бягучы ліміт дазволаў, гэта выкліча ненармальнае перапыненне. Модуль PMP уключае чатыры групы 8-разрадных рэгістраў канфігурацыі (адна група 32-разрадных) і чатыры групы адрасных рэгістраў, да ўсіх з якіх неабходна атрымаць доступ у машынным рэжыме з дапамогай інструкцыі CSR.
- Заўвага: Колькасць абароненых абласцей, якія падтрымліваюцца PMP у розных мадэлях мікрапрацэсараў, можа быць рознай, і колькасць падтрымоўваных рэгістрамі pmpcfg і pmpaddr таксама адрозніваецца. Падрабязнасці глядзіце ў табліцы 1-1.
PMP Register Set
Спіс рэгістраў CSR, якія падтрымліваюцца модулем PMP мікрапрацэсара V3, паказаны ў табліцы 4-1 ніжэй.
Табліца 4-1 Набор рэгістраў модуля PMP
| Імя | Адрас CSR | Доступ | Апісанне | Скінуць значэнне |
| 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 |
pmpcfg - гэта рэгістр канфігурацыі блока PMP, і кожны рэгістр змяшчае чатыры 8-бітныя палі накачкі, якія адпавядаюць канфігурацыі чатырох абласцей, а накачка ўяўляе значэнне канфігурацыі вобласці i. Яго фармат паказаны ў наступнай табліцы 4-2.
Табліца 4-2 рэгістра pmpcfg0
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
Калі абраны NAPOT, малодшы біт адраснага рэгістра таксама выкарыстоўваецца для ўказання памеру бягучай зоны абароны, як паказана ў наступнай табліцы, дзе 'y' - біт рэестра.
Табліца 4-5 Табліца ўзаемасувязі паміж канфігурацыяй PMP і рэестрам адрасоў і абароненай зонай.
| pmpaddr | pmpcfg. А | Адпаведны базавы адрас і памер |
| yyyy…yyyy | NA4 | З 'yy…yyyy00' у якасці базавага адрасу 4-байтавая вобласць абаронена. |
| yyyy…yyy0 | НАПОТ | З 'yy…yyy000' у якасці базавага адрасу 8-байтавая вобласць абаронена. |
| yyyy…yy01 | НАПОТ | З 'yy…yy0000' у якасці базавага адрасу 16-байтавая вобласць абаронена. |
| yyyy…y011 | НАПОТ | З 'yy…y00000' у якасці базавага адрасу 16-байтавая вобласць абаронена. |
| … | … | … |
| ггг01…111 | НАПОТ | З 'y0…000000' у якасці базавага адрасу 231-байтавая вобласць абаронена. |
| гг011…111 | НАПОТ | Абараніце ўсю 232-байтную вобласць. |
Механізм абароны
X/W/R у pmpcfg выкарыстоўваецца для ўстаноўкі паўнамоцтваў аховы вобласці I, і парушэнне адпаведных паўнамоцтваў прывядзе да адпаведнага выключэння:
- Пры спробе атрымаць інструкцыі ў вобласці PMP без паўнамоцтваў на выкананне гэта прывядзе да выключэння памылкі доступу да выбаркі інструкцый (mcause=1).
- Пры спробе запісаць даныя ў вобласць PMP без пісьмовага дазволу гэта выкліча памылку выключэння (mcause=7) у доступе да інструкцый крамы.
- Пры спробе прачытаць даныя ў вобласці PMP без дазволу на чытанне гэта прывядзе да ненармальнай памылкі доступу да памяці (mcause=5) для інструкцыі загрузкі.
A ў pmpcfg выкарыстоўваецца для ўстаноўкі дыяпазону абароны і выраўноўвання адрасоў вобласці I, а таксама для абароны памяці A_ADDR ≤ region < i > < B_ADDR (як A_ADDR, так і B_ADDR павінны быць выраўнаваны па 4 байтах):
- Калі B _ ADDR–A_ADDR = = 22, прымаецца рэжым NA4;
- Калі B _ ADDR–A_ADDR = = 2(G+2), G≥1, а _ адрас роўны 2(g+2), прымаецца метад NAPOT;
- У адваротным выпадку прымаецца рэжым TOP.
Табліца 4-6 Метады супастаўлення адрасоў PMP
| Значэнне | Імя | Апісанне |
| 0b00 | ВЫКЛ | Няма зоны для абароны |
| 0b01 | ТЗ | Верхняя абарона зоны.
Пад 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 |
| СТК_СР | 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 |
ВУЛ |
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 | STE | RW | Сістэмны лічыльнік дазваляе кантрольны біт. 1: Уключыць сістэмны лічыльнік STK;
0: адключэнне сістэмнага лічыльніка STK, і лічыльнік спыняе падлік. |
0 |
Рэгістр стану лічыльніка сістэмы (STK_SR)
Гэты рэестр не распаўсюджваецца на V3A.
Табліца 5-4 Ніжні рэгістр лічыльніка SysTick
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
|
31 |
СВІ |
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-біт, і інш мадэлі не абмежаваныя. |
0xXXXXX XXX |
Заўвага: Рэгістр STK_CNTL і рэгістр STK_CNTH у V3A разам складаюць 64-бітны лічыльнік сістэмы.
Старшы рэгістр лічыльніка сістэмы (STK_CNTH)
Табліца 5-6 Старшы рэгістр лічыльніка SysTick
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | CNTH | RW | Бягучае значэнне лічыльніка на 32 біта вышэй. Гэты рэгістр можа быць прачытаны 8-бітным/16-бітным/32-бітным, але можа быць запісаны толькі 8-бітным.
Заўвага: дзейнічае толькі для V3A. |
0xXXXXX 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-бітны, а іншыя мадэлі не абмежаваныя. |
0xXXXXX 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. |
0xXXXXX XXX |
Заўвага: Рэгістры STK_CMPLR і рэгістры STK_CMPHR у V3A разам складаюць 64-бітнае значэнне параўнання лічыльніка.
Налады нізкага энергаспажывання працэсара
- Мікрапрацэсары серыі QingKe V3 падтрымліваюць рэжым сну праз інструкцыю WFI (Wait for Interrupt) для дасягнення нізкага статычнага энергаспажывання.
- Разам з рэестрам кіравання сістэмай PFIC (PFIC_SCTLR) могуць быць рэалізаваны розныя рэжымы сну і інструкцыі WFE.
Увайдзіце ў рэжым сну
- Мікрапрацэсары серыі QingKe V3 могуць пераходзіць у рэжым сну двума спосабамі: чакаць перапынення (WFI) і чакаць падзеі (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 пераходзіць у рэжым сну, яго можна абудзіць
- Мікрапрацэсар можа быць абуджаны крыніцай перапынення, на якое адказвае кантролер перапынення. Пасля абуджэння мікрапрацэсар спачатку выконвае функцыю перапынення.
- Перайдзіце ў рэжым сну, запыт адладкі можа прымусіць мікрапрацэсар прачнуцца і перайсці ў глыбокі сон, запыт адладкі не можа вывесці мікрапрацэсар з рэжыму сну.
Пасля таго, як метад WFE пераходзіць у рэжым сну, мікрапрацэсар можна разбудзіць наступным чынам.
- Унутраныя або знешнія падзеі, калі няма неабходнасці наладжваць кантролер перапыненняў, прачынаюцца і працягваюць выкананне праграмы.
- Калі крыніца перапынення ўключана, мікрапрацэсар прачынаецца, калі генеруецца перапыненне, і пасля выхаду з абуджэння мікрапрацэсар выконвае функцыю перапынення першым.
- Калі настроены біт SEVONPEND у PFIC_SCTLR, кантролер перапынення не дазваляе перапыненне, але калі генеруецца новы сігнал чакання перапынення (раней створаны сігнал чакання не ўступае ў сілу), гэта таксама можа выклікаць прачынанне мікрапрацэсара і адпаведны сцяг чакання перапынення трэба ачысціць уручную пасля абуджэння.
- Запыт адладкі ў рэжыме сну можа прымусіць мікрапрацэсар прачнуцца і перайсці ў глыбокі сон, запыт адладкі не можа вывесці мікрапрацэсар з рэжыму сну.
- Акрамя таго, станам мікрапрацэсара пасля абуджэння можна кіраваць, наладзіўшы біт 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 | Рэестр стану модуля адладкі |
| hartinfo | 0x12 | Рэестр стану мікрапрацэсара |
| рэфераты | 0x16 | Рэестр стану абстрактных каманд |
| загадваць | 0x17 | Абстрактны рэгістр каманд |
| абстрактны аўт | 0x18 | Аўтаматычнае выкананне абстрактнай каманды |
| progbuf0-7 | 0х20-0х27 | Рэгістры кэша інструкцый 0-7 |
| haltsum0 | 0x40 | Прыпыніць рэестр стану |
- Хост адладкі можа кантраляваць прыпыненне, аднаўленне, скід і г.д. мікрапрацэсара шляхам канфігурацыі рэгістра дэкантролю. Стандарт RISC-V вызначае тры тыпы абстрактных каманд: рэестр доступу, хуткі доступ і доступ да памяці.
- Мікрапрацэсар QingKe V3A падтрымлівае толькі доступ да рэгістра, іншыя мадэлі падтрымліваюць доступ да рэгістра і памяці, але не хуткі доступ. Доступ да рэгістраў (GPR, CSR) і бесперапынны доступ да памяці можна рэалізаваць з дапамогай абстрактных каманд.
- Модуль адладкі рэалізуе 8 рэгістраў кэша інструкцый progbuf0-7, і хост адладкі можа кэшаваць некалькі інструкцый (якія могуць быць сціснутымі інструкцыямі) у буфер і можа працягваць выкананне інструкцый у рэгістрах кэша інструкцый пасля выканання абстрактнай каманды або выканаць кэшаваныя інструкцыі непасрэдна.
- Заўвага што апошняя інструкцыя ў праграмах павінна быць інструкцыяй «ebreak» або «c.ebreak». Доступ да сховішчаў, перыферыйных прылад і г.д. таксама магчымы з дапамогай абстрактных каманд і інструкцый, захаваных у кэшы праграм.
- Кожны рэестр падрабязна апісаны наступным чынам.
- Рэгістр даных 0 (data0)
Табліца 7-2 Вызначэнне рэгістра даных
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | дадзеныя0 | RW | Рэгістр даных 0, які выкарыстоўваецца для часовага захоўвання даных | 0 |
Рэгістр даных 1 (data1)
Табліца 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 | пацвердзіць скід | 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 | усё скінута | RO | 0: несапраўдны
1: Скід мікрапрацэсара |
0 |
| 18 | anyhavereset | 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 Вызначэнне рэгістра hartinfo
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:24] | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| [23:20] | драпаць | RO | Колькасць падтрымоўваных скрэтч-рэгістраў | 0x3 |
| [19:17] | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| 16 | DataAccess | RO | 0: Рэгістр дадзеных супастаўляецца з адрасам CSR
1: Рэгістр дадзеных адлюстроўваецца на адрас памяці |
0x1 |
| [15:12] | памер дадзеных | RO | Колькасць рэгістраў даных | 0x2 |
|
[11:0] |
дад |
RO |
Адрас зрушэння рэгістра дадзеных data0,
базавы адрас якога 0xe0000000, падлягае спецыяльнаму чытанню. |
0xXXX |
Абстрактнае кіраванне камандамі і рэгістры стану (рэфераты)
Гэты рэгістр выкарыстоўваецца для ўказання выканання абстрактнай каманды. Хост адладкі можа прачытаць гэты рэгістр, каб даведацца, выканана апошняя абстрактная каманда ці не, і можа праверыць, ці ўзнікла памылка падчас выканання абстрактнай каманды, і тып памылкі, які падрабязна апісаны наступным чынам.
Табліца 7-7 азначэнняў рэгістра тэзісаў
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:29] | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| [28:24] | памер праграмы | RO | Паказвае нумар праграмнага буфера
рэгістры кэша |
0x8 |
| [23:13] | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| 12 | заняты | RO | 0: абстрактная каманда не выконваецца
1: Выконваюцца абстрактныя каманды Заўвага: пасля выканання абсталяванне ачышчаецца. |
0 |
| 11 | Зарэзерваваны | RO | Зарэзерваваны | 0 |
| [10:8] | cmder | RW | Памылка абстрактнай каманды тыпу 000: Памылак няма
001: Выкананне абстрактнай каманды для запісу ў каманды, анатацыі, абстрактныя аўтаматычныя рэгістры або чытання і запісу ў рэгістры дадзеных і progbuf 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] | aarsize | WO | Разраднасць дадзеных рэгістра доступу 000: 8 біт
001: 16-біт 010: 32-біт |
0 |
| 011: 64-біт (не падтрымліваецца) 100: 128-біт (не падтрымліваецца)
Заўвага: пры доступе да рэгістраў з плаваючай кропкай FPRs, падтрымліваецца толькі 32-бітны доступ. |
||||
| 19 | аарпасцінкрэмент | 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] | рэгна | WO | Укажыце рэгістры доступу 0x0000-0x0fff з'яўляюцца CSR 0x1000-0x101f з'яўляюцца GPR |
0 |
Пры звароце да памяці біты ў рэгістры каманд вызначаюцца наступным чынам.
Табліца 7-9 Вызначэнне каманды Register when Accessing Memory
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:24] | тып cmd | WO | Абстрактны тып каманды 0: Рэестр доступу;
1: Хуткі доступ (не падтрымліваецца); 2: Доступ да памяці. |
0 |
| 23 | aamvirtual | 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, доступ праз байт, data1 плюс 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 |
Вызначэнне рэжыму чытання і запісу Write:
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 progbuf, адпаведныя біты [23:16]. |
0 |
| [15:12] | Запаведнік | RO | Зарэзерваваны | 0 |
| [11:0] | autoexecdata |
RW |
Калі біт усталяваны ў 1, адпаведнае чытанне і запіс рэгістра даных прывядзе да паўторнага выканання абстрактнай каманды ў рэгістры каманд.
Заўвага: серыя V3 распрацавана з двума дадзенымі рэгістры, адпаведныя бітам [1:0]. |
0 |
Рэгістр кэша інструкцый (progbufx)
Гэты рэестр выкарыстоўваецца для захоўвання любой інструкцыі і разгортвання адпаведнай аперацыі, у тым ліку 8, якая павінна звярнуць увагу на апошняе выкананне, якое павінна быць «break» або «c.ebreak».
Табліца 7-11 Вызначэнне рэгістра progbuf
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | progbuf | 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 | DRO | 0000: знешняя адладка не падтрымліваецца 0100: падтрымка стандартнай знешняй адладкі
1111: Знешняя адладка падтрымліваецца, але не сустракаецца спецыфікацыя |
0x4 |
| [27:16] | Зарэзерваваны | DRO | Зарэзерваваны | 0 |
| 15 | перапынак | DRW | 0: каманда break у машынным рэжыме паводзіць сябе так, як апісана ў прывілеі file
1: Каманда break у машынным рэжыме можа перайсці ў рэжым адладкі |
0 |
| [14:13] | Зарэзерваваны | DRO | Зарэзерваваны | 0 |
| 12 | разрыў |
DRW |
0: каманда break у карыстальніцкім рэжыме паводзіць сябе так, як апісана ў прывілеі file
1: Каманда break у рэжыме карыстальніка можа перайсці ў рэжым адладкі |
0 |
| 11 | крок | DRW | 0: перапыненні адключаны пры аднаэтапнай адладцы
1: Уключыць перапыненні пры аднаэтапнай адладцы |
0 |
| 10 | Зарэзерваваны | DRO | Зарэзерваваны | 0 |
| 9 | спыніць час | DRW | 0: Сістэмны таймер працуе ў рэжыме адладкі
1: Сістэмны таймер спыняецца ў рэжыме адладкі |
0 |
|
[8:6] |
выклікаць | DRO | Прычыны ўваходу ў адладку
001: Увод адладкі ў выглядзе каманды перапынку (прыярытэт 3) 010: Увод адладкі ў форме трыгернага модуля (прыярытэт 4, самы высокі) 011: Увод адладкі ў выглядзе запыту на паўзу (прыярытэт 1) 100: адладка ў выглядзе аднаэтапнай адладкі (прыярытэт 0, самы нізкі) |
0 |
| 101: перайсці ў рэжым адладкі непасрэдна пасля скіду мікрапрацэсара (прыярытэт 2) Іншыя: зарэзервавана | ||||
| [5:3] | Зарэзерваваны | DRO | Зарэзерваваны | 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 Debug Protocol Manual для канкрэтных пратаколаў інтэрфейсу адладкі.
Спіс рэестра КСА
- Архітэктура RISC-V вызначае шэраг рэгістраў кіравання і стану (CSR) для кантролю і запісу працоўнага стану мікрапрацэсара.
- Некаторыя з CSR былі прадстаўлены ў папярэднім раздзеле, і ў гэтай главе будуць падрабязна апісаны рэгістры CSR, рэалізаваныя ў мікрапрацэсарах серыі QingKe V3.
Спіс рэестра КСА
Табліца 8-1 Спіс рэгістраў CSR мікрапрацэсара
| Тып | Імя | КСА Адрас | Доступ | Апісанне |
| RISC-V
Стандартная КСА |
мархіда | 0xF12 | MRO | Нумарны рэестр архітэктуры |
| сціплы | 0xF13 | MRO | Рэестр нумарацыі апаратнай рэалізацыі | |
| mstatus | 0x300 | МРВ | Рэестр статусаў | |
| міса | 0x301 | МРВ | Рэестр апаратных інструкцый | |
| mtvec | 0x305 | МРВ | Рэестр базавых адрасоў выключэнняў | |
| mscratch | 0x340 | МРВ | Машынны рэжым stagрэестр | |
| MEPC | 0x341 | МРВ | Рэестр паказальнікаў праграмы выключэнняў | |
| mcause | 0x342 | МРВ | Рэестр прычын выключэнняў | |
| mtval | 0x343 | МРВ | Рэгістр значэнняў выключэнняў | |
| pmpcfg | 0x3A0+i | МРВ | Рэестр канфігурацыі PMP | |
| pmpaddr | 0x3B0+i | МРВ | Рэестр адрасоў PMP | |
| цэлект | 0x7A0 | МРВ | Рэестр выбару трыгера адладкі | |
| тдадзеныя1 | 0x7A1 | МРВ | Рэгістр дадзеных трыгера адладкі 1 | |
| тдадзеныя2 | 0x7A2 | МРВ | Рэгістр дадзеных трыгера адладкі 2 | |
| dcsr | 0x7B0 | DRW | Кантроль адладкі і рэгістры стану | |
| dpc | 0x7B1 | DRW | Рэгістр паказальніка праграмы ў рэжыме адладкі | |
| dscratch0 | 0x7B2 | DRW | Рэжым адладкі stagзарэгістравацца 0 | |
| dscratch1 | 0x7B3 | DRW | Рэжым адладкі stagзарэгістравацца 1 | |
|
КСА, вызначаны пастаўшчыком |
гінтэнр | 0x800 | URW | Рэестр дазволу глабальнага перапынення |
| інцыскр | 0x804 | URW | Рэгістр кіравання сістэмай перапынення | |
| corecfgr | 0xBC0 | МРВ | Рэестр канфігурацыі мікрапрацэсара | |
| інэсткр | 0xBC1 | МРВ | Перапыненне ўкладзенага рэгістра кіравання |
Стандартныя рэестры CSR RISC-V
- Рэестр нумароў архітэктуры (мархід)
- Гэты рэестр з'яўляецца рэгістрам толькі для чытання для ўказання бягучага нумара апаратнай архітэктуры мікрапрацэсара, які ў асноўным складаецца з кода вытворцы, кода архітэктуры, кода серыі і кода версіі. Кожны з іх вызначаецца наступным чынам.
Табліца 8-2 Вызначэнне рэгістра marchid
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| 31 | Зарэзерваваны | MRO | Зарэзерваваны | 1 |
| [30:26] | Вендэр0 | MRO | Код вытворцы 0
Фіксуецца літарным кодам "W". |
0x17 |
| [25:21] | Вендэр1 | MRO | Код вытворцы 1
Фіксаваны на літарны код "C". |
0x03 |
| [20:16] | Вендэр2 | MRO | Код вытворцы 2
Фіксуецца літарным кодам "H". |
0x08 |
| 15 | Зарэзерваваны | MRO | Зарэзерваваны | 1 |
| [14:10] | Арх | MRO | Архітэктурны код | 0x16 |
| Архітэктура RISC-V прывязаная да літары «V». | ||||
| [9:5] | Серыял | MRO | Код серыі
Серыя QingKe V3, з фіксаванай лічбай «3» |
0x03 |
| [4:0] | Версія | MRO | Код версіі
Можа быць версія «A», «B», «C» і іншыя літары кода |
x |
Нумар вытворцы і нумар версіі з'яўляюцца літарнымі, а нумар серыі - лічбавым. Табліца кадавання літар прыведзена ў наступнай табліцы.
Табліца 8-3 Табліца алфавітнага адлюстравання
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
- Сярод іх мікрапрацэсар QingKe V3A, рэестр чытае назад да 0.
Рэгістр нумарацыі апаратнай рэалізацыі (лімпід)
- Гэты рэестр у асноўным складаецца з кодаў пастаўшчыкоў, кожны з якіх вызначаецца наступным чынам.
Табліца 8-4 Вызначэнне празрыстага рэгістра
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| 31 | Зарэзерваваны | MRO | Зарэзерваваны | 1 |
| [30:26] | Вендэр0 | MRO | Код вытворцы 0
Фіксуецца літарным кодам "W". |
0x17 |
| [25:21] | Вендэр1 | MRO | Код вытворцы 1
Фіксаваны на літарны код "C". |
0x03 |
| [20:16] | Вендэр2 | MRO | Код вытворцы 2
Фіксуецца літарным кодам "H". |
0x08 |
| 15 | Зарэзерваваны | MRO | Зарэзерваваны | 1 |
| [14:8] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| [7:4] | Мінор | MRO | Нумар Subversion | 0xX |
| [3:0] | маёр | MR0 | Нумар асноўнай версіі | 0xX |
- Гэты рэгістр можна прачытаць у любой машыннай рэалізацыі, а ў працэсары серыі QingKe V3A гэты рэгістр счытваецца да нуля.
Рэгістр стану машыннага рэжыму (mstatus)
- Гэты рэестр быў часткова апісаны ў папярэднім раздзеле, і яго людзі размешчаны наступным чынам.
Табліца 8-5 Вызначэнне рэестра mstatus
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:13] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| [12:11] | MPP | МРВ | Прывілеяваны рэжым перад выхадам на перапынак | 0 |
| [10:8] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| 7 | MPIE | МРВ | Стан уключэння перапынення перад уваходам у перапыненне | 0 |
| [6:4] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| 3 | MIE | МРВ | Уключэнне перапынення ў машынным рэжыме | 0 |
| [2:0] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
- Поле MPP выкарыстоўваецца для захавання прывілеяванага рэжыму перад уваходам у выключэнне або перапыненне і выкарыстоўваецца для аднаўлення прывілеяванага рэжыму пасля выхаду з выключэння або перапынення. MIE з'яўляецца глабальным бітам дазволу перапынення, і пры ўводзе выключэння або перапынення значэнне MPIE абнаўляецца да значэння MIE, і варта адзначыць, што ў мікрапрацэсарах серыі QingKe V3 MIE не будзе абнаўляцца да 0 перад апошні ўзровень укладзеных перапыненняў, каб пераканацца, што ўкладзенасць перапынення ў машынным рэжыме працягвае выконвацца. Пры выхадзе з выключэння або перапынення мікрапрацэсар вяртаецца ў машынны рэжым, захаваны MPP, і MIE аднаўляецца да значэння MPIE.
- Мікрапрацэсар QingKe V3 падтрымлівае рэжым машыны і рэжым карыстальніка. Калі вам трэба прымусіць мікрапрацэсар працаваць толькі ў рэжыме машыны, вы можаце ўсталяваць MPP на 0x3 пры ініцыялізацыі загрузкі file, гэта значыць пасля вяртання ён заўсёды будзе заставацца ў машынным рэжыме.
Рэгістр апаратных інструкцый (misa)
- Гэты рэгістр выкарыстоўваецца для ўказання архітэктуры мікрапрацэсара і падтрымоўваных пашырэнняў набору інструкцый, кожнае з якіх апісана наступным чынам.
Табліца 8-6 Вызначэнне рэгістра misa
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:30] | MXL | MRO | Даўжыня машыннага слова 1:32
2:64 3:128 |
1 |
| [29:26] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| [25:0] | Пашырэнні | MRO | Пашырэнні набору інструкцый | x |
- MXL выкарыстоўваецца для абазначэння даўжыні слова мікрапрацэсара, QingKe V3 - гэта 32-разрадныя мікрапрацэсары, а дамен фіксаваны на 1.
- Пашырэнні выкарыстоўваюцца, каб паказаць, што мікрапрацэсар падтрымлівае пашыраны набор інструкцый, кожнае паказвае клас пашырэнняў, іх падрабязнае апісанне паказана ў наступнай табліцы.
Табліца 8-7 Дэталі пашырэння набору інструкцый
| Біт | Імя | Апісанне |
| 0 | A | Атамнае пашырэнне |
| 1 | B | Папярэдне зарэзервавана для пашырэння Bit-Manipulation |
| 2 | C | Сціснутае пашырэнне |
| 3 | D | Пашырэнне ліку з плаваючай кропкай падвойнай дакладнасці |
| 4 | E | База ISA RV32E |
| 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 | Папярэдне зарэзервавана для пашырэння Vector |
| 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 азначэнні рэгістра mepc
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | mepc | МРВ | Паказальнік працэдуры выключэння | 0 |
- Гэты рэгістр выкарыстоўваецца для захавання паказальніка праграмы пры ўваходзе ў выключэнне або перапыненне.
- Ён выкарыстоўваецца для захавання ўказальніка інструкцый ПК перад уваходам у выключэнне, калі генеруецца выключэнне або перапыненне, а mepc выкарыстоўваецца ў якасці зваротнага адраса, калі апрацоўваецца выключэнне або перапыненне, і выкарыстоўваецца для вяртання выключэння або перапынення.
- Аднак важна адзначыць, што.
- Калі ўзнікае выключэнне, mepc абнаўляецца да значэння ПК інструкцыі, якая ў цяперашні час стварае выключэнне.
- Калі адбываецца перапыненне, mepc абнаўляецца да значэння PC наступнай інструкцыі.
- Калі вам трэба вярнуць выключэнне пасля апрацоўкі выключэння, вы павінны звярнуць увагу на змяненне значэння mepc, і больш падрабязную інфармацыю можна знайсці ў раздзеле 2 Выключэнні.
Рэгістр прычын выключэння машыннага рэжыму (mcause)
Табліца 8-10 Вызначэнне рэгістра mcause
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| 31 | Перапыніць | МРВ | Поле індыкацыі перапынення 0: Выключэнне
1: Перапыненне |
0 |
| [30:0] | Код выключэння | МРВ | Коды выключэнняў глядзіце ў табліцы 2-1 | 0 |
- Гэты рэгістр у асноўным выкарыстоўваецца для захавання прычыны выключэння або нумара перапынення. Яго старшы біт - гэта поле Interrupt, якое выкарыстоўваецца, каб паказаць, ці з'яўляецца бягучае з'яўленне выключэннем або перапыненнем.
- Малодшы біт - гэта код выключэння, які выкарыстоўваецца для ўказання канкрэтнай прычыны. Яго падрабязнасці можна знайсці ў раздзеле 2 Выключэнні.
Рэгістр значэнняў выключэння машыннага рэжыму (mtval)
Табліца 8-11 Вызначэнне рэестра mtval
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | mtval | МРВ | Значэнне выключэння | 0 |
- Гэты рэгістр выкарыстоўваецца для захоўвання значэння, якое выклікала выключэнне, калі адбываецца выключэнне. Каб атрымаць падрабязную інфармацыю, напрыклад, кошт і час захоўвання, звярніцеся да главы 2 "Выключэнні".
Рэгістр канфігурацыі PMP (pmpcfg
- Гэты рэгістр у асноўным выкарыстоўваецца для канфігурацыі блока абароны фізічнай памяці, і кожныя 8 біт гэтага рэгістра выкарыстоўваюцца для канфігурацыі абароны вобласці. Калі ласка, звярніцеся да раздзела 4 для падрабязнага азначэння.
Рэестр адрасоў PMP (pmpaddr
- Гэты рэгістр у асноўным выкарыстоўваецца для канфігурацыі адрасоў блока абароны фізічнай памяці, які кадуе верхнія 32 біта 34-бітнага фізічнага адраса. Калі ласка, звярніцеся да раздзела 4 для канкрэтнага метаду канфігурацыі.
Рэгістр паказальніка праграмы ў рэжыме адладкі (DPC)
- Гэты рэгістр выкарыстоўваецца для захоўвання адраса наступнай інструкцыі, якая будзе выканана пасля ўваходу мікрапрацэсара
- Рэжым адладкі і яго значэнне абнаўляюцца па розных правілах у залежнасці ад прычыны ўводу адладкі. Падрабязнае апісанне глядзіце ў раздзеле 6.1.
Трыгер адладкі абярыце рэгістра (выбраць)
- Ён дзейнічае толькі для мікрапрацэсараў, якія падтрымліваюць апаратныя кропкі супыну і падтрымліваюць максімум 4-канальныя кропкі супыну, і яго малодшыя 2 біта сапраўдныя.
- Пры канфігурацыі кожнай кропкі супыну канала вам трэба выбраць адпаведны канал праз гэты рэестр перад канфігурацыяй.
Табліца 8-12 выбраць вызначэнне рэгістра
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:2] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
| [1:0] |
ВЫБРАЦЬ |
МРВ |
Рэгістр выбару канала кропкі супыну настроены, гэта значыць, пасля выбару адпаведнага канала рэгістры tdata1 і tdata2 могуць выкарыстоўвацца для канфігурацыі кропкі супыну
інфармацыі. |
X |
Рэгістр дадзеных трыгера адладкі 1(tdata1)
Ён дзейнічае толькі для мікрапрацэсараў, якія падтрымліваюць апаратныя кропкі супыну. Мікрапрацэсары падтрымліваюць толькі кропкі супыну адраса інструкцыі і адраса даных, дзе біт TYPE рэгістра tdata1 мае фіксаванае значэнне 2, а іншыя біты адпавядаюць вызначэнню кіравання ў стандарце адладкі.
Табліца 8-13 Вызначэнне рэгістра tdata1
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:28] | ТЫП | MRO | Вызначэнне тыпу кропкі супыну, тып кіравання. | 0x2 |
|
27 |
DMODE |
MRO |
0: Адпаведныя рэгістры трыгера могуць быць зменены як у машынным рэжыме, так і ў рэжыме адладкі;
1: Толькі ў рэжыме адладкі можна змяняць адпаведныя рэгістры трыгера. |
1 |
|
[26:21] |
МАСКАМАКС |
MRO |
Калі MATCH=1, дапускаецца максімальны экспанентны дыяпазон супастаўлення, гэта значыць максімальна дапушчальны дыяпазон супастаўлення складае 231 байт. |
0x1F |
| [20:13] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
|
12 |
ДЗЕЯННЕ |
МРВ |
Усталюйце рэжым апрацоўкі пры запуску кропкі супыну:
0: пры запуску ўвесці кропку перапынку і выклікаць перапыненне; 1: Увядзіце рэжым адладкі пры спрацоўванні. |
0 |
| [11:8] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
|
7 |
МАТЧ |
МРВ |
Адпаведная канфігурацыя палітыкі:
0: Супадзенне, калі значэнне трыгера роўна TDATA2; 1: Значэнне трыгера супадае са старэйшым бітам m TDATA2, дзе m = 31–n, а n з'яўляецца першым нулявым цытатам TDATA0 (пачынаючы з малодшага біта). |
0 |
|
6 |
M |
МРВ |
Уключыць трыгер у рэжыме M:
0: Адключыць трыгер у рэжыме M; 1: Уключыце трыгер у рэжыме M. |
0 |
| [5:4] | Зарэзерваваны | MRO | Зарэзерваваны | 0 |
|
3 |
U |
МРВ |
Уключыць трыгер у рэжыме U:
0: Адключыць трыгер у рэжыме U; 1: Уключыце трыгер у рэжыме U. |
0 |
|
2 |
ВЫКАНАЦЬ |
МРВ |
Трыгер адраса чытання інструкцый уключаны: 0: адключана;
1: Уключыць. |
0 |
|
1 |
КРАМА |
МРВ |
Трыгер адраса запісу даных уключаны: 0: адключана;
1: Уключыць. |
0 |
|
0 |
ЗАГРУЗІЦЬ |
МРВ |
Трыгер адраса чытання дадзеных уключаны: 0: адключана;
1: Уключыць. |
0 |
Рэгістр дадзеных трыгера адладкі 2(tdata2)
Ён дзейнічае толькі для мікрапрацэсараў, якія падтрымліваюць апаратныя кропкі супыну, і выкарыстоўваецца для захавання адпаведнага значэння трыгера.
Табліца 8-14 Вызначэнне рэгістра tdata2
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | TDATA2 | МРВ | Выкарыстоўваецца для захавання адпаведных значэнняў. | X |
Кантроль адладкі і рэестр стану (dcsr)
Гэты рэгістр выкарыстоўваецца для кантролю і запісу стану працы рэжыму адладкі. Падрабязнасці глядзіце ў раздзеле 7.1.
Паказальнік праграмы рэжыму адладкі (DPC)
Гэты рэгістр выкарыстоўваецца для захоўвання адраса наступнай інструкцыі, якая будзе выканана пасля таго, як мікрапрацэсар пераходзіць у рэжым адладкі, яго значэнне адрозніваецца ў залежнасці ад прычын пераходу ў рэжым адладкі, а таксама розныя правілы абнаўлення. Падрабязнае апісанне глядзіце ў раздзеле 7.1.
Рэжым адладкі stagрэгістр (dscratch0-1)
Гэтая група рэгістраў выкарыстоўваецца для часовага захоўвання дадзеных у рэжыме адладкі.
Табліца 8-15 азначэнні рэгістраў dscratch0-1
| Біт | Імя | Доступ | Апісанне | Скінуць значэнне |
| [31:0] | dscratch | DRW | Даныя рэжыму адладкі stagная каштоўнасць | 0 |
Вызначаны карыстальнікам CSR Register
Рэгістр дазволу глабальных перапыненняў карыстальніцкага рэжыму (gintenr)
- Гэты рэгістр выкарыстоўваецца для кіравання дазволам і маскай глабальнага перапынення. Уключэнне і маска глабальнага перапынення ў машынным рэжыме могуць кіравацца бітамі MIE і MPIE у статусе, але гэты рэгістр не можа працаваць у рэжыме карыстальніка.
- У той час як глабальнае перапыненне дазваляе зарэгістраваць gintenr, гэта адлюстраванне MIE і MPIE у статусе.
- У карыстальніцкім рэжыме намер можна выкарыстоўваць для ўстаноўкі і ачысткі MIE і MPIE, як апісана ў Раздзеле 3.2 для дэталяў.
Заўвага
- Глабальныя перапыненні не ўключаюць незамаскіраваныя перапыненні NMI і выключэнні.
Рэгістр кіравання сістэмай перапынення (intsyscr)
Гэты рэгістр у асноўным выкарыстоўваецца для канфігурацыі глыбіні ўкладзенасці перапынення, націску апаратнага стэка і іншых звязаных функцый, як апісана ў Раздзеле 3.2 для дэталяў.
Рэгістр канфігурацыі мікрапрацэсара (corecfgr)
Гэты рэгістр выкарыстоўваецца, каб кантраляваць, ці дазволена перапыненне NMI пасля перапаўнення перапынення і ці ачышчаецца запыт перапынення пры выкананні інструкцыі агароджы. Калі ласка, звярніцеся да раздзела 3.2 для атрымання канкрэтнага вызначэння.
Перапыненне ўкладзенага рэгістра кіравання (inestcr)
Гэты рэгістр выкарыстоўваецца для ўказання стану ўкладзенасці перапынення і таго, перапаўняецца яно ці не, а таксама для кантролю максімальнага ўзроўню ўкладзенасці. Калі ласка, звярніцеся да раздзела 3.2 для атрымання канкрэтнага вызначэння.
Дакументы / Рэсурсы
![]() | Мікрапрацэсар V3 |
Спасылкі
- Кіраўніцтва карыстальнікаmanual.tools

