On-Demand: Understanding the Complexities of Embedded Software Development

 
Q&A from Live Webinar:
Q: Would it be possible to use Qt with FreeRTOS?
A: This may be supported in the future by Qt For Microcontrollers, but I don't believe anyone has ported Qt to FreeRTOS and it would be challenging to do so since it is not POSIX compatible.
Q: Hi! Could you please explain how I can start to learn the way working with Qt on RPi or BBB.
A: Take a look at the document "Yocto Project Quick Start" at yoctoproject.org
Q:What is the best platform to start a product development? Toradex or RPI?
A: The Toradex boards are more representative of embedded boards and have more interfaces built in, but cost more than the Raspberry Pi. You might want to use the Raspberry Pi (running Yocto) if you have a limited budget.
Q:Which books would you recommend to read to get updated?
A: I highly recommend the book "Embedded Linux Systems with the Yocto Project" by Rudolf Streif. I can't recommend any general books on embedded development.
Q: In some point there will be support for Qt-Python for embedded devices?
A: You can run Qt with Python on embedded devices today if your hardware has adequate resources. Performance and memory usage will typically be higher than if you use C++. You'll likely still want to use QML for defining the UI.
Q: Since there are lots of technologies changes like AI/DL so there is more scope to build products .. how would you approach to make a product in current times ?
A: This is one of the major challenges and there is no magic solution. You need to spec out a project that is innovative but still achievable in the time frame needed to get to market.
Q: What is the best way to set up a Raspberry Pi?

A: While it is easy to run the recommended Raspbian Linux distribution, it is intended more as a desktop operating system. I would recommend running Yocto. There are tutorials on the Internet covering how to set it up.

Q: If we are building custom hardware based on our needs, do you recommend using off the shelf easily available OS platforms from open source community or build our custom embedded code base for our platform? Our hardware is specific based on our needs for certain peripherals like specific serial ports for communications. Thank you
A: I would recommend Linux (typically Yocto) as the embedded platform as it is low cost and proven on many devices, unless you have a requirement for real-time processing that is better supported by an RTOS like QNX or VxWorks.
Q: Not a question, but I agree that writing clear requirements is extremely important and very challenging, based on my experience.
A: Thank you.
Q: Is Yocto suggested for mission critical systems, or should I use a RTOS in that case?
A: Yocto is suitable for mission critical systems, but some RTOS's like VxWorks and QNX may have features or safety critical certification that may make them more suitable, depending on your application.
Q: Which phase do you consider to most hard in the development cycle? Testing? Developing?
A:I would say that the phase of identifying requirements is often the most difficult phase of a project and has the biggest impact if it is not done well.
Q: What have you seen as the best solution to handle memory fragmentation and dynamic allocations, so that embedded and desktop don't branch?
A: It really depends on your operating system platform and whether you are using Qt or not. Qt has good memory management, but you will typically want any real time code to run on another processor separate from the UI.
Q: What is the webinar for the UX talk you mentioned?
A: https://www.ics.com/webinar/accelerate-time-market-pipelining-ux-development-part-1
Q: Are there any free server solutions you would recommend to test IoT features in my first embedded demo?
A: I'm not sure what you mean by server in the context of IoT. Qt has support for some IoT protocols like MQTT and there are some open source IOT middleware solutions like Astarte from Ispirata that support Qt.