SlideShare a Scribd company logo
1 of 26
Lab:
      Implementing the Xilkernel on the Xilinx
               Spartan 3E Starter Kit




Keywords: EDK, Xilinx Platform Studio, Microblaze, Xilinx
SPARTAN3E Starter Kit, Real-Time Operating System (RTOS),
pthreads,…




Vincent Claes             2009                  Vincent Claes
Introduction
These labs are created by Vincent Claes. If you encounter
problems using this labs or want some advice/consultancy on
Embedded Systems, FPGA’s, LabVIEW and especially LabVIEW FPGA
you can always contact the author.

These labs are free to use however to show respect to the
author please email him when you use them with your contact
details (feedback is also welcome).

Contact Information:
Vincent Claes
claesvincent@gmail.com
http://www.linkedin.com/in/vincentclaes

Software Requirements:
     Xilinx EDK 10.1 SP3
     Xilinx EDK (SDK) 10.1 SP3

Hardware Requirements:
     Xilinx Spartan3E Starter kit:
     http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-
     G.htm
     User manual:
     www.xilinx.com/support/documentation/boards_and_kits/ug23
     0.pdf



Getting Started
When you want to use this labs you have to setup your board.
This labs are written for the Xilinx SPARTAN3E Starter Kit so
it is quite interesting to read the user manual of the board.
Be sure to plug in the USB cable, plug in the Power cord and
Switch the board on before starting the lab.




Vincent Claes                2009                    Vincent Claes
Step 1: Create a Base System
The first step is creating a Base System for the Spartan3E
starter board. For more information if you need please visit
the Xilinx website.

Start Xilinx Platform Studio (EDK) 10.1
When the “Create new or open existing project” window appears
select “Base System Builder wizard” and click the OK button.




Create a new *.xmp file in a directory on your HDD. Remember
to not use spaces in your filenames or directory name.




Check the Option “I would like to create a new design” in the
next window and click on the “Next” button.




Vincent Claes               2009                   Vincent Claes
This lab is written for the Spartan 3E Starter board Revision
D so we have to select that board and click on the “Next”
button.




On this Spartan 3E     starter board there is no PowerPC core
implemented in the      FPGA so we can only add the Xilinx
Microblaze processor   as the processor that will be included in
the embedded design.    Select “Microblaze” and click the “Next”
button.




Vincent Claes                  2009                   Vincent Claes
Leave all the settings for the microblaze processor like they
are proposed to you and click next.




Vincent Claes               2009                   Vincent Claes
Now it is time to Configure all the IO Interfaces that are
needed in this project. I will add all the existing IO
interfaces to have a platform that can be used during more
labs. So look at the next screens for the configuration of the
IO Interfaces.




Vincent Claes                2009                   Vincent Claes
For the implementation of the Xilkernel we are in need of a
timer. This is added as an “Internal Peripheral” during the
next step of the “Base System Builder”. So click the “Add
Peripheral” button and then select the XPS_TIMER from the
drop-down menu. Click the “OK” button.




Make sure your XPS_TIMER has the same settings as below, so
check the box “Use interrupt”.




Vincent Claes              2009                   Vincent Claes
The next 3 steps are standard “Base System Builder” steps.
Click the “Next button” 3 times. In this steps you tell which
IO interfaces to use as STDIN (Standard input device) and
STDOUT (Standard Output device). Also you set from which
memory the system will boot (we will later a bootloop program
in the blockram and execute our instruction from SDRAM).




Vincent Claes               2009                   Vincent Claes
Vincent Claes   2009   Vincent Claes
The next window is a summary of the system you have created.
You can see all the cores you have implemented in your SoC
(System-On-Chip). You can also have a look at the memory map
of your system. Click the “Generate” button to have your
system generated. After this a new screen appears; click the
“Finish” button.




Congratulations, you just have designed an Xilinx Base system
that can run an Real-Time Operating System (RTOS) called
Xilkernel. You can have a look at your block diagram in EDK.




Vincent Claes               2009                   Vincent Claes
Step 2: Software Platform
Settings
Now that you have created your hardware project you only have
to generate the bitstream to be able to download later this
hardware project. In EDK click the “Hardware” menu and then
select “Generate Bitstream”.




Generating the bitstream will take some time so I suggest you
go to the coffee machine and have a cup of coffee and return
after some time.

Vincent Claes               2009                   Vincent Claes
When you come back and see in the “Output” window of EDK the
following message:
“Saving bit stream in “system.bit”
Bitstream generation is complete.
Done!

You are lucky and can go further in the development. Select
the “Software”  “Launch Plaform Studio SDK”.




When you have started Xilinx Platform Studio SDK a wizard is
launched. The first step is selecting the “Create a New SDK C
Application Project” and click the “Next” button.




Put in the “Project Name” box a name that you wish to give to
your project. Be sure you select the correct microblaze
instance for your project, normally there is only one if you
are working in a design with only one processor core. Leave
all the other options like they are presented to you and click
on the “Next” button.




Vincent Claes                2009                   Vincent Claes
Vincent Claes   2009   Vincent Claes
Finish this “New project wizard” by clicking the “Next” button
on the next screen that appears and then checking the box for
“microblaze_0_sw_platform” to use this as a referenced C/C++
project. Now press the “Finish” button.




