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
|