1
00:00:00,430 --> 00:00:06,720
Tim Generation is successfully completed now, we'll just go ahead and export and hide the file to investigate

2
00:00:07,200 --> 00:00:09,780
file export export hardware.

3
00:00:10,760 --> 00:00:15,190
We'll also be including a bitstream day and then we will be launching an SD.

4
00:00:16,190 --> 00:00:20,300
So now we started to file a new application project again.

5
00:00:20,330 --> 00:00:27,290
We will be considering adding the Halloway template, so that will give us an access to some of the

6
00:00:27,290 --> 00:00:32,090
fundamental blueprints such as you are OK, which would be very helpful in debugging, right?

7
00:00:32,710 --> 00:00:34,640
So am I.

8
00:00:34,790 --> 00:00:36,310
This will be our application.

9
00:00:36,350 --> 00:00:38,820
You will click next and we'll select Helloworld.

10
00:00:38,900 --> 00:00:40,400
Right click Finish.

11
00:00:41,720 --> 00:00:47,060
Now we go ahead to an dark see where we have our meeting application, right?

12
00:00:48,480 --> 00:00:54,300
So if you go to a file, OK, you have something called in system dot emesis, so that will give us

13
00:00:54,300 --> 00:00:56,820
an idea about which driver should be better.

14
00:00:57,150 --> 00:01:02,460
If you want to work around with a GPA, right, so if you go to a system, the time is right, you just

15
00:01:02,460 --> 00:01:03,870
need to look for GPI.

16
00:01:03,990 --> 00:01:09,720
So here we have a GPO and the recommender driver is GP IOPS, right?

17
00:01:10,140 --> 00:01:13,410
So we'll go ahead without asking you.

18
00:01:14,100 --> 00:01:19,780
OK, we just need to add an X and then the driver, which is been suggested by Mrs.

19
00:01:19,820 --> 00:01:20,250
Right, right.

20
00:01:20,250 --> 00:01:24,120
So GP, I'll start and then we just need to see you.

21
00:01:24,840 --> 00:01:32,580
So if it's able to recognise this driver, it will automatically queue a successful right.

22
00:01:32,580 --> 00:01:34,470
So that is what is happening over here.

23
00:01:35,520 --> 00:01:40,500
Then we could exclude the function that we have within this driver.

24
00:01:40,890 --> 00:01:45,950
So we already know the fundamental about utilising its driver.

25
00:01:45,990 --> 00:01:48,690
So here also, we need to create and structure, right?

26
00:01:48,690 --> 00:01:50,100
So first structure is.

27
00:01:50,980 --> 00:01:54,600
This went right, so which basically is an Traver instance.

28
00:01:55,000 --> 00:02:00,490
OK, so all the GPIO related data will be printed within this.

29
00:02:00,910 --> 00:02:06,130
So we'll just copy this and we'll be naming it as an entity, right?

30
00:02:06,370 --> 00:02:10,210
The one that we require is a config structure, which is over here, right?

31
00:02:10,210 --> 00:02:15,160
So that will give us an access to the obese address as well as do I say right?

32
00:02:15,730 --> 00:02:18,790
So we'll just name this as ADT config.

33
00:02:18,790 --> 00:02:20,510
And again, this should be a pointer.

34
00:02:20,540 --> 00:02:20,860
Right?

35
00:02:21,790 --> 00:02:28,960
So when we use a lookup config, we could directly connect a LED config over there right now will declare

36
00:02:28,960 --> 00:02:32,960
a first function, which will be used to initialize UPI.

37
00:02:32,980 --> 00:02:35,050
So we'll just be naming it as in it.

38
00:02:35,800 --> 00:02:36,130
OK.

39
00:02:36,370 --> 00:02:45,430
And then to see whether initialization is successful or not, we'll just be declared one integer variable,

40
00:02:45,460 --> 00:02:46,780
which is status, right?

41
00:02:47,410 --> 00:02:55,480
The first function that we require to initialize are GPO driver is to look for the device that is present

42
00:02:55,480 --> 00:02:56,680
in a vector, right?

43
00:02:56,710 --> 00:03:02,680
So we'll just copy this function and then we'll specify the driver I.D..

44
00:03:02,770 --> 00:03:03,190
OK.

45
00:03:03,370 --> 00:03:13,090
The device ID for GPI so that it just go ahead and connect a little config OK to be close to this function.

46
00:03:13,120 --> 00:03:13,420
OK?

