Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embedded systems development folder structure

I'm starting a big project to run on a PIC32, and like every big project, code organization it's very important. Likewise, folder structure too.

In desktop software development I use my own folder structure (very similar to Maven), but like every applications we make, desktop and embedded implementations will have differences.

So, in your embedded systems project, what's your folder structure? Is there any "maven like standard" to embedded systems?

like image 727
rnunes Avatar asked Oct 27 '25 06:10

rnunes


1 Answers

This is just "my folder structure" and by no means ultimate, but the project has a couple years, the product is already deployed and upgrades still actively developed - and I found the structure quite comfortable to use.

as separate projects:

  • Firmware (main, monolithic app for doing The Thing)
  • WWW (control over HTTP)
  • misc tools
  • Lang (translations of all strings)
  • Common (a set of structures, defines and the likes included and shared by all).

Then, within Firmware:

  • cpp (sources)
    • Appmanager (central point binding them all)
    • Events (event pump, task pump, also threading)
    • gfx (built-in screen GUI)
    • Net (TCP/IP based communication)
    • Interface (all other I/O - rs232, CAN, touchscreen, LCD screen, SPI etc)
    • Log
    • Utils (utility classes)
    • subdirectories for all major modules of the algorithm. Config file access, input processing, computation, overseer, watchdog,
  • data (config files)
  • [root directory] (short, trivial main.cpp and global_include.h which is included from every file - major configuration #defines.)
like image 163
SF. Avatar answered Oct 30 '25 09:10

SF.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!