1
00:00:00,150 --> 00:00:06,230
Here we are in a situation where we need to utilize the same hardware design that we have created in,

2
00:00:06,240 --> 00:00:14,190
then we right, so we already know that by default, the washed up timer and the 32 bit esut timer that

3
00:00:14,190 --> 00:00:16,660
is private with zinc processing system is enabled.

4
00:00:17,030 --> 00:00:20,120
Who can we all really work around with, then washed up tomorrow?

5
00:00:20,130 --> 00:00:24,030
So this is an application project that we have for our postdoc Daimler.

6
00:00:24,180 --> 00:00:28,280
And since our platform remains seen for a few times or so.

7
00:00:28,290 --> 00:00:34,530
So what we want to do is we will be utilizing the same workspace of a white society and create a new

8
00:00:34,530 --> 00:00:35,610
application project.

9
00:00:35,880 --> 00:00:40,410
Again, the platform project will remain seem for an issue time only.

10
00:00:40,420 --> 00:00:47,880
The difference will be though we use an issue time Rachel against select our platform project, right

11
00:00:47,880 --> 00:00:51,120
click new and then application project great.

12
00:00:51,630 --> 00:00:52,580
So click next.

13
00:00:52,590 --> 00:00:59,250
Let me just select the same platform project, because hardware design will remain same for both a few

14
00:00:59,250 --> 00:01:01,290
times, as well as our watchdog timer.

15
00:01:01,290 --> 00:01:08,400
Right click next and then let it just name this as timer underscore S.W., right?

16
00:01:08,400 --> 00:01:16,020
So see that you give a name to an application project, which is different than your previous application

17
00:01:16,020 --> 00:01:19,310
project that you have utilized for an watchdog time, right?

18
00:01:19,320 --> 00:01:20,220
So click next.

19
00:01:20,700 --> 00:01:26,640
And again, we will be using an Halliwell template because that gives them access to a function which

20
00:01:26,640 --> 00:01:28,530
could be used to interact with our.

21
00:01:29,660 --> 00:01:32,370
So here we Jews and hello world again and click finish.

22
00:01:33,840 --> 00:01:40,110
So now we have our existing watchdog timer application project and the newly added application project.

23
00:01:40,620 --> 00:01:48,210
So we go to the source, step off our timer, we go run Hello World and we start creating an application

24
00:01:48,210 --> 00:01:49,890
for RSU timer again.

25
00:01:49,920 --> 00:01:56,460
We know that an timer operate at half of the clock while fuzzing that is at 330 megahertz rate.

26
00:01:56,460 --> 00:01:59,110
So we need to build up an application on that, right?

27
00:01:59,490 --> 00:02:02,850
So first, we need to include the mandate to do Driver X.

28
00:02:02,850 --> 00:02:11,340
So we go to a WD where we have our board support package and for a timer if you just exclude the driver,

29
00:02:11,490 --> 00:02:12,450
which is mentioned.

30
00:02:13,430 --> 00:02:20,240
So here we have an ICU timer in the school zero and the recommended driver is a siu timer, right?

31
00:02:20,480 --> 00:02:24,860
So we go ahead and include the driver file straight so.

32
00:02:26,240 --> 00:02:27,140
Trash include.

33
00:02:27,620 --> 00:02:30,260
We need to add an excessive prefix.

34
00:02:30,290 --> 00:02:33,500
OK, then see you timer or treachery.

35
00:02:33,830 --> 00:02:37,310
So this is the driver that you required for the chamber.

36
00:02:37,970 --> 00:02:40,100
One more driver, we need to add that is.

37
00:02:41,260 --> 00:02:48,320
X parameters, daughter trait, so there's a again consist of all the hardware information, so let

38
00:02:48,340 --> 00:02:51,190
us explore the container of the tribal rivalry.

39
00:02:51,190 --> 00:02:52,810
So if you go to a timer driver.

40
00:02:54,040 --> 00:03:00,820
So Taimur supports a normal mode and in order to reload more great, so we will hear not much description

41
00:03:00,820 --> 00:03:02,560
is given, but normal mode.

42
00:03:03,490 --> 00:03:10,690
We will be exploring both of this morning a deeper right so we go ahead and first light to just overview

43
00:03:10,690 --> 00:03:14,380
the functions that are provided with us in this chamber.

44
00:03:14,920 --> 00:03:18,180
So we have a config structure and just saturate.

45
00:03:18,190 --> 00:03:21,680
A lot of the structures are present in our driver, right?

46
00:03:21,700 --> 00:03:27,180
And if you can see the first function we just provided is a cue timer is expired.

47
00:03:27,190 --> 00:03:31,740
So this could be used to verify whether our timer is expired or not.

