Adding a new board¶
Often the board you want to use in your project is not yet supported
by Simba. If you are lucky, Simba is already ported to the MCU on
your board. Just create a folder with you board name in
src/boards/ and populate it with the
board.mk. Also, create board documentation in
doc/boards/, and add a pinout image in
The same files as a file tree:
simba/ +-- doc/ | +-- boards/ | | +-- <board-name>.rst | +-- images/ | +-- boards/ | +-- <board-name>-pinout.jpg +-- src/ +-- boards/ +-- <board-name>.h +-- <board-name>.c +-- <board-name>.mk
If Simba is not ported to your MCU, the kernel and drivers has to be ported.
Porting the kernel is a matter of configuring the system tick timer and inplement a few locking primitives. If you are familiar with your CPU, the port can be implemented quickly.
A kernel port is roughly 400 lines of code.
Kernel ports are implemented in src/kernel/ports.