Arm Cortex M Processor Experience
Worcester Polytechnic Institute
2014
01
01 Background
These photos are from three courses at Worcester Polytechnic Institute:
- ECE 2029: Introduction to Digital Circuit Design [1]
- ECE 2049: Embedded Computing in Engineering Design [2]
- ECE 3849: Real-Time Embedded Systems [3]
ECE 3849 focused on solving real-world problems that require an embedded system to meet strict real-time constraints with limited resources. The course covered cross-compiled software development, multitasking with a real-time operating system (RTOS), real-time scheduling theory, inter-task communication, and software design for deterministic execution time. On the hardware side, it expanded upon CPU architecture, bus interfaces, memory management, peripheral interfaces, interrupt controllers, and direct memory access.
Laboratory work applied classroom knowledge of pipeline design, processor architecture, the vector interrupt table, and task prioritization. Key topics included semaphores and mutex locks for resource sharing, priority inversion and deadlock avoidance, read-modify-write atomicity, blocking and non-blocking function design, FIFOs, queues, and stacks with reentrancy, as well as real-time scheduling algorithms for maximum response time analysis.
02
02 Digital Oscilloscope
The primary lab project was building a digital oscilloscope using a Texas Instruments Stellaris ARM Cortex-M processor. The system sampled analog signals through the onboard ADC peripheral, processed the data in real time, and rendered waveforms on an LCD display with a gridline background. Features included adjustable voltage resolution (scale), trigger level control for stable waveform capture, and both sine and cosine trigger modes to lock the display at different phase offsets.
Connecting a small oscillating circuit to the onboard ADC Peripheral. Displaying the waveform on the display with gridline background.
03
03 Screen Refresh & Final Design
Lowering the display refresh rate revealed the LCD's diagonal screen refresh pattern — a useful visualization of how the display controller updates pixels line by line. The final design incorporated a separate PCB with a JTAG debugging chip, enabling real-time breakpoint debugging, register inspection, and step-through execution on the ARM Cortex-M processor.