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