@@ -5,31 +5,62 @@ Platforms add support for new boards to the Arduino development software. They a
5
5
[ Boards Manager] ( package_index_json-specification.md ) or manual installation to the _ hardware_ folder of Arduino's
6
6
sketchbook folder (AKA "user directory").<br > A platform may consist of as little as a single configuration file.
7
7
8
- ## Hardware Folders structure
8
+ ## Platform installation directories
9
9
10
- The new hardware folders have a hierarchical structure organized in two levels :
10
+ If the platforms are installed using the Board Manager the installation directory location will be as follow :
11
11
12
- - the first level is the vendor/maintainer
13
- - the second level is the supported architecture
12
+ ` {directories.data}/packages/{VENDOR_NAME}/hardware/{ARCHITECTURE}/{VERSION}/... `
14
13
15
- A vendor/maintainer can have multiple supported architectures. For example, below we have three hardware vendors called
16
- "arduino", "yyyyy" and "xxxxx":
14
+ - ` {directories.data} ` is the data directory as specified in the
15
+ [ configuration file] ( configuration.md#default-directories ) .
16
+ - ` {VENDOR_NAME} ` is the identifier of the vendor/maintainer of the platform.
17
+ - ` {ARCHITECTURE} ` is the architecture of the CPU used in the platform.
18
+ - ` {VERSION} ` is the platform version.
17
19
20
+ Alternatively, a platform may be manually installed by the user inside the Sketchbook/user directory as follows:
21
+
22
+ ` {directories.user}/hardware/{VENDOR_NAME}/{ARCHITECTURE}/... `
23
+
24
+ - ` {directories.user} ` is the user directory as specified in the
25
+ [ configuration file] ( configuration.md#default-directories ) .
26
+ - ` {VENDOR_NAME} ` is the identifier of the vendor/maintainer of the platform.
27
+ - ` {ARCHITECTURE} ` is the architecture of the CPU used in the platform.
28
+
29
+ A vendor/maintainer can have multiple supported architectures.
30
+
31
+ For example, below we have four platforms downloaded from three hypothetical hardware vendors called "arduino", "foo"
32
+ and "bar", and installed using the Board Manager:
33
+
34
+ ```
35
+ {directories.data}/packages/arduino/hardware/avr/1.2.3/...
36
+ {directories.data}/packages/arduino/hardware/sam/1.4.5/...
37
+ {directories.data}/packages/foo/hardware/avr/1.0.2/...
38
+ {directories.data}/packages/bar/hardware/avr/1.1.0/...
18
39
```
19
- hardware/arduino/avr/... - Arduino - AVR Boards
20
- hardware/arduino/sam/... - Arduino - SAM (32bit ARM) Boards
21
- hardware/yyyyy/avr/... - Yyy - AVR
22
- hardware/xxxxx/avr/... - Xxx - AVR
40
+
41
+ If the same platform were manually installed by the user, he should have unpacked them inside the following directories:
42
+
43
+ ```
44
+ {directories.user}/hardware/arduino/avr/...
45
+ {directories.user}/hardware/arduino/sam/...
46
+ {directories.user}/hardware/foo/avr/...
47
+ {directories.user}/hardware/bar/avr/...
23
48
```
24
49
25
- The vendor "arduino" has two supported architectures (AVR and SAM), while "xxxxx" and "yyyyy" have only AVR.
50
+ In this latter case the version is omitted.
51
+
52
+ We can also see that the vendor "arduino" has two supported architectures (AVR and SAM), while "foo" and "bar" have only
53
+ AVR.
54
+
55
+ ### Notes about the choosing the architecture name
26
56
27
57
Architecture values are case sensitive (e.g. ` AVR ` != ` avr ` ).
28
58
29
- If possible, follow existing architecture name conventions when creating hardware packages. Use the vendor folder name
30
- to differentiate your package. The architecture folder name is used to determine library compatibility and to permit
31
- referencing resources from another core of the same architecture, so use of a non-standard architecture name can have a
32
- harmful effect.
59
+ Platform developers should follow the existing architecture name conventions when creating hardware packages, if you
60
+ need to differentiate your package use the vendor/maintainer folder name to do so.
61
+
62
+ The architecture name is used to determine the libraries compatibility and to permit referencing resources from another
63
+ platform of the same architecture. Use of a non-standard architecture name can have a harmful effect.
33
64
34
65
## Architecture configurations
35
66
0 commit comments