1
00:00:00,120 --> 00:00:05,280
So first, let's proceed with an initial addition of a time, so we required to declare to structure

2
00:00:05,670 --> 00:00:07,510
first within the config structure.

3
00:00:07,560 --> 00:00:07,800
OK.

4
00:00:07,830 --> 00:00:11,010
This again is a pointer and then the instant right.

5
00:00:11,020 --> 00:00:16,760
So these are the two structure that we require to perform an initialization of our issue time.

6
00:00:16,870 --> 00:00:17,100
Right.

7
00:00:17,460 --> 00:00:20,900
So here we declare an independent function named as a timer.

8
00:00:21,420 --> 00:00:23,580
This consist of all the function that.

9
00:00:24,480 --> 00:00:28,940
Is used to perform an initialization of our private that you do with suit.

10
00:00:29,160 --> 00:00:29,430
All right.

11
00:00:29,730 --> 00:00:36,170
So we first call look up config where we add the device to where do you find device IDs from an experimental

12
00:00:36,600 --> 00:00:36,850
file?

13
00:00:36,870 --> 00:00:43,380
So if you just go to an X parameter dot fight and if you search for an issue timer, so you get all

14
00:00:43,380 --> 00:00:46,280
the information related to an issue, a rate.

15
00:00:46,470 --> 00:00:47,730
So here you have a device.

16
00:00:47,730 --> 00:00:53,790
80 Something interesting is if you remember whenever you are utilizing the interpreter case of a GPI

17
00:00:53,790 --> 00:00:54,960
or a timer.

18
00:00:55,200 --> 00:00:59,670
So wherever you have a data related to that IP, there you get vector isolate.

19
00:00:59,670 --> 00:01:02,620
That is the unique I.D. that we get for an interpreter.

20
00:01:02,790 --> 00:01:05,340
But here you do not find anything as an interface.

21
00:01:05,880 --> 00:01:12,420
So we will be understanding how you find out and interpret it for internal resources that we have with

22
00:01:12,420 --> 00:01:13,620
the processing system, right?

23
00:01:13,830 --> 00:01:16,130
So here you do not find anything as an interface.

24
00:01:16,410 --> 00:01:21,850
OK, that is the specific difference that you will be finding between the interpreter knee into.

25
00:01:21,870 --> 00:01:28,890
When we that will be finding is the specific difference between the example that we considered in a

26
00:01:28,890 --> 00:01:30,600
previous video.

27
00:01:31,260 --> 00:01:35,630
So we go ahead and first include the issue timer device.

28
00:01:36,600 --> 00:01:41,360
Now this will return the convict structure, which we will be utilizing in a sea of Jaenisch light,

29
00:01:41,380 --> 00:01:46,140
along with any structure and the base address, and that will perform an initialization rate.

30
00:01:46,140 --> 00:01:51,340
So the status of initialization is written by this function, which is stored in this variable.

31
00:01:51,940 --> 00:01:55,470
And then we are just verifying whether initialization is successful.

32
00:01:55,470 --> 00:01:57,740
If status is equal to this, this axis.

33
00:01:58,200 --> 00:02:03,110
Then we can see that timer and it is successful and we could just make it right.

34
00:02:03,360 --> 00:02:09,600
But we could actually perform all the configuration of the timer here, except as discussed previously.

35
00:02:09,730 --> 00:02:09,890
Right.

36
00:02:09,900 --> 00:02:14,610
So the configuration that we need to do for our timer is first, we need to calculate the delay, just

37
00:02:15,000 --> 00:02:18,060
assume that we want to generate a delay of one second rate.

38
00:02:18,270 --> 00:02:22,890
So we know that this timer operate at half of the same frequency rate.

39
00:02:23,130 --> 00:02:25,140
So it is operating at three three guards.

40
00:02:25,140 --> 00:02:30,810
So we are loading it with three three three megahertz that basically provide us a delay of one second.

41
00:02:30,960 --> 00:02:36,090
So let me just call this a first configuration of our timer, right?

42
00:02:36,240 --> 00:02:38,930
So we go ahead and we call it over here.

43
00:02:38,940 --> 00:02:43,500
In fact, we know that whenever we are working with the timer, the first thing that we do is to forcefully

44
00:02:43,500 --> 00:02:44,580
stop our time right.

45
00:02:44,880 --> 00:02:51,600
So we go ahead and we call this function, which allow us to stop the timer right?

46
00:02:52,680 --> 00:02:56,760
Here we just need to pass the instance of geologists die, right?

47
00:02:57,000 --> 00:02:59,910
Then we load our timer to provide a delay of one second.

