Home > Tracks > Embedded Systems Programming

Best Practices for Developing Real-time Embedded Systems

Jacob Beningo - Watch Now

Development teams are always under pressure to deliver faster and at lower costs, but this is becoming more challenging as system complexity has risen exponentially with features for IoT and Machine Learning. The increased complexity can easily handcuff a development team and lead to not just longer development cycles with higher costs but also lower quality products.

In this session, we will explore best practices for developing real-time embedded systems that will help the modern developer stay on track and produce a quality product within their development cycle. We will explore best practices ranging from how to properly architect a system for scalability, how to manage a development cycle, secure and test a system. We will also discuss best practices for using frameworks and open source software.

M↓ MARKDOWN HELP
italicssurround text with
*asterisks*
boldsurround text with
**two asterisks**
hyperlink
[hyperlink](https://example.com)
or just a bare URL
code
surround text with
`backticks`
strikethroughsurround text with
~~two tilde characters~~
quote
prefix with
>

Cesar_Santos
Score: 0 | 1 week ago | 1 reply

Hi, Jacob. I've watched both of your presentations, and it's clear why your presentations are popular. Thanks for sharing knowledge and in an applicable manner :)
Other than that, hope it's not too late to put questions here: there is something I've been hearing since 2018 which is Secure Software Development Life Cycle (SSDLC). Basically, as developers we tend to be sloppy on leaving excessive or unwanted information in our source code. As an example, credentials like admin:admin hard-coded, or similar in test scripts... that may eventually hit production without noticing. Do you have any Best Practices for this/check-lists/follow-ups?
Thanks again for the good quality talk!

Jacob_BeningoSpeaker
Score: 0 | 1 week ago | no reply

Hello Cesar,
Definitely no time limit on questions.
I haven't really put together a checklist on this aspect of SDLC yet. A few items that immediately come to mind though include:

  • Change default passwords
  • Disable JTAG/SWD
  • Disable debug output and printf statements
  • encrypt log data (don't store as plain text)
    I hope that helps for now. I'll give it some more thought and post something to my website blog in the future. Great question!
kalilo
Score: 0 | 4 weeks ago | no reply

Thank you Jacob for sharing this valuable informations.

Raghu
Score: 0 | 1 month ago | 1 reply

Thanks Jacob,very useful information.

Jacob_BeningoSpeaker
Score: 0 | 1 month ago | no reply

You're welcome! I'm glad that you found it helpful.

MohamadSalim
Score: 0 | 1 month ago | 1 reply

Really Big Thankful for you Jacob , it's awesome as usual

Jacob_BeningoSpeaker
Score: 0 | 1 month ago | no reply

Thanks! I'm glad that you found it helpful!

Stephane.Boucher
Score: 0 | 1 month ago | no reply
Jacob_BeningoSpeaker
Score: 0 | 2 months ago | 1 reply

I'm currently online to answer questions through the forum here and will be answering questions live on Zoom at 3 P.M. EDT using the login on the left.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

We had a great Q&A session! Thank-you everyone who came and participated! It was a pleasure speaking with you!

Nazmul
Score: 0 | 2 months ago | 1 reply

Very informative as usual. Lot of new things to learn on. Thank you!

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

You're welcome!

PavelKyshtymov
Score: 0 | 2 months ago | 1 reply

Thank you for an excellent presentation! It was really fun and inspiring!
Regarding a primer of the packet parser, I'd say that its main problem is relying on a static state. And if you make it instantiable, then decoupling it from a CBUF is just natural: no one could attach a few parsers to a single UART :)

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Yes the example is not meant to be a final solution but just to give ideas. The one I use in development is completely abstracted and can easily work across multiple devices.

SamsonDmello
Score: 0 | 2 months ago | 1 reply

Hi Jacob,
Thank you so much for sharing such valuable and informative information. I will surely try to follow your guidelines while designing embedded system.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

You're welcome! Glad to you enjoyed it!

tcmichals
Score: 1 | 2 months ago | 2 replies

This methodology also applies to FPGA development.

lramage
Score: 0 | 2 months ago | no reply

Agreed. My only fault with this talk is that the name doesn't quite fit how broad it was in scope. Really great tips for embedded software developers in general!

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! That’s good to know. I don’t do much with FPGAs so it’s always interesting to hear about differences and similarities. Thanks for the comment!

Diqsa
Score: 0 | 2 months ago | no reply

Thank you for sharing such valuable knowledge.

DaniloPagano
Score: 0 | 2 months ago | 1 reply

Very nice talk about SDLC. I really enjoyed the presentation and could ensure that we are doing most of the best practices you presented. Thank you very much!

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! I'm glad to hear that you are following them .... you'd be surprised how many teams through-out the embedded space aren't following these ...

moredatalesscenter
Score: 0 | 2 months ago | 1 reply

A really good talk, thanks. I enjoy your newsletter and blog posts too - always informative and well written.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! I'm glad to hear that you enjoy them and find the helpful!

ACT
Score: 0 | 2 months ago | 1 reply

Very interesting talk! I found the use of software metrics very interesting, where can I find more details on some of these? I'm particularly interested in defect removal efficiency.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

A good source for these software metrics and software quality studies in general is Capers Jones such as "The Economics of Software Quality". Others you can learn just by getting a static analysis tool that will provide code quality reports. You read through and understand each one and what you want to measure and go from there. (Be warned, there are probably hundreds but measuring just a dozen or less can go a long ways).

Rene
Score: 2 | 2 months ago | 1 reply

Thanks Jacob! Great workshop. Every firmware developer should take your workshops.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks!

tarzan
Score: 2 | 2 months ago | 1 reply

Good speaker. Good refresh !

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! I hope that you have some great take-a-ways to go back to the "office" with.

EEngstrom77
Score: 3 | 2 months ago | 1 reply

I am so blown away. I have never invested into going to these conferences in the past due to the perceived opportunity cost of travel and time off from work but I have spent 10X $ on 1/10 amount of education. Amazing job to everyone who put this together and presented today so far.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! We greatly appreciate it! Enjoy the rest of the conference!

DanR
Score: -1 | 2 months ago | 1 reply

SOLID Principles -- Bob Martin @ Object Mentor

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

This was actually developed by Michael Feathers but Bob Martin has spoken about it quite a bit. Michael was who I could not remember.

Matt_Liberty
Score: 0 | 2 months ago | 1 reply

At 47:11, we are much better at processing visual data than a list of numbers. Plotting the numbers in a radar chart can really help everyone understand the data.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks. This is there to show what the process looks like not show the results for the process. Attendees can duplicate a table similar to that in order to evaluate and arrive at a decision. The radar chart in this instance doesn't help with the data generation process across multiple developers and weighting their results. It would be useful for a single developer trying to rate each category in general.

EEngstrom77
Score: 0 | 2 months ago | 1 reply

Uncle Bob (Robert Martin) - "Clean Code" book and other articles uses the S.O.L.I.D ordering among others. Really appreciate his focus on each of the programming paradigms is removing (restricting) freedom to avoid bad coding habits.

Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

I have not read that one but there are lots of articles out there around SOLID principles.

remco_at_itsonlyaudio.com
Score: 7 | 2 months ago | 1 reply
Jacob_BeningoSpeaker
Score: 0 | 2 months ago | no reply

Thanks! Brilliant!

Jacob_BeningoSpeaker
Score: 0 | 3 months ago | no reply

I'm looking forward to answering any questions you might have! Due to the time limit, there obviously were only so many best practices I could discuss. If you have questions around specific areas, please feel free to ask about them.

OUR SPONSORS