We are in the midst of a challenging time, to be sure. We’re concerned about what can happen should we become afflicted with COVID-19, we’re concerned about our jobs and our companies, and we’re concerned about our family and friends on both accounts. Similarly, we’re concerned about our overall quality of life.
But with challenge comes opportunity. One opportunity comes in the realm of technical conferences, which I always enjoy attending. Being in the Boston area helps because it is a big area for technology and thus a place technical conference organizers find attractive for their big events. I have been fortunate to attend great ones like the Embedded Systems Conference, SD Best Practices (until 2007), LinuxWorld (until over a decade ago), the Real-Time and Embedded Computing Conference (RTECC) and the ReDev B0st0n Conference, the latter two until they were more recently discontinued. But there have been plenty of others I could not get to for reasons of cost, time and/or location.
On Wednesday and Thursday, I checked out sessions in the Embedded Online Conference, which was put together before the world changed on us in March but is nonetheless leading the way in the movement of conferences now going virtual if they are not canceled. Stephane Boucher and Jacob Beningo put together a winner, simply put, and probably bigger than they ever imagined considering it was initially supposed to be a one-day event. I checked out a number of sessions as they became available, and will watch quite a few more later while they are still available.
The first session I checked out as it became available was How to get started with Arm Cortex-M55 software development by Christopher Siedl and Jason Andrews from Arm. They went into some detail on the vector processing capabilities of the family of processors, as well as how to use the open source CMSIS library.
Up next was Securing the IoT from Chip to Cloud: An Application Guide to Applying Platform Security Architecture (PSA) Principles by Jacob Beningo. I had high expectations for this, having seen a presentation by Beningo at ESC Boston a couple of years ago and since then having read a good deal of his work at Embedded.com; he’s a rising star in the industry and fast becoming one of the big names in it. He certainly delivered as I expected, giving us a well-done presentation of using the PSA to secure a device, notably the trade-offs involved in doing so. Later, he went over Pelion, which can be used for a device’s entire lifecycle, with one highlight being a slide showing that only 20 percent of the time and effort is typically dedicated to device application development, even though this is where the value-add is (the other 80 percent is typically spent on dealing with device stacks and device management). I look forward to viewing the other presentation he gave here soon.
After Low-Power Algorithmic Approaches in DSP Implementations (Bryant Sorensen), a good session that had tips on numerical methods such as Taylor Series and Newton Raphson along with a few coding details to help, came one of the crown jewels of the first day. Maria Markstedter presented Defending Against Hackers: Exploit Mitigations and Attacks on Arm Cortex-A Devices, a solid presentation that went deep on an aspect of software security, the buffer overflow. Yes, that is still around, but this presentation if nothing else should help you appreciate what is happening with it and what hackers can do with it. She went into extensive detail on how a buffer overflow corrupts a stack and can set a different return address, as well as what can be done to mitigate this. In the end, you realize no method will completely eliminate the threat, but things like preventing stack execution, Address Space Layout Randomization (ASLR) and stack canaries, among others, can make trying to get in more difficult than all but the most determined attackers will deal with.
Developing for the IoT using NXP MCUs with TrustZone-M Technology (Tomas Voda) and Avoiding and Fixing Real-Time Issues (Olaf Schmidt) were the next ones I took in before another top-notch presentation, Test-Driven Development for Embedded Software by James Grenning, who is one of the authorities on that subject and even wrote the book on it. Grenning took us through how TDD can allow you to effectively build a specification through test and deal with issues that are unique to embedded software development like hardware and operating system dependencies.
I closed out Wednesday with two more good ones, Developing embedded real-time applications with heterogeneous multiprocessing systems (Sergio Prado) and Getting Linux to run on your custom board (Mohammed Billoo), both of which had some good depth that touched on hardware and software considerations.
Thursday began with Enabling motor control across a range of NXP MCUs with MCUXpresso and FreeMASTER visualization tools (Jaroslav Lepka) before one of the best ones of the day, Modern Embedded Software Goes Beyond the RTOS by Miro Samek. The latter was quite in-depth, going over the various programming models and leading into event-driven programming, noting that all of the options have pros and cons, before then talking about state machines, a subject he wrote a book on.
After Secure and Non-Secure application co-existence using TrustZone security technology (Bob Waskeiwicz and Tim Nakonsut) went into some detail on how the TrustZone technology works, including in concert with non-secure areas, came two sessions I really enjoyed. The first was How Agile is Changing the Face of Embedded Software Development by Niall Cooling, which focused mainly on a couple of areas where teams can make moves towards becoming agile (besides the daily standup meetings), unit testing and continuous integration (CI). He went into some of the concerns with CI that can help prevent or address broken builds, as well as the challenge presented by many current development tools not playing well with CI.
The second of those sessions was Operating Systems for Embedded Applications by Colin Walls. There is probably no one better to do such a session than Walls, who has done this for several decades and has a book coming out on it later this year (he also wrote an excellent book that is more wide-ranging from a few years earlier). After establishing why an RTOS is often useful, he went into the trade-offs on various schedulers, the process model vs. thread model, and some other services one would look to an RTOS for such as IPC, memory management, clock management and diagnostics.
Three more sessions closed out Thursday for me – Why MISRA Matters! (Andrew Banks), Implementing a Simultaneous Localization and Mapping (SLAM) system for Robotics/Unmanned Vehicles (Mike Anderson) and Practical Approach for High-End Embedded System Design (Khalil Rashid). All were very good and along with the aforementioned ones left me eager to take time soon to watch many of the presentations I have not yet been able to see. Anderson’s presentation is sure to be of interest to many since robotics is a growing field and unmanned vehicles are among the big goals in the technology world.
There are other conferences that have gone entirely virtual or that were created as virtual events recently. Internet infrastructure company NS1 will hold Ins1ghts 2020 on June 11, with over 20 sessions on schedule as of now, while the Linux Foundation is going virtual this year with the Open Source Summit, which I look forward to attending. I’m also on the lookout for other conferences of interest to see if they go entirely virtual as well.
If this is a once-in-a-lifetime opportunity with some of these conferences, I want to take full advantage and use it as a great growth opportunity – one more way to make the best of a challenging situation. The Embedded Online Conference got this off to a great start this week.