I am Embedded Developer (fresher) by profession. I have written firmware (in C and C++) for ARM Cortex-M, PIC, Atmel 8-bit controller. I am aware of the source code management and that's why I used to have Board Specific, Compiler Specific information in different C header files
.
I have written firmware for custom boards which had same microcontroller (PIC24F) but their on-board peripherals, debug interface, LEDs, buttons and other stuff keeps on changing across various versions of the boards. So, I used to have a BSP folder which contains header files for each of the board and a top level header file which includes a specific header file based on macros (one macro for each board). Then, a config header files define one macro to enable all the required peripherals, configuration for one specific board.
The BSP header files looks like this:
And the final board specific header file looks like this:
Now, I am working on yocto project
and device tree
. I am wondering how BSP actually looks like in yocto project and embedded linux. Is it just device tree
which contains board specific, SoC specific and may be Core specific information? Or There is something more to it?
I know this question could be considered as TOO BOARD
but what I am looking for is a brief overview of the BSP structure in Yocto Project or Embedded Linux. Pointers to specific directors or online links will be really helpful to get started. I have tried google few times but didn't find a concise picture of it. Please help.