EmbeddedRelated.com

Niall Cooling (@NiallCooling)

Niall Cooling is a Chartered Engineer and Founder of Feabhas, the UK’s leading independent provider of training and consultancy for real-time embedded systems development and software competency. Niall delivers training and provides consultancy and mentoring to a wide variety of electronics companies ranging from smart metering, industrial control, telecommunications and defence. He is also a regular guest speaker at industry conferences and events throughout the world and has particular interest in establishing a competency framework for Embedded Software Engineering.

Working with Strings in Embedded C++

Niall CoolingNiall Cooling June 1, 20233 comments

This article discusses the use of strings in embedded systems. It explains how the need for and use of strings in embedded systems has changed with the advent of cheaper, full graphic displays and the growth of the ‘Internet of Things’ (IoT). The article also covers character literals, C-Strings and string literals, and the difference in memory models between them. It also highlights the safety and security issues that arise from using strings in embedded systems. Finally, it explains how C++11 introduced a Raw string literal type that is useful for storing file paths or regular expressions.


Mutex vs. Semaphores – Part 2: The Mutex & Mutual Exclusion Problems

Niall CoolingNiall Cooling May 15, 20197 comments

Mutexes tackle many semaphore pitfalls by enforcing ownership and pairing lock and unlock operations, making mutual exclusion safer in RTOS code. This post explains how ownership enables recursion, priority inheritance and death detection, and why mutexes do not automatically solve circular deadlock or non-cooperative access. Read on for practical protocols such as Priority Inheritance and Priority Ceiling and a brief note on monitors.


Mutex vs. Semaphore - Part 1

Niall CoolingNiall Cooling April 12, 20195 comments

Most forum answers get the semaphore versus mutex debate wrong. This post traces semaphores back to Dijkstra and Scholten, explains the difference between binary and counting semaphores, and highlights runtime hazards such as accidental release, recursive and task-death deadlocks, priority inversion, and misuse as signals. Read if you want to avoid common concurrency pitfalls in RTOS code.


No Threads Found

Use this form to contact NiallCooling

Before you can contact a member of the *Related Sites:

  • You must be logged in (register here)
  • You must confirm you email address