1
00:00:00,240 --> 00:00:05,040
But some condition is successful now, will proceed to its and hardware refined, right?

2
00:00:05,340 --> 00:00:11,580
So go to fight export export hardware, OK, and this will be including a bitstream, so we'll be selecting

3
00:00:11,580 --> 00:00:12,730
to include everything.

4
00:00:12,750 --> 00:00:19,350
Click next and we will make sure that the excessive file will be added in the same project directory

5
00:00:19,350 --> 00:00:21,360
where we have all the Bilodeau fights.

6
00:00:21,360 --> 00:00:24,360
Right click next and then click Finish.

7
00:00:24,610 --> 00:00:24,770
Right.

8
00:00:24,780 --> 00:00:29,700
So once this is sent, we are ready to launch and write this idea so we go to tools.

9
00:00:30,570 --> 00:00:38,880
Launch right is a right, and here we will be using the theme folder where we have all the files located,

10
00:00:38,970 --> 00:00:39,240
right?

11
00:00:41,080 --> 00:00:47,920
So we'll go ahead and browse the workspace, OK, and we'll be selecting the most recent project where

12
00:00:47,920 --> 00:00:52,330
we have all the vital click, select and then launch Whitesides.

13
00:00:53,880 --> 00:01:00,420
So once this is loaded, we will first be adding the platform, right, so we go to feedback from Project,

14
00:01:00,870 --> 00:01:08,340
we'll just be naming this as you click next and then we will be clicking on Browse Button.

15
00:01:08,790 --> 00:01:09,180
OK.

16
00:01:10,120 --> 00:01:13,020
You go to a folder where we have a project.

17
00:01:14,240 --> 00:01:20,390
OK, and then this is an excessive fight rate, so we'll just be opening it and then click finish.

18
00:01:22,300 --> 00:01:27,280
So once our platform project is really the first thing that we do is to build up our project, right,

19
00:01:27,280 --> 00:01:33,400
so the status that we are getting over here will be out of date, status will be gone right and then

20
00:01:33,400 --> 00:01:36,210
we proceed for creation of a new application project.

21
00:01:36,220 --> 00:01:39,700
So we go to quite new application project.

22
00:01:39,970 --> 00:01:41,920
The name that will be choosing is.

23
00:01:44,470 --> 00:01:47,740
OK, so now we have our platform ready.

24
00:01:47,770 --> 00:01:49,720
Now we'll just be selecting your platform.

25
00:01:49,840 --> 00:01:50,460
Go ahead.

26
00:01:50,470 --> 00:01:50,950
New.

27
00:01:51,220 --> 00:01:51,580
OK.

28
00:01:51,910 --> 00:01:55,120
And an application party, right?

29
00:01:55,120 --> 00:01:57,310
So we'll proceed the next.

30
00:01:58,890 --> 00:02:05,370
So if you wouldn't be able to find the platform project, you just go ahead and click on the side button,

31
00:02:05,730 --> 00:02:10,110
right and then select the folder where we have all the files, right?

32
00:02:10,110 --> 00:02:15,420
So this is the same detective where we have the idea that we just select the directory and like this

33
00:02:15,420 --> 00:02:18,990
will automatically recognize the platform project.

34
00:02:19,090 --> 00:02:19,230
Right.

35
00:02:19,230 --> 00:02:21,180
So one platform project is recognized.

36
00:02:21,180 --> 00:02:21,900
Click next.

37
00:02:22,260 --> 00:02:25,140
And we'll just be naming this as GPO.

38
00:02:25,140 --> 00:02:30,750
It's just right click next, and then we'll be choosing the Halloween campaign.

39
00:02:30,800 --> 00:02:31,110
Great.

40
00:02:31,290 --> 00:02:35,040
So this allows us to have an access to all the.

41
00:02:36,100 --> 00:02:42,250
Function, which could be used to initialize you right now, once application project is added, we

42
00:02:42,250 --> 00:02:47,670
go to a small step and we'll start adding a code for our chip, right?

43
00:02:47,710 --> 00:02:50,380
So we already discussed fundamental of the tool driver.

44
00:02:50,560 --> 00:02:51,790
So now we'll try to.

45
00:02:53,050 --> 00:02:56,490
Create an application utilizing the fundamental that we have this.

46
00:02:58,470 --> 00:03:01,830
So first, we start with adding all the mandatory fight, right?

47
00:03:01,860 --> 00:03:03,780
So if you go to and.

48
00:03:04,700 --> 00:03:09,710
Platform project, right where we have our yes, that is board support package.

49
00:03:10,140 --> 00:03:11,180
OK, so.

50
00:03:12,450 --> 00:03:16,800
We need to go to platform this, yeah, and then we have a support package.

51
00:03:17,050 --> 00:03:23,460
So here you could clearly see for any side GPIO the recommended driver UPI rate.

