department of mathematics, statistics, and computer science an experimental laboratory environment...

Post on 31-Dec-2015

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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...

top related