Broken Stack Smashing Protection in GCC ARM Compilers

27 October 2023 by Phillip JohnstonThere have been several recent instances where Arm GCC toolchain compiler bugs rendered stack smashing protection incomplete or easily defeated. 32-bit Arm Error: Comparison Against the Address, not the Value We have written about implementing stack smashing protection for microcontrollers. Someone commented on that article pointing out that stack smashing protection in the GNU ARM compiler has been broken for quite a while: safe version seem to be up to 8.3.1, and after 10.2.1. Details about the problem can be found in the write-up linked in the comment: Faulty Stack Smashing Protection on ARM Systems. …

Ending the Embedded Software Dark Ages: Let’s Start With Processor Fault Debugging!

There are certain skills that mark you as being a grizzled, battle-hardened embedded systems veteran. One that stands out is being able to debug a processor hard fault with ease. Even more so if you know how to build the infrastructure to support such debugging efforts. I remember the first time I encountered a processor …

October 2020: Boeing, BLURTooth, NVIDIA/ARM, Cortex-R82

5 October 2020 by Phillip Johnston • Last updated 14 December 2021 Welcome to the October 2020 edition of the Embedded Artistry Newsletter. This is a monthly newsletter of curated and original content to help you build superior embedded systems. This newsletter supplements the website and covers topics not mentioned there. This month we’ll cover: The U.S. House Committee on Transportation and Infrastructure’s report on the Boeing 737 MAX Crashes “BLURTooth” Bluetooth vulnerabilities ARM’s latest: Cortex-R82 NVIDIA’s planned purchase of ARM Embedded Artistry’s “Best of 2019” E-book Embedded news from around the web Embedded job postings Updates to the Embedded …

Demystifying ARM Floating Point Compiler Options

When I first started bringing up new ARM platforms, I was pretty confused by the various floating point options such as -mfloat-abi=softfp or -mfpu=fpv4-sp-d16. I imagine this is confusing to other developers as well, so I'd like to share my ARM floating-point cheat sheet with the world. An Overview of the ARM Floating-Point Architecture Before …