所以我要禁用它， 2 2
然後單擊此處返回調試視圖 3 3
看到我們的記憶，我們的記憶視圖 4 4
調試器，看看我的調試器是否運行 5 5
是的，所以我們要做的是 6 6
我們要運行代碼，然後輸入 7 7
一個例外，看看那確實在哪裡 8 8
八個寄存器被推到 9 9
堆疊我要做的當然是 10 10
我將顯示我的寄存器，然後我將 11 11
運行我要單擊的代碼 12 12
在這裡，隨著代碼的運行，我正在 13 13
進入囊腫，然後放一個 14 14
斷點，以便當我們到達 15 15
囊狀的當中斷發生時我們可以 16 16
休息，然後做我們正確的觀察 17 17
在這個中斷中，所以我將 18 18
斷點，然後它將停止 19 19
這就是我們在 20 20
cortex m4通用用戶指南為了 21 21
使它與手臂匹配的方式 22 22
內存視圖顯示內存 23 23
我要在其中翻轉的位置 24 24
記錄寄存器的排列 25 25
最高的內存位置到最低的內存 26 26
此指示的位置 27 27
這裡的箭頭說減少 28 28
內存地址中的內存視圖 29 29
另一方面，調試器顯示 30 30
最低的內存地址到最高的 31 31
內存地址，所以通過翻轉堆棧 32 32
框架我們可以匹配顯示的內容 33 33
內存視圖，所以我們有八個 34 34
寄存器，我們在這裡找到0 R 1 R 2 R 3 35 35
R 12鏈接註冊程序 36 36
櫃檯註冊和XPS我們的 37 37
註冊這些第一7 1 2 3 4 5 6 7 38 38
所以只是回顧一下這裡存儲的值 39 39
在這8個存儲位置中 40 40
這8個內存中存在的值 41 41
實際皮層的位置 42 42
發生中斷時進行註冊，因此 43 43
為了使處理器能夠 44 44
在中斷的地方繼續excel 45 45
一旦完成服務併中斷 46 46
它必須存儲這些值 47 47
將八個寄存器保存在安全的地方 48 48
他們，並把它們放回他們 49 49
相應的cortex-m寄存器一旦 50 50
中斷已經結束，例如我們知道 51 51
程序計數器總是寄存器 52 52
保留下一個的地址 53 53
要執行的指令，所以下一個 54 54
本應執行的指令 55 55
在中斷之前可以嗎 56 56
在這裡發言，因為我們知道這一點 57 57
對應於的PC寄存器 58 58
堆棧框架正確的原因僅在於 59 59
這是當時的價值 60 60
代碼的程序計數器寄存器 61 61
文字M寄存器Bank中斷時 62 62
發生了 63 63
因此它被推到堆棧上 64 64
當處理器從 65 65
中斷它要執行這個 66 66
首先講課，我們實際上可以 67 67
測試當前的地址和 68 68
程序計數器寄存器是這個 69 69
在這裡，這個以2fe結尾的意思 70 70
一旦我們從中斷返回 71 71
第一條要執行的指令是在這裡 72 72
地址，當我單擊執行時 73 73
我點擊這裡執行pxl我們 74 74
可以讓我返回的指令 75 75
從中斷中我們意識到 76 76
下一條指令排隊執行 77 77
將是2fe將是一個將結束 78 78
這個值為2f e，所以讓我點擊 79 79
這，讓我們看看我的確是 80 80
將要還原的內容 81 81
程序註冊，我們將不得不 82 82
在這裡看到Fe，所以我將在這裡單擊 83 83
您可以看到該地址已被帶到F 84 84
E，就像你看到的那樣 85 85
並註冊從中加載的銀行 86 86
上下文是堆棧中的 87 87
向Fe註冊銀行，希望您能 88 88
關於這裡發生的事情的想法 89 89
意思是如果我們輸入一個例外 90 90
在該異常內，我們找到了一種方法 91 91
更改程序中存儲的值 92 92
然後堆棧幀的計數器寄存器 93 93
當我們退出異常時，我們可以 94 94
處理器跳到你知道的 95 95
內存地址，而不是跳轉到 96 96
異常期間保存在哪裡 97 97
目前是的，程序偷了這個 98 98
值在堆棧指針中，所以如果我要 99 99
單擊此處執行BX LR，然後 100 100
我要退出的例外是 101 101
通過執行此繼續，但是如果我發現 102 102
一種將地址更改為我的地址的方法 103 103
首選地址，然後我出來 104 104
處理器要運行的異常 105 105
從我的首選地址繼續 106 106
因為程序計數器寄存器 107 107
總是存儲下一個的地址 108 108
要執行的指令和 109 109
堆棧的程序計數器寄存器 110 110
框架將被放入實際 111 111
皮質程序計數器寄存器 112 112
和微處理器，一旦我們離開 113 113
例外，所以我要做的是 114 114
我將獲得主要地址 115 115
橙色功能，我要放它 116 116
在程序計數器寄存器中 117 117
堆棧框，然後我要退出 118 118
例外，然後我怎麼期望 119 119
要加載到實際地址中 120 120
Kotex的程序計數器寄存器 121 121
微處理器，我希望看到 122 122
橙色LED空白 123 123
我希望看到手臂的內容 124 124
該功能必須作為LED執行 125 125
眨眼，所以我可以得到這個地址 126 126
只需單擊並突出顯示即可 127 127
在這裡，您可以看到地址 128 128
是5，所以我知道，我知道 129 129
手臂在這裡的第七項是 130 130
程序計數器寄存器因此通過更改 131 131
然後把這個地址放在那裡 132 132
那這是我想要處理器的地方 133 133
這就是為什麼我要處理器 134 134
退出異常時繼續 135 135
我要像這樣來到這裡 136 136
然後加載5 4 0，然後一次 137 137
我要做的是我要去 138 138
在這裡禁用Cystic，然後我 139 139
要點擊此處退出 140 140
您可以看到我是個例外 141 141
直接帶到這個地址 142 142
我加載了，你可以看到這雙重 143 143
滴答聲表明這是我去過的地方 144 144
bro 145 145
所以我接下來要做的就是 146 146
要按你的代碼來運行 147 147
我們希望看到橙色LED閃爍 148 148
讓我們來看看，就像你看到的橙色 149 149
LED就這樣閃爍，讓我們 150 150
繼續我們接下來要做的是 151 151
我們只是要在其中設置一個斷點 152 152
再次進入囊性異常 153 153
它生成堆棧框架，現在 154 154
我們將把 155 155
程序計數器中的藍色主 156 156
堆棧幀的寄存器，然後我們 157 157
走出異常，我們期望 158 158
看到藍色的LED也閃爍 159 159
看到我們到達那裡 160 160
我們進入到你實際上 161 161
了解實時內核 162 162
系統工作真的非常重要 163 163
所以囊腫在哪裡 164 164
令人興奮的是或否，所以我把這個 165 165
在這裡像這樣作為斷點 166 166
對，是的，正如我們所見，我們擁有 167 167
八個寄存器具有的堆棧幀 168 168
被保存，我們知道第七項 169 169
是程序計數器寄存器，因此 170 170
一旦我們執行了什麼 171 171
毫無例外，但我們沒有 172 172
想要執行此操作，我們想要的是 173 173
執行藍色主體，所以我 174 174
我要做的是 175 175
該特定功能的地址，以及 176 176
我這樣做的方式和方式是 177 177
像以前一樣單擊此處，然後 178 178
該函數的地址，所以是4 179 179
d4，這樣我就可以進入程序了 180 180
在其中安裝d4的計數器寄存器 181 181
對於d4一旦完成，我就去 182 182
在這裡禁用它，然後我要去 183 183
執行BX LR，如您所見 184 184
被加工成藍色的 185 185
我們輸入庫存的地址 186 186
堆棧幀程序計數器寄存器 187 187
我將要單擊此處運行 188 188
代碼，如您所見，藍色LED 189 189
有些在眨眼，就這樣，現在我們 190 190
進入下一步