Navigating Memory in C++: A Guide to Using std::uintptr_t for Address Handling
Sticky Bits Blog
by Niall Cooling
1M ago
About Latest Posts Niall Cooling Director at Feabhas Limited Co-Founder and Director of Feabhas since 1995. Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking. His current interest lie in IoT Security and Agile for Embedded Systems. Latest posts by Niall Cooling (see all) Navigating Memory in C++: A Guide to Using std::uintptr_t for Address Handling - February 22, 2024 Embedded Expertise: Beyond Fixed-Size Integers; Exploring Fast and Least Types - January 15, 2024 Di ..read more
Visit website
Embedded Expertise: Beyond Fixed-Size Integers; Exploring Fast and Least Types
Sticky Bits Blog
by Niall Cooling
2M ago
About Latest Posts Niall Cooling Director at Feabhas Limited Co-Founder and Director of Feabhas since 1995. Niall has been designing and programming embedded systems for over 30 years. He has worked in different sectors, including aerospace, telecomms, government and banking. His current interest lie in IoT Security and Agile for Embedded Systems. Latest posts by Niall Cooling (see all) Embedded Expertise: Beyond Fixed-Size Integers; Exploring Fast and Least Types - January 15, 2024 Disassembling a Cortex-M raw binary file with Ghidra - December 20, 2022 Using final in C++ to improv ..read more
Visit website
CMake Presets
Sticky Bits Blog
by Martin Bond
8M ago
Introduction When we developed the CMake based toolchain for our training projects  we used a shell script to simplify invoking the cmake command line. CMake 3.19 added a presets feature that allows us to define command line parameters in a CMakeSettings.json file which can be used in place of using multiple command parameters. In previous articles about CMake we have shown how we need to specify  command line parameters to use CMake with an embedded target  toolchain (see CMake Part 3). To [...] The post CMake Presets appeared first on Sticky Bits - Powered by Feabhas ..read more
Visit website
Disassembling a Cortex-M raw binary file with Ghidra
Sticky Bits Blog
by Niall Cooling
1y ago
BlackHat Europe 2022 During the first week of December, I had the pleasure of attending a training course at BlackHat Europe 2022 titled Assessing and Exploiting Control Systems and IIoT run by Justin Searle. Part of the course involved Assessing and Exploiting Embedded Firmware by reading on-chip Flash using OpenOCD. Unfortunately, we ran out of time to finish the last labs during the training (we ran 9 am-6 pm each day). So I decided to follow along with the very comprehensive notes [...] The post Disassembling a Cortex-M raw binary file with Ghidra appeared first on Sticky Bits - Powered by ..read more
Visit website
Using final in C++ to improve performance
Sticky Bits Blog
by Niall Cooling
1y ago
Dynamic polymorphism (virtual functions) is central to Object-Oriented Programming (OOP). Used well, it provides hooks into an existing codebase where new functionality and behaviour can (relatively) easily be integrated into a proven, tested codebase. Subtype inheritance can bring significant benefits, including easier integration, reduced regression test time and improved maintenance. However, using virtual functions in C++ brings a runtime performance overhead. This overhead may appear inconsequential for individual calls, but in a non-trivial real-time embedded application, these overheads ..read more
Visit website
Understanding Arm Cortex-M Intel-Hex (ihex) files
Sticky Bits Blog
by Niall Cooling
1y ago
Creating a flash image The primary purpose of the ihex file in the embedded space is to create a file that is used to program/reprogram a target system. There are various file formats around, with the Intel Hex (ihex) format being among the most widely used. The output of the linker stage of a build process is typically to generate a .elf file (Executable and Linkable Format). Many debuggers and programmers can work directly with the ELF file format. However, in many [...] The post Understanding Arm Cortex-M Intel-Hex (ihex) files appeared first on Sticky Bits - Powered by Feabhas ..read more
Visit website
CMake Part 4 – Windows 10 Host
Sticky Bits Blog
by Martin Bond
2y ago
In previous blog posts in this series (Part 1,  Part 2 and Part 3), I looked at using CMake on a Linux host to configure a build to cross compile to target hardware such as the STM32F4 Series. In this post, we’ll work with the GNU Arm Embedded Toolchain on a Windows 10 Host. The first part of this blog discusses running the Windows hosted versions of CMake, GNU Arm Embedded Toolchain and GNU Make. An alternative approach, briefly discussed at [...] The post CMake Part 4 – Windows 10 Host appeared first on Sticky Bits - Powered by Feabhas ..read more
Visit website
CMake Part 3 – Source File Organisation
Sticky Bits Blog
by Martin Bond
2y ago
In previous blog posts in this series (Part 1 and Part 2), I looked at using CMake to configure a build for a cross compilation to target hardware such as the STM32F4 Series. In this blog post I will look at how to configure project source code, identify subsystems and use CMake to manage the build for each subsystem. In our training courses, we have identified two shared subsystems: the bare metal code used to initialise the C/C++ run time system [...] The post CMake Part 3 – Source File Organisation appeared first on Sticky Bits - Powered by Feabhas ..read more
Visit website
CMake Part 1 – The Dark Arts
Sticky Bits Blog
by Martin Bond
2y ago
In our previous post Why We Need Build Systems we examined the need for Build Systems in modern software development. In this post we will examine how to use CMake to mange the build process for a cross compilation project. CMake can be described as a marmite application: you either love it or hate it. Here at Feabhas, we find ourselves falling in the latter category, despite the fact the CMake is widely used within the embedded and deeply embedded development [...] The post CMake Part 1 – The Dark Arts appeared first on Sticky Bits - Powered by Feabhas ..read more
Visit website
Working with Strings in Embedded C++
Sticky Bits Blog
by Niall Cooling
2y ago
In this post, by Embedded I’m generally referring to deeply embedded/bare-metal systems as opposed to Linux-based embedded systems. Embedded systems and strings Historically, the need for and thus the use of strings in embedded systems was fairly limited. However, this has changed with the advent of cheaper, full graphic displays and the growth of the ‘Internet of Things’ (IoT). Many embedded systems sport full-colour graphics displays, supported by embedded-specific graphics libraries, including: free open-source – e.g. LVGL vendor-specific – e.g. TouchGFX from STMicroelectronics fully specia ..read more
Visit website

Follow Sticky Bits Blog on FeedSpot

Continue with Google
Continue with Apple
OR