52
00:03:23,480 --> 00:03:27,780
So with all the Xilinx, right, well, we just need to add the graphics settings, right?

53
00:03:27,810 --> 00:03:29,440
That is what we're going to do here.

54
00:03:29,460 --> 00:03:33,350
So for UPI, we prosecute an interview.

55
00:03:33,420 --> 00:03:34,920
OK, perfect Z6.

56
00:03:36,230 --> 00:03:43,610
And then we like I would not expect when more Haider finds that we frequently get quite okay throughout

57
00:03:43,610 --> 00:03:49,190
the course, wherever be required to pass and hardware related information is amateur doctor to.

58
00:03:49,190 --> 00:03:54,640
This consists of all the information, all the paper that we have in our property, right?

59
00:03:54,680 --> 00:03:56,480
So let's just do things that are added.

60
00:03:56,780 --> 00:04:02,210
We are ready to proceed developing a function that could be used to initialize as UPI rate.

61
00:04:02,510 --> 00:04:08,660
So we'll be declaring an Independent Functions UPI unit, which consists of all the code that could

62
00:04:08,660 --> 00:04:10,970
be used to initialize our UPI.

63
00:04:11,000 --> 00:04:12,770
Now go explore the driver.

64
00:04:12,770 --> 00:04:16,970
We just need to click on F3, OK, and then we'll proceed.

65
00:04:17,000 --> 00:04:20,930
So if you explorer GPO, we have to structure.

66
00:04:20,930 --> 00:04:24,770
One is the config structure and another one is an instance structure, right?

67
00:04:25,040 --> 00:04:26,750
So we'll just be copying this.

68
00:04:28,050 --> 00:04:30,420
And this should be declared as a point.

69
00:04:30,570 --> 00:04:30,840
Right.

70
00:04:31,200 --> 00:04:35,620
So I stick, and then I'll right.

71
00:04:36,420 --> 00:04:42,780
The next thing that we required is the instance structure, which is dismantle that will be going ahead

72
00:04:42,870 --> 00:04:45,000
and we will be adding it over here.

73
00:04:45,090 --> 00:04:52,590
So remember how these are the usually the Neame and the school config, its iconic structure and that

74
00:04:52,590 --> 00:04:55,320
name alone will be considered as an instance section.

75
00:04:55,330 --> 00:04:57,060
And if you also read the description.

76
00:04:57,540 --> 00:05:05,280
So the GPO driver instance details we read this is mentioned that basically represent an instance structure,

77
00:05:05,550 --> 00:05:13,140
and then the Typekit contains a configuration information of a device configuration information replacing

78
00:05:13,140 --> 00:05:14,130
the config structure.

79
00:05:14,160 --> 00:05:14,460
Right.

80
00:05:14,790 --> 00:05:21,930
So when you are required to use this structure, when you have lookup config and CMG initialize, both

81
00:05:21,930 --> 00:05:23,290
are present in your tribe.

82
00:05:23,300 --> 00:05:29,490
So if you do not find any one of them that is lookup config or see object initialize, any one of them

83
00:05:29,490 --> 00:05:31,140
is not present in their driver.

84
00:05:31,410 --> 00:05:37,140
You have an alternate function which is available, which is initialized so that we require to just

85
00:05:37,140 --> 00:05:38,710
create an instance structure, right?

86
00:05:38,760 --> 00:05:43,860
So as you call this, there will be considering, for example, where you do not see, lookup, configure,

87
00:05:43,860 --> 00:05:48,150
see a initialize in that case will be preferring to go with an initialize, right?

88
00:05:48,170 --> 00:05:51,420
So here both are breathing, so we'll first proceed with the lookup config.

89
00:05:51,630 --> 00:05:56,430
Now this returns on fixed rate, where we just need to pass the device idea.

90
00:05:56,430 --> 00:06:01,500
And once we have a config structure, this will be adding to the sea of junior chalets, along with

91
00:06:01,500 --> 00:06:04,840
an instance structure and the base address to initialize out right?

92
00:06:04,860 --> 00:06:05,160
Right.

93
00:06:05,550 --> 00:06:09,540
So let just copy lookup config and go back to our Halloway.

94
00:06:11,010 --> 00:06:16,170
OK, so our conflict structure is the IU conflict, right?

95
00:06:16,350 --> 00:06:22,260
And this should be equal to the local config function, and we required the device I.D. for op eds,

96
00:06:22,280 --> 00:06:26,760
and so all the hard vetted information could be found out from experimental data.

97
00:06:26,850 --> 00:06:29,370
We just need to find GPI.

98
00:06:29,460 --> 00:06:34,670
OK, so this is the device I.D. that we have, which we need to add it.

99
00:06:35,250 --> 00:06:35,640
Right?

100
00:06:35,670 --> 00:06:38,490
This will return the config structure pointer.