Now you have generated a “New SDK project”. The first thing we
are going to do is setting all the “Software Platform
Settings” to the values we want. Remember we want to get a
xilkernel platform on the Xilinx Spartan 3E Starter board. So
for now select “Xilinx Tools” and “Software Platform Settings”
from the top-down menu.




Vincent Claes                2009                   Vincent Claes
In the “Software Platform Settings” we have to configure the
software part of our platform.
On the second part of the window you must select “xilkernel”.




When we have developed our application and would like to use
the features of the xilkernel we have to add “-lxilkernel” as
an extra_compiler_flag in the “Software Platform Settings”.




Vincent Claes               2009                   Vincent Claes
After this you select the “OS and libraries” option from the
left part of the “Software Platform Settings” window. Here we
have to set some configuration parameters of the OS (xilkernel
v4.00.a).
       1. Check that you put in the stdin and stdout
          configuration parameters “RS232_DTE” as current value
          if you want to use this serial port as your standard
          input and output parameters.
       2. Check that you select xps_intc_0 as the sysintc_spec.




          3. For   the   systmr_spec   set   the   systmr_dev     to
             xps_timer_1.




Vincent Claes                   2009                    Vincent Claes
4. Go to the config_pthread_support parameter and select
             the static_pthread_table option, you do this by
             clicking on the “Current Value” of this option.
             Be   sure   to   put   in  this   table   the   value
             “test_start_func” as pthread_start_func and put 1 in
             the column for the pthread_prio value of it.




          5. Be sure that the sched_type option which you can find
             under config_sched is set to use Round Robin
             (SCHED_RR) otherwise you will get some errors while
             compiling your code.




Vincent Claes                   2009                    Vincent Claes
6. The xilkernel can deliver you some software timers.
             But if you want to use this option of the xilkernel
             your have to make the max_tmrs option to a value that
             is greater than 1. Before you can do this you have to
             put the config_time option to the value “true”. I
             have used the value 2 in my example project.




          7. In the example software application we will kill a
             pthread on runtime. If you want to be able to do this
             you have to put the value of enhanced_features to
             true and set config_kill and config_yield also to
             true.




Vincent Claes                   2009                    Vincent Claes
After this you can close this “Software Platform Settings”
window by clicking on the “OK” button. After this you will be
back in the Xilinx Platform Studio SDK.
We are going to manipulate the “Linker Script” used by our
project in such a way that we run our software directly from
DDR-SDRAM. We do this by clicking on the software project you
have generated with the right mouse button and then selecting
“Generate Linker Script”.




After this a new window appears titled “Linker Script
Generator”. In this window you have to assign all the Code
Sections   and   Data    Sections of  the   ELF   file  to
“DDR_SDRAM_C_MPMC_BASEADDR”.




Vincent Claes               2009                   Vincent Claes
Click on the “Generate” button.




Vincent Claes                2009   Vincent Claes
After this we have to tell the gcc linker to link against the
xilkernel library. We do this by clicking with the “right”
mouse button on your project and selecting “properties”.




Go to C/C++ Build and select the “Tool Settings” tab.




Vincent Claes                2009                       Vincent Claes
Click on the “Add” icon.




A new messagebox appears, you have to write      xilkernel    as
library in this box and click the “OK” button.




Now it is time to program your FPGA with the generated
bitstream. Do this by clickin on the “Device Configuration”
menuitem and select “Program FPGA”. This will download the
.bit file to your Spartan3E FPGA.




Vincent Claes               2009                    Vincent Claes
The “Program FPGA” selection will start up a new window where
you have to select the “BootLoop” ELF to be used in BRAM. This
will place a small boot program into the BRAM that point to
the start place in DDR-SDRAM where we will place our
application software. So click the “Save and Program” button.




Step 3: Write Software
Application
Now it is time to program our C-application that we would like
to debug on our HW platform. This C-application we use the
xilkernel as Real-Time Operating System (RTOS)

In your Xilinx Platform Studio SDK click on the “main.c” file
and remove all the code that is in the code window with the
code below (explanation of the code is as comment included):

// Development by Vincent Claes
// http://pwo.fpga.be
// http://www.xios.be

#include   quot;xmk.hquot;           // Xilinx Micro Kernel library
#include   quot;pthread.hquot;       // pthread library
#include   quot;xparameters.hquot;   // Platform parameters
#include   quot;xgpio.hquot;
#include   quot;xgpio_l.hquot;

//====================================================
static pthread_t newthread1; // an identifier for creating a new pthread

Vincent Claes                      2009                         Vincent Claes
static pthread_attr_t thread1attr;
// an attribute identifier used for creating the new pthread
static struct sched_param newthreadsched;
// used for giving our new thread a priority level
static pid_t mainproc_pid;
// an identifier used for killing the lower priority process

XGpio GpioOutput;
/* The driver instance for GPIO Device configured as O/P */

