Midterm #1 Review Topics
The following list is intended as a general guide of topics to
review. The exam may cover topics not explicitly listed here.
- Book and lecture topics (Preface, Chapters 1-6)
- the perversities of embedded systems
- design and development challenges in embedded real-time
systems (from examples in Chapter 1)
- typical hardware found in embedded systems
- software control of tri-state devices
- types of memory: characteristics and tradeoffs
- wait states
- memory address space conventions
- watchdog timers
- typical microprocessor built-ins
- interrupt mechanisms, hardware and software
- saving and restoring context
- the shared data problem
- atomicity and critical sections
- interrupt latency
- alternatives to disabling interrupts
- software architectures: alternatives and tradeoffs
- round robin or polled-loop architectures
- round robin with interrupts
- function-queue scheduling
- real-time operating system
- tasks, task states and transitions, multitasking
- typical RTOS functions
- creation
- deletion
- delaying
- changing priority
- inter-task communication and synchronization
- RTOS data structures: task control blocks (TCBs)
- scheduling, alternative scheduling policies
- priorities among tasks, ISR relative to tasks
- preemption, how it is accomplished
- shared data problem, reentrant code
- C variable storage
- semaphores, typical functionality, potential problems
- semaphores: signaling vs protecting shared data
- semaphore variants
- deadlock
- livelock
- starvation
- priority inversion, priority inheritance
- context switching, saving, restoring
- role and functionality of dispatcher
- challenges of designing and debugging real-time system code
- Lab and HW basics
- essential C topics
- implementation of C constructs in assembly
- stacks, stack frames, conventions in compiled C code
- make files
- ISR essentials
- YAK functions and conventions
- saving, restoring context in YAK
- 8086-based tools (compiler, assembler): general usage
- emu86 simulator: usage, debugging features
- conventions in compiled C: stack frames, parameters, return values
- 8086 instructions, operations
- enabling, disabling interrupts (IMR and flag register)
- CPU actions on interrupt, iret
- interrupt jump table
- supporting nested interrupts
- Assigned case studies (from supplemental reading)
- Operational details of underlying technology
- Facts of specific case study (what happened, why important?)
- Implications (technological, social, political, etc.)
Last updated 26 August 2019
James Archibald jka@ee.byu.edu