|
|
|
|
| First day |
| Platform development process |
 |
Definition of the platform |
|
 |
Creation of the physical architecture of the system |
|
 |
Choice of characteristics and design |
|
 |
VHDL code generation of the platform |
 |
Implementation of the platform |
|
 |
Verification of the platform |
|
 |
Creation of the bitstream for programming the FPGA |
|
 |
Programming the platform |
|
 |
Choice of software infrastructure |
|
 |
Programming in C and assembler |
| Platform definition with the Mico System Builder |
 |
Selecting core options |
|
 |
Caches |
|
 |
Interrupt controller |
|
 |
Memory selection and configuration |
|
 |
Internal RAM and ROM |
|
 |
External flash, serial and parallel |
|
 |
SRAM and external DDRAM |
|
 |
Choosing and configuring devices |
|
 |
GPIOs |
|
 |
Timer |
|
 |
UART, SPI, I2C |
|
 |
Ethernet |
|
 |
DMA Controller |
|
 |
Bus arbitration strategies |
|
 |
Private or shared busses |
|
 |
Static or dynamic arbitration |
|
 |
Configuring the platform |
|
 |
Connection of peripheral bussesto |
|
 |
Connection of peripheral interrupt controllers and DMA |
|
 |
Choice of addresses and interrupts |
|
 |
Checking the consistency of the platform |
 |
VHDL code generation of the platform |
| Second day |
| Platform implementation |
 |
Behavioral Simulation |
|
 |
Using the testbench generated by the MSB |
|
 |
Synthesis according to the chosen FPGA |
|
 |
Definition of inputs / outputs |
|
 |
Placement |
|
 |
Routing |
|
 |
After routing simulation |
|
 |
Checking timings |
|
 |
Control processing speed |
|
 |
FPGA programming |
|
 |
Generating the bitstream |
|
 |
Transfer to the target |
| Platform programming |
 |
C programming |
|
 |
The Eclipse-based programming environment |
|
 |
Program Runtime Environment |
|
 |
Programming and code generation constraints |
|
 |
Linker memory definition |
|
 |
Simulation on the development station |
|
 |
Using the MICO32 platform simulator |
|
 |
Transfer to the target |
 |
Cross debugging |
|
 |
Use of GDB to cross-debug the program on the target |
| Install and use of micrium uC/OSII |
 |
Installing micrium uC/OSII on the target platform |
|
 |
Specific platform requirements for uC/OSII |
|
 |
Configuration uC/OSII to fit the platform |
|
 |
Create a simple program |
|
 |
Recompile |
|
 |
Transfer on the target |
|
 |
Cross-debug |
| Third day |
| Install and use uClinux |
 |
Installing u-boot on the target |
|
 |
Specific platform requirements for u-boot and uClinux |
|
 |
Configuring u-boot to fit the platform |
|
 |
Recompile u-boot |
|
 |
Transfer on the target |
|
 |
Auto-test of the platform by u-boot |
|
 |
Installing uClinux |
|
 |
Configure the Linux kernel |
|
 |
Choice of boot parameters |
|
 |
Creation of programs for uClinux |
|
 |
Compilation under Eclipse for uClinux |
|
 |
Cross-debug |
| Creating custom components |
 |
The Wishbone bus |
|
 |
Bus topology and signals |
|
 |
Master interfaces |
|
 |
Slave interfaces |
|
 |
Defining custom input/output components |
|
 |
Creation of the component VHDL code |
|
 |
Integration into the Mico System Builder |
|
 |
Creation of a platform including the new component |
|
 |
Use of custom components in software |
|
 |
Creating a program using acomponent |
|
 |
Notion of driver |
| System deployment |
 |
Deployment of bitstreams in SPI flash |
|
 |
Using the JTAG port to program the flash |
|
 |
Deployment of tested code in parallel flash |
|
 |
Creation of the flash programming infrastructure |
|
 |
Reconfiguration of the application for execution from flash |
|
 |
Deployment of an integrated application |
|
 |
Deployment of a complete uClinux image |