Initial CMPE401 Lab Directory Setup for Fall 2004

After untarring cmpe401.tar you should have the directory cmpe401/ with the following subdirectory structure in your home directory. Additions will be made to this document as lab2, lab3, and lab4 directories are released, so consult this document again for more information as the term progresses.
bin/ Contains the two ROM image binaries, uC.bin and lwip.bin. Linking against these ROM images will ensure that the correct symbols defined in the binary are used. These symbols are defined in the ROM images, but refer to code located on the memory modules connected to each NMIX 68332-based board.
include/ Contains c headers for libraries that will be used in more than one lab project. They will also serve as references for the students. Three subdirectories for i/o, uC/OS-II, and lwip are provided.
lab1/ Your first project directory. A template and makefile have been placed in the directory. The main program is called lab1.c and after running make will produce lab1.s19 to be uploaded to the MC68332-based board. make will also produce the file lab1.map, which is a memory map showing where all global symbols are located in memory. The map files will be used extensively in debugging. Lab2, lab3, and lab4 directories will be available for downloading and untarring, progressively, throughout the term.
lib/ This directory contains code that is used in every lab project. You must read and understand how each of the functions in this directory work.
boot.s The bootloader for every lab program. go 10000 will call this code which initializes memory, I/O space and runs the main program. This file is always linked in first in the list of files for ld to link together. The makefile for each lab includes this file first. The template files will not run correctly if the boot.o file is not linked in first.
boot_only.sA program for initializing memory and I/O space without running a user program. Each lab folder from 1-4 contains a target that uses boot_only.s. Use make mem only if the linker complains about your text region being full.
io.cM68332 specific stdio routines.
scope.sRoutines for triggering oscilloscope channels for testing and debugging.
lab.ldThe linker memory map for the m68332 system for use in the laboratory projects.
mem.ldThe linker memory map for the m68332 system for use in linking the mem target for expanding RAM.
sci.sRoutines for reading keystrokes from stdin over the serial port. These routines presume that uC/OS-II is running. They will not work in stand alone mode.
src/ Contains the entire source code for uC/OS-II and lwip in two subdirectories called lwip and uC. The lwip directory contains the source code for the light weight IP stack. The uC directory contains the source code for the uC/OS-II Real Time Operating System. This source code is included as a reference for the student. Do not compile any of this code or link against this in your solution code. The uC.bin and lwip.bin are precompiled binaries for you to link against instead.