Fall 2008: EE 382N-4   Unique: 17228a

Advanced Embedded Systems Architecture

Lab Assignment #2: Due Nov 1st, 2008

 

 

AIM: Develop a Linux driver to interface with the viterbi hardware accelerator.

 

Specification:

         1) Develop a Linux driver for the Viterbi hardware accelerator developed in SOC class.

                  à The client interface of the driver should be non-blocking with polling enabled.

         2) Link the Linux driver into the Kernel.

         3) Modify the C code to call the driver, poll it for completion and print the output to a file.

                  à The C code currently interfaces directly with the driver.

         4) Demonstrate the functioning of the driver and the modified C code. You need to perform the following:

                  à Download the hardware accelerator onto the FPGA.

                  à Download the driver to the code and install it into the kernel.

                  à Download the C code executable to the arm board and run it.

         5) Teams of upto 4 members.

 

Collateral:

a)  Viterbi hardware accelerator verilog code

b)  C code which interfaces directly with the viterbi accelerator

c)  Example device driver and corresponding makefile

 

Environment setup:

a) Linux Machines

These machines are: soc1.ece.utexas.edu, soc2.ece.utexas.edu & soc3.ece.utexas.edu.

You will need to use Secure Shell to access these machines. Execute the following Linux command to access soc1:

 ssh –X –Y soc1.ece.utexas.edu

The options allow remote X-Windows viewing. Substitute machine number to reach the other 3 machines

                           If you do not have an ECE account, check with a LRC proctor.

 

b)  We are going to use arm-linux-gcc suite for compiling the code. Do the following to setup the paths required for compilation.

%> source /scratch/arm_linux_setup.sh

c)  To compile a C file, do the following:

             %> arm-linux-gcc –-static –o output input.c