48
00:03:31,980 --> 00:03:37,260
So this could be considered as a pooling mode where we are utilizing the CPU resources to check whether

49
00:03:37,270 --> 00:03:39,160
timer is expired or not.

50
00:03:39,610 --> 00:03:42,670
Then we have a function to restart a timer, right?

51
00:03:43,090 --> 00:03:44,890
We have a function to load a timer.

52
00:03:44,890 --> 00:03:49,960
So this will be the value or the delay that will be achieved with the help of the time right?

53
00:03:50,410 --> 00:03:55,180
Then we also have a function to get the current value of our time right.

54
00:03:55,180 --> 00:04:01,180
So we initialize a counter to some value and then it will start going down.

55
00:04:01,510 --> 00:04:08,900
So at any instance, if you want to find out the value of the timer, OK, then you could use this function.

56
00:04:08,920 --> 00:04:14,260
Then we have a function to enable an auto reload mode, disable an auto reload.

57
00:04:14,500 --> 00:04:18,200
Now you could see we have a to moderate the normal mode and an auto reload.

58
00:04:18,250 --> 00:04:23,380
More so first, we work with the normal mode, and whenever we work with the normal mode, we need to

59
00:04:23,440 --> 00:04:26,020
disable an auto reload more great.

60
00:04:26,200 --> 00:04:31,060
So to disable that, we have this function again whenever you are working with an auto reload mode.

61
00:04:31,300 --> 00:04:34,500
This is the function that could be used to set up that rate.

62
00:04:35,110 --> 00:04:40,810
Then we have a function to enable an interest rate, disable and interrupt this.

63
00:04:40,820 --> 00:04:44,110
We will be discussing when we proceed to an interrupt section.

64
00:04:44,860 --> 00:04:49,720
So the function that we have over here is a look up config that generator config structure.

65
00:04:49,720 --> 00:04:52,090
And then we also have the CFG initially.

66
00:04:52,300 --> 00:04:57,820
We also have a function to perform the self test of a timer to start and stop a timer.

67
00:04:57,850 --> 00:05:04,210
We can also control the clock that is going to this block rate so pre-schooler can be used to control

68
00:05:04,210 --> 00:05:06,880
the clock that is going to our teletovic time, right?

69
00:05:07,270 --> 00:05:12,310
So now we know that the series of functions that are available in a driver with this right now, we

70
00:05:12,850 --> 00:05:19,630
go ahead and proceed to first initialize up, right, so that it just copy the config structure.

71
00:05:19,630 --> 00:05:21,130
Go back to our Halloway.

72
00:05:21,130 --> 00:05:24,070
Let's see, I did the config structure, right?

73
00:05:24,070 --> 00:05:25,600
So this should be a pointer.

74
00:05:25,600 --> 00:05:30,040
So asterisk and anti-armor one write.

75
00:05:30,400 --> 00:05:33,370
The next one we required is an instance structure, right?

76
00:05:33,370 --> 00:05:35,680
So usually once you have a config structure.

77
00:05:35,890 --> 00:05:40,850
So the first world that you have in a config structure represent your instance structure, right?

78
00:05:40,870 --> 00:05:42,760
So that is what we going right over here.

79
00:05:43,150 --> 00:05:45,300
And let me just name this last year, right?

80
00:05:45,580 --> 00:05:51,700
Then we declared one function, which could be used to perform an initialization of our issue time,

81
00:05:52,120 --> 00:05:52,430
right?

82
00:05:52,660 --> 00:05:55,870
So we go ahead and rename this has timer really great.

83
00:05:55,990 --> 00:06:01,020
So we already know that we have a lookup config where we need to provide the device 80.

84
00:06:01,210 --> 00:06:03,320
And that returns the config structure.

85
00:06:03,450 --> 00:06:09,080
So this is how we do need to config structure to TMR config.

86
00:06:09,130 --> 00:06:09,470
OK.

87
00:06:09,520 --> 00:06:14,890
This will be close to look up config and then we just need to pass the device A.D. So where you get

88
00:06:14,890 --> 00:06:18,520
the device ID is from an X parameter file, right?

89
00:06:18,550 --> 00:06:27,580
So here we just search for a see you OK and then here you have an issue timer a little information,

90
00:06:27,580 --> 00:06:27,750
right?

91
00:06:27,790 --> 00:06:29,500
So we'll just be copying the device.

92
00:06:29,500 --> 00:06:29,770
I do.

93
00:06:29,770 --> 00:06:35,440
From here, we go back to our hello world or C, and then we will be adding the door here.

94
00:06:35,550 --> 00:06:35,760
Right.

