File tree Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ This directory is intended for project header files.
3
+
4
+ A header file is a file containing C declarations and macro definitions
5
+ to be shared between several project source files. You request the use of a
6
+ header file in your project source file (C, C++, etc) located in `src` folder
7
+ by including it, with the C preprocessing directive `#include'.
8
+
9
+ ```src/main.c
10
+
11
+ #include "header.h"
12
+
13
+ int main (void)
14
+ {
15
+ ...
16
+ }
17
+ ```
18
+
19
+ Including a header file produces the same results as copying the header file
20
+ into each source file that needs it. Such copying would be time-consuming
21
+ and error-prone. With a header file, the related declarations appear
22
+ in only one place. If they need to be changed, they can be changed in one
23
+ place, and programs that include the header file will automatically use the
24
+ new version when next recompiled. The header file eliminates the labor of
25
+ finding and changing all the copies as well as the risk that a failure to
26
+ find one copy will result in inconsistencies within a program.
27
+
28
+ In C, the usual convention is to give header files names that end with `.h'.
29
+ It is most portable to use only letters, digits, dashes, and underscores in
30
+ header file names, and at most one dot.
31
+
32
+ Read more about using header files in official GCC documentation:
33
+
34
+ * Include Syntax
35
+ * Include Operation
36
+ * Once-Only Headers
37
+ * Computed Includes
38
+
39
+ https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
Original file line number Diff line number Diff line change
1
+
2
+ This directory is intended for project specific (private) libraries.
3
+ PlatformIO will compile them to static libraries and link into executable file.
4
+
5
+ The source code of each library should be placed in a an own separate directory
6
+ ("lib/your_library_name/[here are source files]").
7
+
8
+ For example, see a structure of the following two libraries `Foo` and `Bar`:
9
+
10
+ |--lib
11
+ | |
12
+ | |--Bar
13
+ | | |--docs
14
+ | | |--examples
15
+ | | |--src
16
+ | | |- Bar.c
17
+ | | |- Bar.h
18
+ | | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
19
+ | |
20
+ | |--Foo
21
+ | | |- Foo.c
22
+ | | |- Foo.h
23
+ | |
24
+ | |- README --> THIS FILE
25
+ |
26
+ |- platformio.ini
27
+ |--src
28
+ |- main.c
29
+
30
+ and a contents of `src/main.c`:
31
+ ```
32
+ #include <Foo.h>
33
+ #include <Bar.h>
34
+
35
+ int main (void)
36
+ {
37
+ ...
38
+ }
39
+
40
+ ```
41
+
42
+ PlatformIO Library Dependency Finder will find automatically dependent
43
+ libraries scanning project source files.
44
+
45
+ More information about PlatformIO Library Dependency Finder
46
+ - https://docs.platformio.org/page/librarymanager/ldf.html
Original file line number Diff line number Diff line change
1
+
2
+ This directory is intended for PlatformIO Unit Testing and project tests.
3
+
4
+ Unit Testing is a software testing method by which individual units of
5
+ source code, sets of one or more MCU program modules together with associated
6
+ control data, usage procedures, and operating procedures, are tested to
7
+ determine whether they are fit for use. Unit testing finds problems early
8
+ in the development cycle.
9
+
10
+ More information about PlatformIO Unit Testing:
11
+ - https://docs.platformio.org/page/plus/unit-testing.html
You can’t perform that action at this time.
0 commit comments