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