One of the people in the class asked some really good questions.
If I already have Chibios working, why did you want me to install Zephyr now?
If you wanted me to learn Zephyr, why did I spend 2 hours installing and getting ChibiOS to work?
I looked at Zephyr, and it appears to me that 1) it's very new, 2) it's still in active development ( for example they are still trying to figure out how to implement memory protection ), 3) The community appears to be ... rather dead, there is only a mailing list and it's very low traffic, and 4) I haven't been able to find significant job listings asking for Zephyr knowledge. So I'm confused as to why we are going to spend time learning Zephyr. Do you have a goal in mind for Zephyr?
If we are talking about learning a RTOS that is popular and that will have an impact on our resumes, shouldn't we be learning FreeRTOS?
Can you please elaborate on your RTOS class objectives.
My answer is as follows.
You bring up excellent questions. I would like to share your question and my answers with everyone. I hope you are ok with this?
I will answer the second question first.
Why install Chibios, then install Zephyr?
The RTOS goal is to write a HAL driver for a board in both Chibios and Zephyr.
To understand Chibios, you will need to have a working installation. Learning how Chibios structures its HAL will help you see how to write a well structured HAL. It is not possible to become a good in the Art of writing a HAL if you only look at one way to do it.
The reason I want you to also write a HAL in Zephyr, I want you to take what you learn from writing a HAL in Chibios and understand how it can be applied to other RTOSs. And for this Zephyr is a good choice, because of its popularity. Why not write a HAL for FreeRTOS? Simply because "ChibiOS contains within it a feature rich HAL where as FreeRTOS is only a real time kernel. " FreeRTOS does NOT include a HAL by design. Every company supporting FreeRTOS is going to write the HAL for the same devices in different ways. You are never going to learn how to write good portable HALs looking at FreeRTOS code.
Also ST has chosen FreeRTOS for their RTOS. Which makes it easy to review FreeRTOS implementations as well.
"The files shipped by ST do already contain FreeRTOS projects that make use of the drivers though. In particular their big demonstration projects (the ones that come on the eval boards) that show off everything are included as buildable projects in the STM32 cube download - so maybe you could use one of those as a starting point rather than trying to port yourself?"
To answer your first question, Are we going back to learning how to program the FPGA? Yes, we are and the next thing cover will be how to "program" an open source CSI-2 for a zynq board.
In both the RTOS and FPGA, I need to get people working on usable systems as quickly as possible.
Zephyr is backed by the Linux Foundation. The members you see on the main webpage are investing into Zephyr. I think contributing code to a well founded project will demonstrate skill in a very marketable way to not only these funding members, but also to companies that use their products.
An good article