48
00:03:00,180 --> 00:03:05,690
So this will give us a delay of one second and then we are disabling and reload.

49
00:03:05,880 --> 00:03:12,180
So this basically means when we want to generate a multiple event, we need to restart on a timer,

50
00:03:12,190 --> 00:03:12,480
right?

51
00:03:12,960 --> 00:03:15,810
So we have two ways we could use a reset timer.

52
00:03:16,140 --> 00:03:19,440
Either we could use reset timer or we could use an awful lot more.

53
00:03:19,470 --> 00:03:25,290
So both of this we discussed already, right since here we are disabling an auto reload mode since we

54
00:03:25,290 --> 00:03:30,240
are disabling a lot to learn what you need to use a restart timer whenever we have it right.

55
00:03:30,870 --> 00:03:35,160
And then the last thing that is starting a timer will be doing in a main function.

56
00:03:35,700 --> 00:03:38,460
So these are all the configuration that we need to do.

57
00:03:38,460 --> 00:03:44,910
So we are loaded our I must be able to get a delay of one second rate to this complete the goal that

58
00:03:44,910 --> 00:03:46,680
you need during that time within right.

59
00:03:46,680 --> 00:03:52,380
So once you complete the timer and your function, you go to a mean good, OK, I hear you call timer,

60
00:03:52,620 --> 00:03:52,810
right?

61
00:03:52,830 --> 00:03:57,530
So this will perform initialization of an issue timer as well as configuration, right?

62
00:03:57,840 --> 00:04:00,840
The next step is to initialize of right to.

63
00:04:02,080 --> 00:04:05,800
The next step is to initialize our GST rate.

64
00:04:06,720 --> 00:04:09,450
So we already perform an initialization of a very fitted.

65
00:04:09,660 --> 00:04:12,810
Now we proceed for initialization of the GSI.

66
00:04:12,850 --> 00:04:16,080
So this also required structure, right?

67
00:04:16,080 --> 00:04:18,810
So perfect structure and an instant structure, right?

68
00:04:19,110 --> 00:04:24,330
Then we go ahead and we declare one function, which we refer to as an entire integrator.

69
00:04:24,330 --> 00:04:31,020
This consists of all the function that could be used to perform an initialization of why general in

70
00:04:31,030 --> 00:04:31,920
charge controller, right?

71
00:04:31,920 --> 00:04:34,650
So first we call look upon where we add a device.

72
00:04:35,220 --> 00:04:41,400
This will generate the config structure for us, which we will be utilizing in the CMG initialize along

73
00:04:41,400 --> 00:04:43,560
with an instance structure and a b said.

74
00:04:44,730 --> 00:04:47,970
Then we are verifying whether initialization is successful or not.

75
00:04:48,460 --> 00:04:48,770
Right.

76
00:04:48,780 --> 00:04:53,760
So this complete the process of initialization of our general controller.

77
00:04:54,060 --> 00:05:01,230
The next step that we have is to both initialize as well as enable an exception handler on the power

78
00:05:01,950 --> 00:05:05,730
when we supply power to the processing system.

79
00:05:05,760 --> 00:05:09,120
The exception handler is would destabilize and initialize.

80
00:05:09,130 --> 00:05:13,440
So we need to perform initialization as well as we need to enable it, right?

81
00:05:13,860 --> 00:05:18,300
So all the driver related to an exception will be finding and then they'll underscore exception.

82
00:05:18,300 --> 00:05:18,960
Darkness, right?

83
00:05:19,290 --> 00:05:25,470
So if you just proceed first, we call exception in it again, in the registered handler, we need to

84
00:05:25,470 --> 00:05:27,810
specify the type of an break.

85
00:05:27,830 --> 00:05:30,750
So here we are utilizing an issue.

86
00:05:31,590 --> 00:05:31,900
OK?

87
00:05:31,980 --> 00:05:38,700
The master handler for us is that in Japan, and then we need to pass an instance structure for AGC,

88
00:05:38,760 --> 00:05:38,970
right?

89
00:05:39,010 --> 00:05:45,510
So here if you observe, we have not identified a right, so if you just customizing processing system.

90
00:05:45,930 --> 00:05:46,240
OK.

91
00:05:47,200 --> 00:05:54,240
And if you go to the interest rate, so here we have a fabric interface, so this enable us to connect

92
00:05:54,750 --> 00:05:57,430
up to abuse or sent up to a.

93
00:05:57,970 --> 00:06:01,720
So if you just go ahead to first, we have a built in.

94
00:06:02,130 --> 00:06:02,360
Great.

95
00:06:02,380 --> 00:06:04,660
So here we have an IQ board, right?