95
00:06:35,770 --> 00:06:44,710
So once we get the config structure, then the initialization can be done by calling c f g initialized.

96
00:06:44,950 --> 00:06:51,430
This is again written the status of an initialization which required the s32 as the data format, right?

97
00:06:51,430 --> 00:06:54,490
And then there are three arguments that we need to go right.

98
00:06:54,490 --> 00:06:59,080
First, one is an instance structure, then a config structure and finally a separate state.

99
00:06:59,110 --> 00:07:07,120
So let it just go ahead and declare when s32 variable Larry just named this status right?

100
00:07:07,300 --> 00:07:11,050
I'll see if initialize first, we need to provide an instance structure.

101
00:07:11,050 --> 00:07:13,150
So this is Marinakis.

102
00:07:13,540 --> 00:07:15,090
Then one fixed structure.

103
00:07:15,100 --> 00:07:18,630
So which is to configure last one is the basic history.

104
00:07:19,000 --> 00:07:24,840
So from the beginning, we've been utilizing the base address from the timer config structure itself,

105
00:07:24,850 --> 00:07:25,100
right?

106
00:07:25,120 --> 00:07:27,310
So let it just use another way.

107
00:07:27,310 --> 00:07:29,260
Don't that is, go to an experimental order.

108
00:07:29,410 --> 00:07:34,060
And here also you always get a base address or wherever you'll be finding an instance of a benefit.

109
00:07:34,480 --> 00:07:37,330
You always get the access to a base address.

110
00:07:37,330 --> 00:07:39,070
So just give a try to this.

111
00:07:39,070 --> 00:07:41,440
So we copy this Bayes address book.

112
00:07:41,440 --> 00:07:47,020
So instead of accessing the base address from the config structure, now we are utilizing the base address,

113
00:07:47,020 --> 00:07:50,040
which is provided in an experimental dot h.

114
00:07:50,400 --> 00:07:50,620
Right.

115
00:07:50,620 --> 00:07:52,700
So once we perform it in.

116
00:07:52,760 --> 00:07:54,030
Initialization steps.

117
00:07:54,050 --> 00:07:54,400
OK.

118
00:07:54,710 --> 00:08:03,230
It is mandatory that you verify that the status is existing, a success rate, so status is.

119
00:08:04,690 --> 00:08:10,040
So if she does it exist, you said this will just be utilizing to bring death, right?

120
00:08:10,060 --> 00:08:14,740
And then here we will be adding that timer you.

121
00:08:15,920 --> 00:08:19,030
Yes, success for right?

122
00:08:20,140 --> 00:08:22,000
As we just mentioned.

123
00:08:23,600 --> 00:08:25,250
They'll bring death again.

124
00:08:25,320 --> 00:08:29,590
And then here we could mention the timer in it.

125
00:08:30,560 --> 00:08:31,940
Failure rate, this makes it.

126
00:08:32,660 --> 00:08:35,450
So this is exactly what we've been doing from the beginning, right?

127
00:08:35,690 --> 00:08:40,040
And we already did this because whenever you have a complex or an intermediate peripheral, see that

128
00:08:40,040 --> 00:08:45,680
you also perform the self-test that help us to verify whether hardware is properly configured or not

129
00:08:45,680 --> 00:08:46,190
great again.

130
00:08:46,190 --> 00:08:51,340
There's also readiness that you do, indicating whether the centrist is successful or not great.

131
00:08:51,350 --> 00:08:53,560
So we beat this to this value.

132
00:08:53,600 --> 00:08:56,630
OK, and this test will be quest to save this year.

133
00:08:56,630 --> 00:09:02,630
We just need to add an instance to which GMA, in this case, right again, will be calling this logic.

134
00:09:03,620 --> 00:09:06,800
The only thing that we are going to change over here is here.

135
00:09:06,800 --> 00:09:08,140
We mentioned self.

136
00:09:09,320 --> 00:09:11,600
Test successful, right?

137
00:09:11,960 --> 00:09:16,250
And here we will be mentioning sell this.

138
00:09:17,380 --> 00:09:23,710
Fit, right, so this completes the school year, what we are doing is we are first performing an initialization

139
00:09:23,710 --> 00:09:29,620
of RSU timer and then we are verifying whether the initialization is successful or not.

140
00:09:29,650 --> 00:09:31,750
Finally, we are performing the third test again.

141
00:09:31,750 --> 00:09:34,630
We are checking whether self discharge is successful or not, right?

142
00:09:34,630 --> 00:09:39,580
So next steps, we will be calling this in and mean go right to a timer in it.

143
00:09:40,820 --> 00:09:43,910
Intermingle and this will perform an initialization for.
