Upload
claire-cobb
View
215
Download
1
Embed Size (px)
Citation preview
Department of
Mathematics, Statistics,
and Computer
Science
An Experimental
Laboratory
Environment for
Teaching Embedded
Hardware SystemsDennis Brylow
Hardware SystemsWhat makes a good intro Hardware Systems course?
• Hands-on experience with hardware
• Hands-on experience with lowest levels of software
• Focus on how hardware and software concerns are
interrelated.
• Integration with rest of curriculum
There is no magic in the box!
Experimental LabsWhat goes into a good experimental
computer systems laboratory environment?
Purdue XINU Laboratory:
• Consoles
• Booting
• Rebooting
[Image courtesy Digi]
...
sread: .word 0 ! sectors read of current track
head: .word 0 ! current head
track: .word 0 ! current track
read_it:
mov al,setup_sects
inc al
mov sread,al
mov ax,es
test ax,#0x0fff
die: jne die ! es must be at 64kB boundary
xor bx,bx ! bx is starting address within segment
rp_read:
#ifdef __BIG_KERNEL__
#define CALL_HIGHLOAD_KLUDGE .word 0x1eff,0x220 ! call far * bootsect_kludge
! NOTE: as86 can't assemble this
CALL_HIGHLOAD_KLUDGE ! this is within setup.S
#else
mov ax,es
sub ax,#SYSSEG
#endif
cmp ax,syssize ! have we loaded all yet?
...
[Code GPLed under Linux]
The SolutionNeed a coherent strategy to drive hands-on laboratory
work in Hardware Systems, Operating Systems,
perhaps extending to Embedded Systems,
Networking and Internetworking, Compilers, etc.
• Flexible
• Extensible
• Hands-on
• Modern
• Challenging
• Interesting
• Inexpensive
• Duplicable
[Image courtesy Linksys]
Broadcom 5352
[Diagram courtesy Broadcom]
Programming Environment
• Standard C Language execution environment
• Obeys MIPS calling convention
• Buffered I/O getchar(), putchar(), printf()
• Starter I/O functions getInt(), printInt()
• Memory allocation malloc() and free()
• Also sleep() and halt(), process management,
and interrupt facilities available.
Course Objectives
• Principles
• Major hardware components
• Solve problems in Assembler
• Platform-specific knowledge for
later courses in O/S, networking, etc.
• Development environment
Course Topics• Digital Logic, combinational and sequential
• Data Representation
• Processors and Pipelines
• Instruction Sets, both RISC and CISC
• Assembly and addressing modes
• Activation Records
• Memory and Storage, virtual memory and caching
• I/O and busses
• Interrupts
Assignments• Basic Assembler Operations
• I/O maniulation
• Functions and calling conventions
• Recursion and Activation Records
• Pointers and Memory
• Device I/O
• Interrupts
Future Work:
• Embedded Systems Course,• Internetworking Course,• IP telephony• Real-time constructs,• Provable guarantees,• World Conquest...