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. …
Continue reading “Broken Stack Smashing Protection in GCC ARM Compilers”
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 …
Continue reading "Ending the Embedded Software Dark Ages: Let’s Start With Processor Fault Debugging!"
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 …
Continue reading “October 2020: Boeing, BLURTooth, NVIDIA/ARM, Cortex-R82”
We fell in love with the powerful and cheap Teensy platform after using the Teensy 3.6 for a client project. PJRC remains hard at work, and the Teensy series keeps getting better and better. We are quite impressed by the capabilities of this tiny little development board. It is extremely affordable, the processor is one …
Continue reading "Teensy 4.1 Dev Board"
We fell in love with the powerful and cheap Teensy platform after using the Teensy 3.6 for a client project. Shortly after our purchase of the Teensy 3.6, the Teensy 4.0 was released. We just had to check it out. We are quite impressed by the capabilities of this tiny little development board. It is …
Continue reading "Teensy 4.0 Dev Board"
We added another dev board to our collection in order to help a client of ours write a logging library for their platform: the Teensy 3.6. We were quite impressed by the capabilities of this tiny little development board. The price point is affordable, the specs are more than sufficient for many embedded projects, and …
Continue reading "Teensy 3.6 Dev Board"
For most programmers, a C or C++ program’s life begins at the main function. They are blissfully unaware of the hidden steps that happen between invoking a program and executing main. Depending on the program and the compiler, there are all kinds of interesting functions that get run before main, automatically inserted by the compiler …
Continue reading "Exploring Startup Implementations: Newlib (ARM)"
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 …
Continue reading "Demystifying ARM Floating Point Compiler Options"
Silicon Labs provides a Blue Gecko Starter Kit to support Bluetooth 5 development. The Blue Gecko kit is built around the EFR32 SoC line. The starter kit is modularized to support a wide variety of radio daughter boards for easy prototyping and chip comparisons. This kit provides a "mainboard" with two radio daughter boards: EFR32BG13 …
Continue reading "Silicon Labs Blue Gecko Starter Kit"
Nordic has released a nRF52840 Preview Development Kit (PDK) to support their new nRF52840 chip. Unlike the Thingy:52 and nRF52 DK, the Preview DK supports the new long-range LE Coded PHY, making it fully Bluetooth 5 capable. The Preview DK also supports 802.15.4 for the Thread communication protocol. This kit is similar to the nRF52 …
Continue reading "Nordic nRF52 Preview DK"