47
00:03:13,660 --> 00:03:19,690
Because this function already does the config pointer right, and this is the same variable that we

48
00:03:19,690 --> 00:03:24,020
declare so we could directly connected and document that we required is a device.

49
00:03:24,280 --> 00:03:25,570
So where you find the device?

50
00:03:26,260 --> 00:03:30,600
So you just need to use parameter thought that you're gay.

51
00:03:30,610 --> 00:03:36,550
In fact, you could find this strawmen hardware specification, but the easiest way is to go ahead and

52
00:03:36,550 --> 00:03:40,050
utilize X parameters starting right.

53
00:03:40,960 --> 00:03:46,120
Let it just try to explore experimental data and try to find out UPI.

54
00:03:46,330 --> 00:03:51,850
Right now here you could get all the information related to hardware, so we required just the device.

55
00:03:51,850 --> 00:03:55,360
ID will copy this and we'll write it over here, right?

56
00:03:55,360 --> 00:03:59,730
So we'll be getting the data which config structure required, right?

57
00:03:59,740 --> 00:04:06,380
So once you have your config structure data now we could proceed initialization of our GPI, right?

58
00:04:06,410 --> 00:04:15,040
So for that, we have a specific API which will initialize and basically return this data, which will

59
00:04:15,040 --> 00:04:21,280
be connecting to the integer that we declare for a C does and then we'll be checking whether it is equal

60
00:04:21,280 --> 00:04:22,020
to one or not.

61
00:04:22,030 --> 00:04:28,810
So if it is equal to one, that basically means the device initialization a successful LS device initialization

62
00:04:28,810 --> 00:04:29,560
is free, right?

63
00:04:29,950 --> 00:04:31,390
So this requires the argument.

64
00:04:31,390 --> 00:04:39,970
First one is in the structure that we declared for a GPIO instance data, OK, which is then the config

65
00:04:39,970 --> 00:04:44,740
structure and then effectuate, so that could be accessed from the config structure itself.

66
00:04:44,900 --> 00:04:45,060
Right.

67
00:04:45,070 --> 00:04:45,880
So we'll go ahead.

68
00:04:47,670 --> 00:04:57,000
So students should be close to the first argument for this is the structure which will hold all the

69
00:04:57,000 --> 00:04:59,460
data related to our GPA, which is elite.

70
00:04:59,880 --> 00:05:02,970
So since here we require to.

71
00:05:04,530 --> 00:05:08,400
Bicep pointer will just be specifying an actress of our structure, right?

72
00:05:08,730 --> 00:05:14,190
The next one that we have, it's a conflict pointer, so we'll just be adding any de-conflict.

73
00:05:14,520 --> 00:05:19,020
The last one is to be said to us so early on.

74
00:05:19,500 --> 00:05:27,600
And then we try to access the base just like this right now will also develop the check to verify this

75
00:05:27,600 --> 00:05:34,260
status is one more than oxidative status is equal to one or instead of one.

76
00:05:34,980 --> 00:05:38,100
They could use the standard way, which is access to success.

77
00:05:38,630 --> 00:05:46,710
OK, so if this returns, the C to the standard B is to compare the status with an existing success

78
00:05:46,710 --> 00:05:46,950
rate.

79
00:05:47,280 --> 00:05:53,580
So if you just explore and find out the value that you get for an next sex, that's a zero L rate.

80
00:05:53,580 --> 00:06:01,140
So if that is the case, we could see, OK, we just need to send the message on to a the device.

81
00:06:01,140 --> 00:06:07,020
Initialization is successful so we could use either a or the standard we will be to utilize that they'll

82
00:06:07,020 --> 00:06:07,730
print a break.

83
00:06:07,740 --> 00:06:11,010
So here we could just have to message the device.

84
00:06:11,010 --> 00:06:14,910
Initialization is successful, right?

85
00:06:15,190 --> 00:06:20,660
We'll also be adding a new line connector right else as we call again useful printer.

86
00:06:21,180 --> 00:06:26,140
And here we could just add device in it.

87
00:06:26,940 --> 00:06:27,240
Three.

88
00:06:27,310 --> 00:06:27,540
Right.

89
00:06:27,540 --> 00:06:30,420
So this will help us to debug a case.

90
00:06:30,420 --> 00:06:33,220
If you are not getting an expected is great.

91
00:06:33,260 --> 00:06:35,940
So this will be our complete init function.