96
00:06:05,020 --> 00:06:10,090
And then this allows this series of things to add to this great.

97
00:06:10,100 --> 00:06:15,950
So since we are not utilizing any play, this won't be required in this example.

98
00:06:16,450 --> 00:06:18,890
Similarly, we have a peer to peer into it, right?

99
00:06:18,910 --> 00:06:28,030
But we are not sending out of a rate for an internal resources, such as the resources, which is private

100
00:06:28,030 --> 00:06:29,810
to the unseen processing system.

101
00:06:29,840 --> 00:06:36,310
OK, we do not need to do anything OK, even though remember that we have not connected any ben to an

102
00:06:36,310 --> 00:06:38,470
IQ, all the fabric in depth.

103
00:06:38,800 --> 00:06:39,120
OK.

104
00:06:39,310 --> 00:06:47,470
But still, we need to specify this to be arguing right now when we consider an internal zinc processing

105
00:06:47,470 --> 00:06:52,150
system, resource of the type of input will still be belonging to one of this category.

106
00:06:52,160 --> 00:06:54,060
Like to be the.

107
00:06:55,440 --> 00:07:03,270
Software Interrupt Prefecture Board Data Board are forced into our last right and research and undefined,

108
00:07:03,270 --> 00:07:06,900
so these are the seeds of the suicide of entropy that we have, right?

109
00:07:07,140 --> 00:07:13,350
So even though we are not utilizing the fabric into but still this belongs to an IQ, right?

110
00:07:13,530 --> 00:07:18,480
So the first argument that it would be adding for this triangle, it is still alive.

111
00:07:19,170 --> 00:07:28,080
So unless you prefer to use and other type of an job, you need to specify a Niharika as your type of

112
00:07:28,080 --> 00:07:31,890
an intro for almost all the resources that you are Typekit, right?

113
00:07:32,850 --> 00:07:38,550
Then the master handler for us is NDIC Master Hanger in the last argument that we need to add is the

114
00:07:38,730 --> 00:07:41,880
infrastructure of our GC, which is right.

115
00:07:42,060 --> 00:07:44,490
And then we need to enable the exception.

116
00:07:44,730 --> 00:07:52,290
So this completes our step to walk where we initialize our exception and we enable the third part that

117
00:07:52,290 --> 00:07:57,540
we do is to specify the function that will be called when we have an enterprise.

118
00:07:57,540 --> 00:08:02,810
So we recognize and into the unique idea and then we specify an interest rate.

119
00:08:03,090 --> 00:08:11,160
So we call the connect rate and instant sector for Gacy's II, then we need to find open, unique enterprise

120
00:08:11,160 --> 00:08:11,420
data.

121
00:08:11,470 --> 00:08:18,510
So we already know that we do not have any idea what here when we explore any parameter find.

122
00:08:18,720 --> 00:08:25,560
So in that case, you get all the information related to appear so you could just explore this.

123
00:08:25,690 --> 00:08:29,340
Hey, if I needed X parameters and let's start started.

124
00:08:29,370 --> 00:08:33,300
So if you just click on an F3, OK, here you'll be finding all the missing information.

125
00:08:33,310 --> 00:08:40,290
So here you have all the tied for the resources which are which are private to us in pricing system,

126
00:08:40,290 --> 00:08:40,500
right?

127
00:08:40,500 --> 00:08:45,930
So here you have the WD IDs, you dimer interface.

128
00:08:46,350 --> 00:08:50,040
We also have what it is in jeopardy and so on and so forth, right?

129
00:08:50,550 --> 00:08:56,130
So whenever you do not find out that information that you are looking for related to our hardware in

130
00:08:56,130 --> 00:09:04,110
an experimental dot, which might just go and explore the parameters and the score based on each rate.

131
00:09:04,470 --> 00:09:09,910
So this is included in an X parameter file, so you just need to explore it and all the missing information

132
00:09:09,910 --> 00:09:11,700
you'll be finding in that fight, right?

133
00:09:12,030 --> 00:09:16,190
So here you have an S.U. timer into tidy rate.

134
00:09:16,200 --> 00:09:17,580
So that is what we going to call.

135
00:09:17,640 --> 00:09:23,860
The next thing that we going to specify is the function that will be executed when we have an interface.

136
00:09:23,860 --> 00:09:27,120
So we declare wide Daimler Handler, right?

137
00:09:27,130 --> 00:09:31,890
So this is the function that we want to call when we have an interface, and that is what we gonna specify

138
00:09:31,900 --> 00:09:32,540
over here, right?

139
00:09:32,560 --> 00:09:38,600
So here the food argument could be zero, or it could also be the instance structure of our time, right?