101
00:06:38,490 --> 00:06:40,980
So if you just stand in this written pointer.

102
00:06:41,010 --> 00:06:41,240
Right.

103
00:06:41,250 --> 00:06:47,520
So we do not need to do any type testing or conversion, then we will be calling C of G initialize.

104
00:06:48,600 --> 00:06:48,990
OK.

105
00:06:49,140 --> 00:06:55,110
And this required three argument first one is an instance structure, which is CPO, then the config

106
00:06:55,110 --> 00:07:02,580
structure, OK, and the last thing that it requires is then be set so visitors could be found out from

107
00:07:02,760 --> 00:07:04,290
the parameter dot.

108
00:07:04,420 --> 00:07:10,110
So this is the address for our particular IP or the config structure itself consists of etc, so we

109
00:07:10,110 --> 00:07:11,250
just need to go ahead.

110
00:07:12,630 --> 00:07:19,440
Inside the conflict structure, use this operator and then you have a side, right when this is done.

111
00:07:19,740 --> 00:07:24,150
Now this CFG initialize actually returned the status of initialization.

112
00:07:24,150 --> 00:07:28,860
So if you exclude the functionality of it, so it redone the existing taxes.

113
00:07:28,860 --> 00:07:32,370
If initialization is successful and that is what we're going to check, right?

114
00:07:32,370 --> 00:07:33,270
So we go ahead.

115
00:07:33,540 --> 00:07:37,350
We declared one variable income status, right?

116
00:07:37,680 --> 00:07:45,870
So we will be checking if status is equal to existing six.

117
00:07:46,060 --> 00:07:56,370
And if that is the case, OK, we will be mentioning that device are in fact keeping you in it success.

118
00:07:57,210 --> 00:07:57,570
OK.

119
00:07:57,990 --> 00:07:59,700
As we could just mention.

120
00:08:02,110 --> 00:08:03,070
GPA, you.

121
00:08:05,220 --> 00:08:10,210
I mean, this Elvis to debug where there are initialization is successfully done right.

122
00:08:10,540 --> 00:08:15,260
So once this is done now, we are ready to work, but only then basically reliably, right?

123
00:08:15,260 --> 00:08:17,410
So we'll just be calling this OK.

124
00:08:17,650 --> 00:08:22,840
So you in a mean function you could see in a platform that is used to initialize you walk right?

125
00:08:23,290 --> 00:08:28,930
And then we have initialize our GPI right now if you explore the function.

126
00:08:29,260 --> 00:08:34,410
OK, so you have said the dilation get the validation discrete to identify function.

127
00:08:34,430 --> 00:08:34,630
Right.

128
00:08:34,630 --> 00:08:39,520
So first, we need to set direction depending on the code that we want to utilize.

129
00:08:39,520 --> 00:08:43,620
Now here in this case, we want to utilize our food as an output.

130
00:08:44,440 --> 00:08:52,390
So if you go to the set detail direction, OK, there you could see a description of our poor, great,

131
00:08:52,390 --> 00:08:57,160
for example, but set to zero output and which say when our input.

132
00:08:57,340 --> 00:09:02,710
So for each book, OK, we have a specific been located.

133
00:09:03,040 --> 00:09:08,690
And if you say to a zero that will configure output to be an output, right?

134
00:09:09,070 --> 00:09:14,350
If you set the BEC to be one that will go and figure out who to be and input.

135
00:09:14,560 --> 00:09:14,830
Right.

136
00:09:14,860 --> 00:09:19,430
In this case, we want utilize of all the 16bit as an output.

137
00:09:19,750 --> 00:09:22,540
So what we're going to do is we'll just be copying this function.

138
00:09:22,570 --> 00:09:25,390
We go back to mean after an initialization.

139
00:09:25,600 --> 00:09:31,360
OK, first argument that this function have is the instance structure, right?

140
00:09:31,690 --> 00:09:34,440
So instance structure for us is cheap.

141
00:09:34,850 --> 00:09:41,680
You write the way we add ampersand because this is required if you just exploded the required pointer

142
00:09:41,680 --> 00:09:43,140
of an instance structure, right?

143
00:09:43,420 --> 00:09:48,070
So we will just be passing an address so far instance such as was that instant?

144
00:09:48,460 --> 00:09:52,990
The next thing is the number of chain and noggin since we are utilizing the single channel.

145
00:09:53,020 --> 00:09:53,350
Right?

146
00:09:53,830 --> 00:09:57,070
So you could clearly add one more here.

147
00:09:57,340 --> 00:09:57,670
Right.

148
00:09:58,090 --> 00:10:02,620
And the last thing is to sic all the 16bit as an output.

149
00:10:02,830 --> 00:10:06,250
So we'll just be adding zero zero zero zero, right?

