The Objectives listed here are minimum requirements, an individual student creates more in consultation with the instructor.
2. Overall course goals
2.1. G-ASM: Assembly language
Design firmware for microcontrollers using both assembly and C programming languages.
2.2. G-HWSW: Hardware and software co-design
Design, document, and demonstrate systems that combine dedicated hardware and software to complete a specific task.
2.3. G-PWR: Low power
Create microcontroller programs that conserve energy by effectively using low-power modes.
2.4. G-TMR: Timer signal generation
Write microcontroller programs that relies solely on a timer peripheral to generate output signals with a specific duty cycle, frequency, or PWM signal.
2.5. G-RTOS: Real-time operating system
Design and implement a basic kernel for a real-time operating system.
2.6. G-NEW: Adapt new platforms
Demonstrate an ability to adapt to new technologies/platforms in a rapidly changing field by
-
Developing embedded solutions that operate with different/new pieces of hardware (such as sensors, actuators, communication devices)
-
Developing embedded solutions with more than one CPU architectures/microcontroller families
3. Topics
The topics covered in this course include the following, but are always subject to minor changes to track current events, student interest, and other changing conditions.[1]
-
Architectures
-
Variants
-
8-bit: AVR (
ATtiny85
andATmega328P
) -
16-bit: MSP430 (
MSP430FR6989
) -
32-bit: ARM Cortex-M series
-
-
What happens at power up?
-
POR, BOD, reset
-
Program counter and the first CPU instruction
-
Peripheral states *
-
-
-
Assembly language
-
Registers
-
CPU Status register
-
Special featured registers (e.g. AVR’s X, Y, Z)
-
-
Stack
-
Addressing modes
-
-
Embedded
C
programming-
C ABI conventions
-
Calling functions
-
Use
asm
from C
-
-
Stack vs. heap
-
-
Power
-
Estimation
-
Measurement
-
Optimization
-
Hardware
-
Firmware
-
-
-
RTOS, real-time operating systems
-
Tasks
-
Scheduling
-
IPC (inter-process communication)
-