1 / 20

Department of Mathematics, Statistics, and Computer Science

Department of Mathematics, Statistics, and Computer Science. An Experimental Laboratory Environment for Teaching Embedded Hardware Systems. Dennis Brylow. Hardware Systems. What makes a good intro Hardware Systems course? Hands-on experience with hardware

berdine
Télécharger la présentation

Department of Mathematics, Statistics, and Computer Science

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Department of Mathematics, Statistics, and Computer Science An Experimental Laboratory Environment for Teaching Embedded Hardware Systems Dennis Brylow

  2. Hardware Systems • What 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!

  3. Experimental Labs What goes into a good experimental computer systems laboratory environment? • Purdue XINU Laboratory: • Consoles • Booting • Rebooting

  4. [Image courtesy Digi]

  5. ... • 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]

  6. The Solution • Need 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

  7. [Image courtesy Linksys]

  8. Broadcom 5352 [Diagram courtesy Broadcom]

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

  10. Course Objectives • Principles • Major hardware components • Solve problems in Assembler • Platform-specific knowledge for later courses in O/S, networking, etc. • Development environment

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

  12. Assignments • Basic Assembler Operations • I/O maniulation • Functions and calling conventions • Recursion and Activation Records • Pointers and Memory • Device I/O • Interrupts

  13. Future Work: • Embedded Systems Course, • Internetworking Course, • IP telephony • Real-time constructs, • Provable guarantees, • World Conquest...

More Related