150
00:10:07,060 --> 00:10:12,460
So X indicate that we are passing the number in an extra simple format.

151
00:10:12,760 --> 00:10:13,090
OK.

152
00:10:13,270 --> 00:10:14,950
So for exactly single digit.

153
00:10:16,430 --> 00:10:18,740
Will sit 16.

154
00:10:20,230 --> 00:10:21,400
Bins as an output.

155
00:10:21,660 --> 00:10:21,820
Right.

156
00:10:21,850 --> 00:10:22,600
This makes sense.

157
00:10:24,580 --> 00:10:30,790
So once detection is correctly set up now, we will be generating the blinking rate, so we'll be calling

158
00:10:30,790 --> 00:10:31,330
while when.

159
00:10:33,070 --> 00:10:37,840
So this allows us to continuously run our application until we apply it right?

160
00:10:38,110 --> 00:10:43,780
So first, we'll be writing all one and then we will be waiting for somebody writing again on zero,

161
00:10:43,990 --> 00:10:45,990
waiting again for something, right?

162
00:10:46,150 --> 00:10:52,990
So to write the leader, we have discrete right, OK function where we need to pass an instance structure

163
00:10:53,260 --> 00:10:53,950
the.

164
00:10:55,130 --> 00:11:00,560
Changing that, we are utilizing and then the data, so we'll be going ahead.

165
00:11:02,080 --> 00:11:04,750
Again, to our application.

166
00:11:05,000 --> 00:11:07,990
OK, first argument is the and structure.

167
00:11:08,380 --> 00:11:13,270
So will the China number is one and the leader that we want the right.

168
00:11:13,520 --> 00:11:18,130
So we are writing all one to all the 16 pins that we have, right?

169
00:11:18,130 --> 00:11:19,490
So excited symbol.

170
00:11:19,510 --> 00:11:24,220
If it's right, then we'll be waiting for one second.

171
00:11:24,250 --> 00:11:29,740
So sleep is an EPA that is used to provide the delay in second, so we just need to pass the delay in

172
00:11:29,740 --> 00:11:30,880
second as an argument.

173
00:11:30,880 --> 00:11:32,770
So here we want a delay of one second.

174
00:11:33,040 --> 00:11:34,990
So we'll just be adding one over here.

175
00:11:35,410 --> 00:11:39,620
Then we will be writing all zeros again.

176
00:11:40,290 --> 00:11:46,030
You feel the instant structure, though, a number of changes and then all these.

177
00:11:46,150 --> 00:11:47,230
So this will turn off.

178
00:11:47,230 --> 00:11:51,310
All the ladies will again be waiting for one second.

179
00:11:51,390 --> 00:11:51,550
Right.

180
00:11:51,550 --> 00:11:54,910
So this will give it an equal delay for both on and off, correct.

181
00:11:54,910 --> 00:11:57,160
So we'll be getting the blinking great.

182
00:11:57,160 --> 00:12:02,500
So once this is done, we complete our application could we'll just be saving our crew and building

183
00:12:02,500 --> 00:12:04,090
up our entire application.

184
00:12:04,270 --> 00:12:09,430
So just press control and that will generate an idealist as you could also go here.

185
00:12:09,470 --> 00:12:09,660
Right.

186
00:12:09,670 --> 00:12:14,540
So this is in file that will be downloaded and executed on the next rate.

187
00:12:14,560 --> 00:12:20,770
When our application is ready will go ahead with select an application project, which is this one right

188
00:12:20,770 --> 00:12:24,100
click, then debug at launch on hardware.

189
00:12:24,340 --> 00:12:26,970
So this will open up the debug perspective.

190
00:12:28,180 --> 00:12:28,510
OK.

191
00:12:28,780 --> 00:12:36,880
And then we go to this terminal and there, what are we going to do is we will be connecting the serial

192
00:12:36,880 --> 00:12:43,540
terminal right to select this plus button, then select the respect you can put on which you have your

193
00:12:43,540 --> 00:12:44,350
development board.

194
00:12:44,350 --> 00:12:48,370
And the board rate at which you are right is operating is nine six zero zero.

195
00:12:48,400 --> 00:12:48,700
Right.

196
00:12:49,060 --> 00:12:54,400
So once this is connected, we will be proceeding for an execution of a court.

197
00:12:54,400 --> 00:12:55,500
Great to hear you.

198
00:12:55,900 --> 00:13:01,180
You could clearly see as we switch to a debug perspective, we have this resume option, right?

199
00:13:01,510 --> 00:13:05,680
We'll just be clicking on that and then our application would start executing.

200
00:13:05,680 --> 00:13:10,710
And here you could really see that GPO in it is successfully right.

201
00:13:11,000 --> 00:13:18,420
This basically mean the GPI is collected initialize and you could observe on a ball they lead you blink

202
00:13:18,430 --> 00:13:18,700
rate.
