Fall 2008: EE 382N-4 Unique: 17228a
Advanced Embedded Systems Architecture
Lab Assignment #1: Due Oct 5th, 2008
TASK: Write an ARM assembly language program (ALP)
implementation of a memory test and run it on the ARM emulator.
Specification:
1)
Write a memory test that does a pseudo random address and data test of the DRAM
memory.
a) Randomly vary the address while
b) Randomly varying the data. Use an LFSR
to generate the address and data patterns. Recall that an LFSR cannot generate
the "zero" value.
c) Randomly vary the write -> read-back/validate timing
so that the memory has time lose state.
2)
The test needs to be able to run in DRAM memory and dynamically relocate itself
during testing. This means that not all of memory can be tested at once. You
should relocate your code
3)
The program needs to test DRAM memory that is 8 times the code size (modulo 2),
i.e., if the code size is 1K, then the program needs
to test 8192 bytes.
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)
Disk space:
Please
use the /scratch directory on the ece machines as
your own workspace. The scratch directory will never be
wiped out. Execute the following commands:
%> cd /scratch
%> mkdir <your id>
c) ARM compiler &
linker
C
Shell (csh or tcsh) -
execute the following commands:
%> source /usr/local/packages/coware/arm/lrc_asetup.csh
%> source /usr/local/packages/coware/arm/env_linux.csh
Bash
Shell (bash) - execute the following commands:
%> source /usr/local/packages/coware/arm/lrc_asetup.bash
%> source /usr/local/packages/coware/arm/env_linux.sh
Compiling and running using ARM ADS tools:
a)
Compiling the assembly language program
%> armcc -o <executable> <assembly_file>.s
b)
Running the program in arm emulator
%> armsd
armsd:
load <executable>
armsd:
go
armsd:
quit
Collateral:
3. ARM
assembly language guide
4. Introduction to the GNU Assembler
Addtional references:
http://www.heyrick.co.uk/assembler/index.html#01
http://www.coranac.com/tonc/text/asm.htm
http://nocash.emubase.de/gbatek.htm#arminstructionset
http://www.cse.unsw.edu.au/~cs3221/labs/assembler-intro.pdf