Question: I need help in embedded systemes ( system on chip ) , here is a description of what I need: ( In vivado & vitis
I need help in embedded systemessystem on chip here is a description of what I need:
In vivado & vitis
Build a TCP fire w@
Can detect malicious data in a TCP packet
Zynq
Runs the TCP server
Receives TCP packets and sends the packet payload to the MicroBlaze
Analyzes and reports the results from the MicroBlaze to the user
MicroBlaze
Receives the TCP payload from the Zynq
Searches for malicious data
Reports back to the Zynq
How the data is transferred is up to you
For example
Mailbox
Mailbox BRAMFIFO
DMA BRAMFIFO
This link might help: https:packetsendercom
The software design briefly is as follows:
Launch Vitis
Workspace: $emsyslablabsoftware
Create platform projects
Use the exported hardware xsa
labzynqplatform
Create an application project
labzynqapplication
Program the FPGA
So I need guidance to do this, the steps to follow, then the code in Cembedded will also be nice to have
I have a similar project that can be a starting point, its sofware design goes:
Notice that images concern the example I gave, the other two concern the project I want to do
Launch Vitis
Workspace: $emsyslablabsoftware
Create platform projects
Use the exported hardware xsa
labzynqplatform
labmbplatform
Create an application project
labzynqapplication
Labmbapplication
Program the FPGA,
I will give the Cembedded codes from this example project:
mbapplication this goes in one c file
#include
#include
#include "platform.h
#include "xilprintf.h
#include "xiltypes.h
#include "xparameters.h
#include "xgpio.h
#include xtmrctrh
#include "xilexception.h
#include "sleep.h
#include "xmbox.h
int main
XMboxConfig cfgptrmailbox;
XMbox mailbox;
initplatform;
cfgptrmailbox XMboxLookupConfigU;
XMboxCfgInitialize&mailbox, cfgptrmailbox, cfgptrmailboxBaseAddress;
u bytessent;
u readbuffer ;
while
wait for the values of the ZYNQ
XMboxReadBlocking&mailbox, &readbuffer, ;
increment the values with
readbuffer readbuffer ;
send back towards the ZYNQ
XMboxWrite&mailbox, u &readbuffer, &bytessent;
cleanupplatform;
return ;
Zynq application this goes in a second c file
#include
#include
#include "platform.h
#include "xilprintf.h
#include "xiltypes.h
#include "xparameters.h
#include "xgpio.h
#include xtmrctrh
#include "xscugic.h
#include "xilexception.h
#include "sleep.h
#include "xmbox.h
#include "time.h
interrupt handler
void gpiointrhandlervoid axigpio
int main
variables
AXI GPIO config and driver object
XGpioConfig cfgptraxigpio;
XGpio axigpio;
XMboxConfig cfgptrmailbox;
XMbox mailbox;
xilprintfInitialization of the platformr
;
initplatform;
setup of the peripherals
xilprintfConfigure the peripheralsr
;
AXI GPIO
xilprintfConfigure AXI GPIOr
;
cfgptraxigpio XGpioLookupConfigXPARAXIGPIODEVICEID;
XGpioCfgInitialize&axigpio, cfgptraxigpio, cfgptraxigpioBaseAddress;
set the mode of the channels inputoutput
buttons channel input
LEDs channel output
XGpioSetDataDirection&axigpio, ;
XGpioSetDataDirection&axigpio, ;
xilprintfConfigure MailBoxr
;
cfgptrmailbox XMboxLookupConfigXPARMAILBOXIFDEVICEID;
XMboxCfgInitialize&mailbox, cfgptrmailbox, cfgptrmailboxBaseAddress;
xilprintfStarting the programr
;
u bytessent;
u readbuffer ;
while
Generate values between
int randomvalue ;rand ;
Send to the mailbox MicroBlaze non blocking write
XMboxWrite&mailbox, u &randomvalue, &bytessent;
Wait for response of the MicroBlaze blocking read
XMboxReadBlocking&mailbox, &readbuffer, ;
Display the value of the value on the LEDs
xilprintfd readbuffer;
xilprintfCleanup of the platformr
;
cleanupplatform;
return ;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
