![Page 1: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/1.jpg)
Department of
Mathematics, Statistics,
and Computer
Science
An Experimental
Laboratory
Environment for
Teaching Embedded
Hardware SystemsDennis Brylow
![Page 2: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/2.jpg)
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!
![Page 3: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/3.jpg)
Experimental LabsWhat goes into a good experimental
computer systems laboratory environment?
Purdue XINU Laboratory:
• Consoles
• Booting
• Rebooting
![Page 4: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/4.jpg)
[Image courtesy Digi]
![Page 5: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/5.jpg)
...
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]
![Page 6: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/6.jpg)
![Page 7: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/7.jpg)
![Page 8: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/8.jpg)
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
![Page 9: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/9.jpg)
[Image courtesy Linksys]
![Page 10: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/10.jpg)
Broadcom 5352
[Diagram courtesy Broadcom]
![Page 11: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/11.jpg)
![Page 12: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/12.jpg)
![Page 13: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/13.jpg)
![Page 14: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/14.jpg)
![Page 15: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/15.jpg)
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.
![Page 16: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/16.jpg)
Course Objectives
• Principles
• Major hardware components
• Solve problems in Assembler
• Platform-specific knowledge for
later courses in O/S, networking, etc.
• Development environment
![Page 17: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/17.jpg)
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
![Page 18: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/18.jpg)
Assignments• Basic Assembler Operations
• I/O maniulation
• Functions and calling conventions
• Recursion and Activation Records
• Pointers and Memory
• Device I/O
• Interrupts
![Page 19: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/19.jpg)
Future Work:
• Embedded Systems Course,• Internetworking Course,• IP telephony• Real-time constructs,• Provable guarantees,• World Conquest...
![Page 20: Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow](https://reader038.vdocuments.us/reader038/viewer/2022110210/56649eb75503460f94bc105a/html5/thumbnails/20.jpg)