1
1

00:00:02,030  -->  00:00:07,589
大家好，歡迎回來
2

2

00:00:05,160  -->  00:00:10,440
處理器正在運行，並且中斷或
3

3

00:00:07,589  -->  00:00:13,469
例外情況，我們都知道
4

4

00:00:10,440  -->  00:00:15,600
發生在它跳到中斷
5

5

00:00:13,469  -->  00:00:19,050
服務例程或異常處理程序
6

6

00:00:15,600  -->  00:00:21,150
然後是伊朗的特定代碼
7

7

00:00:19,050  -->  00:00:24,750
存在於該特定異常中
8

8

00:00:21,150  -->  00:00:28,230
處理程序或中斷服務程序，但
9

9

00:00:24,750  -->  00:00:30,500
在處理器跳動之前還有更多
10

10

00:00:28,230  -->  00:00:34,230
它必須保存上下文或
11

11

00:00:30,500  -->  00:00:36,510
例如係統的當前狀態
12

12

00:00:34,230  -->  00:00:40,050
假設處理器要加兩個
13

13

00:00:36,510  -->  00:00:42,120
滅弧室在意時的數字
14

14

00:00:40,050  -->  00:00:46,200
將會有一些數據
15

15

00:00:42,120  -->  00:00:48,540
cortex-m註冊正確，所以如果
16

16

00:00:46,200  -->  00:00:51,750
從中斷返回
17

17

00:00:48,540  -->  00:00:54,270
在上下文中沒有保存的話
18

18

00:00:51,750  -->  00:00:56,969
無法準確地繼續下去，那又怎樣
19

19

00:00:54,270  -->  00:00:59,399
發生的是它保存上下文之前
20

20

00:00:56,969  -->  00:01:03,329
跳到中斷位置並
21

21

00:00:59,399  -->  00:01:06,420
它的作用是推動內容
22

22

00:01:03,329  -->  00:01:09,479
寄存器銀行中的寄存器到
23

23

00:01:06,420  -->  00:01:13,499
堆棧，並按順序執行
24

24

00:01:09,479  -->  00:01:17,999
先推r0，然後推r1，再推R
25

25

00:01:13,499  -->  00:01:22,109
2 R 3然後我們的12然後是鏈接寄存器
26

26

00:01:17,999  -->  00:01:25,109
然後程序計數器註冊
27

27

00:01:22,109  -->  00:01:27,929
按此順序，如果處理器是
28

28

00:01:25,109  -->  00:01:31,859
使用主堆棧將要推送
29

29

00:01:27,929  -->  00:01:37,289
以R 0 R的順序進入主堆棧
30

30

00:01:31,859  -->  00:01:39,209
1 R 2 R 3 R 12鏈接寄存器PC，如果
31

31

00:01:37,289  -->  00:01:41,549
它在即將進行的過程中被使用
32

32

00:01:39,209  -->  00:01:44,669
推入
33

33

00:01:41,549  -->  00:01:47,999
同一順序描述這是什麼
34

34

00:01:44,669  -->  00:01:50,789
被稱為堆棧框架，我們有
35

35

00:01:47,999  -->  00:01:54,479
訪問堆棧框架相同的堆棧
36

36

00:01:50,789  -->  00:01:57,959
幀傳遞給我們的SVC處理程序，
37

37

00:01:54,479  -->  00:02:00,599
我們可以通過指針訪問它
38

38

00:01:57,959  -->  00:02:02,789
我們作為參數傳遞給SVC
39

39

00:02:00,599  -->  00:02:05,459
處理程序基於其中的順序
40

40

00:02:02,789  -->  00:02:08,580
寄存器被壓入堆棧
41

41

00:02:05,459  -->  00:02:13,290
知道索引0將具有R 0索引1
42

42

00:02:08,580  -->  00:02:15,569
R 1和X 2 R 2然後我們將找到
43

43

00:02:13,290  -->  00:02:18,870
程序計數器位於索引6
44

44

00:02:15,569  -->  00:02:22,469
所以如果我們要寫像SVC這樣的東西
45

45

00:02:18,870  -->  00:02:26,250
AR GS在0，那麼我們就可以訪問
46

46

00:02:22,469  -->  00:02:29,670
如果我們將SVC編寫為RTS，則R 0的內容
47

47

00:02:26,250  -->  00:02:32,340
索引1我們有權訪問的內容
48

48

00:02:29,670  -->  00:02:35,849
如果我們這樣寫R 1
49

49

00:02:32,340  -->  00:02:38,760
我們使用索引號6然後可以訪問
50

50

00:02:35,849  -->  00:02:41,069
程序計數器現在註冊
51

51

00:02:38,760  -->  00:02:43,680
讓我們開車去Eurovision並繼續
52

52

00:02:41,069  -->  00:02:45,329
現在我們知道為什麼要在此索引中使用
53

53

00:02:43,680  -->  00:02:47,730
讓我們繼續執行我們的代碼，我們將
54

54

00:02:45,329  -->  00:02:50,519
請盡可能參考此圖
55

55

00:02:47,730  -->  00:02:52,939
是的，別忘了留下任何東西
56

56

00:02:50,519  -->  00:02:56,849
下面的問題我知道那門課程可能
57

57

00:02:52,939  -->  00:02:59,489
現在看起來有點困難，但是不用擔心
58

58

00:02:56,849  -->  00:03:01,530
而且您會很高興知道您可以
59

59

00:02:59,489  -->  00:03:05,280
完美構建操作系統
60

60

00:03:01,530  -->  00:03:07,620
不使用SVC，還有另一種方法
61

61

00:03:05,280  -->  00:03:09,629
建立操作系統的過程
62

62

00:03:07,620  -->  00:03:13,500
要少嘗試三種不同的噓
63

63

00:03:09,629  -->  00:03:15,480
我將使用SVC依賴SVC和
64

64

00:03:13,500  -->  00:03:18,299
我們要哭泣的噓
65

65

00:03:15,480  -->  00:03:20,699
完全使用SVC，所以我對您的承諾是
66

66

00:03:18,299  -->  00:03:22,590
無論在這種情況下的情況如何
67

67

00:03:20,699  -->  00:03:26,040
當然你應該能夠建立你的
68

68

00:03:22,590  -->  00:03:29,629
自己的實時操作系統，所以我會
69

69

00:03:26,040  -->  00:03:29,629
再見，你在車裡
