aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 2dbd4b5367bac67f1817c219386d99a16b5b8c15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Embedded Application Template

Summary:
========

This repo provides a simple template for cross-MCU embedded applications. Care has been taken to
ensure that the template is as self-contained as possible without sacrificing simplicity of source
code organization.

Directory Structure:
====================

/src                *.[c|cpp|S] source code files
/include            *.[h|hpp] source code files
/build              Build outputs
/ports              Port-specific source and header files
  /posix            POSIX port files
  /stm32f1          STM32F1 port specific files
  /stm32f4          STM32F4 port specific files
/lib                Cross-platform library sources. Preferably submodules. 
  /cmsis            ARM CMSIS files with STM32F4 hardware specific imports
  /FreeRTOS         FreeRTOS submodule
  /FreeRTOS-POSIX   FreeRTOS+ POSIX-compliant variant submodule
  /nanopb           Embedded protobuf (nanopb) submodule
  /f4               STM32F4 HAL and LL libraries

Initialization:
===============

Once all libraries for a specific port have been recursively added to the repo, create directories
for all ports in the /ports directory. the subdirectories of /ports hold all hardware initialization
sources, as well as other headers and sources specific to that port. See the STM32F4 port for
details.

The makefile in root directory includes the makefile in ports directory; set the port currently
being built in the makefile. In the future, this will be handled by autoconf and Linux kernel-style
Kconfig.

Wishlist:
=========
    - Add ARM CMSIS library as a submodule.
    - Autoconf support instead of manually having to edit makefiles