92
00:06:36,210 --> 00:06:40,920
OK, this will be used to initialize that UPI or tribal state just see backward.

93
00:06:41,230 --> 00:06:46,050
OK, so this will automatically and you will be finding that we have not committed any syntax at all

94
00:06:46,050 --> 00:06:46,830
right now.

95
00:06:46,830 --> 00:06:48,660
Let me just go back to a main quote here.

96
00:06:49,200 --> 00:06:51,720
This is used to initialize are you are right.

97
00:06:52,110 --> 00:06:55,430
The next thing that we'll be doing is to call this in right now.

98
00:06:55,440 --> 00:07:02,820
This will automatically initialize both the thing that is you want also, as well as the GPI right now,

99
00:07:03,030 --> 00:07:06,890
we need to set the direction we are utilizing aliases.

100
00:07:06,960 --> 00:07:12,570
OK, so if you just explore the tribal that you have for AGP, so we could either work on and bank.

101
00:07:13,450 --> 00:07:16,080
So, OK, so bank or we could work on a pin.

102
00:07:16,080 --> 00:07:21,990
So here we know that we have an entity connected at PIN number seven to instead of working on a bank,

103
00:07:21,990 --> 00:07:24,480
we prefer to work on a pin number, right?

104
00:07:24,960 --> 00:07:27,320
So first, we need to set the direction.

105
00:07:27,330 --> 00:07:30,030
OK, so to set the direction, we have this function.

106
00:07:30,030 --> 00:07:33,690
So let's just copy and add it over here, OK?

107
00:07:33,960 --> 00:07:38,400
And then we'll be exploring what is the container and an argument that our function requires.

108
00:07:38,400 --> 00:07:39,720
So if you press any three.

109
00:07:40,380 --> 00:07:46,950
So this required an instance pointer, which is GPO instance, and then we required a pin number and

110
00:07:46,950 --> 00:07:49,080
the direction right now for our direction.

111
00:07:49,590 --> 00:07:55,900
If we had a value of zero, so that will behave as an input one and that will behave as an output.

112
00:07:55,980 --> 00:07:56,310
Great.

113
00:07:56,310 --> 00:07:57,690
So let me just go ahead.

114
00:07:58,470 --> 00:08:01,620
So first is an instance, so here we will be adding.

115
00:08:02,520 --> 00:08:07,290
The next one that we have is the pin number, so we already know.

116
00:08:08,280 --> 00:08:14,790
From the reference manual that is connected at number seven Hang, we want to set it as an output for

117
00:08:14,790 --> 00:08:17,100
an output, we need to write this.

118
00:08:17,100 --> 00:08:20,390
We already know you just signed a lease or an output.

119
00:08:20,400 --> 00:08:21,330
We need to apply.

120
00:08:21,370 --> 00:08:24,350
What already decide went along with this.

121
00:08:24,360 --> 00:08:30,810
We also need to enable an output rate, so just setting a direction won't be enabling an output to to

122
00:08:30,810 --> 00:08:31,820
enable an output.

123
00:08:31,830 --> 00:08:39,210
We have this function rate, so set output and everything will just be copying and pasting it over here.

124
00:08:39,510 --> 00:08:42,330
OK, and then if you just press three, this will.

125
00:08:42,720 --> 00:08:47,010
He goes to the behavior and expected argument that this function requires first.

126
00:08:47,010 --> 00:08:53,340
One is and it's just pointer, then the pin number and being able to one for enabling an output and

127
00:08:53,340 --> 00:08:54,390
zero for disabling.

128
00:08:54,840 --> 00:08:55,090
Great.

129
00:08:55,590 --> 00:09:02,970
So first one is an instance of instances a lady named a pin number is again seven.

130
00:09:03,210 --> 00:09:04,020
And what rate?

131
00:09:04,080 --> 00:09:07,930
So this will considered in my opening number seven as an output.

132
00:09:07,950 --> 00:09:09,720
Now we are ready to send the signal.

133
00:09:09,960 --> 00:09:15,000
So what we could do is we will be generating a cooling effect in an interval of one second.

134
00:09:15,900 --> 00:09:20,970
So we'll be turning on R&amp;D for one second and then we'll be keeping it off for one second.

135
00:09:21,000 --> 00:09:21,270
Right.

136
00:09:21,720 --> 00:09:26,270
So to write the data, we must be having some of the functions present in the driver.