140
00:09:38,610 --> 00:09:42,810
So instead of searching for a time rischi, we'll just be adding di over here.

141
00:09:42,820 --> 00:09:45,650
So this will serve as a callback data for us, right?

142
00:09:45,960 --> 00:09:47,700
And then we need to enable right.

143
00:09:47,700 --> 00:09:50,220
So we have a two switches, which we need to enable.

144
00:09:50,820 --> 00:09:52,890
So here we have Ogi C never.

145
00:09:52,930 --> 00:09:55,730
OK, so this will lose this right?

146
00:09:56,900 --> 00:10:02,300
Next one, now we know that our driver file consists of an enabling trip, so we need to collect to

147
00:10:02,420 --> 00:10:06,940
close this route so we go ahead to the timer driver, right?

148
00:10:06,940 --> 00:10:12,050
And then here we have and enable it to operate.

149
00:10:12,050 --> 00:10:13,910
So we just required an instant structure.

150
00:10:14,300 --> 00:10:19,390
And that is what we have to do to give CSU timer enabling and instant structure right.

151
00:10:19,400 --> 00:10:22,080
So this will close our switching.

152
00:10:22,100 --> 00:10:26,960
And right now we are ready to send and interpret this struggle by referring to the.

153
00:10:28,130 --> 00:10:32,090
Let us see what should be there in the interrupt, right?

154
00:10:32,690 --> 00:10:38,060
First thing that we do as soon as we have an interface to disable it so that we do not have any new

155
00:10:38,060 --> 00:10:40,910
request until we solve an existing one.

156
00:10:40,970 --> 00:10:45,050
Right then we are performing two way check with timeout is really expired, right?

157
00:10:45,050 --> 00:10:52,010
So if you demoted expire, then we'll just be mentioning we have an interest, OK, and we'll be printing

158
00:10:52,010 --> 00:10:52,460
this right?

159
00:10:52,730 --> 00:10:57,170
But this will always be a case that when we reach over here, our timer will be expired and then we

160
00:10:57,170 --> 00:11:01,670
have an interest later said at one second.

161
00:11:02,710 --> 00:11:07,320
OK, because we specified the counters that we we're able to get the deal of one, right?

162
00:11:07,570 --> 00:11:15,100
Then we're hearing up all the pending OK and interpret so that we have a fresh interim request again

163
00:11:15,100 --> 00:11:16,870
and then we are enabling an interim.

164
00:11:17,820 --> 00:11:23,610
OK, so this allows us to start sensing a new interventions we disable are.

165
00:11:25,110 --> 00:11:32,220
Auto reload, more so we need to forcefully call a restart timer, so to get the multiple interrupt

166
00:11:32,400 --> 00:11:35,430
for all my time, right, so restart time.

167
00:11:35,520 --> 00:11:41,580
And we need to pass an instant structure, right, so that what this will do is this will again reload

168
00:11:41,580 --> 00:11:45,930
our timer to the value set that we're able to get the delay of one second.

169
00:11:46,200 --> 00:11:48,590
So this complete the whole quarantining.

170
00:11:48,630 --> 00:11:54,750
Topanga now only thing that we need to call in our main function is the time any which will perform

171
00:11:54,750 --> 00:12:02,000
an initialization and no configuration of a timer and which will perform an initialization of ICAC,

172
00:12:02,010 --> 00:12:06,330
right then we just need to call stacked EPA of our time.

173
00:12:06,420 --> 00:12:10,080
So this will start our operation and then we are waiting for it to occur.

174
00:12:10,380 --> 00:12:11,580
So this complete circle?

175
00:12:11,850 --> 00:12:14,550
Let me just build our entire application project.

176
00:12:15,150 --> 00:12:17,850
So once our bill is finished, we have any left right now.

177
00:12:17,850 --> 00:12:24,380
What we want to do is we'll just be selecting our application project debugger launch on.

178
00:12:24,890 --> 00:12:25,110
Right.

179
00:12:25,500 --> 00:12:27,980
So this will automatically program our SPG.

180
00:12:28,140 --> 00:12:34,050
The only thing that we need to do is to connect dominion to the respective computer and click on resume

181
00:12:34,050 --> 00:12:34,570
button, right?

182
00:12:34,920 --> 00:12:40,020
So you will see time and it is successful and it's successful and at an interval of one second.

183
00:12:40,320 --> 00:12:44,440
You have an interrupt request from our issue time.

184
00:12:44,600 --> 00:12:44,730
Right.

185
00:12:44,730 --> 00:12:50,150
So this is how we utilize the pointer from our private sync resources, right?
