Next week, the biggest event in the world of embedded systems – Embedded World – takes place in Nuremberg, Germany. This is a very large trade show and associated technical conferences. I have participated in Embedded World almost every year since it first started. My principle contribution is presentations in the conference …
We have a booth at EW20: Hall 4, Stand 544. This is the place to meet members of the team [maybe including myself] and see demos of a wide range of technology. Full details of our participation may be found here.
As usual, a lot of my time will be taken with making presentations in the conference – 5 in total:
C – The Language of Embedded – Tues 09:30-10:00
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.
Embedded multicore: enablement of heterogeneous OSes and mixed criticality systems – Tues 14:30-15:00
The use of multicore SoCs in embedded designs is on the increase and there are multiple incentives for this design decision. In this session, we will review the available multicore architectures and show how they are leveraged with a selection of software configurations. The use of multiple operating systems on heterogeneous multicore devices will be explored, and how this facilitates the design of systems with multiple time domains – basically real-time and non-real-time components. Additionally, the concept of mixed criticality will be introduced – a design approach for systems where safety and certifiability are key requirements. Certification effort and costs can be minimized, while still meeting the requirements of the worldwide authorities.
MISRA C: a focus on writing clear, maintainable code – Tues 16:30-17:00
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.
Self-testing in Embedded Systems – Weds 10:00-10:30
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 paper reviews the options for self-testing that are open to the embedded software developer. Testing algorithms for memory are outlined and some ideas for self-monitoring software in multi-tasking and multi-CPU systems are discussed.
Dynamic Memory Allocation & Fragmentation in C & C++ – Weds 17:00-17:30
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.
If you attend any of these sessions, do stop by and say hello. If you would like a copy of any of the materials, please contact me by email or via social media.
At the time of writing, the Mobile World Congress in Barcelona, which was also scheduled to take place next week, has been cancelled because of concerns about COVID-19. My fingers are firmly crossed that the German authorities have robust systems and protocols in place so that Embedded World does not suffer the same fate. Assuming that it does not, I hope to see you there!