Hardware Fundamentals
Instructor: G. Rudolph, Summer Key Hardware Components Microprocessor Memory Peripherals (I/O) Bus “Glue Logic”
Instructor: G. Rudolph, Summer JCX Major Hardware Components JStamp controller SRAM Flash JSimmBoard 2 RS232 Serial COM ports 1 JTAG port 1 IrDAport 1 Battery Pack Connector
Instructor: G. Rudolph, Summer JCX Major Hardware Components Motor Board Control up to 4 motors through 1 port Sensor Board Connect up to 8 sensors through 2 ports 4X Lego Boards JSimm Backplane (Bus)
Instructor: G. Rudolph, Summer RCX Major Hardware Components H8379 processor 32 KB RAM IR Port Battery Pack Holder Motor Board Control up to 3 motors Sensor Board 3 sensors LCD Screen 4 Buttons
Instructor: G. Rudolph, Summer Bus? A “Bus” is just a wire connects components together allows them to communicate The JCX Backplane is just a bus (30-pin bus) The Internet is just a bus Serial and printer cables are “busses”
Instructor: G. Rudolph, Summer Watchdog Timer Usually implemented in hardware The Aj-80 has one, don’t know about the H8379 If the timer expires, the systems resets Critical for many embedded systems If system goes haywire, reset to known good state Not part of desktop systems
Instructor: G. Rudolph, Summer Other Hardware Pieces Be aware that they are there Be able to answer basic questions about what they are and their role in the system Wait states Jumper switches DMA channels PALs, FPGAs
Instructor: G. Rudolph, Summer Programming is… An increasingly-high level abstraction for Driving the correct signals In the correct sequence At the correct time On one or more wires To enable meaningful communication
Instructor: G. Rudolph, Summer Software is… An increasingly high-level abstraction of hardware More Flexible Cheaper to reproduce and distribute once built
Instructor: G. Rudolph, Summer Interrupts Stop the CPU and tell it to do something else Programming interrupt handlers is just like any other kind of programming, with restrictions Fundamental enabler of conditional behavior/execution
Instructor: G. Rudolph, Summer Interrupts Shared data/memory problems discussed in the text are a common source of problems in multitasking systems How easy it is to solve them often depends on what software libraries you have to help Languages such as C and Java differ in how interrupts are handled
Instructor: G. Rudolph, Summer Interrupts At Application Level Abstract upward to An Event Handler A callback Method Synchronization and mutual exclusion are “easy” to write in Java Easy is not always appropriate