void* launched_pthread(void *dummy)
{
      int counter=0x01;
      int Status;
      xil_printf(quot;rn--- Killing test_start_func() ...rnquot;);

         // next code used to kill the other proc if scheduling
         // is Round Robin (RR-based) instead of Priority based.

         if (kill(mainproc_pid) != 0)
         {
               xil_printf(quot;rn--- Error during kill operation...---rnquot;);
    }
        Status = XGpio_Initialize(&GpioOutput,XPAR_LEDS_8BIT_BASEADDR);
          XGpio_SetDataDirection(&GpioOutput,1,0x0);

         while(1)
         {
               XGpio_DiscreteWrite(&GpioOutput,1,counter);
               xil_printf(quot;rn%dquot;,counter);
               sleep(5000); // This is why we need a software timer!
               counter++;
         }

}

void* test_start_func(void *dummy)
{
      int i=0,temp;

         xil_printf(quot;--- In test_start_funct() ---quot;);
         mainproc_pid = get_currentPID();   // parameter needed to kill this
                                            //process in other thread

      while(1)
      {
            i++;
            if(i==25)
            // spawn the thread after some time
            {
                  pthread_attr_init(&thread1attr);
                  newthreadsched.sched_priority = 1;
                  temp = pthread_create(&newthread1, &thread1attr,
(void*)launched_pthread, NULL);
// NULL: It's used if the thread function must take in an argument
            }
      }
}

int main (void) {
      xil_printf(quot;-- Entering main() --rnquot;);


Vincent Claes                          2009                         Vincent Claes
//Wait for user input to start xilkernel...
       xilkernel_main();
       //We never reach this line...
       xil_printf(quot;-- Exiting main() --rnquot;);
    return 0;
}

Click now on the “save” icon; the software then will be
automatically compiled by the mb-gcc ( microblaze port of the
gcc compiler) and linked.




Step 4: Debug Application
Now it’s time for the final step: debug the application from
DDR-SDRAM. Be sure you have connected your board correctly to
the computer and it is powered on. Also connect your serial
DTE port to a RS-232 port of your computer. Open a serial
connection from your computer to the Spartan 3E board; for
instance by use of “Hyperterminal” and use 9600 bps as baud
rate.
Click on “Debug on Hardware” this option you can find from the
menu-item “Run” and then selecting “Debug As”.




