We already talked about ChibiOS/HAL design and its multiple architectures support. This is very important for regular developers: imagine a scenario in which you design an application using a certain MCU and after a first stage you decide to upgrade your application. Imagine also that hardware resources on the MCU you decided to use are not enough to make that upgrade. At that point you have to port application on another MCU and this could cost a big effort in terms of time/money.
If your application is ChibiOS based and you followed some guidelines already introduced in C Library design for embedded applications or HAL portability, the effort needed to port you application could be reduced.
2 Some clarifications
To make things simplest let’s do some clarifications:
- When we say MCU or platform we are talking about the specific microcontroller, when we say board we are talking about the pcb containing, among other devices, the MCU; so STM32F303 is a MCU and STM32F3 Discovery is a board;
- There is a big difference between architecture and family. ARM-Cortex M is an architecture, STM32 is a family; TIVA, SAM and STM32 have the same architecture but they belong to different families;
- If ChibiOS/HAL supports a certain peripheral of a certain MCU it is not true that it supports the same peripheral for the whole family. This because substantially some peripherals could be different from MCU to MCU even if they are from the same family;
So, before to port our application ChibiOS based on a new platform we have to answer some questions. This will define what we need to do:
- Is ChibiOS/RT or ChibiOS/NIL supporting our new MCU?
- What peripherals is our application using? Is ChibiOS/HAL supporting these peripherals for the new considered platform?
- There is an official demo for our board?