Poging GOUD - Vrij
Understanding MCU Timing
Circuit Cellar
|December 2025
What Actually Happens Inside That Chip?
What happens between your source code and the low-level machine code in your MCU is not usually obvious. In this article, Stuart investigates that disconnect.
Most of the time when we work with an MCU, we design the hardware, write and debug the software, and then we're done. Long ago, when I started out in this industry, it wasn't uncommon to use assembly language. I wrote assembly code for both MCU and DSP designs. But it didn't take long for languages like C and C++ to replace assembly. Higher level languages provide a lot of benefits: type checking, memory management, simpler code, code that's easier to maintain, and at least some abstraction from the underlying hardware. There are C and C++ compilers for most MCUs, both free tools from the manufacturers and commercially available tools. But one thing you give up with a higher-level language is a connection between the source code and the related timing.
When I was in college, many years ago, I took about every programming course available, including COBOL (that tells you how far back that was, assuming you're old enough to even know what COBOL was). We were programming on an IBM 360 mainframe computer, and I discovered there was a compiler switch that would show you the underlying assembly code generated by the compiler. The printout (no interactive terminals, at least not for this class) would show you the line of COBOL code and then the underlying assembler statements. COBOL provides a high level of abstraction, so a single COBOL statement can produce many lines of assembly code. I turned in an assignment that way; what would have been a single page of COBOL statements was many pages of assembly code. The grader gave me 100 on the assignment but added a note: “Don’t ever do this again.” At that age, I thought it was humorous. The grader obviously did not.
Dit verhaal komt uit de December 2025-editie van Circuit Cellar.
Abonneer u op Magzter GOLD voor toegang tot duizenden zorgvuldig samengestelde premiumverhalen en meer dan 9000 tijdschriften en kranten.
Bent u al abonnee? Aanmelden
MEER VERHALEN VAN Circuit Cellar
Circuit Cellar
Mesh for Embedded Control
Mesh Networks Are Rewiring Embedded Systems
11 mins
March 2026
Circuit Cellar
A System That Detects, Tracks, and Deters Deer
Using Computer Vision, an Arduino, and a Raspberry Pi 5
14 mins
March 2026
Circuit Cellar
Analog Meets Digital
Part 4: Eliminating Mains Interference with an ADC
19 mins
March 2026
Circuit Cellar
Datasheet: Linux-Based SBCs
SBCs Running Linux Bring Enterprise Power to the Network's Edge
8 mins
March 2026
Circuit Cellar
Running Model Trains Without Human Input
A Raspberry Pi Pico Controls Two Trains
9 mins
March 2026
Circuit Cellar
Inside the Tech: E-Bikes Explained
The Future of Product Developement Nature
5 mins
March 2026
Circuit Cellar
Connector Requirements for High-Voltage Healthcare Applications
Simplifying Safety and Security
9 mins
March 2026
Circuit Cellar
PIC32CM PL10 MCUs Expand Microchip's ARM Cortex-MO+ Portfolio
Building on decades of experience, Microchip Technology has added PIC32CM PL10 MCUs to its PIC32C family of ARM Cortex-M0+ core devices. PL10 MCUs feature a rich set of Core Independent Peripherals (CIPs), 5V operation, touch capabilities, integrated toolsets and safety compliance.
1 mins
March 2026
Circuit Cellar
From Buffer Overflows to Control Flow Attacks
This article extends the January 2026 article by showing a buffer overflow attack that changes a return value. I also discuss the use of the GCC stack protection feature, and demonstrate that it's not always a bulletproof protection method, even if it is better than doing nothing.
7 mins
March 2026
Circuit Cellar
Another Matter-Enabled MCU: the ESP32-C6
The list of MCUs that support the Matter protocol continues to get longer. In this column, Brian goes in-depth on one of the newer Matter-enabled MCUs and shows just how it compares to some of the alternatives now on the market.
21 mins
March 2026
Listen
Translate
Change font size