137
00:09:26,280 --> 00:09:28,380
So if you just go ahead, we do have a right.

138
00:09:28,690 --> 00:09:28,940
Right.

139
00:09:28,950 --> 00:09:31,560
So we took an instance point up pin number and added.

140
00:09:32,190 --> 00:09:37,950
So let me just go ahead and try to add this function because it will just be turning on RLG.

141
00:09:38,040 --> 00:09:43,510
OK, so to do that, the instances have VIN number is seven and we'll just be sending the data over,

142
00:09:43,570 --> 00:09:43,900
right?

143
00:09:43,920 --> 00:09:46,080
So this will turn on reality.

144
00:09:46,210 --> 00:09:48,130
We'll wait for one second.

145
00:09:48,150 --> 00:09:51,110
And for that, we have a sleep function, OK?

146
00:09:51,120 --> 00:09:53,730
And we'll just specify an argument in a second.

147
00:09:53,730 --> 00:09:55,900
So very quiet wait for one second.

148
00:09:55,920 --> 00:09:57,310
We'll just add an argument.

149
00:09:57,310 --> 00:09:57,810
Nice, we.

150
00:09:58,830 --> 00:10:03,180
We'll just copy this to function, and then we will be.

151
00:10:04,170 --> 00:10:06,830
Sending a seed I keep waiting for.

152
00:10:07,870 --> 00:10:14,730
One second rate, and since we are riding it all the logic inside of whilo OK, which is always true,

153
00:10:14,740 --> 00:10:21,820
so this will be continuously working until unless we apply a automated to the power from the right.

154
00:10:22,970 --> 00:10:26,340
So what we could do here is we could just add one.

155
00:10:26,480 --> 00:10:32,930
So when we call it, we will be knowing whether device initialization is successful or not safe device

156
00:10:32,930 --> 00:10:34,420
initialization is successful.

157
00:10:34,430 --> 00:10:39,420
We can just add a message that we are starting to execute our code.

158
00:10:39,470 --> 00:10:39,770
Great.

159
00:10:39,800 --> 00:10:40,580
So starting.

160
00:10:41,700 --> 00:10:42,750
Giu.

161
00:10:43,870 --> 00:10:44,500
Email.

162
00:10:45,560 --> 00:10:52,010
Lady District, so this will give us an access, whether we reached in here, that is we successfully

163
00:10:52,010 --> 00:10:57,740
come out of dysfunction, OK, and then we will be analyzing an output on that heart of it.

164
00:10:57,770 --> 00:10:58,040
Right.

165
00:10:58,370 --> 00:11:00,710
So this computer code?

166
00:11:01,160 --> 00:11:06,920
So when we considered an email, we need to exactly find out on which pin number are hardware disconnected

167
00:11:06,920 --> 00:11:12,550
and then utilizing the drivers that are provided for a specific paper.

168
00:11:12,770 --> 00:11:13,880
We could work around great.

169
00:11:13,880 --> 00:11:20,960
So far, GPI, which consistently open ended, is Robert, and we just need to find out the function

170
00:11:20,960 --> 00:11:23,570
which can be used to read and write the signal.

171
00:11:23,870 --> 00:11:25,760
And that is what we did with you.

172
00:11:25,880 --> 00:11:26,120
Right?

173
00:11:26,600 --> 00:11:31,040
So first thing after we complete the code is to program any 3G, right?

174
00:11:32,910 --> 00:11:39,630
So after we finish programming, and if we do, we go to an instigator and we'll be connecting as you

175
00:11:39,630 --> 00:11:43,500
get terminal hook by considering the output that we have, right?

176
00:11:44,040 --> 00:11:48,540
Once you see this message now we are ready to perform an execution of this, right?

177
00:11:48,550 --> 00:11:55,830
So let just right click on a cooler where you have had the or C and then run as launch on heart rate.

178
00:11:57,180 --> 00:12:03,090
So if everything goes fine on and console, you could see device initialization is successful.

179
00:12:03,420 --> 00:12:08,070
OK, so everything is fine with the GPIO LCD.

180
00:12:09,060 --> 00:12:10,050
Driver, right?

181
00:12:10,680 --> 00:12:15,990
And then we also see a message, so we successfully come out of an added function and we are starting

182
00:12:16,200 --> 00:12:18,510
the GPIO, am I OLED to straight?

183
00:12:18,870 --> 00:12:24,120
And if you observe in highway, you could actually see a blinking at an interval of one sec.