Vincent Claes                       2009             Vincent Claes
The next screen will appear; the final step is clicking the
“Resume”   button! (the   debugger will   always  pause  the
application on the first line of the main() function of your
application.




Enjoy.

Vincent Claes
XIOS Hogeschool Limburg
Department of Industrial Sciences and Technology
Universitaire Campus - Agoralaan – Gebouw H
B-3590 Diepenbeek
Belgium
vincent.claes@xios.be
tel.:    +32 11 26 00 39
fax:     +32 11 26 00 54
mobile: +32 478 35 38 49




Vincent Claes                2009                  Vincent Claes

More Related Content

What's hot

CHDK installation guide
CHDK installation guideCHDK installation guide
CHDK installation guideM1kee
 
Bews command line_en
Bews command line_enBews command line_en
Bews command line_enOm Pal
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernelguestf1a032
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniquesSatpal Parmar
 
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
QA your code: The new Unity Test Framework – Unite Copenhagen 2019QA your code: The new Unity Test Framework – Unite Copenhagen 2019
QA your code: The new Unity Test Framework – Unite Copenhagen 2019Unity Technologies
 
system state backup restore
system state backup restoresystem state backup restore
system state backup restoressuser1eca7d
 
Manual user ful desktop
Manual user ful desktopManual user ful desktop
Manual user ful desktopjeffersonpbrt
 
Command pattern vs. MVC: Lean Beans (are made of this)
Command pattern vs. MVC: Lean Beans (are made of this)Command pattern vs. MVC: Lean Beans (are made of this)
Command pattern vs. MVC: Lean Beans (are made of this)philipdurbin
 
VMware Workstation 9.0.1 Build 894247 Final Keygen
VMware Workstation 9.0.1 Build 894247 Final KeygenVMware Workstation 9.0.1 Build 894247 Final Keygen
VMware Workstation 9.0.1 Build 894247 Final KeygenRashondaEchevarria
 
Windows Debugging with WinDbg
Windows Debugging with WinDbgWindows Debugging with WinDbg
Windows Debugging with WinDbgArno Huetter
 
Getting started with Burst – Unite Copenhagen 2019
Getting started with Burst – Unite Copenhagen 2019Getting started with Burst – Unite Copenhagen 2019
Getting started with Burst – Unite Copenhagen 2019Unity Technologies
 
Understanding Linux system hang
Understanding Linux system hangUnderstanding Linux system hang
Understanding Linux system hangGang He
 
How to debug ocfs2 hang problem
How to debug ocfs2 hang problemHow to debug ocfs2 hang problem
How to debug ocfs2 hang problemGang He
 
Sweet fx readme
Sweet fx readmeSweet fx readme
Sweet fx readmeMLGGS
 
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0Jo Hoon
 

What's hot (19)

MDT Step public
MDT Step publicMDT Step public
MDT Step public
 
CHDK installation guide
CHDK installation guideCHDK installation guide
CHDK installation guide
 
Intro xp linux
Intro xp linuxIntro xp linux
Intro xp linux
 
Bews command line_en
Bews command line_enBews command line_en
Bews command line_en
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernel
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniques
 
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
QA your code: The new Unity Test Framework – Unite Copenhagen 2019QA your code: The new Unity Test Framework – Unite Copenhagen 2019
QA your code: The new Unity Test Framework – Unite Copenhagen 2019
 
system state backup restore
system state backup restoresystem state backup restore
system state backup restore
 
Manual user ful desktop
Manual user ful desktopManual user ful desktop
Manual user ful desktop
 
Command pattern vs. MVC: Lean Beans (are made of this)
Command pattern vs. MVC: Lean Beans (are made of this)Command pattern vs. MVC: Lean Beans (are made of this)
Command pattern vs. MVC: Lean Beans (are made of this)
 
Readme
ReadmeReadme
Readme
 
VMware Workstation 9.0.1 Build 894247 Final Keygen
VMware Workstation 9.0.1 Build 894247 Final KeygenVMware Workstation 9.0.1 Build 894247 Final Keygen
VMware Workstation 9.0.1 Build 894247 Final Keygen
 
Windows Debugging with WinDbg
Windows Debugging with WinDbgWindows Debugging with WinDbg
Windows Debugging with WinDbg
 
Getting started with Burst – Unite Copenhagen 2019
Getting started with Burst – Unite Copenhagen 2019Getting started with Burst – Unite Copenhagen 2019
Getting started with Burst – Unite Copenhagen 2019
 
Understanding Linux system hang
Understanding Linux system hangUnderstanding Linux system hang
Understanding Linux system hang
 
How to debug ocfs2 hang problem
How to debug ocfs2 hang problemHow to debug ocfs2 hang problem
How to debug ocfs2 hang problem
 
Backtrack Manual Part7
Backtrack Manual Part7Backtrack Manual Part7
Backtrack Manual Part7
 
Sweet fx readme
Sweet fx readmeSweet fx readme
Sweet fx readme
 
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0
Ansible part for_po_c(w dellos9 dellos10)_ext_v1.0
 

Viewers also liked

PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"
PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"
PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"esainciti
 
Proyecto cuidando nuestro medio ambiente
Proyecto cuidando nuestro medio ambienteProyecto cuidando nuestro medio ambiente
Proyecto cuidando nuestro medio ambienteAdriana Apellidos
 
Proyecto de aula pequeños guardianes de la naturaleza
Proyecto de aula pequeños guardianes  de la naturalezaProyecto de aula pequeños guardianes  de la naturaleza
Proyecto de aula pequeños guardianes de la naturalezaDignaPC01
 
El cuidado del medio ambiente diapositivas diana
El cuidado del medio ambiente diapositivas dianaEl cuidado del medio ambiente diapositivas diana
El cuidado del medio ambiente diapositivas dianaFernanda Avalo Agudelo
 
cuidado y conservacion del medio ambiente
cuidado y conservacion del medio ambientecuidado y conservacion del medio ambiente
cuidado y conservacion del medio ambienteAreli Asencios
 
Proyecto ambiental educativo por Darlin Ricaurte Avila.
Proyecto ambiental educativo por Darlin Ricaurte Avila.Proyecto ambiental educativo por Darlin Ricaurte Avila.
Proyecto ambiental educativo por Darlin Ricaurte Avila.darbucu
 

Viewers also liked (8)

Proyecto de aula cuidado del ambiente
Proyecto de aula cuidado del ambienteProyecto de aula cuidado del ambiente
Proyecto de aula cuidado del ambiente
 
PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"
PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"
PROYECTO CIENCIAS "CUIDEMOS NUESTRO AMBIENTE"
 
Situación Didáctica: Cuidemos el medio ambiente
Situación Didáctica: Cuidemos el medio ambienteSituación Didáctica: Cuidemos el medio ambiente
Situación Didáctica: Cuidemos el medio ambiente
 
Proyecto cuidando nuestro medio ambiente
Proyecto cuidando nuestro medio ambienteProyecto cuidando nuestro medio ambiente
Proyecto cuidando nuestro medio ambiente
 
Proyecto de aula pequeños guardianes de la naturaleza
Proyecto de aula pequeños guardianes  de la naturalezaProyecto de aula pequeños guardianes  de la naturaleza
Proyecto de aula pequeños guardianes de la naturaleza
 
El cuidado del medio ambiente diapositivas diana
El cuidado del medio ambiente diapositivas dianaEl cuidado del medio ambiente diapositivas diana
El cuidado del medio ambiente diapositivas diana
 
cuidado y conservacion del medio ambiente
cuidado y conservacion del medio ambientecuidado y conservacion del medio ambiente
cuidado y conservacion del medio ambiente
 
Proyecto ambiental educativo por Darlin Ricaurte Avila.
Proyecto ambiental educativo por Darlin Ricaurte Avila.Proyecto ambiental educativo por Darlin Ricaurte Avila.
Proyecto ambiental educativo por Darlin Ricaurte Avila.
 

Similar to Implementing the Xilkernel on the Xilinx Spartan 3E Starter Kit

Installation of oracle 12c RAC on linux vm
Installation of oracle 12c RAC  on linux vmInstallation of oracle 12c RAC  on linux vm
Installation of oracle 12c RAC on linux vmRon Morgan
 
Advance Computer Architecture
Advance Computer ArchitectureAdvance Computer Architecture
Advance Computer ArchitectureVrushali Lanjewar
 
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter boardSerial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter boardVincent Claes
 
(A1)_RWS_Customization_WORKSAMPLE
(A1)_RWS_Customization_WORKSAMPLE(A1)_RWS_Customization_WORKSAMPLE
(A1)_RWS_Customization_WORKSAMPLEAngel Marckwordt
 
Tizen Studio Installation&Setup
Tizen Studio Installation&SetupTizen Studio Installation&Setup
Tizen Studio Installation&SetupManoj Behera
 
Lab Implementation of Boolean logic in LabVIEW FPGA
Lab Implementation of Boolean logic in LabVIEW FPGALab Implementation of Boolean logic in LabVIEW FPGA
Lab Implementation of Boolean logic in LabVIEW FPGAVincent Claes
 
Instructions 3-5 pages double space research paper about Eric Sc.docx
Instructions 3-5 pages double space research paper about Eric Sc.docxInstructions 3-5 pages double space research paper about Eric Sc.docx
Instructions 3-5 pages double space research paper about Eric Sc.docxnormanibarber20063
 
cynapspro endpoint data protection - installation guide
cynapspro endpoint data protection - installation guidecynapspro endpoint data protection - installation guide
cynapspro endpoint data protection - installation guidecynapspro GmbH
 
install k+dcan cable standard tools 2.12 on windows 10 64bit
install k+dcan cable standard tools 2.12 on windows 10 64bitinstall k+dcan cable standard tools 2.12 on windows 10 64bit
install k+dcan cable standard tools 2.12 on windows 10 64bitWORLD OBD2
 
Qtp selenium Course Instructions & Installation Steps
Qtp selenium Course Instructions & Installation StepsQtp selenium Course Instructions & Installation Steps
Qtp selenium Course Instructions & Installation StepsZaranTech LLC
 
Fischertechnik designer manual
Fischertechnik designer manualFischertechnik designer manual
Fischertechnik designer manualEduardo Alvarez
 
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter boardEmbedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter boardVincent Claes
 
Krenel Based Virtual Machine In Centos7
Krenel Based Virtual Machine In Centos7Krenel Based Virtual Machine In Centos7
Krenel Based Virtual Machine In Centos7a_ratra
 
Fcm rapid-install-11122-1634210
Fcm rapid-install-11122-1634210Fcm rapid-install-11122-1634210
Fcm rapid-install-11122-1634210raman pattanaik
 

Similar to Implementing the Xilkernel on the Xilinx Spartan 3E Starter Kit (20)

Installation of oracle 12c RAC on linux vm
Installation of oracle 12c RAC  on linux vmInstallation of oracle 12c RAC  on linux vm
Installation of oracle 12c RAC on linux vm
 
Lab1
Lab1Lab1
Lab1
 
Advance Computer Architecture
Advance Computer ArchitectureAdvance Computer Architecture
Advance Computer Architecture
 
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter boardSerial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Serial Communication in LabVIEW FPGA on Xilinx Spartan 3E Starter board
 
(A1)_RWS_Customization_WORKSAMPLE
(A1)_RWS_Customization_WORKSAMPLE(A1)_RWS_Customization_WORKSAMPLE
(A1)_RWS_Customization_WORKSAMPLE
 
Tizen Studio Installation&Setup
Tizen Studio Installation&SetupTizen Studio Installation&Setup
Tizen Studio Installation&Setup
 
Lab Implementation of Boolean logic in LabVIEW FPGA
Lab Implementation of Boolean logic in LabVIEW FPGALab Implementation of Boolean logic in LabVIEW FPGA
Lab Implementation of Boolean logic in LabVIEW FPGA
 
Instructions 3-5 pages double space research paper about Eric Sc.docx
Instructions 3-5 pages double space research paper about Eric Sc.docxInstructions 3-5 pages double space research paper about Eric Sc.docx
Instructions 3-5 pages double space research paper about Eric Sc.docx
 
zyz
zyzzyz
zyz
 
cynapspro endpoint data protection - installation guide
cynapspro endpoint data protection - installation guidecynapspro endpoint data protection - installation guide
cynapspro endpoint data protection - installation guide
 
HPC Examples
HPC ExamplesHPC Examples
HPC Examples
 
install k+dcan cable standard tools 2.12 on windows 10 64bit
install k+dcan cable standard tools 2.12 on windows 10 64bitinstall k+dcan cable standard tools 2.12 on windows 10 64bit
install k+dcan cable standard tools 2.12 on windows 10 64bit
 
Qtp selenium Course Instructions & Installation Steps
Qtp selenium Course Instructions & Installation StepsQtp selenium Course Instructions & Installation Steps
Qtp selenium Course Instructions & Installation Steps
 
Fischertechnik designer manual
Fischertechnik designer manualFischertechnik designer manual
Fischertechnik designer manual
 
Vhdl design flow
Vhdl design flowVhdl design flow
Vhdl design flow
 
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter boardEmbedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter board
Embedding VHDL in LabVIEW FPGA on Xilinx Spartan 3E Starter board
 
Saving File As Plot File
Saving File As Plot FileSaving File As Plot File
Saving File As Plot File
 
Krenel Based Virtual Machine In Centos7
Krenel Based Virtual Machine In Centos7Krenel Based Virtual Machine In Centos7
Krenel Based Virtual Machine In Centos7
 
Dsplab v1
Dsplab v1Dsplab v1
Dsplab v1
 
Fcm rapid-install-11122-1634210
Fcm rapid-install-11122-1634210Fcm rapid-install-11122-1634210
Fcm rapid-install-11122-1634210
 

More from Vincent Claes

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDVincent Claes
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldVincent Claes
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKVincent Claes
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockVincent Claes
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sVincent Claes
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Vincent Claes
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot PythonVincent Claes
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopVincent Claes
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM ImplementationVincent Claes
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceVincent Claes
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsVincent Claes
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMVincent Claes
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleVincent Claes
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadVincent Claes
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorVincent Claes
 
Softcore vs Hardcore processor
Softcore vs Hardcore processorSoftcore vs Hardcore processor
Softcore vs Hardcore processorVincent Claes
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Vincent Claes
 

More from Vincent Claes (20)

Percepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZEDPercepio Tracealyzer for FreeRTOS on MiniZED
Percepio Tracealyzer for FreeRTOS on MiniZED
 
Xilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello WorldXilinx Vitis FreeRTOS Hello World
Xilinx Vitis FreeRTOS Hello World
 
Programming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDKProgramming STM32L432 Nucleo with Keil MDK
Programming STM32L432 Nucleo with Keil MDK
 
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP BlockDebugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
Debugging Xilinx Zynq Project using ILA Integrated Logic Analyzer IP Block
 
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA'sUsing Virtual IO (VIO) on Xilinx ZYNQ FPGA's
Using Virtual IO (VIO) on Xilinx ZYNQ FPGA's
 
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
Profiling Xilinx Zynq Software Applications in SDK (MiniZED board)
 
Workshop: Introductie tot Python
Workshop: Introductie tot PythonWorkshop: Introductie tot Python
Workshop: Introductie tot Python
 
Installation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python WorkshopInstallation Anaconda Navigator for Python Workshop
Installation Anaconda Navigator for Python Workshop
 
ZYNQ BRAM Implementation
ZYNQ BRAM ImplementationZYNQ BRAM Implementation
ZYNQ BRAM Implementation
 
Implementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud ServiceImplementing a Database and API for your Cloud Service
Implementing a Database and API for your Cloud Service
 
Launching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT ProjectsLaunching Python Cloud Services for AI/IoT Projects
Launching Python Cloud Services for AI/IoT Projects
 
Real Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARMReal Time Filtering on Embedded ARM
Real Time Filtering on Embedded ARM
 
R Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by ExampleR Markdown, Rpubs & github publishing and Shiny by Example
R Markdown, Rpubs & github publishing and Shiny by Example
 
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL LaunchpadUsing Texas Instruments Code Composer Studio for The CC3200XL Launchpad
Using Texas Instruments Code Composer Studio for The CC3200XL Launchpad
 
Hogeschool PXL Smart Mirror
Hogeschool PXL Smart MirrorHogeschool PXL Smart Mirror
Hogeschool PXL Smart Mirror
 
Softcore vs Hardcore processor
Softcore vs Hardcore processorSoftcore vs Hardcore processor
Softcore vs Hardcore processor
 
MySQL / PHP Server
MySQL / PHP ServerMySQL / PHP Server
MySQL / PHP Server
 
Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...Implementing an interface in r to communicate with programmable fabric in a x...
Implementing an interface in r to communicate with programmable fabric in a x...
 
fTales workshop
fTales workshopfTales workshop
fTales workshop
 
Maker Revolution
Maker RevolutionMaker Revolution
Maker Revolution
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

Implementing the Xilkernel on the Xilinx Spartan 3E Starter Kit

  • 1. Lab: Implementing the Xilkernel on the Xilinx Spartan 3E Starter Kit Keywords: EDK, Xilinx Platform Studio, Microblaze, Xilinx SPARTAN3E Starter Kit, Real-Time Operating System (RTOS), pthreads,… Vincent Claes 2009 Vincent Claes
  • 2. Introduction These labs are created by Vincent Claes. If you encounter problems using this labs or want some advice/consultancy on Embedded Systems, FPGA’s, LabVIEW and especially LabVIEW FPGA you can always contact the author. These labs are free to use however to show respect to the author please email him when you use them with your contact details (feedback is also welcome). Contact Information: Vincent Claes claesvincent@gmail.com http://www.linkedin.com/in/vincentclaes Software Requirements: Xilinx EDK 10.1 SP3 Xilinx EDK (SDK) 10.1 SP3 Hardware Requirements: Xilinx Spartan3E Starter kit: http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US- G.htm User manual: www.xilinx.com/support/documentation/boards_and_kits/ug23 0.pdf Getting Started When you want to use this labs you have to setup your board. This labs are written for the Xilinx SPARTAN3E Starter Kit so it is quite interesting to read the user manual of the board. Be sure to plug in the USB cable, plug in the Power cord and Switch the board on before starting the lab. Vincent Claes 2009 Vincent Claes
  • 3. Step 1: Create a Base System The first step is creating a Base System for the Spartan3E starter board. For more information if you need please visit the Xilinx website. Start Xilinx Platform Studio (EDK) 10.1 When the “Create new or open existing project” window appears select “Base System Builder wizard” and click the OK button. Create a new *.xmp file in a directory on your HDD. Remember to not use spaces in your filenames or directory name. Check the Option “I would like to create a new design” in the next window and click on the “Next” button. Vincent Claes 2009 Vincent Claes
  • 4. This lab is written for the Spartan 3E Starter board Revision D so we have to select that board and click on the “Next” button. On this Spartan 3E starter board there is no PowerPC core implemented in the FPGA so we can only add the Xilinx Microblaze processor as the processor that will be included in the embedded design. Select “Microblaze” and click the “Next” button. Vincent Claes 2009 Vincent Claes
  • 5. Leave all the settings for the microblaze processor like they are proposed to you and click next. Vincent Claes 2009 Vincent Claes
  • 6. Now it is time to Configure all the IO Interfaces that are needed in this project. I will add all the existing IO interfaces to have a platform that can be used during more labs. So look at the next screens for the configuration of the IO Interfaces. Vincent Claes 2009 Vincent Claes
  • 7. For the implementation of the Xilkernel we are in need of a timer. This is added as an “Internal Peripheral” during the next step of the “Base System Builder”. So click the “Add Peripheral” button and then select the XPS_TIMER from the drop-down menu. Click the “OK” button. Make sure your XPS_TIMER has the same settings as below, so check the box “Use interrupt”. Vincent Claes 2009 Vincent Claes
  • 8. The next 3 steps are standard “Base System Builder” steps. Click the “Next button” 3 times. In this steps you tell which IO interfaces to use as STDIN (Standard input device) and STDOUT (Standard Output device). Also you set from which memory the system will boot (we will later a bootloop program in the blockram and execute our instruction from SDRAM). Vincent Claes 2009 Vincent Claes
  • 9. Vincent Claes 2009 Vincent Claes
  • 10. The next window is a summary of the system you have created. You can see all the cores you have implemented in your SoC (System-On-Chip). You can also have a look at the memory map of your system. Click the “Generate” button to have your system generated. After this a new screen appears; click the “Finish” button. Congratulations, you just have designed an Xilinx Base system that can run an Real-Time Operating System (RTOS) called Xilkernel. You can have a look at your block diagram in EDK. Vincent Claes 2009 Vincent Claes
  • 11. Step 2: Software Platform Settings Now that you have created your hardware project you only have to generate the bitstream to be able to download later this hardware project. In EDK click the “Hardware” menu and then select “Generate Bitstream”. Generating the bitstream will take some time so I suggest you go to the coffee machine and have a cup of coffee and return after some time. Vincent Claes 2009 Vincent Claes
  • 12. When you come back and see in the “Output” window of EDK the following message: “Saving bit stream in “system.bit” Bitstream generation is complete. Done! You are lucky and can go further in the development. Select the “Software”  “Launch Plaform Studio SDK”. When you have started Xilinx Platform Studio SDK a wizard is launched. The first step is selecting the “Create a New SDK C Application Project” and click the “Next” button. Put in the “Project Name” box a name that you wish to give to your project. Be sure you select the correct microblaze instance for your project, normally there is only one if you are working in a design with only one processor core. Leave all the other options like they are presented to you and click on the “Next” button. Vincent Claes 2009 Vincent Claes
  • 13. Vincent Claes 2009 Vincent Claes
  • 14. Finish this “New project wizard” by clicking the “Next” button on the next screen that appears and then checking the box for “microblaze_0_sw_platform” to use this as a referenced C/C++ project. Now press the “Finish” button. Now you have generated a “New SDK project”. The first thing we are going to do is setting all the “Software Platform Settings” to the values we want. Remember we want to get a xilkernel platform on the Xilinx Spartan 3E Starter board. So for now select “Xilinx Tools” and “Software Platform Settings” from the top-down menu. Vincent Claes 2009 Vincent Claes
  • 15. In the “Software Platform Settings” we have to configure the software part of our platform. On the second part of the window you must select “xilkernel”. When we have developed our application and would like to use the features of the xilkernel we have to add “-lxilkernel” as an extra_compiler_flag in the “Software Platform Settings”. Vincent Claes 2009 Vincent Claes
  • 16. After this you select the “OS and libraries” option from the left part of the “Software Platform Settings” window. Here we have to set some configuration parameters of the OS (xilkernel v4.00.a). 1. Check that you put in the stdin and stdout configuration parameters “RS232_DTE” as current value if you want to use this serial port as your standard input and output parameters. 2. Check that you select xps_intc_0 as the sysintc_spec. 3. For the systmr_spec set the systmr_dev to xps_timer_1. Vincent Claes 2009 Vincent Claes
  • 17. 4. Go to the config_pthread_support parameter and select the static_pthread_table option, you do this by clicking on the “Current Value” of this option. Be sure to put in this table the value “test_start_func” as pthread_start_func and put 1 in the column for the pthread_prio value of it. 5. Be sure that the sched_type option which you can find under config_sched is set to use Round Robin (SCHED_RR) otherwise you will get some errors while compiling your code. Vincent Claes 2009 Vincent Claes
  • 18. 6. The xilkernel can deliver you some software timers. But if you want to use this option of the xilkernel your have to make the max_tmrs option to a value that is greater than 1. Before you can do this you have to put the config_time option to the value “true”. I have used the value 2 in my example project. 7. In the example software application we will kill a pthread on runtime. If you want to be able to do this you have to put the value of enhanced_features to true and set config_kill and config_yield also to true. Vincent Claes 2009 Vincent Claes
  • 19. After this you can close this “Software Platform Settings” window by clicking on the “OK” button. After this you will be back in the Xilinx Platform Studio SDK. We are going to manipulate the “Linker Script” used by our project in such a way that we run our software directly from DDR-SDRAM. We do this by clicking on the software project you have generated with the right mouse button and then selecting “Generate Linker Script”. After this a new window appears titled “Linker Script Generator”. In this window you have to assign all the Code Sections and Data Sections of the ELF file to “DDR_SDRAM_C_MPMC_BASEADDR”. Vincent Claes 2009 Vincent Claes
  • 20. Click on the “Generate” button. Vincent Claes 2009 Vincent Claes
  • 21. After this we have to tell the gcc linker to link against the xilkernel library. We do this by clicking with the “right” mouse button on your project and selecting “properties”. Go to C/C++ Build and select the “Tool Settings” tab. Vincent Claes 2009 Vincent Claes
  • 22. Click on the “Add” icon. A new messagebox appears, you have to write xilkernel as library in this box and click the “OK” button. Now it is time to program your FPGA with the generated bitstream. Do this by clickin on the “Device Configuration” menuitem and select “Program FPGA”. This will download the .bit file to your Spartan3E FPGA. Vincent Claes 2009 Vincent Claes
  • 23. The “Program FPGA” selection will start up a new window where you have to select the “BootLoop” ELF to be used in BRAM. This will place a small boot program into the BRAM that point to the start place in DDR-SDRAM where we will place our application software. So click the “Save and Program” button. Step 3: Write Software Application Now it is time to program our C-application that we would like to debug on our HW platform. This C-application we use the xilkernel as Real-Time Operating System (RTOS) In your Xilinx Platform Studio SDK click on the “main.c” file and remove all the code that is in the code window with the code below (explanation of the code is as comment included): // Development by Vincent Claes // http://pwo.fpga.be // http://www.xios.be #include quot;xmk.hquot; // Xilinx Micro Kernel library #include quot;pthread.hquot; // pthread library #include quot;xparameters.hquot; // Platform parameters #include quot;xgpio.hquot; #include quot;xgpio_l.hquot; //==================================================== static pthread_t newthread1; // an identifier for creating a new pthread Vincent Claes 2009 Vincent Claes
  • 24. static pthread_attr_t thread1attr; // an attribute identifier used for creating the new pthread static struct sched_param newthreadsched; // used for giving our new thread a priority level static pid_t mainproc_pid; // an identifier used for killing the lower priority process XGpio GpioOutput; /* The driver instance for GPIO Device configured as O/P */ void* launched_pthread(void *dummy) { int counter=0x01; int Status; xil_printf(quot;rn--- Killing test_start_func() ...rnquot;); // next code used to kill the other proc if scheduling // is Round Robin (RR-based) instead of Priority based. if (kill(mainproc_pid) != 0) { xil_printf(quot;rn--- Error during kill operation...---rnquot;); } Status = XGpio_Initialize(&GpioOutput,XPAR_LEDS_8BIT_BASEADDR); XGpio_SetDataDirection(&GpioOutput,1,0x0); while(1) { XGpio_DiscreteWrite(&GpioOutput,1,counter); xil_printf(quot;rn%dquot;,counter); sleep(5000); // This is why we need a software timer! counter++; } } void* test_start_func(void *dummy) { int i=0,temp; xil_printf(quot;--- In test_start_funct() ---quot;); mainproc_pid = get_currentPID(); // parameter needed to kill this //process in other thread while(1) { i++; if(i==25) // spawn the thread after some time { pthread_attr_init(&thread1attr); newthreadsched.sched_priority = 1; temp = pthread_create(&newthread1, &thread1attr, (void*)launched_pthread, NULL); // NULL: It's used if the thread function must take in an argument } } } int main (void) { xil_printf(quot;-- Entering main() --rnquot;); Vincent Claes 2009 Vincent Claes
  • 25. //Wait for user input to start xilkernel... xilkernel_main(); //We never reach this line... xil_printf(quot;-- Exiting main() --rnquot;); return 0; } Click now on the “save” icon; the software then will be automatically compiled by the mb-gcc ( microblaze port of the gcc compiler) and linked. Step 4: Debug Application Now it’s time for the final step: debug the application from DDR-SDRAM. Be sure you have connected your board correctly to the computer and it is powered on. Also connect your serial DTE port to a RS-232 port of your computer. Open a serial connection from your computer to the Spartan 3E board; for instance by use of “Hyperterminal” and use 9600 bps as baud rate. Click on “Debug on Hardware” this option you can find from the menu-item “Run” and then selecting “Debug As”. Vincent Claes 2009 Vincent Claes
  • 26. The next screen will appear; the final step is clicking the “Resume” button! (the debugger will always pause the application on the first line of the main() function of your application. Enjoy. Vincent Claes XIOS Hogeschool Limburg Department of Industrial Sciences and Technology Universitaire Campus - Agoralaan – Gebouw H B-3590 Diepenbeek Belgium vincent.claes@xios.be tel.: +32 11 26 00 39 fax: +32 11 26 00 54 mobile: +32 478 35 38 49 Vincent Claes 2009 Vincent Claes