department of mathematics, statistics, and computer science an experimental laboratory environment...
TRANSCRIPT
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...