Home > Speakers >

Colin Walls

Colin Walls has over forty years' experience in th??e electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and three books on embedded software, Colin's most recent position was an embedded software technologist with Siemens Embedded, and he is based in the UK.

MISRA C: A Focus on Writing Clear, Maintainable Code

Status: Available Now

MISRA C is a programming standard that is focussed on writing safe, secure code using the C language. This is achieved by the definition of a number of guidelines that lead the developer away from operations and constructs that may compromise the safety of the code. By taking a fresh look at the standard, this session concentrates on the benefits of MISRA C in an additional priority in embedded software development: the writing of clear and maintainable code.

Go to Session


Live Q&A - MISRA C: A Focus on Writing Clear, Maintainable Code

Status: Available Now

Live Q&A with Colin Walls for the talk titled MISRA C: A Focus on Writing Clear, Maintainable Code

Go to Session


Dynamic Memory Allocation & Fragmentation in C/C++

Status: Available Now

In C and C++, it can be very convenient to allocate and de-allocate blocks of memory as and when needed. This is certainly standard practice in both languages and almost unavoidable in C++. However, the handling of such dynamic memory can be problematic and inefficient. For desktop applications, where memory is freely available, these difficulties can be ignored. For embedded - generally real time - applications, ignoring the issues is not an option.

Dynamic memory allocation tends to be non-deterministic; the time taken to allocate memory may not be predictable and the memory pool may become fragmented, resulting in unexpected allocation failures. In this session the problems will be outlined in detail and an approach to deterministic dynamic memory allocation detailed.

Go to Session


Power Management in Embedded Systems

Status: Available Now

The importance of power management in today’s embedded designs has been steadily growing as an increasing number of battery powered devices are developed. Often power optimizations are left to the very end of the project cycle, almost as an afterthought. In this session we will discuss design considerations that should be made when starting a new power sensitive embedded design, which include choosing the hardware with desired capabilities, defining a hardware architecture that will allow software to dynamically control power consumption, defining appropriate power usage profiles, making the appropriate choice of an operating system and drivers, choosing measurable power goals and providing these goals to the software development team to track throughout the development process.

Go to Session


Live Q&A - Dynamic Memory Allocation & Fragmentation in C/C++

Status: Available Now

Live Q&A with Colin Walls for the talk titled Dynamic Memory Allocation & Fragmentation in C/C++

Go to Session


C - The Language of Embedded

Status: Available Now

Although not designed for embedded software development, C is the most popular programming language for such application. We will consider why the language is so popular and conduct a brief "refresher" of C language functionality, with an emphasis on the benefits to the embedded developer.

Go to Session


Live Q&A - C - The Language of Embedded

Status: Available Now

Live Q&A with Colin Walls for the talk titled C - The Language of Embedded

Go to Session


Self-testing in Embedded Systems

Status: Available Now

All electronic systems carry the possibility of failure. An embedded system has intrinsic intelligence that facilitates the possibility of predicting failure and mitigating its effects. This talk will review the options for self-testing that are open to the embedded software developer. Testing algorithms for memory will be outlined and some ideas for self-monitoring software in multi-tasking and multi-CPU systems will be discussed.

Go to Session


Live Q&A - Self-testing in Embedded Systems

Status: Available Now

Live Q&A with Colin Walls for the talk titled Self-testing in Embedded Systems

Go to Session


How to Measure RTOS Performance

Status: Available Now

In the world of smart phones and tablet PCs memory might be cheap, but in the more constrained universe of deeply embedded devices, such as those that support the IoT, it is still a precious resource. This is one of the many reasons why most 16- and 32-bit embedded designs rely on the services of a scalable real-time operating system (RTOS). An RTOS allows product designers to focus on the added value of their solution while delegating efficient resource (memory, peripheral, etc.) management. In addition to footprint advantages, an RTOS operates with a degree of determinism that is an essential requirement for a variety of embedded applications. This session takes a look at “typical” reported performance metrics for an RTOS in the embedded industry.

Go to Session


Operating Systems for Embedded Applications (2020)

Status: Available Now

Most modern embedded applications employ and operating system of some sort. We will look at how operating systems work - the scheduler and various services provided by an OS to the application code - and at the options open for OS selection. We will also compare the use of commercial, open source and in-house products.

Go to Session