Lab Topics
Lab 1
When learning about an embedded system, one might begin by learning how to program the system, how to supply input, and how to produce system output. On the Blackfin, one might wonder how a language you know (like C) behaves on the system and what simple I/O is available. Lab 1 demonstrates basic I/O with the BF561 by use of its push buttons and LEDs.
Lab 2
Once a basic understanding of I/O is achieved, the internals of the system should be addressed. Finite state machines (FSM) often model the series of actions an embedded system may perform. Lab 2 covers basic input, output, and states for a FSM that controls a washing machine.
Lab 3
With an implemented FSM model, the system will need to actually communicate with the real world. Lab 3 discusses using UART/RS232 to communicate to a relay board to interface with a breadboard representing an actual washing machine.
Lab 4
Since labs 1-3 dealt with a simple controller, one might wonder how more complicated processing would be implemented on an embedded device. Lab 4 covers the use of an encryption algorithm.
Lab 5
As another example of signal processing, Lab 5 covers some simple digital image processing.
Future Lab Topics
- Blackfin / uClinux - uClinux (pronounced "you-see-linux") is a port of Linux to systems without a memory management unit, such as the Blackfin. The use of the GNU tool chain and Linux allows for up a wide range of software to run on the Blackfin (for example: webservers, Voice-over-IP programs,
- Linux driver development - in order to use uClinux with new hardware, new drivers have to be developed (for example, a video camera). Students gain hands-on experience with many operating system topics: monolithic versus micro kernels, real-time tasks, multitasking, memory / resource management, scheduling, synchronization, etc. -- all while being practical enough to keep students' attentions.
- Extender boards - the EZ-KIT evaluation boards come with FPGA, audio/video, and other extender boards. Students could learn hardware design language(s) and implement their HDL code on a FPGA, potentially as a co-processor for the Blackfin.
- Profiling - to achieve optimal performance, an application can be profiled to determine what characterizes its workload
- Optimization - once a programs characteristics have been determined, techniques can be employed to optimize the proram's behavior on the Blackfin (for example, by caching so-called "hot code" in L1).
- Networking - since both the Blackfin STAMP and EZ-KIT boards have network interfaces, students could learn about networking from the embedded systems viewpoint.
- Much, much more....