Having powered the Parallella board up and successfully logged in the next step is to look at the software environment which allow us to create our own applications. To do this we need the epiphany- software development kit (e-sdk) and there are a number of choices as to how we obtain this e-sdk.
- The simplest is to use an existing e-sdk build for your development machine available from the FTP site ftp.parallella.org. Section one of the SDK reference guide provides a very good example of how you can obtain and configure these for your needs. http://adapteva.com/docs/epiphany_sdk_ref.pdf
- the second is slightly more complex which is to build the e-sdk yourself from the git hub repository on your chosen development machine, there is a detailed guide to building your own e-sdk here https://github.com/adapteva/epiphany-sdk/wiki
With e-sdk installed you will see the following directory structure.
Having obtained the e-sdk this includes all of the things which we the developer need to compile, build, debug and load our application on the epiphany chip and interact with it and includes:-
- Compiler (e-gcc) based upon GCC
- Assembler (e-as) which takes the output of the compiler and creates a object file
- Linker (e-ld) which takes the object files and creates the ELF file
- Instruction set simulator (e-run) which simulates the output ELF file
- Hardware Connection Server (e-server) which connects to the epiphany GDB server
- Debugger (e-gdb) which allows debugging of the epiphany device.
- Utilities (e-Utilities) which allow for resetting, loading, writing, reading and otherwise controlling the epiphany device.
- Hardware definition file (e-XML) and board support packages for the different versions of the Parallella board.
Many of the e-sdk’s also include the eclipse development environment which considerably simplifies the development process, the exception being the e-sdk which are implemented on the ARM architecture of the Zynq as you need a x86 machine for eclipse.
Rather helpfully the e-sdk also comes with a docs folder which defines very useful aspects such as the memory map which will show the address space for the shared memory in DRAM and the individual cores.
With the e-sdk installed on your chosen device we need to consider the libraries which enable our applications to be developed quickly and efficiently. As such the one very important aspect of the e-sdk is the provision of two libraries which are key to making any application developed successful.
- Epiphany Host Library also known as the Hardware Abstraction Library (eHAL) this library is used by your host application to communicate with the epiphany chip.
- Epiphany Hardware Utility Library (eLIB) this library is used within your target application
At the highest level (conceptual) the programming model for the Parallella board is as follows
- Determine the method of communication between the host and target application e.g. shared DDR with the Zynq
- Create the application(s) you wish to execute within the epiphany chip
- Create the application for your host system to configure and communicate with the epiphany chip
Having given a very quick overview of how we can create the e-sdk and what is involved with it we will look over the next few blogs at how we can create a the simple hello world programme. I know there are examples which come with the Parallella board however, I think it is important that we go through this step by step and creating our own application as it pipe cleans our process and allows us to really understand the steps involved in creating an application.