Compare commits
604 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0652d439e5 | ||
|
|
10a7e38e13 | ||
|
|
5bc2cc6325 | ||
|
|
b62ac20180 | ||
|
|
c827c12710 | ||
|
|
8453d2431c | ||
|
|
7b60d595a7 | ||
|
|
b8a9afb6fb | ||
|
|
91be0fad5d | ||
|
|
e7ac08df30 | ||
|
|
7b6014c47a | ||
|
|
5de7644493 | ||
|
|
6e9418f583 | ||
|
|
84795fb9f4 | ||
|
|
4ce09f1d43 | ||
|
|
96b06db5ef | ||
|
|
49562a152e | ||
|
|
9c4960ab2f | ||
|
|
e960302b6d | ||
|
|
1a39781cff | ||
|
|
661ca2d27e | ||
|
|
440a2b9bc8 | ||
|
|
5a162b6341 | ||
|
|
2206ec50a5 | ||
|
|
60dc02682b | ||
|
|
2198e317ff | ||
|
|
9c318c1d34 | ||
|
|
4cde47af75 | ||
|
|
3f52ba3d05 | ||
|
|
2c0693fa72 | ||
|
|
333e1d05f5 | ||
|
|
bf0f4c8de4 | ||
|
|
3a08fb89b2 | ||
|
|
7918f912c4 | ||
|
|
b26856e04d | ||
|
|
0234fcd2e3 | ||
|
|
df50cf85a6 | ||
|
|
6f2441f0fe | ||
|
|
7aba4274d3 | ||
|
|
cdaaf59216 | ||
|
|
0486348fcc | ||
|
|
1031e4fa63 | ||
|
|
04b5aa7d86 | ||
|
|
52e5f7ac2e | ||
|
|
3fda492038 | ||
|
|
97d1dc2e15 | ||
|
|
181959f1de | ||
|
|
be3e7ccddd | ||
|
|
31606ad82e | ||
|
|
9b3ca7ee0b | ||
|
|
6cf2ab29da | ||
|
|
44c78525ee | ||
|
|
0a76df910d | ||
|
|
0765f6f7a5 | ||
|
|
6fa7d04e5a | ||
|
|
0ff3e8a9eb | ||
|
|
469ae260ca | ||
|
|
960eccad8c | ||
|
|
b23a8a7075 | ||
|
|
22e2cec102 | ||
|
|
bf19dc936b | ||
|
|
fd0448532c | ||
|
|
3af1814285 | ||
|
|
cdd7167e24 | ||
|
|
380937c588 | ||
|
|
b86dd33d6e | ||
|
|
afeca7e954 | ||
|
|
f20ce96401 | ||
|
|
6594601932 | ||
|
|
f072a10e9a | ||
|
|
d558480d11 | ||
|
|
432ca80c59 | ||
|
|
3dd0ceb8e0 | ||
|
|
59cb537db9 | ||
|
|
b455cab6b0 | ||
|
|
e9a476d640 | ||
|
|
8c89944adb | ||
|
|
aa86cbb51f | ||
|
|
9085399d8e | ||
|
|
a55f97a34e | ||
|
|
6b2af149dc | ||
|
|
52660aeb86 | ||
|
|
989acf5440 | ||
|
|
450ee3234f | ||
|
|
53475fc5ac | ||
|
|
810844687f | ||
|
|
b0f356ff32 | ||
|
|
5a0d57f507 | ||
|
|
40d95ace8a | ||
|
|
6385379dc9 | ||
|
|
0053919f7f | ||
|
|
646e00faa1 | ||
|
|
9b0a25a715 | ||
|
|
f800b351f3 | ||
|
|
a5f5c7be6f | ||
|
|
640e5ff0f9 | ||
|
|
5f93b450ac | ||
|
|
3018113b43 | ||
|
|
51b73410b5 | ||
|
|
f209225864 | ||
|
|
0b0f312c24 | ||
|
|
4567bcd1ea | ||
|
|
fcd763eb7f | ||
|
|
b51a088230 | ||
|
|
63925ce3cc | ||
|
|
ea9239f8c1 | ||
|
|
04964bcf3f | ||
|
|
516959bddc | ||
|
|
82bf459bdc | ||
|
|
cbcbf27d23 | ||
|
|
a013834651 | ||
|
|
162263ab6f | ||
|
|
160c6e61ea | ||
|
|
4d91c336be | ||
|
|
06812b7a02 | ||
|
|
f94da85898 | ||
|
|
e89530fca9 | ||
|
|
887372ff44 | ||
|
|
7f43df45c5 | ||
|
|
b82f9da290 | ||
|
|
fa3db92d88 | ||
|
|
b04e17ade2 | ||
|
|
2fa88966b4 | ||
|
|
cef16ab1c0 | ||
|
|
e82f8dc086 | ||
|
|
a8a9451c73 | ||
|
|
b4a253110d | ||
|
|
4c1fb0d2b2 | ||
|
|
726887732f | ||
|
|
7cfb9db046 | ||
|
|
642e1ef7bc | ||
|
|
4958e24ffc | ||
|
|
a70ecdb1be | ||
|
|
3fabd01e1b | ||
|
|
347dbb6569 | ||
|
|
2e7e7c4e74 | ||
|
|
575048faa7 | ||
|
|
744c6f12a8 | ||
|
|
9c5ef02484 | ||
|
|
4782c58752 | ||
|
|
ccc411fb47 | ||
|
|
e76efef6c7 | ||
|
|
f3f16b56b2 | ||
|
|
49ab5e718e | ||
|
|
19822ff08f | ||
|
|
0bfc6dfe3e | ||
|
|
39f052a57d | ||
|
|
c536aca961 | ||
|
|
57b84789c0 | ||
|
|
cbd67364f6 | ||
|
|
7b1aff1653 | ||
|
|
0ab6b08ff3 | ||
|
|
c00fecf992 | ||
|
|
bd9ee0c27a | ||
|
|
6fe7d952cf | ||
|
|
808c806ab9 | ||
|
|
e19f928794 | ||
|
|
040c6371cd | ||
|
|
0282c74165 | ||
|
|
8359408e54 | ||
|
|
01f65ac4b0 | ||
|
|
4e1e7ed4b5 | ||
|
|
91b6ef0504 | ||
|
|
519ed04e70 | ||
|
|
4c525e1704 | ||
|
|
042816616e | ||
|
|
d89e55e5d7 | ||
|
|
52e1345c4a | ||
|
|
f4c21be953 | ||
|
|
cd06f3ed43 | ||
|
|
b74288f2c4 | ||
|
|
a0c3c25721 | ||
|
|
c00700b7cb | ||
|
|
08808be62b | ||
|
|
ce923b6b58 | ||
|
|
286610b8c5 | ||
|
|
b511df0bd4 | ||
|
|
fe797a3265 | ||
|
|
7b4680ef6a | ||
|
|
898a9c5601 | ||
|
|
e22890ac18 | ||
|
|
af9c23ad87 | ||
|
|
7e58eb8094 | ||
|
|
326cf0da7d | ||
|
|
d4740c4daf | ||
|
|
19a9f153b9 | ||
|
|
36c926bed7 | ||
|
|
dc7e98c383 | ||
|
|
413779f0a1 | ||
|
|
d3b9322d3b | ||
|
|
4a8cd9914b | ||
|
|
5fa0a176a7 | ||
|
|
13455987ae | ||
|
|
6742629efb | ||
|
|
2224f98d2d | ||
|
|
e4627ec9ac | ||
|
|
d00740237b | ||
|
|
7de9109437 | ||
|
|
e0f2bcdeaf | ||
|
|
ae92cdedea | ||
|
|
21c60fdd99 | ||
|
|
7756504c92 | ||
|
|
386ad9a94b | ||
|
|
6f19839920 | ||
|
|
442da36115 | ||
|
|
4d5c125d82 | ||
|
|
c55f4d35ba | ||
|
|
abf0f2d5d6 | ||
|
|
8e62d9ace3 | ||
|
|
7d63d6c77c | ||
|
|
148018749a | ||
|
|
f058506bc4 | ||
|
|
3a45d443a1 | ||
|
|
beb68fa836 | ||
|
|
8b9b978db0 | ||
|
|
6dddf77774 | ||
|
|
c4967243dc | ||
|
|
637a43d6f4 | ||
|
|
ce4ce67607 | ||
|
|
f3f0979f92 | ||
|
|
05b722faa1 | ||
|
|
a1c7fa9092 | ||
|
|
aba68a9c3f | ||
|
|
35ccefae87 | ||
|
|
4168fb6dcb | ||
|
|
6d8d87dfbc | ||
|
|
8bc8bdd6bd | ||
|
|
0102e7e195 | ||
|
|
fbd3d956f7 | ||
|
|
cd764d4b10 | ||
|
|
03636ad4ae | ||
|
|
e90e641941 | ||
|
|
7a311ff503 | ||
|
|
7c0b187ca0 | ||
|
|
e2f079fc1b | ||
|
|
f12611e27c | ||
|
|
9562e2456b | ||
|
|
fedb7527f4 | ||
|
|
d142b6e6d1 | ||
|
|
7948237c94 | ||
|
|
a18e151fa4 | ||
|
|
1fc85d3d1d | ||
|
|
7accb86ece | ||
|
|
73af0eed3c | ||
|
|
9bde156294 | ||
|
|
6f634e76e7 | ||
|
|
b60552e264 | ||
|
|
6d86f72060 | ||
|
|
eceedb879b | ||
|
|
d90933d014 | ||
|
|
efb02aa056 | ||
|
|
d28430d8ae | ||
|
|
90f17ce6fb | ||
|
|
aa578fd8ec | ||
|
|
45e8251479 | ||
|
|
aab282061c | ||
|
|
b79d1944f2 | ||
|
|
f3251342b4 | ||
|
|
6a42e1de90 | ||
|
|
0487825e94 | ||
|
|
dcb1590e57 | ||
|
|
6e0ebdbc94 | ||
|
|
2ac6d63ffc | ||
|
|
d1ca17c406 | ||
|
|
f86a33c991 | ||
|
|
46ae4c1a83 | ||
|
|
e17ce83499 | ||
|
|
a4926f3c28 | ||
|
|
06b009deaa | ||
|
|
5b9504d57a | ||
|
|
05376f873d | ||
|
|
bf059b8b78 | ||
|
|
620e5e81c7 | ||
|
|
18dd64df88 | ||
|
|
4da8630578 | ||
|
|
442adc1919 | ||
|
|
751a4b9883 | ||
|
|
6e820afd74 | ||
|
|
0d7d2ce0b4 | ||
|
|
9a8abaf02b | ||
|
|
a394db1ce1 | ||
|
|
2d53d2100d | ||
|
|
1fc6b222ec | ||
|
|
3f2faeea82 | ||
|
|
a1a5995210 | ||
|
|
9a17c6870b | ||
|
|
baf34b37d9 | ||
|
|
d02eb97eeb | ||
|
|
8baf2ce241 | ||
|
|
239e1f3fe9 | ||
|
|
8374199fae | ||
|
|
591efc7257 | ||
|
|
717d8596ec | ||
|
|
9501329526 | ||
|
|
86260a48ba | ||
|
|
eb4756360a | ||
|
|
256834be48 | ||
|
|
460e896b8f | ||
|
|
ade673d546 | ||
|
|
ed5e843893 | ||
|
|
a03d2382af | ||
|
|
870ce7e0a2 | ||
|
|
69d952ea65 | ||
|
|
0d2d6cc17e | ||
|
|
be6cdc09d9 | ||
|
|
63c92152d9 | ||
|
|
c9ed663ec5 | ||
|
|
45e7fcd106 | ||
|
|
3f05146de8 | ||
|
|
9a9b2d8bae | ||
|
|
639ee9fc47 | ||
|
|
fc7e09b8c4 | ||
|
|
79d3ad245f | ||
|
|
ca266e81ef | ||
|
|
2b924d1573 | ||
|
|
00e95dbabc | ||
|
|
983b629d23 | ||
|
|
0f070d1b78 | ||
|
|
dc61722907 | ||
|
|
83dfcf6ac2 | ||
|
|
5a32f88dee | ||
|
|
9914fc1122 | ||
|
|
beab1525a9 | ||
|
|
c6b79f13c3 | ||
|
|
22257e0351 | ||
|
|
030eddb244 | ||
|
|
0047c79fcd | ||
|
|
cf925b0338 | ||
|
|
2093960719 | ||
|
|
8fffc5ee9c | ||
|
|
88f0b51312 | ||
|
|
2bfb1d5569 | ||
|
|
7a3b43040f | ||
|
|
d2ccbf7b7a | ||
|
|
55ad753bf1 | ||
|
|
efcb205116 | ||
|
|
7470fd3fdd | ||
|
|
102e3f98de | ||
|
|
b55dc0917d | ||
|
|
061d7af2ed | ||
|
|
ae50b9212f | ||
|
|
2e90ab8092 | ||
|
|
f186488fc3 | ||
|
|
1a94952b20 | ||
|
|
2c1a864390 | ||
|
|
7f258a3f4c | ||
|
|
b57375b8af | ||
|
|
3bfe2914f5 | ||
|
|
ac14103870 | ||
|
|
68db70e6bb | ||
|
|
67f1e32652 | ||
|
|
3525c3cca0 | ||
|
|
302d1eb15c | ||
|
|
bea577beb9 | ||
|
|
7f2e6a02f0 | ||
|
|
f9ec259742 | ||
|
|
3179e90aea | ||
|
|
80002dc85c | ||
|
|
fa44827bff | ||
|
|
dd18b49604 | ||
|
|
7bad31c532 | ||
|
|
42caf7865c | ||
|
|
d76f0bef77 | ||
|
|
821ede1d23 | ||
|
|
0e46dc2222 | ||
|
|
121f66b2a1 | ||
|
|
d1a2570283 | ||
|
|
3a7dec1463 | ||
|
|
42f05979e3 | ||
|
|
86b6b6886b | ||
|
|
e18552dadc | ||
|
|
c62bd88963 | ||
|
|
cf2a7af7e3 | ||
|
|
b289d0ba42 | ||
|
|
d7405c44ca | ||
|
|
2bce970809 | ||
|
|
ebd2e31efe | ||
|
|
34f7b8b19a | ||
|
|
184df4d5bb | ||
|
|
25380a7e98 | ||
|
|
fcf4b0d303 | ||
|
|
70839abf88 | ||
|
|
8a3ad923e1 | ||
|
|
15416a9447 | ||
|
|
14355cb7d4 | ||
|
|
7cdb8b0c7d | ||
|
|
6fac35fced | ||
|
|
2280c01dc7 | ||
|
|
3f062f72a2 | ||
|
|
2ab49d7f24 | ||
|
|
9a221085d4 | ||
|
|
9721172481 | ||
|
|
a884db0825 | ||
|
|
5a13454244 | ||
|
|
dc341f9350 | ||
|
|
a9781293f9 | ||
|
|
2a84aec59e | ||
|
|
68cec0448e | ||
|
|
2487dab7eb | ||
|
|
423dc248bc | ||
|
|
c402cc7c62 | ||
|
|
4a5b6fc190 | ||
|
|
f176fe759d | ||
|
|
3442b11b3d | ||
|
|
2c51c2928a | ||
|
|
6acc183111 | ||
|
|
ab27592e5d | ||
|
|
85afbdb8a7 | ||
|
|
c05418f47e | ||
|
|
d57cc7b156 | ||
|
|
eeb58da1cb | ||
|
|
cf823c471d | ||
|
|
2227267ff6 | ||
|
|
9e36975d5f | ||
|
|
297f132a0c | ||
|
|
8b3979c993 | ||
|
|
a9b98afa42 | ||
|
|
9bd4047425 | ||
|
|
666c6c70ca | ||
|
|
a7fc184662 | ||
|
|
673c484fa7 | ||
|
|
977f30d617 | ||
|
|
49b7cf6008 | ||
|
|
4bb513e460 | ||
|
|
8926e27c46 | ||
|
|
63870fd825 | ||
|
|
f06cbebf63 | ||
|
|
6e93806b12 | ||
|
|
00f75c753d | ||
|
|
8c253137a7 | ||
|
|
fc7bbc3f20 | ||
|
|
0aea0ec1ed | ||
|
|
1921164ba3 | ||
|
|
d5a7fcf75f | ||
|
|
1ae23085d4 | ||
|
|
d2ad023b52 | ||
|
|
abd6ff9145 | ||
|
|
93273e922f | ||
|
|
ef76822773 | ||
|
|
87e1b09088 | ||
|
|
f84b113b5e | ||
|
|
c71026d135 | ||
|
|
c452302735 | ||
|
|
04726fd871 | ||
|
|
2820e5a243 | ||
|
|
5dee9ae4ef | ||
|
|
ccb0a6262d | ||
|
|
8baae82b35 | ||
|
|
e8b87a0168 | ||
|
|
c8c1c7a83f | ||
|
|
e8746232f6 | ||
|
|
dcf325f64e | ||
|
|
2672f2c7f6 | ||
|
|
09493ce196 | ||
|
|
78575f12d5 | ||
|
|
be224d2d8a | ||
|
|
4b7a7d0cf0 | ||
|
|
8c53cf1d3c | ||
|
|
09159c3ac0 | ||
|
|
0f1cd87deb | ||
|
|
e0cb0003dc | ||
|
|
23017a22ec | ||
|
|
6c86bb4167 | ||
|
|
ca31230928 | ||
|
|
01f8795981 | ||
|
|
2566879a99 | ||
|
|
418b693fe0 | ||
|
|
8686936a07 | ||
|
|
79b8e6c24e | ||
|
|
8c2dd44f44 | ||
|
|
f172019edc | ||
|
|
44bf3e8479 | ||
|
|
17d6c02d83 | ||
|
|
bd6a57095a | ||
|
|
68733a447a | ||
|
|
1fb0644f51 | ||
|
|
c74d10b2e3 | ||
|
|
95582d16a6 | ||
|
|
e8628443f0 | ||
|
|
af191834d1 | ||
|
|
82744afe58 | ||
|
|
c109857707 | ||
|
|
740f609ca8 | ||
|
|
1b7065d8c1 | ||
|
|
f78f5b454b | ||
|
|
c3686b4098 | ||
|
|
9cfa4e40d0 | ||
|
|
4a5903849e | ||
|
|
200944ebb3 | ||
|
|
7af9f50426 | ||
|
|
fe60369b6a | ||
|
|
15acca7b57 | ||
|
|
2aa4d0af33 | ||
|
|
01bbfcced0 | ||
|
|
65895e658f | ||
|
|
0241d65460 | ||
|
|
060e1764cb | ||
|
|
9dcc774bfd | ||
|
|
11b26b3730 | ||
|
|
d9a7537d5d | ||
|
|
d68937afe0 | ||
|
|
43441a431e | ||
|
|
9e4618ca7e | ||
|
|
69cde35fb7 | ||
|
|
ac02348833 | ||
|
|
311c07e857 | ||
|
|
34c0ccb29f | ||
|
|
efac8ec940 | ||
|
|
4f56bf66db | ||
|
|
3157ceaa47 | ||
|
|
2b2ceb60cc | ||
|
|
4f3c4e0901 | ||
|
|
5442ee459d | ||
|
|
63dcb5586c | ||
|
|
e521a691ae | ||
|
|
b653aca20f | ||
|
|
e0120bc86e | ||
|
|
0dff38fcdd | ||
|
|
d8863d1861 | ||
|
|
8596d271a2 | ||
|
|
affb47b82e | ||
|
|
61e07fe169 | ||
|
|
caf6746e89 | ||
|
|
f1f6817615 | ||
|
|
06f4e5c835 | ||
|
|
0aeb2e89de | ||
|
|
d1513169fc | ||
|
|
2af34821aa | ||
|
|
e1ad6072dd | ||
|
|
c69c889a26 | ||
|
|
2be4bc4817 | ||
|
|
32d422bd97 | ||
|
|
be0eb901db | ||
|
|
ce1b32e4e9 | ||
|
|
e2a4f48953 | ||
|
|
2bc68df958 | ||
|
|
ba00ee20c2 | ||
|
|
107a849f88 | ||
|
|
ddab7046ca | ||
|
|
e49d4e2722 | ||
|
|
3c9e809b58 | ||
|
|
a82d09e816 | ||
|
|
6b9cbde8eb | ||
|
|
22297b9cfd | ||
|
|
d8837e4756 | ||
|
|
bcfb007c90 | ||
|
|
33d87367e7 | ||
|
|
257f751dfa | ||
|
|
e41226fcbc | ||
|
|
4efb798371 | ||
|
|
f8f47886d3 | ||
|
|
dec78d29e8 | ||
|
|
102175215c | ||
|
|
cd2cc16fcf | ||
|
|
b103dc01c0 | ||
|
|
f8ed09c3ad | ||
|
|
7f918da87d | ||
|
|
32230c6b60 | ||
|
|
d8b00eef97 | ||
|
|
2b1b64c5c1 | ||
|
|
145fcb63e2 | ||
|
|
6748fb974b | ||
|
|
da234bf228 | ||
|
|
c821cdefa4 | ||
|
|
7eb86305d4 | ||
|
|
66b5299b56 | ||
|
|
fcd0528a9e | ||
|
|
99929d7fa6 | ||
|
|
6c7be9b339 | ||
|
|
73004d0ad8 | ||
|
|
c867f9a90a | ||
|
|
7f7620a08c | ||
|
|
416bf8e7af | ||
|
|
b3eebf717d | ||
|
|
baef85aed1 | ||
|
|
2d6c0ef66d | ||
|
|
4f817a5b61 | ||
|
|
01d415cc7f | ||
|
|
d13bf3325b | ||
|
|
0e62ad1600 | ||
|
|
700c6c9b3e | ||
|
|
ac02703f5f | ||
|
|
1f80b6746e | ||
|
|
9f87342e30 | ||
|
|
13d6616b55 | ||
|
|
81700523ed | ||
|
|
7f1827f1e5 | ||
|
|
8d491b4146 | ||
|
|
0ea57b8bca | ||
|
|
466026b5c6 | ||
|
|
c90ef9919b | ||
|
|
8649114546 | ||
|
|
dcfa899520 | ||
|
|
2e03d27d27 | ||
|
|
9ead140b6e | ||
|
|
719e03da16 | ||
|
|
6a775f3951 | ||
|
|
7de5166694 | ||
|
|
907a72d3bd | ||
|
|
024be2e094 | ||
|
|
1c4b97c2f2 | ||
|
|
2a7e67b8e4 | ||
|
|
09761004dd | ||
|
|
766bc44b23 |
1
.gitignore
vendored
@@ -6,3 +6,4 @@
|
||||
examples/ide-eclipse/.metadata
|
||||
examples/ide-eclipse/RemoteSystemsTempFiles
|
||||
docs/_build
|
||||
dist
|
||||
|
||||
6
.gitmodules
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library"]
|
||||
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library
|
||||
url = https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library.git
|
||||
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library"]
|
||||
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library
|
||||
url = https://github.com/adafruit/Adafruit-GFX-Library.git
|
||||
@@ -1,3 +1,3 @@
|
||||
[settings]
|
||||
line_length=79
|
||||
known_third_party=click,requests,serial,SCons
|
||||
known_third_party=click,requests,serial,SCons,pytest
|
||||
|
||||
@@ -38,7 +38,7 @@ load-plugins=
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=C0103,C0111,E0611,F0401,I0011,R0801,R0903
|
||||
disable=C0103,C0111,E0611,F0401,I0011,R0801,R0903,R0922
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.platformio
|
||||
|
||||
language: python
|
||||
python: 2.7
|
||||
python:
|
||||
- "2.7"
|
||||
|
||||
env:
|
||||
- TOX_ENV=docs
|
||||
- TOX_ENV=lint
|
||||
- TOX_ENV=py26
|
||||
- TOX_ENV=py27
|
||||
|
||||
install:
|
||||
- pip install tox
|
||||
|
||||
354
HISTORY.rst
@@ -1,18 +1,318 @@
|
||||
Release History
|
||||
===============
|
||||
|
||||
1.5.0 (2015-05-15)
|
||||
------------------
|
||||
|
||||
* Added support of `Framework mbed <http://platformio.org/#!/frameworks/mbed>`_
|
||||
for Teensy 3.1
|
||||
(`issue #183 <https://github.com/platformio/platformio/issues/183>`_)
|
||||
* Added GDB as alternative uploader to `ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__ platform
|
||||
(`issue #175 <https://github.com/platformio/platformio/issues/174>`_)
|
||||
* Added `examples <https://github.com/platformio/platformio/tree/develop/examples>`__
|
||||
with preconfigured IDE projects
|
||||
(`issue #154 <https://github.com/platformio/platformio/issues/154>`_)
|
||||
* Fixed firmware uploading under Linux OS for Arduino Leonardo board
|
||||
(`issue #178 <https://github.com/platformio/platformio/issues/178>`_)
|
||||
* Fixed invalid "mbed" firmware for Nucleo F411RE
|
||||
(`issue #185 <https://github.com/platformio/platformio/issues/185>`_)
|
||||
* Fixed parsing of includes for PlatformIO Library Dependency Finder
|
||||
(`issue #189 <https://github.com/platformio/platformio/issues/189>`_)
|
||||
* Fixed handling symbolic links within source code directory
|
||||
(`issue #190 <https://github.com/platformio/platformio/issues/190>`_)
|
||||
* Fixed cancelling any previous definition of name, either built in or provided
|
||||
with a ``-D`` option
|
||||
(`issue #191 <https://github.com/platformio/platformio/issues/191>`_)
|
||||
|
||||
1.4.0 (2015-04-11)
|
||||
------------------
|
||||
|
||||
* Added `espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`_
|
||||
development platform with ESP01 board
|
||||
* Integrated PlatformIO with AppVeyor Windows based Continuous Integration system
|
||||
(`issue #149 <https://github.com/platformio/platformio/issues/149>`_)
|
||||
* Added support for Teensy LC board to
|
||||
`teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`__
|
||||
platform
|
||||
* Added support for new Arduino based boards by *SparkFun, BQ, LightUp,
|
||||
LowPowerLab, Quirkbot, RedBearLab, TinyCircuits, WickedDevice* to
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
platform
|
||||
* Upgraded `Arduino Framework <http://docs.platformio.org/en/latest/frameworks/arduino.html>`__ to
|
||||
1.6.3 version (`issue #156 <https://github.com/platformio/platformio/issues/156>`_)
|
||||
* Upgraded `Energia Framework <http://docs.platformio.org/en/latest/frameworks/energia.html>`__ to
|
||||
0101E0015 version (`issue #146 <https://github.com/platformio/platformio/issues/146>`_)
|
||||
* Upgraded `Arduino Framework with Teensy Core <http://docs.platformio.org/en/latest/frameworks/arduino.html>`_ to
|
||||
1.22 version (`issue #162 <https://github.com/platformio/platformio/issues/162>`_,
|
||||
`issue #170 <https://github.com/platformio/platformio/issues/170>`_)
|
||||
* Fixed exceptions with PlatformIO auto-updates when Internet connection isn't
|
||||
active
|
||||
|
||||
|
||||
1.3.0 (2015-03-27)
|
||||
------------------
|
||||
|
||||
* Moved PlatformIO source code and repositories from `Ivan Kravets <https://github.com/ivankravets>`_
|
||||
account to `PlatformIO Organisation <https://github.com/platformio>`_
|
||||
(`issue #138 <https://github.com/platformio/platformio/issues/138>`_)
|
||||
* Added support for new Arduino based boards by *SparkFun, RepRap, Sanguino* to
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
platform
|
||||
(`issue #127 <https://github.com/platformio/platformio/issues/127>`_,
|
||||
`issue #131 <https://github.com/platformio/platformio/issues/131>`_)
|
||||
* Added integration instructions for `Visual Studio <http://docs.platformio.org/en/latest/ide/visualstudio.html>`_
|
||||
and `Sublime Text <http://docs.platformio.org/en/latest/ide/sublimetext.html>`_ IDEs
|
||||
* Improved handling of multi-file ``*.ino/pde`` sketches
|
||||
(`issue #130 <https://github.com/platformio/platformio/issues/130>`_)
|
||||
* Fixed wrong insertion of function prototypes converting ``*.ino/pde``
|
||||
(`issue #137 <https://github.com/platformio/platformio/issues/137>`_,
|
||||
`issue #140 <https://github.com/platformio/platformio/issues/140>`_)
|
||||
|
||||
|
||||
|
||||
1.2.0 (2015-03-20)
|
||||
------------------
|
||||
|
||||
* Added full support of `mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__
|
||||
framework including libraries: *RTOS, Ethernet, DSP, FAT, USB*.
|
||||
* Added `freescalekinetis <http://docs.platformio.org/en/latest/platforms/freescalekinetis.html>`_
|
||||
development platform with Freescale Kinetis Freedom boards
|
||||
* Added `nordicnrf51 <http://docs.platformio.org/en/latest/platforms/nordicnrf51.html>`_
|
||||
development platform with supported boards from *JKSoft, Nordic, RedBearLab,
|
||||
Switch Science*
|
||||
* Added `nxplpc <http://docs.platformio.org/en/latest/platforms/nxplpc.html>`_
|
||||
development platform with supported boards from *CQ Publishing, Embedded
|
||||
Artists, NGX Technologies, NXP, Outrageous Circuits, SeeedStudio,
|
||||
Solder Splash Labs, Switch Science, u-blox*
|
||||
* Added support for *ST Nucleo* boards to
|
||||
`ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
|
||||
development platform
|
||||
* Created new `Frameworks <http://docs.platformio.org/en/latest/frameworks/index.html>`__
|
||||
page in documentation and added to `PlatformIO Web Site <http://platformio.org>`_
|
||||
(`issue #115 <https://github.com/platformio/platformio/issues/115>`_)
|
||||
* Introduced online `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* Automatically append define ``-DPLATFORMIO=%version%`` to
|
||||
builder (`issue #105 <https://github.com/platformio/platformio/issues/105>`_)
|
||||
* Renamed ``stm32`` development platform to
|
||||
`ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
|
||||
* Renamed ``opencm3`` framework to
|
||||
`libopencm3 <http://docs.platformio.org/en/latest/frameworks/libopencm3.html>`__
|
||||
* Fixed uploading for `atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html>`__
|
||||
development platform
|
||||
* Fixed re-arranging the ``*.ino/pde`` files when converting to ``*.cpp``
|
||||
(`issue #100 <https://github.com/platformio/platformio/issues/100>`_)
|
||||
|
||||
1.1.0 (2015-03-05)
|
||||
------------------
|
||||
|
||||
* Implemented ``PLATFORMIO_*`` environment variables
|
||||
(`issue #102 <https://github.com/platformio/platformio/issues/102>`_)
|
||||
* Added support for *SainSmart* boards to
|
||||
`atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html#boards>`__
|
||||
development platform
|
||||
* Added
|
||||
`Project Configuration <http://docs.platformio.org/en/latest/projectconf.html>`__
|
||||
option named `envs_dir <http://docs.platformio.org/en/latest/projectconf.html#envs-dir>`__
|
||||
* Disabled "prompts" automatically for *Continuous Integration* systems
|
||||
(`issue #103 <https://github.com/platformio/platformio/issues/103>`_)
|
||||
* Fixed firmware uploading for
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
boards which work within ``usbtiny`` protocol
|
||||
* Fixed uploading for *Digispark* board (`issue #106 <https://github.com/platformio/platformio/issues/106>`_)
|
||||
|
||||
1.0.1 (2015-02-27)
|
||||
------------------
|
||||
|
||||
**PlatformIO 1.0 - recommended for production**
|
||||
|
||||
* Changed development status from ``beta`` to ``Production/Stable``
|
||||
* Added support for *ARM*-based credit-card sized computers:
|
||||
`Raspberry Pi <http://www.raspberrypi.org>`_,
|
||||
`BeagleBone <http://beagleboard.org>`_ and `CubieBoard <http://cubieboard.org>`_
|
||||
* Added `atmelsam <http://docs.platformio.org/en/latest/platforms/atmelsam.html>`__
|
||||
development platform with supported boards: *Arduino Due and Digistump DigiX*
|
||||
(`issue #71 <https://github.com/platformio/platformio/issues/71>`_)
|
||||
* Added `ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__
|
||||
development platform with supported boards: *Discovery kit for STM32L151/152,
|
||||
STM32F303xx, STM32F407/417 lines* and `libOpenCM3 Framework <http://www.libopencm3.org>`_
|
||||
(`issue #73 <https://github.com/platformio/platformio/issues/73>`_)
|
||||
* Added `teensy <http://docs.platformio.org/en/latest/platforms/teensy.html>`_
|
||||
development platform with supported boards: *Teensy 2.x & 3.x*
|
||||
(`issue #72 <https://github.com/platformio/platformio/issues/72>`_)
|
||||
* Added new *Arduino* boards to
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
platform: *Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet,
|
||||
Arduino Robot Control, Arduino Robot Motor and Arduino Yun*
|
||||
* Added support for *Adafruit* boards to
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
platform: *Adafruit Flora and Adafruit Trinkets*
|
||||
(`issue #65 <https://github.com/platformio/platformio/issues/65>`_)
|
||||
* Added support for *Digispark* boards to
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#boards>`__
|
||||
platform: *Digispark USB Development Board and Digispark Pro*
|
||||
(`issue #47 <https://github.com/platformio/platformio/issues/47>`_)
|
||||
* Covered code with tests (`issue #2 <https://github.com/platformio/platformio/issues/2>`_)
|
||||
* Refactored *Library Dependency Finder* (issues
|
||||
`#48 <https://github.com/platformio/platformio/issues/48>`_,
|
||||
`#50 <https://github.com/platformio/platformio/issues/50>`_,
|
||||
`#55 <https://github.com/platformio/platformio/pull/55>`_)
|
||||
* Added `src_dir <http://docs.platformio.org/en/latest/projectconf.html#src-dir>`__
|
||||
option to ``[platformio]`` section of
|
||||
`platformio.ini <http://docs.platformio.org/en/latest/projectconf.html>`__
|
||||
which allows to redefine location to project's source directory
|
||||
(`issue #83 <https://github.com/platformio/platformio/issues/83>`_)
|
||||
* Added ``--json-output`` option to
|
||||
`platformio boards <http://docs.platformio.org/en/latest/userguide/cmd_boards.html>`__
|
||||
and `platformio search <http://docs.platformio.org/en/latest/userguide/cmd_search.html>`__
|
||||
commands which allows to return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
|
||||
* Allowed to ignore some libs from *Library Dependency Finder* via
|
||||
`ignore_libs <http://docs.platformio.org/en/latest/projectconf.html#ignore-libs>`_ option
|
||||
* Improved `platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
|
||||
command: asynchronous output for build process, timing and detailed
|
||||
information about environment configuration
|
||||
(`issue #74 <https://github.com/platformio/platformio/issues/74>`_)
|
||||
* Output compiled size and static memory usage with
|
||||
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
|
||||
command (`issue #59 <https://github.com/platformio/platformio/issues/59>`_)
|
||||
* Updated `framework-arduino` AVR & SAM to 1.6 stable version
|
||||
* Fixed an issue with the libraries that are git repositories
|
||||
(`issue #49 <https://github.com/platformio/platformio/issues/49>`_)
|
||||
* Fixed handling of assembly files
|
||||
(`issue #58 <https://github.com/platformio/platformio/issues/58>`_)
|
||||
* Fixed compiling error if space is in user's folder
|
||||
(`issue #56 <https://github.com/platformio/platformio/issues/56>`_)
|
||||
* Fixed `AttributeError: 'module' object has no attribute 'disable_warnings'`
|
||||
when a version of `requests` package is less then 2.4.0
|
||||
* Fixed bug with invalid process's "return code" when PlatformIO has internal
|
||||
error (`issue #81 <https://github.com/platformio/platformio/issues/81>`_)
|
||||
* Several bug fixes, increased stability and performance improvements
|
||||
|
||||
|
||||
0.10.2 (2015-01-06)
|
||||
-------------------
|
||||
|
||||
* Fixed an issue with ``--json-output``
|
||||
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
|
||||
* Fixed an exception during
|
||||
`platformio upgrade <http://docs.platformio.org/en/latest/userguide/cmd_upgrade.html>`__
|
||||
under Windows OS (`issue #45 <https://github.com/platformio/platformio/issues/45>`_)
|
||||
|
||||
0.10.1 (2015-01-02)
|
||||
-------------------
|
||||
|
||||
* Added ``--json-output`` option to
|
||||
`platformio list <http://docs.platformio.org/en/latest/userguide/cmd_list.html>`__,
|
||||
`platformio serialports list <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html>`__ and
|
||||
`platformio lib list <http://docs.platformio.org/en/latest/userguide/lib/cmd_list.html>`__
|
||||
commands which allows to return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
(`issue #42 <https://github.com/platformio/platformio/issues/42>`_)
|
||||
* Fixed missing auto-uploading by default after `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
|
||||
command
|
||||
|
||||
0.10.0 (2015-01-01)
|
||||
-------------------
|
||||
|
||||
**Happy New Year!**
|
||||
|
||||
* Implemented `platformio boards <http://docs.platformio.org/en/latest/userguide/cmd_boards.html>`_
|
||||
command (`issue #11 <https://github.com/platformio/platformio/issues/11>`_)
|
||||
* Added support of *Engduino* boards for
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html#engduino>`__
|
||||
platform (`issue #38 <https://github.com/platformio/platformio/issues/38>`_)
|
||||
* Added ``--board`` option to `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`__
|
||||
command which allows to initialise project with the specified embedded boards
|
||||
(`issue #21 <https://github.com/platformio/platformio/issues/21>`_)
|
||||
* Added `example with uploading firmware <http://docs.platformio.org/en/latest/projectconf.html#examples>`_
|
||||
via USB programmer (USBasp) for
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html>`_
|
||||
*MCUs* (`issue #35 <https://github.com/platformio/platformio/issues/35>`_)
|
||||
* Automatic detection of port on `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_
|
||||
(`issue #37 <https://github.com/platformio/platformio/issues/37>`_)
|
||||
* Allowed auto-installation of platforms when prompts are disabled (`issue #43 <https://github.com/platformio/platformio/issues/43>`_)
|
||||
* Fixed urllib3's *SSL* warning under Python <= 2.7.2 (`issue #39 <https://github.com/platformio/platformio/issues/39>`_)
|
||||
* Fixed bug with *Arduino USB* boards (`issue #40 <https://github.com/platformio/platformio/issues/40>`_)
|
||||
|
||||
0.9.2 (2014-12-10)
|
||||
------------------
|
||||
|
||||
* Replaced "dark blue" by "cyan" colour for the texts (`issue #33 <https://github.com/platformio/platformio/issues/33>`_)
|
||||
* Added new setting `enable_prompts <http://docs.platformio.org/en/latest/userguide/cmd_settings.html>`_
|
||||
and allowed to disable all *PlatformIO* prompts (useful for cloud compilers)
|
||||
(`issue #34 <https://github.com/platformio/platformio/issues/34>`_)
|
||||
* Fixed compilation bug on *Windows* with installed *MSVC* (`issue #18 <https://github.com/platformio/platformio/issues/18>`_)
|
||||
|
||||
0.9.1 (2014-12-05)
|
||||
------------------
|
||||
|
||||
* Ask user to install platform (when it hasn't been installed yet) within
|
||||
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
|
||||
and `platformio show <http://docs.platformio.org/en/latest/userguide/cmd_show.html>`_ commands
|
||||
* Improved main `documentation <http://docs.platformio.org>`_
|
||||
* Fixed "*OSError: [Errno 2] No such file or directory*" within
|
||||
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
|
||||
command when PlatformIO isn't installed properly
|
||||
* Fixed example for `Eclipse IDE with Tiva board <https://github.com/platformio/platformio/tree/develop/examples/ide-eclipse>`_
|
||||
(`issue #32 <https://github.com/platformio/platformio/pull/32>`_)
|
||||
* Upgraded `Eclipse Project Examples <https://github.com/platformio/platformio/tree/develop/examples/ide-eclipse>`_
|
||||
to latest *Luna* and *PlatformIO* releases
|
||||
|
||||
0.9.0 (2014-12-01)
|
||||
------------------
|
||||
|
||||
* Implemented `platformio settings <http://docs.platformio.org/en/latest/userguide/cmd_settings.html>`_ command
|
||||
* Improved `platformio init <http://docs.platformio.org/en/latest/userguide/cmd_init.html>`_ command.
|
||||
Added new option ``--project-dir`` where you can specify another path to
|
||||
directory where new project will be initialized (`issue #31 <https://github.com/platformio/platformio/issues/31>`_)
|
||||
* Added *Migration Manager* which simplifies process with upgrading to a
|
||||
major release
|
||||
* Added *Telemetry Service* which should help us make *PlatformIO* better
|
||||
* Implemented *PlatformIO AppState Manager* which allow to have multiple
|
||||
``.platformio`` states.
|
||||
* Refactored *Package Manager*
|
||||
* Download Manager: fixed SHA1 verification within *Cygwin Environment*
|
||||
(`issue #26 <https://github.com/platformio/platformio/issues/26>`_)
|
||||
* Fixed bug with code builder and built-in Arduino libraries
|
||||
(`issue #28 <https://github.com/platformio/platformio/issues/28>`_)
|
||||
|
||||
0.8.0 (2014-10-19)
|
||||
------------------
|
||||
|
||||
* Avoided trademark issues in `library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`_
|
||||
with the new fields: `frameworks <http://docs.platformio.org/en/latest/librarymanager/config.html#frameworks>`_,
|
||||
`platforms <http://docs.platformio.org/en/latest/librarymanager/config.html#platforms>`_
|
||||
and `dependencies <http://docs.platformio.org/en/latest/librarymanager/config.html#dependencies>`_
|
||||
(`issue #17 <https://github.com/platformio/platformio/issues/17>`_)
|
||||
* Switched logic from "Library Name" to "Library Registry ID" for all
|
||||
`platformio lib <http://docs.platformio.org/en/latest/userguide/lib/index.html>`_
|
||||
commands (install, uninstall, update and etc.)
|
||||
* Renamed ``author`` field to `authors <http://docs.platformio.org/en/latest/librarymanager/config.html#authors>`_
|
||||
and allowed to setup multiple authors per library in `library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`_
|
||||
* Added option to specify "maintainer" status in `authors <http://docs.platformio.org/en/latest/librarymanager/config.html#authors>`_ field
|
||||
* New filters/options for `platformio lib search <http://docs.platformio.org/en/latest/userguide/lib/cmd_search.html>`_
|
||||
command: ``--framework`` and ``--platform``
|
||||
|
||||
0.7.1 (2014-10-06)
|
||||
------------------
|
||||
|
||||
* Fixed bug with order for includes in conversation from INO/PDE to CPP
|
||||
* Automatic detection of port on upload (`issue #15 <https://github.com/platformio/platformio/issues/15>`_)
|
||||
* Fixed lib update crashing when no libs are installed (`issue #19 <https://github.com/platformio/platformio/issues/19>`_)
|
||||
|
||||
|
||||
0.7.0 (2014-09-24)
|
||||
------------------
|
||||
|
||||
* Implemented new ``[platformio]`` section for Configuration File with ``home_dir``
|
||||
option (`issue #14 <https://github.com/ivankravets/platformio/issues/14>`_)
|
||||
* Implemented *Library Manager* (`issue #6 <https://github.com/ivankravets/platformio/issues/6>`_)
|
||||
* Implemented new `[platformio] <http://docs.platformio.org/en/latest/projectconf.html#platformio>`_
|
||||
section for Configuration File with `home_dir <http://docs.platformio.org/en/latest/projectconf.html#home-dir>`_
|
||||
option (`issue #14 <https://github.com/platformio/platformio/issues/14>`_)
|
||||
* Implemented *Library Manager* (`issue #6 <https://github.com/platformio/platformio/issues/6>`_)
|
||||
|
||||
0.6.0 (2014-08-09)
|
||||
------------------
|
||||
|
||||
* Implemented ``serialports monitor`` (`issue #10 <https://github.com/ivankravets/platformio/issues/10>`_)
|
||||
* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 <https://github.com/ivankravets/platformio/issues/9>`_)
|
||||
* Implemented `platformio serialports monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_ (`issue #10 <https://github.com/platformio/platformio/issues/10>`_)
|
||||
* Fixed an issue ``ImportError: No module named platformio.util`` (`issue #9 <https://github.com/platformio/platformio/issues/9>`_)
|
||||
* Fixed bug with auto-conversation from Arduino \*.ino to \*.cpp
|
||||
|
||||
0.5.0 (2014-08-04)
|
||||
@@ -21,29 +321,33 @@ Release History
|
||||
* Improved nested lookups for libraries
|
||||
* Disabled default warning flag "-Wall"
|
||||
* Added auto-conversation from \*.ino to valid \*.cpp for Arduino/Energia
|
||||
frameworks (`issue #7 <https://github.com/ivankravets/platformio/issues/7>`_)
|
||||
* Added `Arduino example <https://github.com/ivankravets/platformio/tree/develop/examples/arduino-adafruit-library>`_
|
||||
with external library (Adafruit CC3000)
|
||||
* Implemented ``platformio upgrade`` command and "auto-check" for the latest
|
||||
version (`issue #8 <https://github.com/ivankravets/platformio/issues/8>`_)
|
||||
* Fixed an issue with "auto-reset" for Raspduino board
|
||||
frameworks (`issue #7 <https://github.com/platformio/platformio/issues/7>`_)
|
||||
* Added `Arduino example <https://github.com/platformio/platformio/tree/develop/examples/>`_
|
||||
with external library (*Adafruit CC3000*)
|
||||
* Implemented `platformio upgrade <http://docs.platformio.org/en/latest/userguide/cmd_upgrade.html>`_
|
||||
command and "auto-check" for the latest
|
||||
version (`issue #8 <https://github.com/platformio/platformio/issues/8>`_)
|
||||
* Fixed an issue with "auto-reset" for *Raspduino* board
|
||||
* Fixed a bug with nested libs building
|
||||
|
||||
0.4.0 (2014-07-31)
|
||||
------------------
|
||||
|
||||
* Implemented ``serialports`` command
|
||||
* Implemented `platformio serialports <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html>`_ command
|
||||
* Allowed to put special build flags only for ``src`` files via
|
||||
``srcbuild_flags`` environment option
|
||||
`srcbuild_flags <http://docs.platformio.org/en/latest/projectconf.html#srcbuild-flags>`_
|
||||
environment option
|
||||
* Allowed to override some of settings via system environment variables
|
||||
such as: ``$PIOSRCBUILD_FLAGS`` and ``$PIOENVS_DIR``
|
||||
* Added ``--upload-port`` option for ``platformio run`` command
|
||||
* Implemented (especially for `SmartAnthill <http://smartanthill.ikravets.com/>`_)
|
||||
``platformio run -t uploadlazy`` target (no dependencies to framework libs,
|
||||
ELF and etc.)
|
||||
* Allowed to skip default packages via ``platformio install --skip-default-package`` flag
|
||||
* Added tools for Raspberry Pi platform
|
||||
* Added support for Microduino and Raspduino boards in ``atmelavr`` platform
|
||||
such as: ``PLATFORMIO_SRCBUILD_FLAGS`` and ``PLATFORMIO_ENVS_DIR``
|
||||
* Added ``--upload-port`` option for `platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html#cmdoption--upload-port>`__ command
|
||||
* Implemented (especially for `SmartAnthill <http://docs.smartanthill.ikravets.com/>`_)
|
||||
`platformio run -t uploadlazy <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`_
|
||||
target (no dependencies to framework libs, ELF and etc.)
|
||||
* Allowed to skip default packages via `platformio install --skip-default-package <http://docs.platformio.org/en/latest/userguide/cmd_install.html#cmdoption--skip-default>`_
|
||||
option
|
||||
* Added tools for *Raspberry Pi* platform
|
||||
* Added support for *Microduino* and *Raspduino* boards in
|
||||
`atmelavr <http://docs.platformio.org/en/latest/platforms/atmelavr.html>`_ platform
|
||||
|
||||
|
||||
0.3.1 (2014-06-21)
|
||||
@@ -57,17 +361,17 @@ Release History
|
||||
|
||||
* Allowed to pass multiple "SomePlatform" to install/uninstall commands
|
||||
* Added "IDE Integration" section to README with Eclipse project examples
|
||||
* Created auto installer script for *PlatformIO* (`issue #3 <https://github.com/ivankravets/platformio/issues/3>`_)
|
||||
* Created auto installer script for *PlatformIO* (`issue #3 <https://github.com/platformio/platformio/issues/3>`_)
|
||||
* Added "Super-Quick" way to Installation section (README)
|
||||
* Implemented "build_flags" option for environments (`issue #4 <https://github.com/ivankravets/platformio/issues/4>`_)
|
||||
* Implemented "build_flags" option for environments (`issue #4 <https://github.com/platformio/platformio/issues/4>`_)
|
||||
|
||||
|
||||
0.2.0 (2014-06-15)
|
||||
------------------
|
||||
|
||||
* Resolved `issue #1 "Build referred libraries" <https://github.com/ivankravets/platformio/issues/1>`_
|
||||
* Resolved `issue #1 "Build referred libraries" <https://github.com/platformio/platformio/issues/1>`_
|
||||
* Renamed project's "libs" directory to "lib"
|
||||
* Added `arduino-internal-library <https://github.com/ivankravets/platformio/tree/develop/examples/arduino-internal-library>`_ example
|
||||
* Added `arduino-internal-library <https://github.com/platformio/platformio/tree/develop/examples/>`_ example
|
||||
* Changed to beta status
|
||||
|
||||
|
||||
|
||||
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Ivan Kravets
|
||||
Copyright (c) 2014-2015 Ivan Kravets
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
183
README.rst
@@ -1,82 +1,157 @@
|
||||
PlatformIO
|
||||
==========
|
||||
|
||||
.. image:: https://travis-ci.org/ivankravets/platformio.svg?branch=develop
|
||||
:target: https://travis-ci.org/ivankravets/platformio
|
||||
:alt: Build Status
|
||||
.. image:: https://gemnasium.com/ivankravets/platformio.png
|
||||
:target: https://gemnasium.com/ivankravets/platformio
|
||||
.. image:: https://travis-ci.org/platformio/platformio.svg?branch=develop
|
||||
:target: https://travis-ci.org/platformio/platformio
|
||||
:alt: Travis.CI Build Status
|
||||
.. image:: https://ci.appveyor.com/api/projects/status/ee26e58de798rctd/branch/develop?svg=true
|
||||
:target: https://ci.appveyor.com/project/ivankravets/platformio
|
||||
:alt: AppVeyor.CI Build Status
|
||||
.. image:: https://gemnasium.com/platformio/platformio.png
|
||||
:target: https://gemnasium.com/platformio/platformio
|
||||
:alt: Dependency Status
|
||||
.. image:: https://pypip.in/version/platformio/badge.png
|
||||
.. image:: https://pypip.in/version/platformio/badge.png?style=flat
|
||||
:target: https://pypi.python.org/pypi/platformio/
|
||||
:alt: Latest Version
|
||||
.. image:: https://pypip.in/download/platformio/badge.png
|
||||
.. image:: https://pypip.in/download/platformio/badge.png?style=flat
|
||||
:target: https://pypi.python.org/pypi/platformio/
|
||||
:alt: Downloads
|
||||
.. image:: https://pypip.in/license/platformio/badge.png
|
||||
.. image:: https://pypip.in/license/platformio/badge.png?style=flat
|
||||
:target: https://pypi.python.org/pypi/platformio/
|
||||
:alt: License
|
||||
.. image:: https://badges.gitter.im/Join%20Chat.svg
|
||||
:alt: Join the chat at https://gitter.im/platformio/platformio
|
||||
:target: https://gitter.im/platformio/platformio
|
||||
|
||||
`Website <http://platformio.ikravets.com>`_ |
|
||||
`Documentation <http://docs.platformio.ikravets.com>`_ |
|
||||
`Project Examples <https://github.com/ivankravets/platformio/tree/develop/examples>`_ |
|
||||
`Bugs/Questions <https://github.com/ivankravets/platformio/issues>`_ |
|
||||
`Website + Library Search <http://platformio.org>`_ |
|
||||
`Documentation <http://docs.platformio.org>`_ |
|
||||
`Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ |
|
||||
`Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
|
||||
`Twitter <https://twitter.com/smartanthill>`_
|
||||
`Reddit <http://www.reddit.com/r/platformio/>`_ |
|
||||
`Twitter <https://twitter.com/PlatformIO_Org>`_
|
||||
|
||||
**PlatformIO** is a cross-platform code builder and library manager.
|
||||
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC,
|
||||
ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.*
|
||||
|
||||
* `Website + Library Search <http://platformio.ikravets.com>`_
|
||||
* `Quickstart <http://docs.platformio.ikravets.com/en/latest/quickstart.html>`_
|
||||
* `Installation <http://docs.platformio.ikravets.com/en/latest/installation.html>`_
|
||||
* `Project Configuration File <http://docs.platformio.ikravets.com/en/latest/projectconf.html>`_
|
||||
* `Platforms & Embedded Boards <http://docs.platformio.ikravets.com/en/latest/platforms/index.html>`_
|
||||
* `User Guide <http://docs.platformio.ikravets.com/en/latest/userguide/index.html>`_
|
||||
* `IDE Integration <http://docs.platformio.ikravets.com/en/latest/ide.html>`_
|
||||
* `Release History <http://docs.platformio.ikravets.com/en/latest/history.html>`_
|
||||
.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png
|
||||
:target: http://platformio.org
|
||||
|
||||
You have no need to install any *IDE* or compile any tool chains. *PlatformIO*
|
||||
has pre-built different development platforms including: compiler, debugger,
|
||||
uploader (for embedded boards) and many other useful tools.
|
||||
`PlatformIO <http://platformio.org>`_ is a cross-platform code builder
|
||||
and the missing library manager.
|
||||
|
||||
**PlatformIO** allows developer to compile the same code with different
|
||||
platforms using only one command
|
||||
`platformio run <http://docs.platformio.ikravets.com/en/latest/userguide/cmd_run.html>`_.
|
||||
* `Get Started <http://platformio.org/#!/get-started>`_
|
||||
* `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
|
||||
* `Development Platforms <http://platformio.org/#!/platforms>`_
|
||||
* `Frameworks <http://platformio.org/#!/frameworks>`_
|
||||
* `Embedded Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* `Library Manager <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
|
||||
* `User Guide <http://docs.platformio.org/en/latest/userguide/index.html>`_
|
||||
* `IDE Integration <http://docs.platformio.org/en/latest/ide.html>`_
|
||||
* `Articles about us <http://docs.platformio.org/en/latest/articles.html>`_
|
||||
* `FAQ <http://docs.platformio.org/en/latest/faq.html>`_
|
||||
* `Release History <http://docs.platformio.org/en/latest/history.html>`_
|
||||
|
||||
You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO*
|
||||
has pre-built different development platforms and pre-configured settings for
|
||||
the most popular embedded boards. For further details, please
|
||||
refer to `What is PlatformIO? <http://docs.platformio.org/en/latest/faq.html#what-is-platformio>`_
|
||||
|
||||
Use whenever. *Run everywhere.*
|
||||
-------------------------------
|
||||
*PlatformIO* is written in pure *Python* and **doesn't depend** on any
|
||||
additional libraries/tools from an operation system. It allows you to use
|
||||
*PlatformIO* beginning from *PC (Mac, Linux, Win)* and ending with credit-card
|
||||
sized computers (`Raspberry Pi <http://www.raspberrypi.org>`_,
|
||||
`BeagleBone <http://beagleboard.org>`_,
|
||||
`CubieBoard <http://cubieboard.org>`_).
|
||||
|
||||
Embedded Development. *Easier Than Ever.*
|
||||
-----------------------------------------
|
||||
*PlatformIO* is well suited for embedded development and has pre-configured
|
||||
settings for most popular `Embedded Boards <http://platformio.org/#!/boards>`_.
|
||||
|
||||
* Colourful `command-line output <https://raw.githubusercontent.com/platformio/platformio/develop/examples/platformio-examples.png>`_
|
||||
* Built-in `Serial Port Monitor <http://docs.platformio.org/en/latest/userguide/cmd_serialports.html#platformio-serialports-monitor>`_
|
||||
* Configurable `build -flags/-options <http://docs.platformio.org/en/latest/projectconf.html#build-flags>`_
|
||||
* Automatic **firmware uploading**
|
||||
* Integration with `development environments (IDE) <http://docs.platformio.org/en/latest/ide.html>`_
|
||||
* Ready for **Cloud Compiling** and **Continuous Integration**
|
||||
* Pre-built tool chains, frameworks for the popular `Hardware Platforms <http://platformio.org/#!/platforms>`_
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-embedded-development.png
|
||||
:target: http://platformio.org
|
||||
:alt: PlatformIO Embedded Development Process
|
||||
|
||||
The Missing Library Manager. *It's here!*
|
||||
-----------------------------------------
|
||||
*PlatformIO Library Manager* is the missing library manager for development
|
||||
platforms which allows you to organize and have up-to-date external libraries.
|
||||
|
||||
* Friendly `Command-Line Interface <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
|
||||
* Modern `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
|
||||
* Open Source `Library Registry API <https://github.com/platformio/platformio-api>`_
|
||||
* Library Crawler based on `library.json <http://docs.platformio.org/en/latest/librarymanager/config.html>`_
|
||||
specification
|
||||
* Library **dependency management**
|
||||
* Automatic library updating
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-library-manager.png
|
||||
:target: http://platformio.org
|
||||
:alt: PlatformIO Library Manager Architecture
|
||||
|
||||
Smart Code Builder. *Fast and Reliable.*
|
||||
----------------------------------------
|
||||
*PlatformIO Code Builder* is built-on a next-generation software construction
|
||||
tool named `SCons <http://www.scons.org/>`_. Think of *SCons* as an improved,
|
||||
cross-platform substitute for the classic *Make* utility.
|
||||
|
||||
* Reliable, automatic *dependency analysis*
|
||||
* Reliable detection of *build changes*
|
||||
* Improved support for *parallel builds*
|
||||
* Ability to share *built files in a cache*
|
||||
* Lookup for external libraries which are installed via `Library Manager <http://docs.platformio.org/en/latest/librarymanager/index.html>`_
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-scons-builder.png
|
||||
:target: http://platformio.org
|
||||
:alt: PlatformIO Code Builder Architecture
|
||||
|
||||
Single source code. *Multiple platforms.*
|
||||
-----------------------------------------
|
||||
*PlatformIO* allows developer to compile the same code with different
|
||||
development platforms using the *Only One Command*
|
||||
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`_.
|
||||
This happens due to
|
||||
`Project Configuration File <http://docs.platformio.ikravets.com/en/latest/projectconf.html>`_
|
||||
where you can setup different environments with specific
|
||||
options: platform type, firmware uploading settings, pre-built framework
|
||||
and many more.
|
||||
`Project Configuration File (platformio.ini) <http://docs.platformio.org/en/latest/projectconf.html>`_
|
||||
where you can setup different environments with specific options (platform
|
||||
type, firmware uploading settings, pre-built framework, build flags and many
|
||||
more).
|
||||
|
||||
.. image:: examples/platformio-examples.png
|
||||
:target: https://github.com/ivankravets/platformio/raw/develop/examples/platformio-examples.png
|
||||
:alt: Examples
|
||||
:width: 730px
|
||||
It has support for the most popular embedded platforms:
|
||||
|
||||
**PlatformIO** is well suited for **embedded development**. It can:
|
||||
* `Atmel AVR <http://platformio.org/#!/platforms/atmelavr>`_
|
||||
* `Atmel SAM <http://platformio.org/#!/platforms/atmelsam>`_
|
||||
* `Espressif <http://platformio.org/#!/platforms/espressif>`_
|
||||
* `Freescale Kinetis <http://platformio.org/#!/platforms/freescalekinetis>`_
|
||||
* `Nordic nRF51 <http://platformio.org/#!/platforms/nordicnrf51>`_
|
||||
* `NXP LPC. <http://platformio.org/#!/platforms/nxplpc>`_
|
||||
* `ST STM32 <http://platformio.org/#!/platforms/ststm32>`_
|
||||
* `Teensy <http://platformio.org/#!/platforms/teensy>`_
|
||||
* `TI MSP430 <http://platformio.org/#!/platforms/timsp430>`_
|
||||
* `TI TIVA C <http://platformio.org/#!/platforms/titiva>`_
|
||||
|
||||
* Automatically analyse dependency
|
||||
* Reliably detect build changes
|
||||
* Build framework or library source code to static library
|
||||
* Build *ELF* (executable and linkable firmware)
|
||||
* Convert *ELF* to *HEX* or *BIN* file
|
||||
* Extract *EEPROM* data
|
||||
* Upload firmware to your device
|
||||
Frameworks:
|
||||
|
||||
It has support for many popular embedded platforms like these:
|
||||
|
||||
* ``atmelavr`` `Atmel AVR <http://en.wikipedia.org/wiki/Atmel_AVR>`_
|
||||
(including `Arduino <http://www.arduino.cc>`_ based boards)
|
||||
* ``timsp430`` `TI MSP430 <http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/overview.page>`_
|
||||
(including `MSP430 LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-msp430.html>`_)
|
||||
* ``titiva`` `TI TIVA C <http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/overview.page>`_
|
||||
(including `TIVA C Series LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-connected.html>`_)
|
||||
* `Arduino <http://platformio.org/#!/frameworks/arduino>`_
|
||||
* `CMSIS <http://platformio.org/#!/frameworks/cmsis>`_
|
||||
* `libOpenCM3 <http://platformio.org/#!/frameworks/libopencm3>`_
|
||||
* `Energia <http://platformio.org/#!/frameworks/energia>`_
|
||||
* `SPL <http://platformio.org/#!/frameworks/spl>`_
|
||||
* `mbed <http://platformio.org/#!/frameworks/mbed>`_
|
||||
|
||||
|
||||
Licence
|
||||
-------
|
||||
|
||||
Copyright (C) 2014 Ivan Kravets
|
||||
Copyright (C) 2014-2015 Ivan Kravets
|
||||
|
||||
Licenced under the MIT Licence.
|
||||
|
||||
|
||||
21
appveyor.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
build: off
|
||||
environment:
|
||||
global:
|
||||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
|
||||
matrix:
|
||||
- TOXENV: "py27"
|
||||
TOXPYTHON: "C:\\Python27-x64\\python.exe"
|
||||
WINDOWS_SDK_VERSION: "v7.0"
|
||||
PYTHON_HOME: "C:\\Python27-x64"
|
||||
PYTHON_VERSION: "2.7"
|
||||
PYTHON_ARCH: "64"
|
||||
init:
|
||||
- "ECHO %TOXENV%"
|
||||
- ps: "ls C:\\Python*"
|
||||
install:
|
||||
- "git submodule update --init --recursive"
|
||||
- "powershell scripts\\appveyor\\install.ps1"
|
||||
test_script:
|
||||
- "%PYTHON_HOME%\\Scripts\\tox --version"
|
||||
- "%PYTHON_HOME%\\Scripts\\pip --version"
|
||||
- "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox"
|
||||
BIN
docs/_static/ide-platformio-arduino.png
vendored
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
docs/_static/ide-platformio-eclipse.png
vendored
Normal file
|
After Width: | Height: | Size: 265 KiB |
BIN
docs/_static/ide-platformio-energia.png
vendored
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
docs/_static/ide-platformio-qtcreator-1.png
vendored
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/_static/ide-platformio-qtcreator-2.png
vendored
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/_static/ide-platformio-qtcreator-3.png
vendored
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
docs/_static/ide-platformio-qtcreator-4.png
vendored
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/_static/ide-platformio-qtcreator-5.png
vendored
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/_static/ide-platformio-qtcreator-6.png
vendored
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/_static/ide-platformio-qtcreator-7.png
vendored
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
docs/_static/ide-platformio-vim.png
vendored
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
docs/_static/ide-sublime-text-platformio-newproject-1.png
vendored
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
docs/_static/ide-sublime-text-platformio-newproject-2.png
vendored
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/_static/ide-sublime-text-platformio-newproject-3.png
vendored
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/_static/ide-sublime-text-platformio-newproject-4.png
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/_static/ide-sublime-text-platformio-newproject-5.png
vendored
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-2-1.png
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-2.png
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-3.png
vendored
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-4.png
vendored
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-5.png
vendored
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-6.png
vendored
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-7.png
vendored
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/_static/ide-vs-platformio-newproject-8.png
vendored
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/_static/ide-vs-platformio-newproject.png
vendored
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/_static/platformio-logo.png
vendored
Normal file
|
After Width: | Height: | Size: 10 KiB |
17
docs/articles.rst
Normal file
@@ -0,0 +1,17 @@
|
||||
.. _articles:
|
||||
|
||||
Articles about us
|
||||
=================
|
||||
|
||||
.. note::
|
||||
If you've writeen article about PlatformIO and would like it listed on
|
||||
this page, `please edit this page <https://github.com/platformio/platformio/blob/develop/docs/articles.rst>`_.
|
||||
|
||||
Here are recent articles about PlatformIO:
|
||||
|
||||
* April 17, 2015 - **Michael Ball** - `PlatformIO - A Cross-Platform Code Builder and Missing Library Manager <http://arduino-pi.blogspot.com.es/2015/04/platformio-cross-platform-code-builder.html>`_
|
||||
* March 23, 2015 - **Atmel** - `Cross-board and cross-vendor embedded development with PlatformIO <http://blog.atmel.com/2015/03/23/cross-board-and-cross-vendor-embedded-development-with-platformio/>`_
|
||||
* March 22, 2015 - **Mark VandeWettering** - `Discovered a new tool for embedded development: PlatformIO <http://brainwagon.org/2015/03/22/discovered-a-new-tool-for-embedded-development-platformio/>`_
|
||||
* October 7, 2014 - **Ivan Kravets** - `Integration of PlatformIO library manager to Arduino and Energia IDEs <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_
|
||||
* June 20, 2014 - **Ivan Kravets** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
|
||||
* June 17, 2014 - **Ivan Kravets** - `How was PlatformIO born or why I love Python World <http://www.ikravets.com/computer-life/programming/2014/06/17/how-was-platformio-born-or-why-i-love-python-world>`_
|
||||
@@ -45,7 +45,7 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'PlatformIO'
|
||||
copyright = u'2014, Ivan Kravets'
|
||||
copyright = u'2014-2015, Ivan Kravets'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
@@ -274,4 +274,5 @@ if not on_rtd: # only import and set the theme if we're building docs locally
|
||||
|
||||
# A timeout value, in seconds, for the linkcheck builder
|
||||
# http://sphinx-doc.org/config.html#confval-linkcheck_timeout
|
||||
linkcheck_timeout = 30
|
||||
linkcheck_timeout = 10
|
||||
linkcheck_anchors = False
|
||||
|
||||
120
docs/envvars.rst
Normal file
@@ -0,0 +1,120 @@
|
||||
.. _envvars:
|
||||
|
||||
Environment variables
|
||||
=====================
|
||||
|
||||
`Environment variables <http://en.wikipedia.org/wiki/Environment_variable>`_
|
||||
are a set of dynamic named values that can affect the way running processes
|
||||
will behave on a computer.
|
||||
|
||||
*PlatformIO* handles variables which start with ``PLATFORMIO_`` prefix. They
|
||||
have the **HIGHEST PRIORITY**.
|
||||
|
||||
.. contents::
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
PlatformIO uses *General* environment variables for the common
|
||||
operations/commands.
|
||||
|
||||
.. _envvar_CI:
|
||||
|
||||
CI
|
||||
~~
|
||||
|
||||
PlatformIO handles ``CI`` variable which is setup by
|
||||
`Continuous Integration <http://en.wikipedia.org/wiki/Continuous_integration>`_
|
||||
(Travis, Circle and etc.) systems.
|
||||
Currently, PlatformIO uses it to disable prompts.
|
||||
|
||||
In other words, ``CI=true`` automatically setup
|
||||
:ref:`PLATFORMIO_SETTING_ENABLE_PROMPTS=false <envvar_PLATFORMIO_SETTING_ENABLE_PROMPTS>`.
|
||||
|
||||
.. _envvar_PLATFORMIO_HOME_DIR:
|
||||
|
||||
PLATFORMIO_HOME_DIR
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override :ref:`projectconf` option
|
||||
:ref:`projectconf_pio_home_dir`.
|
||||
|
||||
.. _envvar_PLATFORMIO_LIB_DIR:
|
||||
|
||||
PLATFORMIO_LIB_DIR
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override :ref:`projectconf` option
|
||||
:ref:`projectconf_pio_lib_dir`.
|
||||
|
||||
.. _envvar_PLATFORMIO_SRC_DIR:
|
||||
|
||||
PLATFORMIO_SRC_DIR
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override :ref:`projectconf` option
|
||||
:ref:`projectconf_pio_src_dir`.
|
||||
|
||||
.. _envvar_PLATFORMIO_ENVS_DIR:
|
||||
|
||||
PLATFORMIO_ENVS_DIR
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override :ref:`projectconf` option
|
||||
:ref:`projectconf_pio_envs_dir`.
|
||||
|
||||
|
||||
Builder
|
||||
-------
|
||||
|
||||
.. _envvar_PLATFORMIO_SRCBUILD_FLAGS:
|
||||
|
||||
PLATFORMIO_SRCBUILD_FLAGS
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override :ref:`projectconf` option
|
||||
:ref:`projectconf_srcbuild_flags`.
|
||||
|
||||
Settings
|
||||
--------
|
||||
|
||||
Allows to override PlatformIO settings. You can manage them via
|
||||
:ref:`cmd_settings` command.
|
||||
|
||||
|
||||
PLATFORMIO_SETTING_AUTO_UPDATE_LIBRARIES
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_auto_update_libraries`.
|
||||
|
||||
PLATFORMIO_SETTING_AUTO_UPDATE_PLATFORMS
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_auto_update_platforms`.
|
||||
|
||||
PLATFORMIO_SETTING_CHECK_LIBRARIES_INTERVAL
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_check_libraries_interval`.
|
||||
|
||||
PLATFORMIO_SETTING_CHECK_PLATFORMIO_INTERVAL
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_check_platformio_interval`.
|
||||
|
||||
PLATFORMIO_SETTING_CHECK_PLATFORMS_INTERVAL
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_check_platforms_interval`.
|
||||
|
||||
.. _envvar_PLATFORMIO_SETTING_ENABLE_PROMPTS:
|
||||
|
||||
PLATFORMIO_SETTING_ENABLE_PROMPTS
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_enable_prompts`.
|
||||
|
||||
PLATFORMIO_SETTING_ENABLE_TELEMETRY
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Allows to override setting :ref:`setting_enable_telemetry`.
|
||||
101
docs/faq.rst
Normal file
@@ -0,0 +1,101 @@
|
||||
.. _faq:
|
||||
|
||||
Frequently Asked Questions
|
||||
==========================
|
||||
|
||||
.. contents::
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
.. _faq_what_is_platformio:
|
||||
|
||||
What is PlatformIO?
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
`PlatformIO <http://platformio.org>`_ is a cross-platform code builder
|
||||
and the missing library manager.
|
||||
|
||||
PlatformIO is independent from the platform, in which it is running. In fact,
|
||||
the only requirement is Python, which exists pretty much everywhere. What this
|
||||
means is that PlatformIO projects can be easily moved from one computer to
|
||||
another, as well as that PlatformIO allows for the easy sharing of projects
|
||||
between team members, regardless of operating system they prefer to work with.
|
||||
Beyond that, PlatformIO can be run not only on commonly used desktops/laptops
|
||||
but also on the servers without X Window System. While PlatformIO itself is a
|
||||
console application, it can be used in combination with one's favorite
|
||||
:ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_eclipse`,
|
||||
:ref:`ide_visualstudio`, :ref:`ide_vim`, :ref:`ide_sublimetext`, etc.
|
||||
|
||||
Alright, so PlatformIO can run on different operating systems. But more
|
||||
importantly, from development perspective at least, is a list of supported
|
||||
boards and MCUs. To keep things short: PlatformIO supports over 100
|
||||
:ref:`Embedded Boards <platforms>` and all major
|
||||
:ref:`Development Platforms <platforms>`.
|
||||
|
||||
PlatformIO allows users to:
|
||||
|
||||
* Decide which operation system they want to run development process on.
|
||||
You can even use one OS at home and another at work.
|
||||
* Choose which editor to use for writing the code. It can be pretty simple
|
||||
editor or powerful favorite :ref:`ide`.
|
||||
* Focus on the code development, significantly simplifying support for the
|
||||
:ref:`platforms` and MCUs.
|
||||
|
||||
|
||||
How does it work?
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Without going too deep into PlatformIO implementation details, work cycle of
|
||||
the project developed using PlatformIO is as follows:
|
||||
|
||||
* Users choose board(s) interested in :ref:`projectconf`
|
||||
* Based on this list of boards, PlatformIO downloads required toolchains and
|
||||
installs them automatically.
|
||||
* Users develop code and PlatformIO makes sure that it is compiled, prepared
|
||||
and uploaded to all the boards of interest.
|
||||
|
||||
.. _faq_troubleshooting:
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
.. _faq_troubleshooting_pioblocksprompt:
|
||||
|
||||
PlatformIO blocks command execution using user prompt
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you are going to run *PlatformIO* from **subprocess**, you **MUST
|
||||
DISABLE** all prompts. It will allow you to avoid blocking.
|
||||
There are a few options:
|
||||
|
||||
- using environment variable :ref:`PLATFORMIO_SETTING_ENABLE_PROMPTS=No <envvar_PLATFORMIO_SETTING_ENABLE_PROMPTS>`
|
||||
- disable global setting ``enable_prompts`` via :ref:`cmd_settings` command
|
||||
- masking under Continuous Integration system via environment variable
|
||||
:ref:`CI=true <envvar_CI>`.
|
||||
|
||||
|
||||
Windows: ``UnicodeDecodeError: 'ascii' codec can't decode byte``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Answered in `issue #143 <https://github.com/platformio/platformio/issues/143#issuecomment-88060906>`_.
|
||||
|
||||
Serial does not work with panStampAVR board
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Answered in `issue #144 <https://github.com/platformio/platformio/issues/144#issuecomment-87388038>`_.
|
||||
|
||||
|
||||
PlatformIO: command not found || An error ``pkg_resources.DistributionNotFound``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Please upgrade *SetupTools* package:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ [sudo] pip uninstall setuptools
|
||||
$ [sudo] pip install setuptools
|
||||
|
||||
# Then re-install PlatformIO
|
||||
$ [sudo] pip uninstall platformio
|
||||
$ [sudo] pip install platformio
|
||||
951
docs/frameworks/arduino.rst
Normal file
@@ -0,0 +1,951 @@
|
||||
.. _framework_arduino:
|
||||
|
||||
Framework ``arduino``
|
||||
=====================
|
||||
Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
|
||||
|
||||
For more detailed information please visit `vendor site <http://arduino.cc/en/Reference/HomePage>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_atmelavr`
|
||||
- Atmel AVR 8- and 32-bit MCUs deliver a unique combination of performance, power efficiency and design flexibility. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming.
|
||||
|
||||
* - :ref:`platform_atmelsam`
|
||||
- Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.
|
||||
|
||||
* - :ref:`platform_espressif`
|
||||
- Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
|
||||
|
||||
* - :ref:`platform_teensy`
|
||||
- Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port. No special programmer is needed, only a standard "Mini-B" USB cable and a PC or Macintosh with a USB port.
|
||||
|
||||
* - :ref:`platform_timsp430`
|
||||
- MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit, RISC-based, mixed-signal processors designed for ultra-low power. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
Adafruit
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``flora8``
|
||||
- `Adafruit Flora <http://www.adafruit.com/product/659>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``protrinket3``
|
||||
- `Adafruit Pro Trinket 3V/12MHz (USB) <http://www.adafruit.com/products/2010>`_
|
||||
- ATMEGA328P
|
||||
- 12 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``protrinket3ftdi``
|
||||
- `Adafruit Pro Trinket 3V/12MHz (FTDI) <http://www.adafruit.com/products/2010>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``protrinket5``
|
||||
- `Adafruit Pro Trinket 5V/16MHz (USB) <http://www.adafruit.com/products/2000>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``protrinket5ftdi``
|
||||
- `Adafruit Pro Trinket 5V/16MHz (USB) <http://www.adafruit.com/products/2000>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``trinket3``
|
||||
- `Adafruit Trinket 3V/8MHz <http://www.adafruit.com/products/1500>`_
|
||||
- ATTINY85
|
||||
- 8 MHz
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``trinket5``
|
||||
- `Adafruit Trinket 5V/16MHz <http://www.adafruit.com/products/1501>`_
|
||||
- ATTINY85
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
Arduino
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``LilyPadUSB``
|
||||
- `Arduino LilyPad USB <http://arduino.cc/en/Main/ArduinoBoardLilyPadUSB>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``atmegangatmega168``
|
||||
- `Arduino NG or older ATmega168 <http://arduino.cc/en/main/boards>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``atmegangatmega8``
|
||||
- `Arduino NG or older ATmega8 <http://arduino.cc/en/main/boards>`_
|
||||
- ATMEGA8
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``btatmega168``
|
||||
- `Arduino BT ATmega168 <http://arduino.cc/en/main/boards>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``btatmega328``
|
||||
- `Arduino BT ATmega328 <http://arduino.cc/en/main/boards>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``diecimilaatmega168``
|
||||
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``diecimilaatmega328``
|
||||
- `Arduino Duemilanove or Diecimila ATmega328 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``due``
|
||||
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``dueUSB``
|
||||
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``esplora``
|
||||
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``ethernet``
|
||||
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``fio``
|
||||
- `Arduino Fio <http://arduino.cc/en/Main/ArduinoBoardFio>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``leonardo``
|
||||
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``lilypadatmega168``
|
||||
- `Arduino LilyPad ATmega168 <http://arduino.cc/en/Main/ArduinoBoardLilyPad>`_
|
||||
- ATMEGA168
|
||||
- 8 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``lilypadatmega328``
|
||||
- `Arduino LilyPad ATmega328 <http://arduino.cc/en/Main/ArduinoBoardLilyPad>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``megaADK``
|
||||
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega1280``
|
||||
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_
|
||||
- ATMEGA1280
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``megaatmega2560``
|
||||
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``micro``
|
||||
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``miniatmega168``
|
||||
- `Arduino Mini ATmega168 <http://arduino.cc/en/Main/ArduinoBoardMini>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``miniatmega328``
|
||||
- `Arduino Mini ATmega328 <http://arduino.cc/en/Main/ArduinoBoardMini>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``nanoatmega168``
|
||||
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``nanoatmega328``
|
||||
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``pro16MHzatmega168``
|
||||
- `Arduino Pro or Pro Mini ATmega168 (5V, 16 MHz) <http://arduino.cc/en/Main/ArduinoBoardProMini>`_
|
||||
- ATMEGA168
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``pro16MHzatmega328``
|
||||
- `Arduino Pro or Pro Mini ATmega328 (5V, 16 MHz) <http://arduino.cc/en/Main/ArduinoBoardProMini>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``pro8MHzatmega168``
|
||||
- `Arduino Pro or Pro Mini ATmega168 (3.3V, 8 MHz) <http://arduino.cc/en/Main/ArduinoBoardProMini>`_
|
||||
- ATMEGA168
|
||||
- 8 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``pro8MHzatmega328``
|
||||
- `Arduino Pro or Pro Mini ATmega328 (3.3V, 8 MHz) <http://arduino.cc/en/Main/ArduinoBoardProMini>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``robotControl``
|
||||
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``robotMotor``
|
||||
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``uno``
|
||||
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``yun``
|
||||
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
BQ
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``zumbt328``
|
||||
- `BQ ZUM BT-328 board <http://www.bq.com/gb/products/zum.html>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
BitWizard
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``raspduino``
|
||||
- `BitWizard Raspduino <http://www.bitwizard.nl/wiki/index.php/Raspduino>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
Digistump
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``digispark-pro``
|
||||
- `Digistump Digispark Pro (Default 16 MHz) <http://digistump.com/products/109>`_
|
||||
- ATTINY167
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``digispark-pro32``
|
||||
- `Digistump Digispark Pro (16 MHz) (32 byte buffer) <http://digistump.com/products/109>`_
|
||||
- ATTINY167
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``digispark-pro64``
|
||||
- `Digistump Digispark Pro (16 MHz) (64 byte buffer) <http://digistump.com/products/109>`_
|
||||
- ATTINY167
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``digispark-tiny``
|
||||
- `Digistump Digispark (Default - 16 MHz) <http://digistump.com/products/1>`_
|
||||
- ATTINY85
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``digix``
|
||||
- `Digistump DigiX <http://digistump.com/products/50>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 28 Kb
|
||||
|
||||
Engduino
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``engduinov1``
|
||||
- `Engduino 1 <http://www.engduino.org>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``engduinov2``
|
||||
- `Engduino 2 <http://www.engduino.org>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``engduinov3``
|
||||
- `Engduino 3 <http://www.engduino.org>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
Espressif
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``esp01``
|
||||
- `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_
|
||||
- ESP8266
|
||||
- 80 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
LightUp
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lightup``
|
||||
- `LightUp <https://www.lightup.io/>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
LowPowerLab
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``moteino``
|
||||
- `LowPowerLab Moteino <https://lowpowerlab.com/shop/moteino-r4>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``moteinomega``
|
||||
- `LowPowerLab MoteinoMEGA <http://lowpowerlab.com/blog/2014/08/09/moteinomega-available-now/>`_
|
||||
- ATMEGA1284P
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
Microduino
|
||||
~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``1284p16m``
|
||||
- `Microduino Core+ (ATmega1284P@16M,5V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core%2B>`_
|
||||
- ATMEGA1284P
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``1284p8m``
|
||||
- `Microduino Core+ (ATmega1284P@8M,3.3V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core%2B>`_
|
||||
- ATMEGA1284P
|
||||
- 8 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``168pa16m``
|
||||
- `Microduino Core (Atmega168PA@16M,5V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core>`_
|
||||
- ATMEGA168P
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``168pa8m``
|
||||
- `Microduino Core (Atmega168PA@8M,3.3V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core>`_
|
||||
- ATMEGA168P
|
||||
- 8 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``328p16m``
|
||||
- `Microduino Core (Atmega328P@16M,5V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``328p8m``
|
||||
- `Microduino Core (Atmega328P@8M,3.3V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``32u416m``
|
||||
- `Microduino Core USB (ATmega32U4@16M,5V) <https://www.microduino.cc/wiki/index.php?title=Microduino-CoreUSB>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``644pa16m``
|
||||
- `Microduino Core+ (Atmega644PA@16M,5V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core%2B>`_
|
||||
- ATMEGA644P
|
||||
- 16 MHz
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
* - ``644pa8m``
|
||||
- `Microduino Core+ (Atmega644PA@8M,3.3V) <https://www.microduino.cc/wiki/index.php?title=Microduino-Core%2B>`_
|
||||
- ATMEGA644P
|
||||
- 8 MHz
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
PanStamp
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``panStampAVR``
|
||||
- `PanStamp AVR <http://www.panstamp.com/product/panstamp-avr/>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``panStampNRG``
|
||||
- `PanStamp NRG 1.1 <http://www.panstamp.com/product/197/>`_
|
||||
- CC430F5137
|
||||
- 12 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
Quirkbot
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``quirkbot``
|
||||
- `Quirkbot <http://quirkbot.com>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
RedBearLab
|
||||
~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``blend``
|
||||
- `RedBearLab Blend <http://redbearlab.com/blend/>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``blendmicro16``
|
||||
- `RedBearLab Blend Micro 3.3V/16MHz (overclock) <http://redbearlab.com/blendmicro/>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``blendmicro8``
|
||||
- `RedBearLab Blend Micro 3.3V/8MHz <http://redbearlab.com/blendmicro/>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
RepRap
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``reprap_rambo``
|
||||
- `RepRap RAMBo <http://reprap.org/wiki/Rambo>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
SainSmart
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``sainSmartDue``
|
||||
- `SainSmart Due (Programming Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``sainSmartDueUSB``
|
||||
- `SainSmart Due (USB Native Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Sanguino
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``sanguino_atmega12848m``
|
||||
- `Sanguino ATmega1284p (8MHz) <https://code.google.com/p/sanguino/>`_
|
||||
- ATMEGA1284P
|
||||
- 8 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``sanguino_atmega1284m``
|
||||
- `Sanguino ATmega1284p (20MHz) <https://code.google.com/p/sanguino/>`_
|
||||
- ATMEGA1284P
|
||||
- 20 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``sanguino_atmega1284p``
|
||||
- `Sanguino ATmega1284p (16MHz) <https://code.google.com/p/sanguino/>`_
|
||||
- ATMEGA1284P
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``sanguino_atmega644p``
|
||||
- `Sanguino ATmega644P <https://code.google.com/p/sanguino/>`_
|
||||
- ATMEGA644P
|
||||
- 16 MHz
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
SparkFun
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``sparkfun_digitalsandbox``
|
||||
- `SparkFun Digital Sandbox <https://www.sparkfun.com/products/12651>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``sparkfun_fiov3``
|
||||
- `SparkFun Fio V3 3.3V/8MHz <https://www.sparkfun.com/products/11520>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``sparkfun_makeymakey``
|
||||
- `SparkFun Makey Makey <https://www.sparkfun.com/products/11511>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``sparkfun_megamini``
|
||||
- `SparkFun Mega Pro Mini 3.3V <https://www.sparkfun.com/products/10743>`_
|
||||
- ATMEGA2560
|
||||
- 8 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``sparkfun_megapro16MHz``
|
||||
- `SparkFun Mega Pro 5V/16MHz <https://www.sparkfun.com/products/11007>`_
|
||||
- ATMEGA2560
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``sparkfun_megapro8MHz``
|
||||
- `SparkFun Mega Pro 3.3V/8MHz <https://www.sparkfun.com/products/10744>`_
|
||||
- ATMEGA2560
|
||||
- 8 MHz
|
||||
- 256 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``sparkfun_promicro16``
|
||||
- `SparkFun Pro Micro 5V/16MHz <https://www.sparkfun.com/products/12640>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``sparkfun_promicro8``
|
||||
- `SparkFun Pro Micro 3.3V/8MHz <https://www.sparkfun.com/products/12587>`_
|
||||
- ATMEGA32U4
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``sparkfun_redboard``
|
||||
- `SparkFun RedBoard <https://www.sparkfun.com/products/12757>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``uview``
|
||||
- `SparkFun MicroView <https://www.sparkfun.com/products/12923>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
Teensy
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``teensy20``
|
||||
- `Teensy 2.0 <https://www.pjrc.com/store/teensy.html>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``teensy20pp``
|
||||
- `Teensy++ 2.0 <https://www.pjrc.com/store/teensypp.html>`_
|
||||
- AT90USB1286
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``teensy30``
|
||||
- `Teensy 3.0 <https://www.pjrc.com/store/teensy3.html>`_
|
||||
- MK20DX128
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``teensy31``
|
||||
- `Teensy 3.1 <https://www.pjrc.com/store/teensy31.html>`_
|
||||
- MK20DX256
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``teensylc``
|
||||
- `Teensy LC <http://www.pjrc.com/teensy/teensyLC.html>`_
|
||||
- MKL26Z64
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
TinyCircuits
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``tinyduino``
|
||||
- `TinyCircuits TinyDuino Processor Board <https://tiny-circuits.com/tinyduino-processor-board.html>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
* - ``tinylily``
|
||||
- `TinyCircuits TinyLily Mini Processor <https://tiny-circuits.com/tiny-lily-mini-processor.html>`_
|
||||
- ATMEGA328P
|
||||
- 8 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
WickedDevice
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``wildfirev2``
|
||||
- `WickedDevice WildFire v2 [stk500] <http://shop.wickeddevice.com/resources/wildfire/#arduinoidesetup>`_
|
||||
- ATMEGA1284P
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``wildfirev3``
|
||||
- `WickedDevice WildFire v3 [optiboot] <http://shop.wickeddevice.com/resources/wildfire/>`_
|
||||
- ATMEGA1284P
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
62
docs/frameworks/cmsis.rst
Normal file
@@ -0,0 +1,62 @@
|
||||
.. _framework_cmsis:
|
||||
|
||||
Framework ``cmsis``
|
||||
===================
|
||||
The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_ststm32`
|
||||
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``disco_f303vc``
|
||||
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||
- STM32F303VCT6
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 48 Kb
|
||||
|
||||
* - ``disco_f407vg``
|
||||
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||
- STM32F407VGT6
|
||||
- 168 MHz
|
||||
- 1024 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``disco_l152rb``
|
||||
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
|
||||
- STM32L152RBT6
|
||||
- 32 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
114
docs/frameworks/energia.rst
Normal file
@@ -0,0 +1,114 @@
|
||||
.. _framework_energia:
|
||||
|
||||
Framework ``energia``
|
||||
=====================
|
||||
Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
|
||||
|
||||
For more detailed information please visit `vendor site <http://energia.nu/reference/>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_timsp430`
|
||||
- MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit, RISC-based, mixed-signal processors designed for ultra-low power. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications.
|
||||
|
||||
* - :ref:`platform_titiva`
|
||||
- Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
TI
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lplm4f120h5qr``
|
||||
- `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) <http://www.ti.com/tool/ek-lm4f120xl>`_
|
||||
- LPLM4F120H5QR
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lpmsp430f5529``
|
||||
- `TI LaunchPad w/ msp430f5529 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430f5529_25``
|
||||
- `TI LaunchPad w/ msp430f5529 (25MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529
|
||||
- 25 MHz
|
||||
- 128 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430fr5739``
|
||||
- `TI FraunchPad w/ msp430fr5739 <http://www.ti.com/tool/msp-exp430fr5739>`_
|
||||
- MSP430FR5739
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430fr5969``
|
||||
- `TI LaunchPad w/ msp430fr5969 <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430fr5969.html>`_
|
||||
- MSP430FR5969
|
||||
- 8 MHz
|
||||
- 64 Kb
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430g2231``
|
||||
- `TI LaunchPad w/ msp430g2231 (1 MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2231
|
||||
- 1 MHz
|
||||
- 2 Kb
|
||||
- 0.125 Kb
|
||||
|
||||
* - ``lpmsp430g2452``
|
||||
- `TI LaunchPad w/ msp430g2452 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2452
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.25 Kb
|
||||
|
||||
* - ``lpmsp430g2553``
|
||||
- `TI LaunchPad w/ msp430g2553 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2553
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
* - ``lptm4c1230c3pm``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
|
||||
- LPTM4C1230C3PM
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lptm4c1294ncpdt``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
|
||||
- LPTM4C1294NCPDT
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
14
docs/frameworks/index.rst
Normal file
@@ -0,0 +1,14 @@
|
||||
.. _frameworks:
|
||||
|
||||
Frameworks
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
arduino
|
||||
cmsis
|
||||
energia
|
||||
libopencm3
|
||||
mbed
|
||||
spl
|
||||
99
docs/frameworks/libopencm3.rst
Normal file
@@ -0,0 +1,99 @@
|
||||
.. _framework_libopencm3:
|
||||
|
||||
Framework ``libopencm3``
|
||||
========================
|
||||
The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.libopencm3.org/wiki/Main_Page>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_ststm32`
|
||||
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
|
||||
|
||||
* - :ref:`platform_titiva`
|
||||
- Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``disco_f303vc``
|
||||
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||
- STM32F303VCT6
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 48 Kb
|
||||
|
||||
* - ``disco_f407vg``
|
||||
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||
- STM32F407VGT6
|
||||
- 168 MHz
|
||||
- 1024 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``disco_l152rb``
|
||||
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
|
||||
- STM32L152RBT6
|
||||
- 32 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
TI
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lplm4f120h5qr``
|
||||
- `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) <http://www.ti.com/tool/ek-lm4f120xl>`_
|
||||
- LPLM4F120H5QR
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lptm4c1230c3pm``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
|
||||
- LPTM4C1230C3PM
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lptm4c1294ncpdt``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
|
||||
- LPTM4C1294NCPDT
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
548
docs/frameworks/mbed.rst
Normal file
@@ -0,0 +1,548 @@
|
||||
.. _framework_mbed:
|
||||
|
||||
Framework ``mbed``
|
||||
==================
|
||||
The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
|
||||
|
||||
For more detailed information please visit `vendor site <http://mbed.org/>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_freescalekinetis`
|
||||
- Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.
|
||||
|
||||
* - :ref:`platform_nordicnrf51`
|
||||
- The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.
|
||||
|
||||
* - :ref:`platform_nxplpc`
|
||||
- The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals.
|
||||
|
||||
* - :ref:`platform_ststm32`
|
||||
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
CQ Publishing
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u35_501``
|
||||
- `CQ Publishing TG-LPC11U35-501 <https://developer.mbed.org/platforms/TG-LPC11U35-501/>`_
|
||||
- LPC11U35
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 10 Kb
|
||||
|
||||
Embedded Artists
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u35``
|
||||
- `Embedded Artists LPC11U35 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC11U35/>`_
|
||||
- LPC11U35
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 10 Kb
|
||||
|
||||
* - ``lpc4088``
|
||||
- `Embedded Artists LPC4088 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC4088/>`_
|
||||
- LPC4088
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
* - ``lpc4088_dm``
|
||||
- `Embedded Artists LPC4088 Display Module <https://developer.mbed.org/platforms/EA-LPC4088-Display-Module/>`_
|
||||
- LPC4088
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
Freescale
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``IBMEthernetKit``
|
||||
- `Ethernet IoT Starter Kit <http://developer.mbed.org/platforms/IBMEthernetKit/>`_
|
||||
- MK64FN1M0VLL12
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``frdm_k20d50m``
|
||||
- `Freescale Kinetis FRDM-K20D50M <https://developer.mbed.org/platforms/FRDM-K20D50M/>`_
|
||||
- MK20DX128VLH5
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``frdm_k22f``
|
||||
- `Freescale Kinetis FRDM-K22F <https://developer.mbed.org/platforms/FRDM-K22F/>`_
|
||||
- MK22FN512VLH12
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``frdm_k64f``
|
||||
- `Freescale Kinetis FRDM-K64F <https://developer.mbed.org/platforms/FRDM-K64F/>`_
|
||||
- MK64FN1M0VLL12
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``frdm_kl05z``
|
||||
- `Freescale Kinetis FRDM-KL05Z <https://developer.mbed.org/platforms/FRDM-KL05Z/>`_
|
||||
- MKL05Z32VFM4
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
* - ``frdm_kl25z``
|
||||
- `Freescale Kinetis FRDM-KL25Z <https://developer.mbed.org/platforms/KL25Z/>`_
|
||||
- MKL25Z128VLK4
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``frdm_kl46z``
|
||||
- `Freescale Kinetis FRDM-KL46Z <https://developer.mbed.org/platforms/FRDM-KL46Z/>`_
|
||||
- MKL46Z256VLL4
|
||||
- 48 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
JKSoft
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``wallBotBLE``
|
||||
- `JKSoft Wallbot BLE <https://developer.mbed.org/platforms/JKSoft-Wallbot-BLE/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
NGX Technologies
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``blueboard_lpc11u24``
|
||||
- `NGX Technologies BlueBoard-LPC11U24 <https://developer.mbed.org/platforms/BlueBoard-LPC11U24/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
NXP
|
||||
~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u24``
|
||||
- `NXP mbed LPC11U24 <https://developer.mbed.org/platforms/mbed-LPC11U24/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``lpc1549``
|
||||
- `NXP LPCXpresso1549 <https://developer.mbed.org/platforms/LPCXpresso1549/>`_
|
||||
- LPC1549
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 36 Kb
|
||||
|
||||
* - ``lpc1768``
|
||||
- `NXP mbed LPC1768 <http://developer.mbed.org/platforms/mbed-LPC1768/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Nordic
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``nrf51_dk``
|
||||
- `Nordic nRF51-DK <https://developer.mbed.org/platforms/Nordic-nRF51-DK/>`_
|
||||
- NRF51822
|
||||
- 32 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nrf51_dongle``
|
||||
- `Nordic nRF51-Dongle <https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/>`_
|
||||
- NRF51822
|
||||
- 32 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nrf51_mkit``
|
||||
- `Nordic nRF51822-mKIT <http://developer.mbed.org/platforms/Nordic-nRF51822/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
Outrageous Circuits
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``mbuino``
|
||||
- `Outrageous Circuits mBuino <https://developer.mbed.org/platforms/Outrageous-Circuits-mBuino/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
RedBearLab
|
||||
~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``redBearLab``
|
||||
- `RedBearLab nRF51822 <https://developer.mbed.org/platforms/RedBearLab-nRF51822/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``redBearLabBLENano``
|
||||
- `RedBearLab BLE Nano <https://developer.mbed.org/platforms/RedBearLab-BLE-Nano/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``disco_f051r8``
|
||||
- `ST STM32F0DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215>`_
|
||||
- STM32F051R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``disco_f100rb``
|
||||
- `ST STM32VLDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863>`_
|
||||
- STM32F100RBT6
|
||||
- 24 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``disco_f303vc``
|
||||
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||
- STM32F303VCT6
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 48 Kb
|
||||
|
||||
* - ``disco_f334c8``
|
||||
- `ST 32F3348DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318>`_
|
||||
- STM32F334C8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``disco_f401vc``
|
||||
- `ST 32F401CDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098>`_
|
||||
- STM32F401VCT6
|
||||
- 84 MHz
|
||||
- 256 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``disco_f407vg``
|
||||
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||
- STM32F407VGT6
|
||||
- 168 MHz
|
||||
- 1024 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``disco_f429zi``
|
||||
- `ST 32F429IDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090>`_
|
||||
- STM32F429ZIT6
|
||||
- 180 MHz
|
||||
- 2048 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``nucleo_f030r8``
|
||||
- `ST Nucleo F030R8 <https://developer.mbed.org/platforms/ST-Nucleo-F030R8/>`_
|
||||
- STM32F030R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``nucleo_f070rb``
|
||||
- `ST Nucleo F070RB <https://developer.mbed.org/platforms/ST-Nucleo-F070RB/>`_
|
||||
- STM32F070RBT6
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f072rb``
|
||||
- `ST Nucleo F072RB <https://developer.mbed.org/platforms/ST-Nucleo-F072RB/>`_
|
||||
- STM32F072RBT6
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f091rc``
|
||||
- `ST Nucleo F091RC <https://developer.mbed.org/platforms/ST-Nucleo-F091RC/>`_
|
||||
- STM32F091RCT6
|
||||
- 48 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nucleo_f103rb``
|
||||
- `ST Nucleo F103RB <https://developer.mbed.org/platforms/ST-Nucleo-F103RB/>`_
|
||||
- STM32F103RBT6
|
||||
- 72 MHz
|
||||
- 128 Kb
|
||||
- 20 Kb
|
||||
|
||||
* - ``nucleo_f302r8``
|
||||
- `ST Nucleo F302R8 <https://developer.mbed.org/platforms/ST-Nucleo-F302R8/>`_
|
||||
- STM32F302R8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f303re``
|
||||
- `ST Nucleo F303RE <http://developer.mbed.org/platforms/ST-Nucleo-F303RE/>`_
|
||||
- STM32F303RET6
|
||||
- 72 MHz
|
||||
- 512 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``nucleo_f334r8``
|
||||
- `ST Nucleo F334R8 <https://developer.mbed.org/platforms/ST-Nucleo-F334R8/>`_
|
||||
- STM32F334R8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f401re``
|
||||
- `ST Nucleo F401RE <https://developer.mbed.org/platforms/ST-Nucleo-F401RE/>`_
|
||||
- STM32F401RET6
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
* - ``nucleo_f411re``
|
||||
- `ST Nucleo F411RE <https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
|
||||
- STM32F411RET6
|
||||
- 100 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``nucleo_l053r8``
|
||||
- `ST Nucleo L053R8 <https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
|
||||
- STM32L053R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``nucleo_l152re``
|
||||
- `ST Nucleo L152RE <https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
|
||||
- STM32L152RET6
|
||||
- 32 MHz
|
||||
- 512 Kb
|
||||
- 80 Kb
|
||||
|
||||
SeeedStudio
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``seeedTinyBLE``
|
||||
- `SeeedStudio Seeed Tiny BLE <http://developer.mbed.org/platforms/Seeed-Tiny-BLE/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``seeeduinoArchPro``
|
||||
- `SeeedStudio Seeeduino-Arch-Pro <https://developer.mbed.org/platforms/Seeeduino-Arch-Pro/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Solder Splash Labs
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``dipcortexm0``
|
||||
- `Solder Splash Labs DipCortex M0 <https://developer.mbed.org/platforms/DipCortex-M0/>`_
|
||||
- LPC11U24
|
||||
- 50 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
Switch Science
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``hrm1017``
|
||||
- `Switch Science mbed HRM1017 <https://developer.mbed.org/platforms/mbed-HRM1017/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``lpc1114fn28``
|
||||
- `Switch Science mbed LPC1114FN28 <https://developer.mbed.org/platforms/LPC1114FN28/>`_
|
||||
- LPC1114FN28
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
u-blox
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``ubloxc027``
|
||||
- `u-blox C027 <https://developer.mbed.org/platforms/u-blox-C027/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
62
docs/frameworks/spl.rst
Normal file
@@ -0,0 +1,62 @@
|
||||
.. _framework_spl:
|
||||
|
||||
Framework ``spl``
|
||||
=================
|
||||
The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family. The idea is to save the user (the new user, in particular) having to deal directly with the registers.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743?sc=stm32embeddedsoftware>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Platforms
|
||||
---------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`platform_ststm32`
|
||||
- The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by horizontal.
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``disco_f303vc``
|
||||
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||
- STM32F303VCT6
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 48 Kb
|
||||
|
||||
* - ``disco_f407vg``
|
||||
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||
- STM32F407VGT6
|
||||
- 168 MHz
|
||||
- 1024 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``disco_l152rb``
|
||||
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
|
||||
- STM32L152RBT6
|
||||
- 32 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
40
docs/ide.rst
@@ -3,35 +3,13 @@
|
||||
IDE Integration
|
||||
===============
|
||||
|
||||
Eclipse
|
||||
-------
|
||||
`Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
|
||||
VIM
|
||||
---
|
||||
|
||||
Recommended bundles:
|
||||
|
||||
* Syntax highlight - `Arduino-syntax-file <https://github.com/vim-scripts/Arduino-syntax-file>`_
|
||||
* Code Completion - `YouCompleteMe <https://github.com/Valloric/YouCompleteMe>`_
|
||||
* Syntax checking - `Syntastic <https://github.com/scrooloose/syntastic>`_
|
||||
|
||||
Put to the project directory ``Makefile`` wrapper with contents:
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
# Uncomment lines below if you have problems with $PATH
|
||||
#SHELL := /bin/bash
|
||||
#PATH := /usr/local/bin:$(PATH)
|
||||
|
||||
all:
|
||||
platformio run -t upload
|
||||
|
||||
clean:
|
||||
platformio run -t clean
|
||||
|
||||
|
||||
Now, in VIM ``cd /path/to/this/project`` and press ``Ctrl+B`` or ``Cmd+B``
|
||||
(Mac). *PlatformIO* should compile your source code from the ``src`` directory,
|
||||
make firmware and upload it.
|
||||
ide/arduino
|
||||
ide/eclipse
|
||||
ide/energia
|
||||
ide/qtcreator
|
||||
ide/sublimetext
|
||||
ide/vim
|
||||
ide/visualstudio
|
||||
|
||||
31
docs/ide/arduino.rst
Normal file
@@ -0,0 +1,31 @@
|
||||
.. _ide_arduino:
|
||||
|
||||
Arduino
|
||||
=======
|
||||
|
||||
The open-source `Arduino Software (IDE) <http://arduino.cc/en/main/software>`_
|
||||
makes it easy to write code and upload it to the board. It runs on *Windows,
|
||||
Mac OS X, and Linux*. The environment is written in *Java* and based on
|
||||
*Processing* and other open-source software.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* :ref:`platform_atmelavr`
|
||||
* :ref:`platform_atmelsam`
|
||||
* :ref:`framework_arduino`
|
||||
|
||||
Refer to the `Arduino Getting Started <http://arduino.cc/en/Guide/HomePage>`_
|
||||
page for Installation instructions.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
More detailed information is located in PlatformIO blog:
|
||||
`Integration of PlatformIO library manager to Arduino IDE <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_.
|
||||
|
||||
|
||||
Screenshot
|
||||
----------
|
||||
|
||||
.. image:: ../_static/ide-platformio-arduino.png
|
||||
:target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides
|
||||
35
docs/ide/eclipse.rst
Normal file
@@ -0,0 +1,35 @@
|
||||
.. _ide_eclipse:
|
||||
|
||||
Eclipse
|
||||
=======
|
||||
|
||||
The `Eclipse CDT (C/C++ Development Tooling) <https://eclipse.org/cdt/>`_
|
||||
Project provides a fully functional C and C++ Integrated Development
|
||||
Environment based on the Eclipse platform. Features include: support for
|
||||
project creation and managed build for various toolchains, standard make
|
||||
build, source navigation, various source knowledge tools, such as type
|
||||
hierarchy, call graph, include browser, macro definition browser, code editor
|
||||
with syntax highlighting, folding and hyperlink navigation, source code
|
||||
refactoring and code generation, visual debugging tools, including memory,
|
||||
registers, and disassembly viewers.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* all availalbe :ref:`platforms`
|
||||
* all availalbe :ref:`frameworks`
|
||||
|
||||
Refer to the `CDT Documentation <https://eclipse.org/cdt/documentation.php>`_
|
||||
page for more detailed information.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
More detailed information is located in PlatformIO blog: `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_.
|
||||
|
||||
`More examples (TI MSP430, TI TIVA, etc.) <https://github.com/platformio/platformio/tree/develop/examples/ide-eclipse>`_
|
||||
|
||||
Screenshot
|
||||
----------
|
||||
|
||||
.. image:: ../_static/ide-platformio-eclipse.png
|
||||
:target: http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using- eclipse-ideplatformio
|
||||
30
docs/ide/energia.rst
Normal file
@@ -0,0 +1,30 @@
|
||||
.. _ide_energia:
|
||||
|
||||
Energia
|
||||
=======
|
||||
|
||||
The open-source `Energia Software (IDE) <http://energia.nu>`_
|
||||
makes it easy to write code and upload it to the board. It runs on *Windows,
|
||||
Mac OS X, and Linux*. The environment is written in *Java* and based on
|
||||
*Processing* and other open-source software.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* :ref:`platform_timsp430`
|
||||
* :ref:`platform_titiva`
|
||||
* :ref:`framework_energia`
|
||||
|
||||
Refer to the `Energia Getting Started <http://energia.nu/guide/>`_
|
||||
page for Installation instructions.
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
More detailed information is located in PlatformIO blog:
|
||||
`Integration of PlatformIO library manager to Energia IDE <http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides>`_.
|
||||
|
||||
Screenshot
|
||||
-----------
|
||||
|
||||
.. image:: ../_static/ide-platformio-energia.png
|
||||
:target: http://www.ikravets.com/computer-life/platformio/2014/10/07/integration-of-platformio-library-manager-to-arduino-and-energia-ides
|
||||
113
docs/ide/qtcreator.rst
Normal file
@@ -0,0 +1,113 @@
|
||||
.. _ide_qtcreator:
|
||||
|
||||
Qt Creator
|
||||
==========
|
||||
|
||||
The `Qt Creator <https://github.com/qtproject/qt-creator>`_ is an open source cross-platform integrated development environment. The editor includes such features as syntax highlighting for various languages, project manager, integrated version control systems, rapid code navigation tools and code autocompletion.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* all availalbe :ref:`platforms`
|
||||
* all availalbe :ref:`frameworks`
|
||||
|
||||
Refer to the `Sublime Text Documentation <http://doc.qt.io/qtcreator/>`_
|
||||
page for more detailed information.
|
||||
|
||||
.. contents::
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Setup New Project
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
First of all, let's create new project from Qt Creator Start Page: ``New Project`` or using ``Menu: File → New File or Project``, then select project with ``Empty Qt Project`` type (``Other Project → Empty Qt Project``), fill ``Name``, ``Create in``.
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-1.png
|
||||
|
||||
On the next steps select any available kit and click Finish button.
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-2.png
|
||||
|
||||
Secondly, we need to configure project with PlatformIO source code builder (click on Projects label on left menu or ``Ctrl+5`` shortcut):
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-3.png
|
||||
|
||||
Thirdly, we need to add directories with header files using project file. Please fill this file with the next contents:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
win32 {
|
||||
HOMEDIR += $$(USERPROFILE)
|
||||
}
|
||||
else {
|
||||
HOMEDIR += $$(PWD)
|
||||
}
|
||||
|
||||
INCLUDEPATH += "$$HOMEDIR/.platformio/packages/framework-arduinoavr/cores/arduino"
|
||||
INCLUDEPATH += "$$HOMEDIR/.platformio/packages/toolchain-atmelavr/avr/include"
|
||||
|
||||
win32:INCLUDEPATH ~= s,/,\\,g
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-4.png
|
||||
|
||||
First program in Qt Creator
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Simple "Blink" project will consist from two files:
|
||||
|
||||
1. Main "C" source file named ``main.c`` must be located in the ``src`` directory.
|
||||
Let's create new text file named ``main.c`` using ``Menu: New File or Project → General → Text File``:
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-5.png
|
||||
|
||||
Copy the source code which is described below to file ``main.c``.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
#include "Arduino.h"
|
||||
#define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on the board itself
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(WLED, OUTPUT); // set pin as output
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
digitalWrite(WLED, HIGH); // set the LED on
|
||||
delay(1000); // wait for a second
|
||||
digitalWrite(WLED, LOW); // set the LED off
|
||||
delay(1000); // wait for a second
|
||||
}
|
||||
|
||||
2. Project Configuration File named ``platformio.ini`` must be located in the project root directory.
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-6.png
|
||||
|
||||
Copy the source code which is described below to it.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#
|
||||
# Project Configuration File
|
||||
#
|
||||
# A detailed documentation with the EXAMPLES is located here:
|
||||
# http://docs.platformio.org/en/latest/projectconf.html
|
||||
#
|
||||
|
||||
# A sign `#` at the beginning of the line indicates a comment
|
||||
# Comment lines are ignored.
|
||||
|
||||
[env:arduino_uno]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = uno
|
||||
|
||||
|
||||
Conclusion
|
||||
----------
|
||||
|
||||
Taking everything into account, we can build project with shortcut ``Ctrl+Shift+B`` or using ``Menu: Build → Build All``:
|
||||
|
||||
.. image:: ../_static/ide-platformio-qtcreator-7.png
|
||||
129
docs/ide/sublimetext.rst
Normal file
@@ -0,0 +1,129 @@
|
||||
.. _ide_sublimetext:
|
||||
|
||||
Sublime Text
|
||||
============
|
||||
|
||||
The `Sublime Text <http://www.sublimetext.com/>`_ is a cross-platform text and source code editor, with a Python application programming interface (API). Sublime Text is proprietary software. Its functionality is extendable with plugins. Most of the extending packages have free-software licenses and are community-built and maintained. Sublime Text lacks graphical setting dialogues and is entirely configured by editing text files.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* all availalbe :ref:`platforms`
|
||||
* all availalbe :ref:`frameworks`
|
||||
|
||||
Refer to the `Sublime Text Documentation <http://docs.sublimetext.info/en/latest>`_
|
||||
page for more detailed information.
|
||||
|
||||
.. contents::
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Initial configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
First of all, we need to create "New Build System" with name "PlatformIO"
|
||||
from ``Menu: Tools → Build System → New Build System`` and fill it like
|
||||
described below:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
{
|
||||
"cmd": ["platformio", "run"],
|
||||
"working_dir": "${project_path:${folder}}",
|
||||
"variants":
|
||||
[
|
||||
{
|
||||
"name": "Clean",
|
||||
"cmd": ["platformio", "run", "-t", "clean"]
|
||||
},
|
||||
{
|
||||
"name": "Upload",
|
||||
"cmd": ["platformio", "run", "-t", "upload"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Secondly, we need to select "PlatformIO" Build System from a list:
|
||||
|
||||
.. image:: ../_static/ide-sublime-text-platformio-newproject-2.png
|
||||
|
||||
After that, we can use the necessary commands from
|
||||
``Menu: Tools → Command Palette`` or with ``Ctrl+Shift+P`` (Windows/Linux)
|
||||
``Cmd+Shift+P`` (Mac) shortcut.
|
||||
|
||||
.. image:: ../_static/ide-sublime-text-platformio-newproject-3.png
|
||||
|
||||
Command Hotkeys
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Sublime Text allows to bind own hotkey per command. Let's setup them
|
||||
for PlatformIO commands using shortcut ``Menu: Preferences → Key-Bindings - User``:
|
||||
|
||||
.. image:: ../_static/ide-sublime-text-platformio-newproject-4.png
|
||||
|
||||
We are going to use these shortcuts:
|
||||
|
||||
* ``F11`` for clean project
|
||||
* ``F12`` for upload firmware to target device
|
||||
|
||||
In this case, the final code will look like:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[
|
||||
{ "keys": ["f11"], "command": "build", "args": {"variant": "Clean"} },
|
||||
{ "keys": ["f12"], "command": "build", "args": {"variant": "Upload"} }
|
||||
]
|
||||
|
||||
First program in Sublime Text
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Simple "Blink" project will consist from two files:
|
||||
|
||||
1. Main "C" source file named ``main.c`` must be located in the ``src`` directory.
|
||||
Let's create new file named ``main.c`` using ``Menu: File → New File`` or shortcut ``Ctrl+N`` (Windows/Linux) ``Cmd+N`` (Mac) with the next contents:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
#include "Arduino.h"
|
||||
#define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on the board itself
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(WLED, OUTPUT); // set pin as output
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
digitalWrite(WLED, HIGH); // set the LED on
|
||||
delay(1000); // wait for a second
|
||||
digitalWrite(WLED, LOW); // set the LED off
|
||||
delay(1000); // wait for a second
|
||||
}
|
||||
|
||||
2. Project Configuration File named ``platformio.ini`` must be located in the project root directory.
|
||||
Copy the source code which is described below to it.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#
|
||||
# Project Configuration File
|
||||
#
|
||||
# A detailed documentation with the EXAMPLES is located here:
|
||||
# http://docs.platformio.org/en/latest/projectconf.html
|
||||
#
|
||||
|
||||
# A sign `#` at the beginning of the line indicates a comment
|
||||
# Comment lines are ignored.
|
||||
|
||||
[env:arduino_uno]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = uno
|
||||
|
||||
Conclusion
|
||||
----------
|
||||
|
||||
Taking everything into account, we can open project directory in Sublime Text using ``Menu: File → Open Folder`` and build it with shortcut ``Ctrl+B`` (Windows/Linux) or ``Cmd+B`` (Mac), clean project with shortcut ``F11`` and upload firmware to target with shortcut ``F12``.
|
||||
|
||||
.. image:: ../_static/ide-sublime-text-platformio-newproject-5.png
|
||||
46
docs/ide/vim.rst
Normal file
@@ -0,0 +1,46 @@
|
||||
.. _ide_vim:
|
||||
|
||||
VIM
|
||||
===
|
||||
|
||||
`VIM <http://www.vim.org/>`_ is an open-source, powerful and configurable text
|
||||
editor. Vim is designed for use both from a command-line interface and as a
|
||||
standalone application in a graphical user interface.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* all availalbe :ref:`platforms`
|
||||
* all availalbe :ref:`frameworks`
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Recommended bundles:
|
||||
|
||||
* Syntax highlight - `Arduino-syntax-file <https://github.com/vim-scripts/Arduino-syntax-file>`_
|
||||
* Code Completion - `YouCompleteMe <https://github.com/Valloric/YouCompleteMe>`_ (see configuration example by **Anthony Ford** `PlatformIO/YouCompleteMe Integration <https://gist.github.com/ajford/f551b2b6fd4d6b6e1ef2>`_)
|
||||
* Syntax checking - `Syntastic <https://github.com/scrooloose/syntastic>`_
|
||||
|
||||
Put to the project directory ``Makefile`` wrapper with contents:
|
||||
|
||||
.. code-block:: make
|
||||
|
||||
# Uncomment lines below if you have problems with $PATH
|
||||
#SHELL := /bin/bash
|
||||
#PATH := /usr/local/bin:$(PATH)
|
||||
|
||||
all:
|
||||
platformio run -t upload
|
||||
|
||||
clean:
|
||||
platformio run -t clean
|
||||
|
||||
|
||||
Now, in VIM ``cd /path/to/this/project`` and press ``Ctrl+B`` or ``Cmd+B``
|
||||
(Mac). *PlatformIO* should compile your source code from the ``src`` directory,
|
||||
make firmware and upload it.
|
||||
|
||||
Screenshot
|
||||
----------
|
||||
|
||||
.. image:: ../_static/ide-platformio-vim.png
|
||||
108
docs/ide/visualstudio.rst
Normal file
@@ -0,0 +1,108 @@
|
||||
.. _ide_visualstudio:
|
||||
|
||||
Visual Studio
|
||||
=============
|
||||
|
||||
The `Microsoft Visual Studio (Free) <http://visualstudio.com/free>`_ is an integrated development environment (IDE) from Microsoft. Visual Studio includes a code editor supporting IntelliSense (the code completion component) as well as code refactoring.
|
||||
|
||||
This software can be used with:
|
||||
|
||||
* all availalbe :ref:`platforms`
|
||||
* all availalbe :ref:`frameworks`
|
||||
|
||||
Refer to the `Visual Studio Documentation <https://msdn.microsoft.com/library/vstudio>`_
|
||||
page for more detailed information.
|
||||
|
||||
.. contents::
|
||||
|
||||
Integration
|
||||
-----------
|
||||
|
||||
Setup New Project
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
First of all, let's create new project from Visual Studio Start Page: ``Start → New Project`` or using ``Menu: File → New → Project``, then select project with ``Makefile`` type (``Visual C++ → General → Makefile Project``), fill ``Project name``, ``Solution name``, ``Location`` fields and press OK button.
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject.png
|
||||
|
||||
Secondly, we need to configure project with PlatformIO source code builder:
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-2.png
|
||||
|
||||
If we want to use native AVR programming, we have to specify additional preprocessor symbol ("Preprocessor definitions" field) about your MCU. For example, an Arduino Uno is based on the ATmega328 MCU. In this case We will add new definition ``__AVR_ATmega328__``.
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-2-1.png
|
||||
|
||||
Release Configuration is the same as Debug, so on the next step we check "Same as Debug Configuration" and click "Finish" button.
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-3.png
|
||||
|
||||
Thirdly, we need to add directories with header files using project properties (right click on the project name or ``Alt-Enter`` shortcut) and add two directories to ``Configuration Properties → NMake → Include Search Path``:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$(HOMEDRIVE)$(HOMEPATH)\.platformio\packages\toolchain-atmelavr\avr\include
|
||||
$(HOMEDRIVE)$(HOMEPATH)\.platformio\packages\framework-arduinoavr\cores\arduino
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-5.png
|
||||
|
||||
First program in Visual Studio
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Simple "Blink" project will consist from two files:
|
||||
|
||||
1. Main "C" source file named ``main.c`` must be located in the ``src`` directory.
|
||||
Let's create new file named ``main.c`` using ``Menu: File → New File`` or shortcut ``Ctrl+N``:
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-6.png
|
||||
|
||||
Copy the source code which is described below to file ``main.c``.
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
#include "Arduino.h"
|
||||
#define WLED 13 // Most Arduino boards already have an LED attached to pin 13 on the board itself
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(WLED, OUTPUT); // set pin as output
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
digitalWrite(WLED, HIGH); // set the LED on
|
||||
delay(1000); // wait for a second
|
||||
digitalWrite(WLED, LOW); // set the LED off
|
||||
delay(1000); // wait for a second
|
||||
}
|
||||
|
||||
2. Project Configuration File named ``platformio.ini`` must be located in the project root directory.
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-7.png
|
||||
|
||||
Copy the source code which is described below to it.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#
|
||||
# Project Configuration File
|
||||
#
|
||||
# A detailed documentation with the EXAMPLES is located here:
|
||||
# http://docs.platformio.org/en/latest/projectconf.html
|
||||
#
|
||||
|
||||
# A sign `#` at the beginning of the line indicates a comment
|
||||
# Comment lines are ignored.
|
||||
|
||||
[env:arduino_uno]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = uno
|
||||
|
||||
|
||||
Conclusion
|
||||
----------
|
||||
|
||||
Taking everything into account, we can build project with shortcut ``Ctrl+Shift+B`` or using ``Menu: Build → Build Solution``:
|
||||
|
||||
.. image:: ../_static/ide-vs-platformio-newproject-8.png
|
||||
@@ -1,36 +1,52 @@
|
||||
PlatformIO: A cross-platform code builder and library manager
|
||||
=============================================================
|
||||
PlatformIO: A cross-platform code builder and the missing library manager
|
||||
=========================================================================
|
||||
|
||||
`Website + Library Search <http://platformio.ikravets.com>`_ |
|
||||
`Project Examples <https://github.com/ivankravets/platformio/tree/develop/examples>`_ |
|
||||
`Source Code <https://github.com/ivankravets/platformio>`_ |
|
||||
`Bugs/Questions <https://github.com/ivankravets/platformio/issues>`_ |
|
||||
`Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
|
||||
`Twitter <https://twitter.com/smartanthill>`_
|
||||
*Atmel AVR & SAM, Freescale Kinetis, Nordic nRF51, NXP LPC, ST STM32,
|
||||
TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.*
|
||||
|
||||
You have no need to install any *IDE* or compile any tool chains. *PlatformIO*
|
||||
has pre-built different development platforms including: compiler, debugger,
|
||||
uploader (for embedded) and many other useful tools.
|
||||
.. image:: _static/platformio-logo.png
|
||||
:target: http://platformio.org
|
||||
|
||||
**PlatformIO** allows developer to compile the same code with different
|
||||
platforms using only one command :ref:`cmd_run`. This happens due to
|
||||
:ref:`projectconf` where you can setup different environments with specific
|
||||
options: platform type, firmware uploading settings, pre-built framework
|
||||
and many more.
|
||||
* `Website <http://platformio.org>`_
|
||||
* `Web 2.0 Library Search <http://platformio.org/#!/lib>`_ |
|
||||
`Embedded Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* `Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_
|
||||
* `Source Code <https://github.com/platformio/platformio>`_ |
|
||||
`Issues <https://github.com/platformio/platformio/issues>`_
|
||||
* `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
|
||||
`Reddit <http://www.reddit.com/r/platformio/>`_ |
|
||||
`Twitter <https://twitter.com/PlatformIO_Org>`_
|
||||
|
||||
Each platform consists of packages which are located in own repository.
|
||||
Due to :ref:`cmd_update` command you will have up-to-date development
|
||||
instruments.
|
||||
You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO*
|
||||
has pre-built different development platforms and pre-configured settings for
|
||||
the most popular embedded boards. For further details, please
|
||||
refer to :ref:`faq_what_is_platformio`
|
||||
|
||||
**PlatformIO** is well suited for **embedded development**. It can:
|
||||
Embedded Development. *Easier Than Ever.*
|
||||
-----------------------------------------
|
||||
|
||||
* Automatically analyse dependency
|
||||
* Reliably detect build changes
|
||||
* Build framework or library source code to static library
|
||||
* Build *ELF* (executable and linkable firmware)
|
||||
* Convert *ELF* to *HEX* or *BIN* file
|
||||
* Extract *EEPROM* data
|
||||
* Upload firmware to your device
|
||||
* Colourful command-line output
|
||||
* Built-in :ref:`Serial Port Monitor <cmd_serialports_monitor>`
|
||||
* Configurable build :ref:`-flags/-options <projectconf_build_flags>`
|
||||
* Integration with :ref:`development environments (IDE) <ide>`
|
||||
* Pre-built tool chains, :ref:`frameworks` for the popular Hardware Platforms
|
||||
|
||||
Smart Code Builder. *Fast and Reliable.*
|
||||
----------------------------------------
|
||||
|
||||
* Reliable, automatic dependency analysis and detection of build changes
|
||||
* Improved support for parallel builds
|
||||
* Ability to share built files in a cache
|
||||
* Lookup for external libraries which are installed via :ref:`librarymanager`
|
||||
|
||||
The Missing Library Manager. *It's here!*
|
||||
-----------------------------------------
|
||||
|
||||
* Friendly Command-Line Interface
|
||||
* Modern `Web 2.0 Library Search <http://platformio.org/#!/lib>`_
|
||||
* Library dependency management
|
||||
* Automatic library updating
|
||||
* It runs on Windows, Mac OS X, and Linux (+ARM).
|
||||
|
||||
|
||||
Contents
|
||||
@@ -42,8 +58,12 @@ Contents
|
||||
quickstart
|
||||
installation
|
||||
projectconf
|
||||
platforms/index
|
||||
envvars
|
||||
Platforms & Boards <platforms/index>
|
||||
frameworks/index
|
||||
librarymanager/index
|
||||
userguide/index
|
||||
ide
|
||||
articles
|
||||
FAQ <faq>
|
||||
history
|
||||
|
||||
@@ -3,31 +3,69 @@
|
||||
Installation
|
||||
============
|
||||
|
||||
*PlatformIO* is written in `Python <https://www.python.org>`_ and works with
|
||||
versions 2.6 and 2.7 on Unix/Linux, OS X, Windows and Credit-card ARM-based
|
||||
computers (Raspberry Pi).
|
||||
**PlatformIO** is written in `Python <https://www.python.org/downloads/>`_ and
|
||||
works on Mac OS X, Linux, Windows OS and *ARM*-based credit-card sized
|
||||
computers (`Raspberry Pi <http://www.raspberrypi.org>`_,
|
||||
`BeagleBone <http://beagleboard.org>`_,
|
||||
`CubieBoard <http://cubieboard.org>`_).
|
||||
|
||||
.. contents::
|
||||
|
||||
System requirements
|
||||
-------------------
|
||||
|
||||
* **Operating systems:**
|
||||
* Mac OS X
|
||||
* Linux, +ARM
|
||||
* Windows
|
||||
* `Python 2.6 or Python 2.7 <https://www.python.org/downloads/>`_
|
||||
|
||||
All commands below should be executed in
|
||||
`Command-line <http://en.wikipedia.org/wiki/Command-line_interface>`_
|
||||
application in your *OS*:
|
||||
application:
|
||||
|
||||
* *Unix/Linux/OS X* this is *Terminal* application.
|
||||
* *Mac OS X / Linux* this is *Terminal* application.
|
||||
* *Windows* this is
|
||||
`Command Prompt <http://en.wikipedia.org/wiki/Command_Prompt>`_ (``cmd.exe``)
|
||||
application.
|
||||
|
||||
.. warning::
|
||||
If you are going to run *PlatformIO* from **subprocess**, you
|
||||
:ref:`MUST DISABLE <faq_troubleshooting_pioblocksprompt>` all prompts.
|
||||
It will allow you to avoid blocking.
|
||||
|
||||
Super-Quick
|
||||
-----------
|
||||
|
||||
To install or upgrade *PlatformIO*, download
|
||||
`get-platformio.py <https://raw.githubusercontent.com/ivankravets/platformio/develop/scripts/get-platformio.py>`_ script.
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
Then run the following (which may require administrator access):
|
||||
For further details, frequently questions, please refer to :ref:`faq`.
|
||||
|
||||
Installation Methods
|
||||
--------------------
|
||||
|
||||
Please *choose one of* the following installation methods:
|
||||
|
||||
Super-Quick (Mac / Linux)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To install or upgrade *PlatformIO* paste that at a *Terminal* prompt
|
||||
(**you might need** to run ``sudo`` first):
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ [sudo] python get-platformio.py
|
||||
python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
|
||||
|
||||
|
||||
Installer Script (Mac / Linux / Windows)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To install or upgrade *PlatformIO*, download
|
||||
`get-platformio.py <https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py>`_
|
||||
script. Then run the following (you might need to run ``sudo`` first):
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
python get-platformio.py
|
||||
|
||||
|
||||
On *Windows OS* it may look like:
|
||||
@@ -36,16 +74,8 @@ On *Windows OS* it may look like:
|
||||
|
||||
C:\Python27\python.exe get-platformio.py
|
||||
|
||||
.. warning::
|
||||
**Mac OS Users**: If you have an error ``pkg_resources.DistributionNotFound`` please
|
||||
upgrade *SetupTools* package: ``$ [sudo] pip uninstall setuptools``
|
||||
and ``$ [sudo] pip install setuptools``.
|
||||
Then re-install *PlatformIO*: ``$ [sudo] pip uninstall platformio``
|
||||
and ``$ [sudo] pip install platformio``.
|
||||
|
||||
|
||||
Full Guide
|
||||
----------
|
||||
~~~~~~~~~~
|
||||
|
||||
1. Check a ``python`` version (only 2.6-2.7 is supported):
|
||||
|
||||
@@ -86,3 +116,24 @@ For upgrading the ``platformio`` to new version please use this command:
|
||||
$ pip install -U platformio
|
||||
|
||||
|
||||
Development Version
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. warning::
|
||||
We don't recommend to use ``develop`` version in production.
|
||||
|
||||
1. If you had have already installed PlatformIO, please uninstall it:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip uninstall platformio
|
||||
|
||||
2. Install the latest PlatformIO from the ``develop`` branch:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install https://github.com/platformio/platformio/archive/develop.zip
|
||||
|
||||
If you want to be up-to-date with the latest ``develop`` version of PlatformIO,
|
||||
then you need to perform step #2 each time if you see the new commits in
|
||||
`PlatformIO GitHub repository <https://github.com/platformio/platformio/commits/develop>`_.
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
.. |PIOAPICR| replace:: *PlatformIO Library Registry Crawler*
|
||||
.. _library_config:
|
||||
|
||||
library.json
|
||||
============
|
||||
|
||||
*PlatformIO*-suitable library should be defined by a manifest file
|
||||
``library.json`` in a `JSON-style <http://en.wikipedia.org/wiki/JSON>`_.
|
||||
A data in ``library.json`` should be represented via
|
||||
`associative array <http://en.wikipedia.org/wiki/Associative_array>`_
|
||||
(name/value pairs). An order doesn't matter.
|
||||
``library.json`` is a manifest file of development library.
|
||||
|
||||
The allowable fields (names from pairs) are described below. The fields
|
||||
(:ref:`libjson_name`, :ref:`libjson_description` and :ref:`libjson_keywords`)
|
||||
will be displayed in the search results at the :ref:`cmd_lib_search` (*CLI*)
|
||||
and at the *WebSite*. Also, they can be used for searching for libraries.
|
||||
Initially it was
|
||||
developed for :ref:`librarymanager`, but later was accepted by worldwide embedded
|
||||
community like a **standard library specification**.
|
||||
|
||||
A data in ``library.json`` should be represented
|
||||
in `JSON-style <http://en.wikipedia.org/wiki/JSON>`_ via
|
||||
`associative array <http://en.wikipedia.org/wiki/Associative_array>`_
|
||||
(name/value pairs). An order doesn't matter. The allowable fields
|
||||
(names from pairs) are described below.
|
||||
|
||||
.. contents::
|
||||
|
||||
@@ -60,6 +62,89 @@ start/end with them). A list from the keywords can be specified with
|
||||
separator ``,``
|
||||
|
||||
|
||||
.. _libjson_authors:
|
||||
|
||||
``authors``
|
||||
-----------
|
||||
|
||||
*Required* if :ref:`libjson_repository` field is not defined | Type: ``Object``
|
||||
or ``Array``
|
||||
|
||||
An author contact information
|
||||
|
||||
* ``name`` Full name (**Required**)
|
||||
* ``email``
|
||||
* ``url`` An author's contact page
|
||||
* ``maintainer`` Specify "maintainer" status
|
||||
|
||||
Examples:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
"authors":
|
||||
{
|
||||
"name": "John Smith",
|
||||
"email": "me@john-smith.com",
|
||||
"url": "http://www.john-smith/contact"
|
||||
}
|
||||
|
||||
...
|
||||
|
||||
"authors":
|
||||
[
|
||||
{
|
||||
"name": "John Smith",
|
||||
"email": "me@john-smith.com",
|
||||
"url": "http://www.john-smith/contact"
|
||||
},
|
||||
{
|
||||
"name": "Andrew Smith",
|
||||
"email": "me@andrew-smith.com",
|
||||
"url": "http://www.andrew-smith/contact",
|
||||
"maintainer": true
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
.. note::
|
||||
You can omit :ref:`libjson_authors` field and define
|
||||
:ref:`libjson_repository` field. Only *GitHub-based* repository is
|
||||
supported now. In this case
|
||||
|PIOAPICR| will use information from
|
||||
`GitHub API Users <https://developer.github.com/v3/users/>`_.
|
||||
|
||||
|
||||
.. _libjson_repository:
|
||||
|
||||
``repository``
|
||||
--------------
|
||||
|
||||
*Required* if :ref:`libjson_downloadurl` field is not defined | Type: ``Object``
|
||||
|
||||
The repository in which the source code can be found.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
"repository":
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/foo/bar.git"
|
||||
}
|
||||
|
||||
|
||||
.. _libjson_downloadurl:
|
||||
|
||||
``downloadUrl``
|
||||
---------------
|
||||
|
||||
*Required* if :ref:`libjson_repository` field is not defined | Type: ``String``
|
||||
|
||||
It is the *HTTP URL* to the archived source code of library. It should end
|
||||
with the type of archive (``.zip`` or ``.tar.gz``).
|
||||
|
||||
|
||||
.. _libjson_version:
|
||||
|
||||
``version``
|
||||
@@ -79,70 +164,17 @@ A version of the current library source code.
|
||||
.. note::
|
||||
You can omit :ref:`libjson_version` field and define
|
||||
:ref:`libjson_repository` field. In this case
|
||||
*PlatformIO-API Crawler* will use the *CVS*-revision from the latest commit.
|
||||
|PIOAPICR| will use the *CVS*-revision from the latest commit.
|
||||
|
||||
|
||||
.. _libjson_author:
|
||||
.. _libjson_url:
|
||||
|
||||
``author``
|
||||
----------
|
||||
``url``
|
||||
-------
|
||||
|
||||
*Required* if :ref:`libjson_repository` field is not defined | Type: ``Object``
|
||||
*Optional* | Type: ``String`` | Max. Length: 255
|
||||
|
||||
An author contact information
|
||||
|
||||
* ``name`` Full name (**Required**)
|
||||
* ``email``
|
||||
* ``url`` An author's contact page
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
"author":
|
||||
{
|
||||
"name": "John Smith",
|
||||
"email": "me@john-smith.com",
|
||||
"url": "http://www.john-smith/contact"
|
||||
}
|
||||
|
||||
.. note::
|
||||
You can omit :ref:`libjson_author` field and define
|
||||
:ref:`libjson_repository` field. Only *GitHub-based* repository is
|
||||
supported now. In this case
|
||||
*PlatformIO-API Crawler* will use information from
|
||||
`GitHub API Users <https://developer.github.com/v3/users/>`_.
|
||||
|
||||
|
||||
.. _libjson_repository:
|
||||
|
||||
``repository``
|
||||
--------------
|
||||
|
||||
*Required* if :ref:`libjson_downloadurl` field is not defined | Type: ``Object``
|
||||
|
||||
The repository in which the source code can be found.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
"repository":
|
||||
{
|
||||
"name": "git",
|
||||
"url": "https://github.com/foo/bar.git"
|
||||
}
|
||||
|
||||
|
||||
.. _libjson_downloadurl:
|
||||
|
||||
``downloadUrl``
|
||||
---------------
|
||||
|
||||
*Required* if :ref:`libjson_repository` field is not defined | Type: ``String``
|
||||
|
||||
It is the *HTTP URL* to the archived source code of library. It should end
|
||||
with the type of archive (``.zip`` or ``.tar.gz``).
|
||||
Home page of library (if is different from :ref:`libjson_repository` url).
|
||||
|
||||
|
||||
.. _libjson_include:
|
||||
@@ -154,7 +186,7 @@ with the type of archive (``.zip`` or ``.tar.gz``).
|
||||
`Glob Pattern <http://en.wikipedia.org/wiki/Glob_(programming)>`_
|
||||
|
||||
If :ref:`libjson_include` field is a type of ``String``, then
|
||||
*PlatformIO-API Crawler* will recognize it like a "relative path inside
|
||||
|PIOAPICR| will recognize it like a "relative path inside
|
||||
repository/archive to library source code". See example below where the only
|
||||
source code from the relative directory ``LibrarySourceCodeHere`` will be
|
||||
included.
|
||||
@@ -164,7 +196,7 @@ included.
|
||||
"include": "some/child/dir/LibrarySourceCodeHere"
|
||||
|
||||
If :ref:`libjson_include` field is a type of ``Array``, then
|
||||
*PlatformIO-API Crawler* firstly will apply :ref:`libjson_exclude` filter and
|
||||
|PIOAPICR| firstly will apply :ref:`libjson_exclude` filter and
|
||||
then include only directories/files which match with :ref:`libjson_include`
|
||||
patterns.
|
||||
|
||||
@@ -207,25 +239,63 @@ Pattern Meaning
|
||||
Exclude the directories and files which match with :ref:`libjson_exclude`
|
||||
patterns.
|
||||
|
||||
.. _libjson_frameworks:
|
||||
|
||||
``frameworks``
|
||||
--------------
|
||||
|
||||
*Optional* | Type: ``String`` or ``Array``
|
||||
|
||||
A list with compatible frameworks. The available framework types are defined in
|
||||
the :ref:`platforms` section.
|
||||
|
||||
|
||||
.. _libjson_platforms:
|
||||
|
||||
``platforms``
|
||||
-------------
|
||||
|
||||
*Optional* | Type: ``String`` or ``Array``
|
||||
|
||||
A list with compatible platforms. The available platform types are
|
||||
defined in :ref:`platforms` section.
|
||||
|
||||
|
||||
.. _libjson_dependencies:
|
||||
|
||||
``dependencies``
|
||||
----------------
|
||||
|
||||
*Optional* | Type: ``Array``
|
||||
*Optional* | Type: ``Array`` or ``Object``
|
||||
|
||||
A list of dependent libraries. They will be installed automatically with
|
||||
:ref:`cmd_lib_install` command.
|
||||
|
||||
Allowed requirements for dependent library:
|
||||
|
||||
* ``name`` | Type: ``String``
|
||||
* ``authors`` | Type: ``String`` or ``Array``
|
||||
* ``frameworks`` | Type: ``String`` or ``Array``
|
||||
* ``platforms`` | Type: ``String`` or ``Array``
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
"dependencies":
|
||||
[
|
||||
"Library-Foo",
|
||||
"Library-Bar"
|
||||
{
|
||||
"name": "Library-Foo",
|
||||
"authors":
|
||||
[
|
||||
"Jhon Smith",
|
||||
"Andrew Smith"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Library-Bar",
|
||||
"frameworks": "FrameworkFoo, FrameworkBar"
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.. _library_creating:
|
||||
.. |PIOAPICR| replace:: *PlatformIO-API Crawler*
|
||||
.. |PIOAPICR| replace:: *PlatformIO Library Registry Crawler*
|
||||
|
||||
Creating Library
|
||||
================
|
||||
@@ -15,7 +15,7 @@ Source Code Location
|
||||
--------------------
|
||||
|
||||
There are a several ways how to share your library with the whole world
|
||||
(see `examples <https://github.com/ivankravets/platformio-libmirror/tree/master/configs>`_).
|
||||
(see `examples <https://github.com/platformio/platformio-libmirror/tree/master/configs>`_).
|
||||
|
||||
You can hold a lot of libraries (split into separated folders) inside one of
|
||||
the repository/archive. In this case please use :ref:`libjson_include`
|
||||
@@ -36,21 +36,23 @@ you **need to specify** only these fields in the :ref:`library_config`:
|
||||
* :ref:`libjson_repository`
|
||||
|
||||
|PIOAPICR| will populate the rest fields, like :ref:`libjson_version` or
|
||||
:ref:`libjson_author` with an actual information from *GitHub*.
|
||||
:ref:`libjson_authors` with an actual information from *GitHub*.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
"name": "Arduino-IRremote",
|
||||
"name": "IRremote",
|
||||
"keywords": "infrared, ir, remote",
|
||||
"description": "Send and receive infrared signals with multiple protocols",
|
||||
"repository":
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/shirriff/Arduino-IRremote.git"
|
||||
}
|
||||
},
|
||||
"frameworks": "arduino",
|
||||
"platforms": "atmelavr"
|
||||
}
|
||||
|
||||
Under CVS (SVN/GIT)
|
||||
@@ -62,7 +64,7 @@ The list of **required** fields in the :ref:`library_config` will look like:
|
||||
* :ref:`libjson_name`
|
||||
* :ref:`libjson_keywords`
|
||||
* :ref:`libjson_description`
|
||||
* :ref:`libjson_author`
|
||||
* :ref:`libjson_authors`
|
||||
* :ref:`libjson_repository`
|
||||
|
||||
Example:
|
||||
@@ -70,10 +72,10 @@ Example:
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
"name": "Arduino-XBee",
|
||||
"name": "XBee",
|
||||
"keywords": "xbee, protocol, radio",
|
||||
"description": "Arduino library for communicating with XBees in API mode",
|
||||
"author":
|
||||
"authors":
|
||||
{
|
||||
"name": "Andrew Rapp",
|
||||
"email": "andrew.rapp@gmail.com",
|
||||
@@ -83,7 +85,9 @@ Example:
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://code.google.com/p/xbee-arduino/"
|
||||
}
|
||||
},
|
||||
"frameworks": "arduino",
|
||||
"platforms": "atmelavr"
|
||||
}
|
||||
|
||||
Self-hosted
|
||||
@@ -97,24 +101,26 @@ of **required** fields in the :ref:`library_config` will look like:
|
||||
* :ref:`libjson_name`
|
||||
* :ref:`libjson_keywords`
|
||||
* :ref:`libjson_description`
|
||||
* :ref:`libjson_author`
|
||||
* :ref:`libjson_authors`
|
||||
* :ref:`libjson_version`
|
||||
* :ref:`libjson_downloadurl`
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
"name": "Arduino-OneWire",
|
||||
"name": "OneWire",
|
||||
"keywords": "onewire, 1-wire, bus, sensor, temperature, ibutton",
|
||||
"description": "Control devices (from Dallas Semiconductor) that use the One Wire protocol (DS18S20, DS18B20, DS2408 and etc)",
|
||||
"author":
|
||||
"authors":
|
||||
{
|
||||
"name": "Paul Stoffregen",
|
||||
"url": "http://www.pjrc.com/teensy/td_libs_OneWire.html"
|
||||
},
|
||||
"version": "2.2",
|
||||
"downloadUrl": "http://www.pjrc.com/teensy/arduino_libraries/OneWire.zip",
|
||||
"include": "OneWire"
|
||||
"include": "OneWire",
|
||||
"frameworks": "arduino",
|
||||
"platforms": "atmelavr"
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ Library Manager
|
||||
|
||||
..
|
||||
|
||||
*"The missing library manager for embedded platforms"* [#]_
|
||||
*"The missing library manager for development platforms"* [#]_
|
||||
|
||||
*PlatformIO Library Manager* allows you to organize external embedded libraries.
|
||||
You can search for new libraries via :ref:`Command Line <cmd_lib_search>`
|
||||
or `WebSite <http://platformio.ikravets.com>`_ interfaces.
|
||||
You can search for new libraries via :ref:`Command Line interface <cmd_lib_search>`
|
||||
or `Web 2.0 Library Search <http://platformio.org/#!/lib>`_.
|
||||
|
||||
You don't need to bother for finding the latest version of library. Due to
|
||||
:ref:`cmd_lib_update` command you will have up-to-date external libraries.
|
||||
@@ -17,8 +17,9 @@ You don't need to bother for finding the latest version of library. Due to
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
creating
|
||||
config
|
||||
creating
|
||||
User Guide <../userguide/lib/index.rst>
|
||||
|
||||
.. [#] Inspired by `npm <https://www.npmjs.org>`_ and `bower
|
||||
.. [#] Inspired by `npm <https://www.npmjs.com/>`_ and `bower
|
||||
<http://bower.io>`_ package managers for web.
|
||||
|
||||
130
docs/platforms/atmelsam.rst
Normal file
@@ -0,0 +1,130 @@
|
||||
.. _platform_atmelsam:
|
||||
|
||||
Platform ``atmelsam``
|
||||
=====================
|
||||
Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.atmel.com/products/microcontrollers/arm/default.aspx>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-arduinosam``
|
||||
- `Arduino Wiring-based Framework (SAM Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``tool-bossac``
|
||||
- `BOSSA CLI <https://sourceforge.net/projects/b-o-s-s-a/>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_arduino`
|
||||
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
Arduino
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``due``
|
||||
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``dueUSB``
|
||||
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Digistump
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``digix``
|
||||
- `Digistump DigiX <http://digistump.com/products/50>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 28 Kb
|
||||
|
||||
SainSmart
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``sainSmartDue``
|
||||
- `SainSmart Due (Programming Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``sainSmartDueUSB``
|
||||
- `SainSmart Due (USB Native Port) <http://www.sainsmart.com/arduino/control-boards/sainsmart-due-atmel-sam3x8e-arm-cortex-m3-board-black.html>`_
|
||||
- AT91SAM3X8E
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
302
docs/platforms/creating_platform.rst
Normal file
@@ -0,0 +1,302 @@
|
||||
.. _platform_creating:
|
||||
|
||||
Creating Platform
|
||||
=================
|
||||
|
||||
*PlatformIO* was developed like a tool which would build the same source code
|
||||
for the different development platforms via single command :ref:`cmd_run`
|
||||
without any dependent software or requirements.
|
||||
|
||||
For this purpose *PlatformIO* uses own pre-configured platforms data:
|
||||
build scripts, tool chains, the settings for the most popular embedded
|
||||
boards and etc. These data are pre-built and packaged to the different
|
||||
``packages``. It allows *PlatformIO* to have multiple development platforms
|
||||
which can use the same packages(tool chains, frameworks), but have
|
||||
different/own build scripts, uploader and etc.
|
||||
|
||||
.. note::
|
||||
If you want to change some build flags for the existing
|
||||
:ref:`Platforms <platforms>`, you don't need to create (or duplicate) own
|
||||
development platforms! Please use :ref:`projectconf_build_flags` option.
|
||||
|
||||
**Step-by-Step Manual**
|
||||
|
||||
1. Chose :ref:`platform_creating_packages` for platform
|
||||
2. Create :ref:`platform_creating_manifest_file`
|
||||
3. Create :ref:`platform_creating_build_script`
|
||||
4. Finish with the :ref:`platform_creating_installation`.
|
||||
|
||||
.. contents::
|
||||
|
||||
.. _platform_creating_packages:
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
*PlatformIO* has pre-built packages for the most popular operation systems:
|
||||
*Mac OS*, *Linux (+ARM)* and *Windows*.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-arduinoavr``
|
||||
- `Arduino Wiring-based Framework (AVR Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``framework-arduinoespressif``
|
||||
- `Arduino Wiring-based Framework (ESP8266 Core) <https://github.com/esp8266/Arduino>`_
|
||||
|
||||
* - ``framework-arduinomsp430``
|
||||
- `Arduino Wiring-based Framework (MSP430 Core) <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``framework-arduinosam``
|
||||
- `Arduino Wiring-based Framework (SAM Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``framework-arduinoteensy``
|
||||
- `Arduino Wiring-based Framework <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``framework-cmsis``
|
||||
- `Vendor-independent hardware abstraction layer for the Cortex-M processor series <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`_
|
||||
|
||||
* - ``framework-energiamsp430``
|
||||
- `Energia Wiring-based Framework (MSP430 Core) <http://energia.nu/reference/>`_
|
||||
|
||||
* - ``framework-energiativa``
|
||||
- `Energia Wiring-based Framework (LM4F Core) <http://energia.nu/reference/>`_
|
||||
|
||||
* - ``framework-libopencm3``
|
||||
- `libOpenCM3 Framework <http://www.libopencm3.org/>`_
|
||||
|
||||
* - ``framework-mbed``
|
||||
- `mbed Framework <http://mbed.org>`_
|
||||
|
||||
* - ``framework-spl``
|
||||
- `Standard Peripheral Library for STM32 MCUs <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`_
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
* - ``sdk-esp8266``
|
||||
- `ESP8266 SDK <http://bbs.espressif.com>`_
|
||||
|
||||
* - ``tool-avrdude``
|
||||
- `AVRDUDE <http://www.nongnu.org/avrdude/>`_
|
||||
|
||||
* - ``tool-bossac``
|
||||
- `BOSSA CLI <https://sourceforge.net/projects/b-o-s-s-a/>`_
|
||||
|
||||
* - ``tool-esptool``
|
||||
- `esptool-ck <https://github.com/igrr/esptool-ck>`_
|
||||
|
||||
* - ``tool-lm4flash``
|
||||
- `Flash Programmer <http://www.ti.com/tool/lmflashprogrammer>`_
|
||||
|
||||
* - ``tool-micronucleus``
|
||||
- `Micronucleus <https://github.com/micronucleus/micronucleus>`_
|
||||
|
||||
* - ``tool-mspdebug``
|
||||
- `MSPDebug <http://mspdebug.sourceforge.net/>`_
|
||||
|
||||
* - ``tool-stlink``
|
||||
- `ST-Link <https://github.com/texane/stlink>`_
|
||||
|
||||
* - ``tool-teensy``
|
||||
- `Teensy Loader <https://www.pjrc.com/teensy/loader.html>`_
|
||||
|
||||
* - ``toolchain-atmelavr``
|
||||
- `avr-gcc <https://gcc.gnu.org/wiki/avr-gcc>`_, `GDB <http://www.gnu.org/software/gdb/>`_, `AVaRICE <http://avarice.sourceforge.net/>`_, `SimulAVR <http://www.nongnu.org/simulavr/>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``toolchain-timsp430``
|
||||
- `msp-gcc <http://sourceforge.net/projects/mspgcc/>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``toolchain-xtensa``
|
||||
- `xtensa-gcc <https://github.com/jcmvbkbc/gcc-xtensa>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
.. _platform_creating_manifest_file:
|
||||
|
||||
Manifest File
|
||||
-------------
|
||||
|
||||
A platform manifest file is a `Python <https://www.python.org>`_ script with the
|
||||
next requirements:
|
||||
|
||||
1. The file should have ``.py`` extension
|
||||
2. The **name of the file** is the **platform name** (lowercase)
|
||||
3. The source code of this file should contain a ``class`` which describes your
|
||||
own platform. The name of the ``class`` should start with your
|
||||
**platform name** (the first letter should be capitalized) + ``Platform``
|
||||
ending. This ``class`` should be derived from *PlatformIO* ``BasePlatform``
|
||||
class.
|
||||
|
||||
.. warning::
|
||||
If you are new to *Python* language, please read:
|
||||
|
||||
* `Style Guide for Python Code <https://www.python.org/dev/peps/pep-0008>`_.
|
||||
* A hash sign (#) that is not inside a string literal begins a comment.
|
||||
All characters after the # and up to the physical line end are part
|
||||
of the comment and the *Python* interpreter ignores them.
|
||||
|
||||
Example of the **test** platform (``test.py``):
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from platformio.platforms.base import BasePlatform
|
||||
|
||||
class TestPlatform(BasePlatform):
|
||||
# This is a description of your platform.
|
||||
# Platformio uses it for the `platformio search / list` commands
|
||||
"""
|
||||
My Test platform - test.py
|
||||
"""
|
||||
|
||||
PACKAGES = {
|
||||
|
||||
"toolchain-foo": {
|
||||
|
||||
# alias is used for quick access to package.
|
||||
# For example,
|
||||
# `> platformio install test --without-package=toolchain`
|
||||
"alias": "toolchain",
|
||||
|
||||
# Flag which allows PlatformIO to install this package by
|
||||
# default via `> platformio install test` command
|
||||
"default": True
|
||||
},
|
||||
|
||||
"tool-bar": {
|
||||
"alias": "uploader",
|
||||
"default": True
|
||||
},
|
||||
|
||||
"framework-baz": {
|
||||
"default": True
|
||||
}
|
||||
}
|
||||
|
||||
def get_build_script(self):
|
||||
""" Returns a path to build script """
|
||||
|
||||
# You can return static path
|
||||
#return "/path/to/test-builder.py"
|
||||
|
||||
# or detect dynamically if `test-builder.py` is located in the same
|
||||
# folder with `test.py`
|
||||
return os.path.join(
|
||||
os.path.dirname(os.path.realpath(__file__)),
|
||||
"test-builder.py"
|
||||
)
|
||||
|
||||
.. _platform_creating_build_script:
|
||||
|
||||
Build Script
|
||||
------------
|
||||
|
||||
Platform's build script is based on a next-generation build tool named
|
||||
`SCons <http://www.scons.org>`_. PlatformIO has own built-in firmware builder
|
||||
``env.BuildFirmware`` with the nested libraries search. Please look into a
|
||||
base template of ``test-builder.py``.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
"""
|
||||
Build script for test.py
|
||||
test-builder.py
|
||||
"""
|
||||
|
||||
from os.path import join
|
||||
from SCons.Script import AlwaysBuild, Builder, Default, DefaultEnvironment
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
# A full list with the available variables
|
||||
# http://www.scons.org/doc/production/HTML/scons-user.html#app-variables
|
||||
env.Replace(
|
||||
AR="ar",
|
||||
AS="gcc",
|
||||
CC="gcc",
|
||||
CXX="g++",
|
||||
OBJCOPY="objcopy",
|
||||
RANLIB="ranlib",
|
||||
|
||||
ARFLAGS=["..."],
|
||||
|
||||
ASFLAGS=["flag1", "flag2", "flagN"],
|
||||
CCFLAGS=["flag1", "flag2", "flagN"],
|
||||
CXXFLAGS=["flag1", "flag2", "flagN"],
|
||||
LINKFLAGS=["flag1", "flag2", "flagN"],
|
||||
|
||||
CPPDEFINES=["DEFINE_1", "DEFINE=2", "DEFINE_N"],
|
||||
|
||||
LIBS=["additional", "libs", "here"],
|
||||
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-bar", "uploader"),
|
||||
UPLOADCMD="$UPLOADER $SOURCES"
|
||||
)
|
||||
|
||||
env.Append(
|
||||
BUILDERS=dict(
|
||||
ElfToBin=Builder(
|
||||
action=" ".join([
|
||||
"$OBJCOPY",
|
||||
"-O",
|
||||
"binary",
|
||||
"$SOURCES",
|
||||
"$TARGET"]),
|
||||
suffix=".bin"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
# The source code of "platformio-build-tool" is here
|
||||
# https://github.com/platformio/platformio/blob/develop/platformio/builder/tools/platformio.py
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the .bin file
|
||||
#
|
||||
target_bin = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
|
||||
|
||||
#
|
||||
# Target: Upload firmware
|
||||
#
|
||||
upload = env.Alias(["upload"], target_bin, "$UPLOADCMD")
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
# Target: Define targets
|
||||
#
|
||||
Default(target_bin)
|
||||
|
||||
|
||||
Please look into the examples with built-in scripts for the popular
|
||||
platforms:
|
||||
|
||||
* `baseavr.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/baseavr.py>`_
|
||||
* `basearm.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/basearm.py>`_
|
||||
* `atmelavr.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/atmelavr.py>`_
|
||||
* `timsp430.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/timsp430.py>`_
|
||||
* `ststm32.py <https://github.com/platformio/platformio/blob/develop/platformio/builder/scripts/ststm32.py>`_
|
||||
|
||||
.. _platform_creating_installation:
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
1. Create ``platforms`` directory in :ref:`projectconf_pio_home_dir` if it
|
||||
doesn't exists.
|
||||
2. Copy ``test.py`` and ``test-builder.py`` files to ``platforms`` directory.
|
||||
3. Search available platforms via :ref:`cmd_search` command. You should see
|
||||
``test`` platform.
|
||||
4. Install ``test`` platform via :ref:`cmd_install` command.
|
||||
|
||||
Now, you can use ``test`` for the :ref:`projectconf_env_platform` option in
|
||||
:ref:`projectconf`.
|
||||
79
docs/platforms/espressif.rst
Normal file
@@ -0,0 +1,79 @@
|
||||
.. _platform_espressif:
|
||||
|
||||
Platform ``espressif``
|
||||
======================
|
||||
Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
|
||||
|
||||
For more detailed information please visit `vendor site <https://espressif.com/>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
* - ``sdk-esp8266``
|
||||
- `ESP8266 SDK <http://bbs.espressif.com>`_
|
||||
|
||||
* - ``tool-esptool``
|
||||
- `esptool-ck <https://github.com/igrr/esptool-ck>`_
|
||||
|
||||
* - ``framework-arduinoespressif``
|
||||
- `Arduino Wiring-based Framework (ESP8266 Core) <https://github.com/esp8266/Arduino>`_
|
||||
|
||||
* - ``toolchain-xtensa``
|
||||
- `xtensa-gcc <https://github.com/jcmvbkbc/gcc-xtensa>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_arduino`
|
||||
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
Espressif
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``esp01``
|
||||
- `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_
|
||||
- ESP8266
|
||||
- 80 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
112
docs/platforms/freescalekinetis.rst
Normal file
@@ -0,0 +1,112 @@
|
||||
.. _platform_freescalekinetis:
|
||||
|
||||
Platform ``freescalekinetis``
|
||||
=============================
|
||||
Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.freescale.com/webapp/sps/site/homepage.jsp?code=KINETIS>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-mbed``
|
||||
- `mbed Framework <http://mbed.org>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_mbed`
|
||||
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
Freescale
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``IBMEthernetKit``
|
||||
- `Ethernet IoT Starter Kit <http://developer.mbed.org/platforms/IBMEthernetKit/>`_
|
||||
- MK64FN1M0VLL12
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``frdm_k20d50m``
|
||||
- `Freescale Kinetis FRDM-K20D50M <https://developer.mbed.org/platforms/FRDM-K20D50M/>`_
|
||||
- MK20DX128VLH5
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``frdm_k22f``
|
||||
- `Freescale Kinetis FRDM-K22F <https://developer.mbed.org/platforms/FRDM-K22F/>`_
|
||||
- MK22FN512VLH12
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``frdm_k64f``
|
||||
- `Freescale Kinetis FRDM-K64F <https://developer.mbed.org/platforms/FRDM-K64F/>`_
|
||||
- MK64FN1M0VLL12
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``frdm_kl05z``
|
||||
- `Freescale Kinetis FRDM-KL05Z <https://developer.mbed.org/platforms/FRDM-KL05Z/>`_
|
||||
- MKL05Z32VFM4
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
* - ``frdm_kl25z``
|
||||
- `Freescale Kinetis FRDM-KL25Z <https://developer.mbed.org/platforms/KL25Z/>`_
|
||||
- MKL25Z128VLK4
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``frdm_kl46z``
|
||||
- `Freescale Kinetis FRDM-KL46Z <https://developer.mbed.org/platforms/FRDM-KL46Z/>`_
|
||||
- MKL46Z256VLL4
|
||||
- 48 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
@@ -3,9 +3,9 @@
|
||||
Platforms & Embedded Boards
|
||||
===========================
|
||||
|
||||
*PlatformIO* has pre-built different development platforms for popular OS (Mac,
|
||||
Linux 32/64/ARM and Windows). Each of them include compiler, debugger, uploader
|
||||
(for embedded) and many other useful tools.
|
||||
*PlatformIO* has pre-built different development platforms for popular OS
|
||||
(*Mac OS X, Linux (+ARM) and Windows*). Each of them include compiler,
|
||||
debugger, uploader (for embedded) and many other useful tools.
|
||||
|
||||
Also it has pre-configured settings for most popular **Embedded Platform
|
||||
Boards**. You have no need to specify in :ref:`projectconf` type or frequency of
|
||||
@@ -15,5 +15,13 @@ MCU, upload protocol or etc. Please use ``board`` option.
|
||||
:maxdepth: 2
|
||||
|
||||
atmelavr
|
||||
atmelsam
|
||||
espressif
|
||||
freescalekinetis
|
||||
nordicnrf51
|
||||
nxplpc
|
||||
ststm32
|
||||
teensy
|
||||
timsp430
|
||||
titiva
|
||||
creating_platform
|
||||
|
||||
171
docs/platforms/nordicnrf51.rst
Normal file
@@ -0,0 +1,171 @@
|
||||
.. _platform_nordicnrf51:
|
||||
|
||||
Platform ``nordicnrf51``
|
||||
========================
|
||||
The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.
|
||||
|
||||
For more detailed information please visit `vendor site <https://www.nordicsemi.com/eng/Products/nRF51-Series-SoC>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-mbed``
|
||||
- `mbed Framework <http://mbed.org>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_mbed`
|
||||
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
JKSoft
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``wallBotBLE``
|
||||
- `JKSoft Wallbot BLE <https://developer.mbed.org/platforms/JKSoft-Wallbot-BLE/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
Nordic
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``nrf51_dk``
|
||||
- `Nordic nRF51-DK <https://developer.mbed.org/platforms/Nordic-nRF51-DK/>`_
|
||||
- NRF51822
|
||||
- 32 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nrf51_dongle``
|
||||
- `Nordic nRF51-Dongle <https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/>`_
|
||||
- NRF51822
|
||||
- 32 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nrf51_mkit``
|
||||
- `Nordic nRF51822-mKIT <http://developer.mbed.org/platforms/Nordic-nRF51822/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
RedBearLab
|
||||
~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``redBearLab``
|
||||
- `RedBearLab nRF51822 <https://developer.mbed.org/platforms/RedBearLab-nRF51822/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``redBearLabBLENano``
|
||||
- `RedBearLab BLE Nano <https://developer.mbed.org/platforms/RedBearLab-BLE-Nano/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
SeeedStudio
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``seeedTinyBLE``
|
||||
- `SeeedStudio Seeed Tiny BLE <http://developer.mbed.org/platforms/Seeed-Tiny-BLE/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
|
||||
Switch Science
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``hrm1017``
|
||||
- `Switch Science mbed HRM1017 <https://developer.mbed.org/platforms/mbed-HRM1017/>`_
|
||||
- NRF51822
|
||||
- 16 MHz
|
||||
- 256 Kb
|
||||
- 16 Kb
|
||||
258
docs/platforms/nxplpc.rst
Normal file
@@ -0,0 +1,258 @@
|
||||
.. _platform_nxplpc:
|
||||
|
||||
Platform ``nxplpc``
|
||||
===================
|
||||
The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.nxp.com/products/microcontrollers/>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-mbed``
|
||||
- `mbed Framework <http://mbed.org>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_mbed`
|
||||
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
CQ Publishing
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u35_501``
|
||||
- `CQ Publishing TG-LPC11U35-501 <https://developer.mbed.org/platforms/TG-LPC11U35-501/>`_
|
||||
- LPC11U35
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 10 Kb
|
||||
|
||||
Embedded Artists
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u35``
|
||||
- `Embedded Artists LPC11U35 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC11U35/>`_
|
||||
- LPC11U35
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 10 Kb
|
||||
|
||||
* - ``lpc4088``
|
||||
- `Embedded Artists LPC4088 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC4088/>`_
|
||||
- LPC4088
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
* - ``lpc4088_dm``
|
||||
- `Embedded Artists LPC4088 Display Module <https://developer.mbed.org/platforms/EA-LPC4088-Display-Module/>`_
|
||||
- LPC4088
|
||||
- 120 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
NGX Technologies
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``blueboard_lpc11u24``
|
||||
- `NGX Technologies BlueBoard-LPC11U24 <https://developer.mbed.org/platforms/BlueBoard-LPC11U24/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
NXP
|
||||
~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc11u24``
|
||||
- `NXP mbed LPC11U24 <https://developer.mbed.org/platforms/mbed-LPC11U24/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``lpc1549``
|
||||
- `NXP LPCXpresso1549 <https://developer.mbed.org/platforms/LPCXpresso1549/>`_
|
||||
- LPC1549
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 36 Kb
|
||||
|
||||
* - ``lpc1768``
|
||||
- `NXP mbed LPC1768 <http://developer.mbed.org/platforms/mbed-LPC1768/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Outrageous Circuits
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``mbuino``
|
||||
- `Outrageous Circuits mBuino <https://developer.mbed.org/platforms/Outrageous-Circuits-mBuino/>`_
|
||||
- LPC11U24
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
SeeedStudio
|
||||
~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``seeeduinoArchPro``
|
||||
- `SeeedStudio Seeeduino-Arch-Pro <https://developer.mbed.org/platforms/Seeeduino-Arch-Pro/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
|
||||
Solder Splash Labs
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``dipcortexm0``
|
||||
- `Solder Splash Labs DipCortex M0 <https://developer.mbed.org/platforms/DipCortex-M0/>`_
|
||||
- LPC11U24
|
||||
- 50 MHz
|
||||
- 32 Kb
|
||||
- 8 Kb
|
||||
|
||||
Switch Science
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpc1114fn28``
|
||||
- `Switch Science mbed LPC1114FN28 <https://developer.mbed.org/platforms/LPC1114FN28/>`_
|
||||
- LPC1114FN28
|
||||
- 48 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
u-blox
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``ubloxc027``
|
||||
- `u-blox C027 <https://developer.mbed.org/platforms/u-blox-C027/>`_
|
||||
- LPC1768
|
||||
- 96 MHz
|
||||
- 512 Kb
|
||||
- 32 Kb
|
||||
227
docs/platforms/ststm32.rst
Normal file
@@ -0,0 +1,227 @@
|
||||
.. _platform_ststm32:
|
||||
|
||||
Platform ``ststm32``
|
||||
====================
|
||||
The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
|
||||
|
||||
For more detailed information please visit `vendor site <http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``framework-libopencm3``
|
||||
- `libOpenCM3 Framework <http://www.libopencm3.org/>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``tool-stlink``
|
||||
- `ST-Link <https://github.com/texane/stlink>`_
|
||||
|
||||
* - ``framework-spl``
|
||||
- `Standard Peripheral Library for STM32 MCUs <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`_
|
||||
|
||||
* - ``framework-cmsis``
|
||||
- `Vendor-independent hardware abstraction layer for the Cortex-M processor series <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`_
|
||||
|
||||
* - ``framework-mbed``
|
||||
- `mbed Framework <http://mbed.org>`_
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_cmsis`
|
||||
- The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.
|
||||
|
||||
* - :ref:`framework_libopencm3`
|
||||
- The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
|
||||
|
||||
* - :ref:`framework_mbed`
|
||||
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
|
||||
|
||||
* - :ref:`framework_spl`
|
||||
- The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family. The idea is to save the user (the new user, in particular) having to deal directly with the registers.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``disco_f051r8``
|
||||
- `ST STM32F0DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215>`_
|
||||
- STM32F051R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``disco_f100rb``
|
||||
- `ST STM32VLDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863>`_
|
||||
- STM32F100RBT6
|
||||
- 24 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``disco_f303vc``
|
||||
- `ST STM32F3DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||
- STM32F303VCT6
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 48 Kb
|
||||
|
||||
* - ``disco_f334c8``
|
||||
- `ST 32F3348DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318>`_
|
||||
- STM32F334C8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``disco_f401vc``
|
||||
- `ST 32F401CDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098>`_
|
||||
- STM32F401VCT6
|
||||
- 84 MHz
|
||||
- 256 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``disco_f407vg``
|
||||
- `ST STM32F4DISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||
- STM32F407VGT6
|
||||
- 168 MHz
|
||||
- 1024 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``disco_f429zi``
|
||||
- `ST 32F429IDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090>`_
|
||||
- STM32F429ZIT6
|
||||
- 180 MHz
|
||||
- 2048 Kb
|
||||
- 256 Kb
|
||||
|
||||
* - ``disco_l152rb``
|
||||
- `ST STM32LDISCOVERY <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
|
||||
- STM32L152RBT6
|
||||
- 32 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f030r8``
|
||||
- `ST Nucleo F030R8 <https://developer.mbed.org/platforms/ST-Nucleo-F030R8/>`_
|
||||
- STM32F030R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``nucleo_f070rb``
|
||||
- `ST Nucleo F070RB <https://developer.mbed.org/platforms/ST-Nucleo-F070RB/>`_
|
||||
- STM32F070RBT6
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f072rb``
|
||||
- `ST Nucleo F072RB <https://developer.mbed.org/platforms/ST-Nucleo-F072RB/>`_
|
||||
- STM32F072RBT6
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f091rc``
|
||||
- `ST Nucleo F091RC <https://developer.mbed.org/platforms/ST-Nucleo-F091RC/>`_
|
||||
- STM32F091RCT6
|
||||
- 48 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``nucleo_f103rb``
|
||||
- `ST Nucleo F103RB <https://developer.mbed.org/platforms/ST-Nucleo-F103RB/>`_
|
||||
- STM32F103RBT6
|
||||
- 72 MHz
|
||||
- 128 Kb
|
||||
- 20 Kb
|
||||
|
||||
* - ``nucleo_f302r8``
|
||||
- `ST Nucleo F302R8 <https://developer.mbed.org/platforms/ST-Nucleo-F302R8/>`_
|
||||
- STM32F302R8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f303re``
|
||||
- `ST Nucleo F303RE <http://developer.mbed.org/platforms/ST-Nucleo-F303RE/>`_
|
||||
- STM32F303RET6
|
||||
- 72 MHz
|
||||
- 512 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``nucleo_f334r8``
|
||||
- `ST Nucleo F334R8 <https://developer.mbed.org/platforms/ST-Nucleo-F334R8/>`_
|
||||
- STM32F334R8T6
|
||||
- 72 MHz
|
||||
- 64 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``nucleo_f401re``
|
||||
- `ST Nucleo F401RE <https://developer.mbed.org/platforms/ST-Nucleo-F401RE/>`_
|
||||
- STM32F401RET6
|
||||
- 84 MHz
|
||||
- 512 Kb
|
||||
- 96 Kb
|
||||
|
||||
* - ``nucleo_f411re``
|
||||
- `ST Nucleo F411RE <https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
|
||||
- STM32F411RET6
|
||||
- 100 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``nucleo_l053r8``
|
||||
- `ST Nucleo L053R8 <https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
|
||||
- STM32L053R8T6
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``nucleo_l152re``
|
||||
- `ST Nucleo L152RE <https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
|
||||
- STM32L152RET6
|
||||
- 32 MHz
|
||||
- 512 Kb
|
||||
- 80 Kb
|
||||
107
docs/platforms/teensy.rst
Normal file
@@ -0,0 +1,107 @@
|
||||
.. _platform_teensy:
|
||||
|
||||
Platform ``teensy``
|
||||
===================
|
||||
Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port. No special programmer is needed, only a standard "Mini-B" USB cable and a PC or Macintosh with a USB port.
|
||||
|
||||
For more detailed information please visit `vendor site <https://www.pjrc.com/teensy>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
Packages
|
||||
--------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Contents
|
||||
|
||||
* - ``toolchain-atmelavr``
|
||||
- `avr-gcc <https://gcc.gnu.org/wiki/avr-gcc>`_, `GDB <http://www.gnu.org/software/gdb/>`_, `AVaRICE <http://avarice.sourceforge.net/>`_, `SimulAVR <http://www.nongnu.org/simulavr/>`_
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
* - ``framework-arduinoteensy``
|
||||
- `Arduino Wiring-based Framework <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``tool-teensy``
|
||||
- `Teensy Loader <https://www.pjrc.com/teensy/loader.html>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_arduino`
|
||||
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
Teensy
|
||||
~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``teensy20``
|
||||
- `Teensy 2.0 <https://www.pjrc.com/store/teensy.html>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``teensy20pp``
|
||||
- `Teensy++ 2.0 <https://www.pjrc.com/store/teensypp.html>`_
|
||||
- AT90USB1286
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 Kb
|
||||
|
||||
* - ``teensy30``
|
||||
- `Teensy 3.0 <https://www.pjrc.com/store/teensy3.html>`_
|
||||
- MK20DX128
|
||||
- 48 MHz
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
* - ``teensy31``
|
||||
- `Teensy 3.1 <https://www.pjrc.com/store/teensy31.html>`_
|
||||
- MK20DX256
|
||||
- 72 MHz
|
||||
- 256 Kb
|
||||
- 64 Kb
|
||||
|
||||
* - ``teensylc``
|
||||
- `Teensy LC <http://www.pjrc.com/teensy/teensyLC.html>`_
|
||||
- MKL26Z64
|
||||
- 48 MHz
|
||||
- 64 Kb
|
||||
- 8 Kb
|
||||
@@ -2,11 +2,9 @@
|
||||
|
||||
Platform ``timsp430``
|
||||
=====================
|
||||
MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are 16-bit, RISC-based, mixed-signal processors designed for ultra-low power. These MCUs offer the lowest power consumption and the perfect mix of integrated peripherals for thousands of applications.
|
||||
|
||||
`MSP430 microcontrollers (MCUs) from Texas Instruments (TI) <http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/overview.page>`_
|
||||
are 16-bit, RISC-based, mixed-signal processors designed for ultra-low power.
|
||||
These MCUs offer the lowest power consumption and the perfect mix of integrated
|
||||
peripherals for thousands of applications.
|
||||
For more detailed information please visit `vendor site <http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/overview.page>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
@@ -17,103 +15,127 @@ Packages
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Alias
|
||||
- Contents
|
||||
|
||||
* - ``toolchain-timsp430``
|
||||
- toolchain
|
||||
- `msp-gcc <http://sourceforge.net/projects/mspgcc/>`_,
|
||||
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||
- `msp-gcc <http://sourceforge.net/projects/mspgcc/>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``tool-mspdebug``
|
||||
- uploader
|
||||
- `MSPDebug <http://mspdebug.sourceforge.net>`_
|
||||
- `MSPDebug <http://mspdebug.sourceforge.net/>`_
|
||||
|
||||
* - ``framework-energiamsp430``
|
||||
-
|
||||
- See below in :ref:`timsp430_frameworks`
|
||||
- `Energia Wiring-based Framework (MSP430 Core) <http://energia.nu/reference/>`_
|
||||
|
||||
* - ``framework-arduinomsp430``
|
||||
- `Arduino Wiring-based Framework (MSP430 Core) <http://arduino.cc/en/Reference/HomePage>`_
|
||||
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
.. note::
|
||||
You can install ``atmelavr`` platform with these packages
|
||||
via :ref:`cmd_install` command.
|
||||
|
||||
|
||||
.. _timsp430_frameworks:
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``framework``
|
||||
- Name
|
||||
- Reference
|
||||
* - ``energia``
|
||||
- Energia Wiring-based Framework (MSP430 Core)
|
||||
- `Documentation <http://energia.nu/reference/>`_
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_arduino`
|
||||
- Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
|
||||
|
||||
* - :ref:`framework_energia`
|
||||
- Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
For more detailed ``board`` information please scroll table below by
|
||||
horizontal.
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
PanStamp
|
||||
~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller ``board_mcu``
|
||||
- Frequency ``board_f_cpu``
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
* - ``lpmsp430g2231``
|
||||
- `MSP430G2231 LaunchPad <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2231 ``msp430g2231``
|
||||
- 16 MHz ``16000000L``
|
||||
- 2 Kb
|
||||
- 128 B
|
||||
* - ``lpmsp430g2452``
|
||||
- `MSP430G2452 LaunchPad <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2452 ``msp430g2452``
|
||||
- 16 MHz ``16000000L``
|
||||
- 8 Kb
|
||||
- 256 B
|
||||
* - ``lpmsp430g2553``
|
||||
- `MSP430G2553 LaunchPad <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2553 ``msp430g2553``
|
||||
- 16 MHz ``16000000L``
|
||||
- 16 Kb
|
||||
- 512 B
|
||||
|
||||
* - ``panStampNRG``
|
||||
- `PanStamp NRG 1.1 <http://www.panstamp.com/product/197/>`_
|
||||
- CC430F5137
|
||||
- 12 MHz
|
||||
- 32 Kb
|
||||
- 4 Kb
|
||||
|
||||
TI
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``lpmsp430f5529``
|
||||
- `MSP430F5529 LaunchPad (16 Mhz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529 ``msp430f5529``
|
||||
- 16 MHz ``16000000L``
|
||||
- `TI LaunchPad w/ msp430f5529 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 8 KB
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430f5529_25``
|
||||
- `MSP430F5529 LaunchPad (25 Mhz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529 ``msp430f5529``
|
||||
- 25 MHz ``25000000L``
|
||||
- `TI LaunchPad w/ msp430f5529 (25MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430f5529lp.html>`_
|
||||
- MSP430F5529
|
||||
- 25 MHz
|
||||
- 128 Kb
|
||||
- 8 KB
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430fr5739``
|
||||
- `MSP430FR5739 Experimenter Board <http://www.ti.com/tool/msp-exp430fr5739>`_
|
||||
- MSP430FR5739 ``msp430fr5739``
|
||||
- 16 MHz ``16000000L``
|
||||
- `TI FraunchPad w/ msp430fr5739 <http://www.ti.com/tool/msp-exp430fr5739>`_
|
||||
- MSP430FR5739
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 1 KB
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430fr5969``
|
||||
- `MSP430FR5969 LaunchPad <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430fr5969.html>`_
|
||||
- MSP430FR5969 ``msp430fr5969``
|
||||
- 16 MHz ``16000000L``
|
||||
- `TI LaunchPad w/ msp430fr5969 <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430fr5969.html>`_
|
||||
- MSP430FR5969
|
||||
- 8 MHz
|
||||
- 64 Kb
|
||||
- 2 KB
|
||||
|
||||
|
||||
More detailed information you can find here
|
||||
`MSP430 LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-msp430.html>`_.
|
||||
- 1 Kb
|
||||
|
||||
* - ``lpmsp430g2231``
|
||||
- `TI LaunchPad w/ msp430g2231 (1 MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2231
|
||||
- 1 MHz
|
||||
- 2 Kb
|
||||
- 0.125 Kb
|
||||
|
||||
* - ``lpmsp430g2452``
|
||||
- `TI LaunchPad w/ msp430g2452 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2452
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.25 Kb
|
||||
|
||||
* - ``lpmsp430g2553``
|
||||
- `TI LaunchPad w/ msp430g2553 (16MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
|
||||
- MSP430G2553
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
@@ -2,12 +2,9 @@
|
||||
|
||||
Platform ``titiva``
|
||||
===================
|
||||
Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
|
||||
|
||||
`Texas Instruments TM4C12x MCUs <http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/c2000_performance/control_automation/tm4c12x/overview.page>`_
|
||||
offer the industry’s most popular ARM®
|
||||
Cortex®-M4 core with scalable memory and package options, unparalleled
|
||||
connectivity peripherals, advanced application functions, industry-leading
|
||||
analog integration, and extensive software solutions.
|
||||
For more detailed information please visit `vendor site <http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/c2000_performance/control_automation/tm4c12x/overview.page>`_.
|
||||
|
||||
.. contents::
|
||||
|
||||
@@ -18,76 +15,82 @@ Packages
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Alias
|
||||
- Contents
|
||||
|
||||
* - ``ldscripts``
|
||||
- `Linker Scripts <https://sourceware.org/binutils/docs/ld/Scripts.html>`_
|
||||
|
||||
* - ``framework-libopencm3``
|
||||
- `libOpenCM3 Framework <http://www.libopencm3.org/>`_
|
||||
|
||||
* - ``toolchain-gccarmnoneeabi``
|
||||
- toolchain
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded/>`_,
|
||||
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_, `GDB <http://www.gnu.org/software/gdb/>`_
|
||||
|
||||
* - ``tool-lm4flash``
|
||||
- uploader
|
||||
- `Flash Programmer <http://www.ti.com/tool/lmflashprogrammer>`_
|
||||
|
||||
* - ``framework-energiativa``
|
||||
-
|
||||
- See below in :ref:`titiva_frameworks`
|
||||
- `Energia Wiring-based Framework (LM4F Core) <http://energia.nu/reference/>`_
|
||||
|
||||
.. note::
|
||||
You can install ``titiva`` platform with these packages
|
||||
via :ref:`cmd_install` command.
|
||||
.. warning::
|
||||
**Linux Users:** Don't forget to install "udev" rules file
|
||||
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||
|
||||
|
||||
.. _titiva_frameworks:
|
||||
|
||||
Frameworks
|
||||
----------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``framework``
|
||||
- Name
|
||||
- Reference
|
||||
* - ``energia``
|
||||
- Energia Wiring-based Framework (LM4F Core)
|
||||
- `Documentation <http://energia.nu/reference/>`_
|
||||
* - Name
|
||||
- Description
|
||||
|
||||
* - :ref:`framework_energia`
|
||||
- Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
|
||||
|
||||
* - :ref:`framework_libopencm3`
|
||||
- The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
.. note::
|
||||
For more detailed ``board`` information please scroll table below by
|
||||
horizontal.
|
||||
* You can list pre-configured boards by :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/#!/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
|
||||
TI
|
||||
~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller ``board_mcu``
|
||||
- Frequency ``board_f_cpu``
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
* - ``lplm4f120h5qr``
|
||||
- `Stellaris LM4F120 LaunchPad <http://www.ti.com/tool/ek-lm4f120xl>`_
|
||||
- LM4F120H5QR ``cortex-m4``
|
||||
- 80 MHz ``80000000L``
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
* - ``lptm4c1230c3pm``
|
||||
- `Tiva C Series TM4C123G LaunchPad
|
||||
<http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
|
||||
- TM4C123GH6PM ``cortex-m4``
|
||||
- 80 MHz ``80000000L``
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
* - ``lptm4c1294ncpdt``
|
||||
- `Tiva C Series TM4C1294 Connected LaunchPad
|
||||
<http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
|
||||
- TM4C1294NCPDT ``cortex-m4``
|
||||
- 120 Mhz ``120000000L``
|
||||
- 1 Mb
|
||||
- 256 Kb
|
||||
|
||||
More detailed information you can find here
|
||||
`TIVA C Series LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-connected.html>`_.
|
||||
* - ``lplm4f120h5qr``
|
||||
- `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) <http://www.ti.com/tool/ek-lm4f120xl>`_
|
||||
- LPLM4F120H5QR
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lptm4c1230c3pm``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c123gxl.html>`_
|
||||
- LPTM4C1230C3PM
|
||||
- 80 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``lptm4c1294ncpdt``
|
||||
- `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) <http://www.ti.com/ww/en/launchpad/launchpads-connected-ek-tm4c1294xl.html>`_
|
||||
- LPTM4C1294NCPDT
|
||||
- 120 MHz
|
||||
- 1024 Kb
|
||||
- 256 Kb
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
.. _projectconf:
|
||||
|
||||
Project Configuration File
|
||||
==========================
|
||||
Project Configuration File ``platformio.ini``
|
||||
=============================================
|
||||
|
||||
The Project configuration file is named ``platformio.ini``. This is a
|
||||
`INI-style <http://en.wikipedia.org/wiki/INI_file>`_ file.
|
||||
|
||||
``platformio.ini`` has sections (each denoted by a ``[header]``) and
|
||||
key / value pairs within the sections. A sign ``#`` at the beginning of the
|
||||
line indicate a comment. Comment lines are ignored.
|
||||
line indicates a comment. Comment lines are ignored.
|
||||
|
||||
The sections and their allowable values are described below.
|
||||
|
||||
@@ -19,26 +19,85 @@ The sections and their allowable values are described below.
|
||||
|
||||
A ``platformio`` section is used for overriding default configuration options
|
||||
|
||||
.. note::
|
||||
Relative path is allowed for directory option:
|
||||
|
||||
* ``~`` will be expanded to user's home directory
|
||||
* ``../`` or ``..\`` go up to one folder
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. _projectconf_pio_home_dir:
|
||||
|
||||
``home_dir``
|
||||
^^^^^^^^^^^^
|
||||
|
||||
A ``$PIO_HOME_DIR`` is used to store platform tool chains, frameworks,
|
||||
external libraries, service data and etc.
|
||||
Is used to store platform tool chains, frameworks, external libraries,
|
||||
service data and etc.
|
||||
|
||||
A default value is user's home directory: *Unix* - ``~/.platformio``,
|
||||
Windows - ``%HOMEPATH%\.platformio``.
|
||||
A default value is User's home directory:
|
||||
|
||||
* Unix ``~/.platformio``
|
||||
* Windows ``%HOMEPATH%\.platformio``
|
||||
|
||||
This option can be overridden by global environment variable
|
||||
:ref:`envvar_PLATFORMIO_HOME_DIR`.
|
||||
|
||||
.. _projectconf_pio_lib_dir:
|
||||
|
||||
``lib_dir``
|
||||
^^^^^^^^^^^^
|
||||
^^^^^^^^^^^
|
||||
|
||||
This directory is used to store external libraries downloaded by
|
||||
:ref:`librarymanager`.
|
||||
|
||||
A default value is ``$PIO_HOME_DIR/lib``.
|
||||
A default value is ``%home_dir%/lib``.
|
||||
|
||||
This option can be overridden by global environment variable
|
||||
:ref:`envvar_PLATFORMIO_LIB_DIR`.
|
||||
|
||||
.. _projectconf_pio_src_dir:
|
||||
|
||||
``src_dir``
|
||||
^^^^^^^^^^^
|
||||
|
||||
A path to project's source directory. PlatformIO uses it for :ref:`cmd_run`
|
||||
command.
|
||||
|
||||
A default value is ``%project_dir%/src``.
|
||||
|
||||
This option can be overridden by global environment variable
|
||||
:ref:`envvar_PLATFORMIO_SRC_DIR`.
|
||||
|
||||
.. note::
|
||||
This option is useful for people who migrate from Arduino/Energia IDEs where
|
||||
source directory should have the same name like the main source file.
|
||||
See `example <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-own-src_dir>`__ project with own source directory.
|
||||
|
||||
.. _projectconf_pio_envs_dir:
|
||||
|
||||
``envs_dir``
|
||||
^^^^^^^^^^^^
|
||||
|
||||
*PlatformIO Builder* within :ref:`cmd_run` command uses this folder for project
|
||||
environments to store compiled object files, static libraries, firmwares and
|
||||
other cached information. It allows PlatformIO to build source code extremely
|
||||
fast!
|
||||
|
||||
*You can delete this folder without any risk!* If you modify :ref:`projectconf`,
|
||||
then PlatformIO will remove this folder automatically. It will be created on the
|
||||
next build operation.
|
||||
|
||||
A default value is ``%project_dir%/.pioenvs``.
|
||||
|
||||
This option can be overridden by global environment variable
|
||||
:ref:`envvar_PLATFORMIO_ENVS_DIR`.
|
||||
|
||||
.. note::
|
||||
If you have any problems with building your Project environmets which
|
||||
are defined in :ref:`projectconf`, then **TRY TO DELETE** this folder. In
|
||||
this situation you will remove all cached files without any risk.
|
||||
|
||||
[env:NAME]
|
||||
----------
|
||||
@@ -58,22 +117,30 @@ For example, ``[env:hello_world]``.
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. _projectconf_env_platform:
|
||||
|
||||
``platform``
|
||||
^^^^^^^^^^^^
|
||||
|
||||
:ref:`Platform <platforms>` type
|
||||
:ref:`Platform <platforms>` type.
|
||||
|
||||
|
||||
.. _projectconf_env_framework:
|
||||
|
||||
``framework``
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
See ``framework`` type in *Frameworks* section of :ref:`platforms`
|
||||
:ref:`Framework <frameworks>` type.
|
||||
|
||||
The multiple frameworks are allowed, split them with comma ``,`` separator.
|
||||
|
||||
|
||||
.. _projectconf_env_board:
|
||||
|
||||
``board``
|
||||
^^^^^^^^^
|
||||
|
||||
*PlatformIO* has pre-configured settings for most popular boards. You don't
|
||||
*PlatformIO* has pre-configured settings for the most popular boards. You don't
|
||||
need to specify ``board_mcu``, ``board_f_cpu``, ``upload_protocol`` or
|
||||
``upload_speed`` options. Just define a ``board`` type and *PlatformIO* will
|
||||
pre-fill options described above with appropriate values.
|
||||
@@ -89,8 +156,8 @@ recognize MCU architecture. The correct type of ``board_mcu`` depends on
|
||||
platform library. For example, the list of ``board_mcu`` for "megaAVR Devices"
|
||||
is described `here <http://www.nongnu.org/avr-libc/user-manual/>`_.
|
||||
|
||||
The full list of ``board_mcu`` for popular embedded platforms you can find in
|
||||
*Boards* section of :ref:`platforms`. See "Microcontroller" column.
|
||||
The full list of ``board_mcu`` for the popular embedded platforms you can find
|
||||
in *Boards* section of :ref:`platforms`. See "Microcontroller" column.
|
||||
|
||||
|
||||
``board_f_cpu``
|
||||
@@ -100,19 +167,22 @@ An option ``board_f_cpu`` is used to define MCU frequency (Hertz, Clock). A
|
||||
format of this option is ``C-like long integer`` value with ``L`` suffix. The
|
||||
1 Hertz is equal to ``1L``, then 16 Mhz (Mega Hertz) is equal to ``16000000L``.
|
||||
|
||||
The full list of ``board_f_cpu`` for popular embedded platforms you can find in
|
||||
*Boards* section of :ref:`platforms`. See "Frequency" column.
|
||||
The full list of ``board_f_cpu`` for the popular embedded platforms you can
|
||||
find in *Boards* section of :ref:`platforms`. See "Frequency" column.
|
||||
|
||||
|
||||
``upload_port``
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
This option is used by "uploader" tool to send firmware to the board via
|
||||
This option is used by "uploader" tool when sending firmware to board via
|
||||
``upload_port``. For example,
|
||||
|
||||
* ``/dev/ttyUSB0`` - Unix-based OS
|
||||
* ``COM3`` - Windows OS
|
||||
|
||||
If ``upload_port`` isn't specified, then *PlatformIO* will try to detect it
|
||||
automatically.
|
||||
|
||||
To print all available serial ports use :ref:`cmd_serialports` command.
|
||||
|
||||
|
||||
@@ -126,7 +196,7 @@ A protocol that "uploader" tool uses to talk to the board.
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
A connection speed (`baud rate <http://en.wikipedia.org/wiki/Baud>`_)
|
||||
which "uploader" tool uses when sending firmware to the board.
|
||||
which "uploader" tool uses when sending firmware to board.
|
||||
|
||||
|
||||
``targets``
|
||||
@@ -142,6 +212,8 @@ When no targets are defined, *PlatformIO* will build only sources by default.
|
||||
(``targets = upload``).
|
||||
|
||||
|
||||
.. _projectconf_build_flags:
|
||||
|
||||
``build_flags``
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -225,31 +297,51 @@ For more detailed information about available flags/options go to:
|
||||
* `Options for Directory Search
|
||||
<https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html>`_
|
||||
|
||||
.. _projectconf_srcbuild_flags:
|
||||
|
||||
``srcbuild_flags``
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This is option ``srcbuild_flags`` has the same behaviour like ``build_flags``
|
||||
but will be applied only for project source code from ``src`` directory.
|
||||
An option ``srcbuild_flags`` has the same behaviour like ``build_flags``
|
||||
but will be applied only for the project source code from
|
||||
:ref:`projectconf_pio_src_dir` directory.
|
||||
|
||||
This option can be overridden by global environment variable
|
||||
:ref:`envvar_PLATFORMIO_SRCBUILD_FLAGS`.
|
||||
|
||||
``ignore_libs``
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Specify libraries which should be ignored by ``Library Dependency Finder``
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[env:ignore_some_libs]
|
||||
ignore_libs = SPI,EngduinoV3_ID123
|
||||
|
||||
|
||||
.. _projectconf_examples:
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
.. note::
|
||||
A full list with project examples can be found in
|
||||
`PlatformIO Repository <https://github.com/platformio/platformio/tree/develop/examples>`_.
|
||||
|
||||
1. :ref:`platform_atmelavr`: Arduino UNO board with auto pre-configured
|
||||
``board_*`` and ``upload_*`` options (use only ``board`` option) and Arduino
|
||||
Wiring-based Framework
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:atmelavr_arduino_uno_board]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = uno
|
||||
|
||||
upload_port = /dev/ttyUSB0
|
||||
# for Windows OS
|
||||
# upload_port = COM3
|
||||
|
||||
# enable auto-uploading
|
||||
targets = upload
|
||||
|
||||
@@ -258,17 +350,13 @@ Examples
|
||||
auto pre-configured ``board_*`` and ``upload_*`` options (use only
|
||||
``board`` option) and Arduino Wiring-based Framework
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:atmelavr_microduino_core_board]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = 168pa8m
|
||||
|
||||
upload_port = /dev/ttyUSB0
|
||||
# for Windows OS
|
||||
# upload_port = COM3
|
||||
|
||||
# enable auto-uploading
|
||||
targets = upload
|
||||
|
||||
@@ -277,7 +365,7 @@ Examples
|
||||
auto pre-configured ``board_*`` and ``upload_*`` options (use only
|
||||
``board`` option) and Arduino Wiring-based Framework
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:atmelavr_raspduino_board]
|
||||
platform = atmelavr
|
||||
@@ -293,7 +381,7 @@ Examples
|
||||
4. :ref:`platform_atmelavr`: Embedded board that is based on ATmega168 MCU with
|
||||
"arduino" bootloader
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:atmelavr_atmega168_board]
|
||||
platform = atmelavr
|
||||
@@ -310,11 +398,23 @@ Examples
|
||||
targets = upload
|
||||
|
||||
|
||||
5. :ref:`platform_timsp430`: TI MSP430G2553 LaunchPad with auto pre-configured
|
||||
5. Upload firmware via USB programmer (USBasp) to :ref:`platform_atmelavr`
|
||||
microcontrollers
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[env:atmelavr_usbasp]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
board = pro8MHzatmega328
|
||||
upload_protocol = usbasp -B5
|
||||
|
||||
|
||||
6. :ref:`platform_timsp430`: TI MSP430G2553 LaunchPad with auto pre-configured
|
||||
``board_*`` and ``upload_*`` options (use only ``board`` option) and Energia
|
||||
Wiring-based Framework
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:timsp430_g2553_launchpad]
|
||||
platform = timsp430
|
||||
@@ -322,9 +422,9 @@ Examples
|
||||
board = lpmsp430g2553
|
||||
|
||||
|
||||
6. :ref:`platform_timsp430`: Embedded board that is based on MSP430G2553 MCU
|
||||
7. :ref:`platform_timsp430`: Embedded board that is based on MSP430G2553 MCU
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:timsp430_g2553_board]
|
||||
platform = timsp430
|
||||
@@ -337,11 +437,11 @@ Examples
|
||||
targets = upload
|
||||
|
||||
|
||||
5. :ref:`platform_titiva`: TI Tiva C ARM Series TM4C123G LaunchPad with auto
|
||||
8. :ref:`platform_titiva`: TI Tiva C ARM Series TM4C123G LaunchPad with auto
|
||||
pre-configured ``board_*`` and ``upload_*`` options (use only ``board``
|
||||
option) and Energia Wiring-based Framework
|
||||
|
||||
.. code-block:: ini
|
||||
.. code-block:: ini
|
||||
|
||||
[env:titiva_tm4c1230c3pm_launchpad]
|
||||
platform = titiva
|
||||
|
||||
@@ -3,65 +3,62 @@
|
||||
Quickstart
|
||||
==========
|
||||
|
||||
First, :ref:`Install PlatformIO <installation>`.
|
||||
.. note::
|
||||
Please read `Get Started <http://platformio.org/#!/get-started>`_
|
||||
article from the official WebSite.
|
||||
|
||||
Print all available development platforms for installing
|
||||
1. :ref:`Install PlatformIO <installation>`.
|
||||
|
||||
2. Find board ``type`` on this :ref:`Embedded Boards <platforms>` page or
|
||||
via :ref:`cmd_boards` command.
|
||||
|
||||
3. Initialize new PlatformIO based project via :ref:`cmd_init` command with the
|
||||
pre-configured environments for your boards:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio search all
|
||||
[ ... ]
|
||||
$ platformio init --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
|
||||
|
||||
Would you like to enable firmware auto-uploading when project is successfully built using `platformio run` command?
|
||||
Don't forget that you can upload firmware manually using `platformio run --target upload` command. [y/N]: y
|
||||
|
||||
Install new development platform
|
||||
The current working directory *** will be used for the new project.
|
||||
You can specify another project directory via
|
||||
`platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.
|
||||
|
||||
.. code-block:: bash
|
||||
The next files/directories will be created in ***
|
||||
platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
|
||||
src - Put your source code here
|
||||
lib - Put here project specific or 3-rd party libraries
|
||||
Do you want to continue? [y/N]: y
|
||||
Project has been successfully initialized!
|
||||
Useful commands:
|
||||
`platformio run` - process/build project from the current directory
|
||||
`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
|
||||
`platformio run --target clean` - clean project (remove compiled files)
|
||||
|
||||
$ platformio install PLATFORM
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
Installing .....
|
||||
[ ... ]
|
||||
The platform 'PLATFORM' has been successfully installed!
|
||||
Put your source code ``*.h, *.c, *.cpp or *.ino`` files to ``src`` directory.
|
||||
|
||||
4. Process the project's environments.
|
||||
|
||||
Initialize new PlatformIO based project
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ cd /path/to/empty/directory
|
||||
$ platformio init
|
||||
Project has been initialized!
|
||||
Please put your source code to `src` directory, external libraries to `lib`
|
||||
and setup environments in `platformio.ini` file.
|
||||
Then process project with `platformio run` command.
|
||||
|
||||
|
||||
Setup environments in ``platformio.ini``. For more examples go to
|
||||
:ref:`projectconf`
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
# Simple and base environment
|
||||
[env:mybaseenv]
|
||||
platform = %INSTALLED_PLATFORM_NAME_HERE%
|
||||
|
||||
|
||||
Process the project's environments
|
||||
Change working directory to the project's root where is located
|
||||
:ref:`Project Configuration File (platformio.ini) <projectconf>` and run:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio run
|
||||
|
||||
# if embedded project then upload firmware
|
||||
# if you don't have specified `targets = upload` option for environment,
|
||||
# then you can upload firmware manually with this command:
|
||||
$ platformio run --target upload
|
||||
|
||||
# clean project
|
||||
$ platformio run --target clean
|
||||
|
||||
If you don't have installed required platforms, then *PlatformIO* will propose
|
||||
you to install them automatically.
|
||||
|
||||
Further examples can be found in the ``examples/`` directory in the source
|
||||
distribution or `on the web <https://github.com/ivankravets/platformio/tree/develop/examples>`_.
|
||||
Further examples can be found in `PlatformIO Repository <https://github.com/platformio/platformio/tree/develop/examples>`_.
|
||||
|
||||
Also, for more detailed information as for commands please go to
|
||||
:ref:`userguide` sections.
|
||||
|
||||
125
docs/userguide/cmd_boards.rst
Normal file
@@ -0,0 +1,125 @@
|
||||
.. _cmd_boards:
|
||||
|
||||
platformio boards
|
||||
=================
|
||||
|
||||
.. contents::
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Print all available pre-configured embedded boards
|
||||
platformio boards
|
||||
|
||||
# Filter boards by "Query"
|
||||
platformio boards QUERY
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
List pre-configured Embedded Boards
|
||||
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Show Arduino-based boards
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio boards arduino
|
||||
|
||||
Platform: atmelavr
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
btatmega168 atmega168 16Mhz 14Kb 1Kb Arduino BT ATmega168
|
||||
btatmega328 atmega328p 16Mhz 28Kb 2Kb Arduino BT ATmega328
|
||||
diecimilaatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Duemilanove or Diecimila ATmega168
|
||||
diecimilaatmega328 atmega328p 16Mhz 30Kb 2Kb Arduino Duemilanove or Diecimila ATmega328
|
||||
esplora atmega32u4 16Mhz 28Kb 2Kb Arduino Esplora
|
||||
ethernet atmega328p 16Mhz 31Kb 2Kb Arduino Ethernet
|
||||
...
|
||||
|
||||
|
||||
2. Show mbed-enabled boards
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio boards mbed
|
||||
|
||||
Platform: freescalekinetis
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
frdm_k20d50m mk20dx128vlh5 48Mhz 128Kb 16Kb Freescale Kinetis FRDM-K20D50M
|
||||
frdm_k22f mk22fn512vlh12 120Mhz 512Kb 128Kb Freescale Kinetis FRDM-K22F
|
||||
...
|
||||
|
||||
Platform: nordicnrf51
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
wallBotBLE nrf51822 16Mhz 128Kb 16Kb JKSoft Wallbot BLE
|
||||
nrf51_dk nrf51822 32Mhz 256Kb 32Kb Nordic nRF51-DK
|
||||
...
|
||||
|
||||
Platform: nxplpc
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
blueboard_lpc11u24 lpc11u24 48Mhz 32Kb 8Kb BlueBoard-LPC11U24
|
||||
dipcortexm0 lpc11u24 50Mhz 32Kb 8Kb DipCortex M0
|
||||
lpc11u35 lpc11u35 48Mhz 64Kb 10Kb EA LPC11U35 QuickStart Board
|
||||
...
|
||||
|
||||
Platform: ststm32
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
disco_f401vc stm32f401vct6 84Mhz 256Kb 64Kb 32F401CDISCOVERY
|
||||
nucleo_f030r8 stm32f030r8t6 48Mhz 64Kb 8Kb ST Nucleo F030R8
|
||||
...
|
||||
|
||||
3. Show boards which are based on ``ATmega168`` MCU
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio boards atmega168
|
||||
|
||||
Platform: atmelavr
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
btatmega168 atmega168 16Mhz 14Kb 1Kb Arduino BT ATmega168
|
||||
diecimilaatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Duemilanove or Diecimila ATmega168
|
||||
miniatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Mini ATmega168
|
||||
atmegangatmega168 atmega168 16Mhz 14Kb 1Kb Arduino NG or older ATmega168
|
||||
nanoatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Nano ATmega168
|
||||
pro8MHzatmega168 atmega168 8Mhz 14Kb 1Kb Arduino Pro or Pro Mini ATmega168 (3.3V, 8 MHz)
|
||||
pro16MHzatmega168 atmega168 16Mhz 14Kb 1Kb Arduino Pro or Pro Mini ATmega168 (5V, 16 MHz)
|
||||
lilypadatmega168 atmega168 8Mhz 14Kb 1Kb LilyPad Arduino ATmega168
|
||||
168pa16m atmega168p 16Mhz 15Kb 1Kb Microduino Core (Atmega168PA@16M,5V)
|
||||
168pa8m atmega168p 8Mhz 15Kb 1Kb Microduino Core (Atmega168PA@8M,3.3V)
|
||||
|
||||
4. Show boards by :ref:`platform_timsp430`
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio boards timsp430
|
||||
|
||||
Platform: timsp430
|
||||
---------------------------------------------------------------------------
|
||||
Type MCU Frequency Flash RAM Name
|
||||
---------------------------------------------------------------------------
|
||||
lpmsp430fr5739 msp430fr5739 16Mhz 15Kb 1Kb FraunchPad w/ msp430fr5739
|
||||
lpmsp430f5529 msp430f5529 16Mhz 128Kb 1Kb LaunchPad w/ msp430f5529 (16MHz)
|
||||
lpmsp430f5529_25 msp430f5529 25Mhz 128Kb 1Kb LaunchPad w/ msp430f5529 (25MHz)
|
||||
lpmsp430fr5969 msp430fr5969 8Mhz 64Kb 1Kb LaunchPad w/ msp430fr5969
|
||||
lpmsp430g2231 msp430g2231 1Mhz 2Kb 128B LaunchPad w/ msp430g2231 (1MHz)
|
||||
lpmsp430g2452 msp430g2452 16Mhz 8Kb 256B LaunchPad w/ msp430g2452 (16MHz)
|
||||
lpmsp430g2553 msp430g2553 16Mhz 16Kb 512B LaunchPad w/ msp430g2553 (16MHz)
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio init
|
||||
platformio init [OPTIONS]
|
||||
|
||||
|
||||
Description
|
||||
@@ -21,22 +21,101 @@ Initialize new PlatformIO based project.
|
||||
|
||||
This command will create:
|
||||
|
||||
* ``.pioenvs`` - a temporary working directory.
|
||||
* ``lib`` - a directory for project specific libraries. PlatformIO will
|
||||
compile them to static libraries and link to executable file
|
||||
* ``src`` - a source directory. Put your source code here.
|
||||
* :ref:`projectconf`
|
||||
* ``src`` - a source directory. Put your source code here
|
||||
* ``lib`` - a directory for the project specific libraries. PlatformIO will
|
||||
compile them to static libraries and link to executable file
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
.. option::
|
||||
--project-dir, -d
|
||||
|
||||
A path to the directory where *PlatformIO* will initialise new project.
|
||||
|
||||
.. option::
|
||||
--board, -b
|
||||
|
||||
If you specify board ``type`` (you can pass multiple ``--board`` options), then
|
||||
*PlatformIO* will automatically generate environment for :ref:`projectconf` and
|
||||
pre-fill these data:
|
||||
|
||||
* :ref:`projectconf_env_platform`
|
||||
* :ref:`projectconf_env_framework`
|
||||
* :ref:`projectconf_env_board`
|
||||
|
||||
The full list with pre-configured boards is available here :ref:`platforms`.
|
||||
|
||||
.. option::
|
||||
--disable-auto-uploading
|
||||
|
||||
If you initialise project with the specified ``--board``, then *PlatformIO*
|
||||
will create environment with enabled firmware auto-uploading. This option
|
||||
allows you to disable firmware auto-uploading by default.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Create new project in the current working directory
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Change directory to the future project
|
||||
$ cd /path/to/empty/directory
|
||||
$ platformio init
|
||||
Project has been initialized!
|
||||
Please put your source code to `src` directory, external libraries to `lib`
|
||||
and setup environments in `platformio.ini` file.
|
||||
Then process project with `platformio run` command.
|
||||
|
||||
The current working directory *** will be used for the new project.
|
||||
You can specify another project directory via
|
||||
`platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.
|
||||
|
||||
The next files/directories will be created in ***
|
||||
platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
|
||||
src - Put your source code here
|
||||
lib - Put here project specific or 3-rd party libraries
|
||||
Do you want to continue? [y/N]: y
|
||||
Project has been successfully initialized!
|
||||
Useful commands:
|
||||
`platformio run` - process/build project from the current directory
|
||||
`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
|
||||
`platformio run --target clean` - clean project (remove compiled files)
|
||||
|
||||
|
||||
2. Create new project in the specified directory
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio init -d %PATH_TO_DIR%
|
||||
|
||||
The next files/directories will be created in ***
|
||||
platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
|
||||
src - Put your source code here
|
||||
lib - Put here project specific or 3-rd party libraries
|
||||
Do you want to continue? [y/N]: y
|
||||
Project has been successfully initialized!
|
||||
Useful commands:
|
||||
`platformio run` - process/build project from the current directory
|
||||
`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
|
||||
`platformio run --target clean` - clean project (remove compiled files)
|
||||
|
||||
3. Initialise project for Arduino Uno
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio init --board uno
|
||||
|
||||
Would you like to enable firmware auto-uploading when project is successfully built using `platformio run` command?
|
||||
Don't forget that you can upload firmware manually using `platformio run --target upload` command. [y/N]: y
|
||||
|
||||
The current working directory *** will be used for the new project.
|
||||
You can specify another project directory via
|
||||
`platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.
|
||||
|
||||
The next files/directories will be created in ***
|
||||
platformio.ini - Project Configuration File. |-> PLEASE EDIT ME <-|
|
||||
src - Put your source code here
|
||||
lib - Put here project specific or 3-rd party libraries
|
||||
Do you want to continue? [y/N]: y
|
||||
Project has been successfully initialized!
|
||||
Useful commands:
|
||||
`platformio run` - process/build project from the current directory
|
||||
`platformio run --target upload` or `platformio run -t upload` - upload firmware to embedded board
|
||||
`platformio run --target clean` - clean project (remove compiled files)
|
||||
|
||||
@@ -24,7 +24,6 @@ There are several predefined aliases for packages, such as:
|
||||
* ``toolchain``
|
||||
* ``uploader``
|
||||
|
||||
|
||||
Options
|
||||
-------
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio list
|
||||
platformio list [OPTIONS]
|
||||
|
||||
|
||||
Description
|
||||
@@ -18,6 +18,13 @@ Description
|
||||
|
||||
List installed :ref:`Platforms <platforms>`
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. option::
|
||||
--json-output
|
||||
|
||||
Return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
|
||||
Examples
|
||||
--------
|
||||
@@ -25,6 +32,12 @@ Examples
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio list
|
||||
timsp430 with packages: toolchain-timsp430, tool-mspdebug, framework-energiamsp430
|
||||
atmelavr with packages: toolchain-atmelavr, tool-avrdude, framework-arduinoavr
|
||||
titiva with packages: toolchain-gccarmnoneeabi, tool-lm4flash, framework-energiativa
|
||||
atmelavr with packages: toolchain-atmelavr, tool-avrdude, framework-arduinoavr, tool-micronucleus
|
||||
atmelsam with packages: framework-arduinosam, ldscripts, toolchain-gccarmnoneeabi, tool-bossac
|
||||
freescalekinetis with packages: framework-mbed, toolchain-gccarmnoneeabi
|
||||
nordicnrf51 with packages: framework-mbed, toolchain-gccarmnoneeabi
|
||||
nxplpc with packages: framework-mbed, toolchain-gccarmnoneeabi
|
||||
ststm32 with packages: framework-libopencm3, toolchain-gccarmnoneeabi, tool-stlink, framework-spl, framework-cmsis, framework-mbed, ldscripts
|
||||
teensy with packages: toolchain-atmelavr, ldscripts, framework-arduinoteensy, toolchain-gccarmnoneeabi, tool-teensy
|
||||
timsp430 with packages: toolchain-timsp430, tool-mspdebug, framework-energiamsp430, framework-arduinomsp430
|
||||
titiva with packages: ldscripts, framework-libopencm3, toolchain-gccarmnoneeabi, tool-lm4flash, framework-energiativa
|
||||
|
||||
@@ -42,7 +42,7 @@ Upload port of embedded board. To print all available ports use
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Process `Wiring Blink Example <https://github.com/ivankravets/platformio/tree/develop/examples/wiring-blink>`_
|
||||
1. Process `Wiring Blink Example <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
@@ -10,11 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Print all available development platforms
|
||||
platformio search all
|
||||
|
||||
# Filter platforms by "Query"
|
||||
platformio search QUERY
|
||||
platformio search QUERY [OPTIONS]
|
||||
|
||||
|
||||
Description
|
||||
@@ -22,21 +18,89 @@ Description
|
||||
|
||||
Search for development :ref:`Platforms <platforms>`
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. option::
|
||||
--json-output
|
||||
|
||||
Return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Search for TI development platforms
|
||||
1. Print all available development platforms
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio search
|
||||
atmelavr (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
--------
|
||||
Atmel AVR 8- and 32-bit MCUs deliver a unique combination of performance...
|
||||
|
||||
atmelsam (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
--------
|
||||
Atmel | SMART offers Flash- based ARM products based on the ...
|
||||
|
||||
freescalekinetis (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
----------------
|
||||
Freescale Kinetis Microcontrollers is family of multiple hardware- and ...
|
||||
|
||||
nordicnrf51 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
-----------
|
||||
The Nordic nRF51 Series is a family of highly flexible, multi-protocol ...
|
||||
|
||||
nxplpc (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
------
|
||||
The NXP LPC is a family of 32-bit microcontroller integrated circuits ...
|
||||
|
||||
ststm32 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
-------
|
||||
The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M ...
|
||||
|
||||
teensy (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
------
|
||||
Teensy is a complete USB-based microcontroller development syste ...
|
||||
|
||||
timsp430 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
--------
|
||||
MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are ...
|
||||
|
||||
titiva (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
------
|
||||
Texas Instruments TM4C12x MCUs offer the industrys most popular ...
|
||||
|
||||
2. Search for TI development platforms
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio search ti
|
||||
timsp430 - An embedded platform for TI MSP430 microcontrollers (with Energia Framework)
|
||||
titiva - An embedded platform for TI TIVA C ARM microcontrollers (with Energia Framework)
|
||||
timsp430 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
--------
|
||||
MSP430 microcontrollers (MCUs) from Texas Instruments (TI) are ...
|
||||
|
||||
2. Search for development platforms which support "Arduino Framework"
|
||||
titiva (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
------
|
||||
Texas Instruments TM4C12x MCUs offer the industrys most popular ...
|
||||
|
||||
3. Search for development platforms which support "mbed Framework"
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio search arduino
|
||||
atmelavr - An embedded platform for Atmel AVR microcontrollers (with Arduino Framework)
|
||||
$ platformio search mbed
|
||||
freescalekinetis (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
----------------
|
||||
Freescale Kinetis Microcontrollers is family of multiple hardware- and ...
|
||||
|
||||
nordicnrf51 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
-----------
|
||||
The Nordic nRF51 Series is a family of highly flexible, multi-protocol ...
|
||||
|
||||
nxplpc (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
------
|
||||
The NXP LPC is a family of 32-bit microcontroller integrated circuits ...
|
||||
|
||||
ststm32 (available packages: ldscripts, toolchain-gccarmnoneeabi, tool-lm4flash, framework-opencm3, framework-energiativa)
|
||||
-------
|
||||
The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M ...
|
||||
|
||||
@@ -13,7 +13,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio serialports list
|
||||
platformio serialports list [OPTIONS]
|
||||
|
||||
|
||||
Description
|
||||
@@ -21,6 +21,14 @@ Description
|
||||
|
||||
List available `Serial Ports <http://en.wikipedia.org/wiki/Serial_port>`_
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. option::
|
||||
--json-output
|
||||
|
||||
Return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
@@ -57,6 +65,8 @@ Examples
|
||||
Description: Silicon Labs CP210x USB to UART Bridge (COM3)
|
||||
|
||||
|
||||
.. _cmd_serialports_monitor:
|
||||
|
||||
platformio serialports monitor
|
||||
------------------------------
|
||||
|
||||
|
||||
203
docs/userguide/cmd_settings.rst
Normal file
@@ -0,0 +1,203 @@
|
||||
.. _cmd_settings:
|
||||
|
||||
platformio settings
|
||||
===================
|
||||
|
||||
Manage PlatformIO settings
|
||||
|
||||
.. contents::
|
||||
|
||||
platformio settings get
|
||||
-----------------------
|
||||
|
||||
Usage
|
||||
~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio settings get [NAME]
|
||||
|
||||
|
||||
Description
|
||||
~~~~~~~~~~~
|
||||
|
||||
Get/List existing settings
|
||||
|
||||
Settings
|
||||
~~~~~~~~
|
||||
|
||||
.. _setting_auto_update_libraries:
|
||||
|
||||
``auto_update_libraries``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: Yes
|
||||
:Values: Yes/No
|
||||
|
||||
Automatically update libraries.
|
||||
|
||||
.. _setting_auto_update_platforms:
|
||||
|
||||
``auto_update_platforms``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: Yes
|
||||
:Values: Yes/No
|
||||
|
||||
Automatically update platforms.
|
||||
|
||||
.. _setting_check_libraries_interval:
|
||||
|
||||
``check_libraries_interval``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: 7
|
||||
:Values: Days (Number)
|
||||
|
||||
Check for the library updates interval.
|
||||
|
||||
.. _setting_check_platformio_interval:
|
||||
|
||||
``check_platformio_interval``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: 3
|
||||
:Values: Days (Number)
|
||||
|
||||
Check for the new PlatformIO interval.
|
||||
|
||||
.. _setting_check_platforms_interval:
|
||||
|
||||
``check_platforms_interval``
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: 7
|
||||
:Values: Days (Number)
|
||||
|
||||
Check for the platform updates interval.
|
||||
|
||||
.. _setting_enable_prompts:
|
||||
|
||||
``enable_prompts``
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: Yes
|
||||
:Values: Yes/No
|
||||
|
||||
Can PlatformIO communicate with you via prompts?
|
||||
|
||||
* propose to install platforms which aren't installed yet
|
||||
* paginate over library search results
|
||||
* and etc.
|
||||
|
||||
.. warning::
|
||||
If you are going to run *PlatformIO* from **subprocess**, you **MUST
|
||||
DISABLE** all prompts. It will allow you to avoid blocking.
|
||||
|
||||
.. _setting_enable_telemetry:
|
||||
|
||||
``enable_telemetry``
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
:Default: Yes
|
||||
:Values: Yes/No
|
||||
|
||||
Shares commands, platforms and libraries usage to help us make PlatformIO
|
||||
better.
|
||||
|
||||
|
||||
.. note::
|
||||
* The ``Yes`` value is equl to: ``True``, ``Y``, ``1``.
|
||||
The value is not case sensetive.
|
||||
* You can override these settings using :ref:`envvars`.
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
1. List all settings and theirs current values
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio settings get
|
||||
Name Value [Default] Description
|
||||
------------------------------------------------------------------------------------------
|
||||
auto_update_libraries Yes Automatically update libraries (Yes/No)
|
||||
auto_update_platforms Yes Automatically update platforms (Yes/No)
|
||||
check_libraries_interval 7 Check for the library updates interval (days)
|
||||
check_platformio_interval 3 Check for the new PlatformIO interval (days)
|
||||
check_platforms_interval 7 Check for the platform updates interval (days)
|
||||
enable_prompts Yes Can PlatformIO communicate with you via prompts: propose to install platforms which aren't installed yet, paginate over library search results and etc.)? ATTENTION!!! If you call PlatformIO like subprocess, please disable prompts to avoid blocking (Yes/No)
|
||||
enable_telemetry Yes Shares commands, platforms and libraries usage to help us make PlatformIO better (Yes/No)
|
||||
|
||||
|
||||
2. Show specified setting
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio settings get auto_update_platforms
|
||||
Name Value [Default] Description
|
||||
------------------------------------------------------------------------------------------
|
||||
auto_update_platforms Yes Automatically update platforms (Yes/No)
|
||||
|
||||
|
||||
platformio settings set
|
||||
-----------------------
|
||||
|
||||
Usage
|
||||
~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio settings set NAME VALUE
|
||||
|
||||
|
||||
Description
|
||||
~~~~~~~~~~~
|
||||
|
||||
Set new value for the setting
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
Change to check for the new PlatformIO each day
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio settings set check_platformio_interval 1
|
||||
The new value for the setting has been set!
|
||||
Name Value [Default] Description
|
||||
------------------------------------------------------------------------------------------
|
||||
check_platformio_interval 1 [3] Check for the new PlatformIO interval (days)
|
||||
|
||||
|
||||
platformio settings reset
|
||||
-------------------------
|
||||
|
||||
Usage
|
||||
~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio settings reset
|
||||
|
||||
|
||||
Description
|
||||
~~~~~~~~~~~
|
||||
|
||||
Reset settings to default
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio settings reset
|
||||
The settings have been reseted!
|
||||
|
||||
Name Value [Default] Description
|
||||
------------------------------------------------------------------------------------------
|
||||
auto_update_libraries Yes Automatically update libraries (Yes/No)
|
||||
auto_update_platforms Yes Automatically update platforms (Yes/No)
|
||||
check_libraries_interval 7 Check for the library updates interval (days)
|
||||
check_platformio_interval 3 Check for the new PlatformIO interval (days)
|
||||
check_platforms_interval 7 Check for the platform updates interval (days)
|
||||
@@ -29,14 +29,17 @@ Examples
|
||||
----------
|
||||
Package: toolchain-atmelavr
|
||||
Alias: toolchain
|
||||
Location: /Users/ikravets/.platformio/atmelavr/tools/toolchain
|
||||
Version: 1
|
||||
Installed: 2014-12-13 23:58:48
|
||||
----------
|
||||
Package: tool-avrdude
|
||||
Alias: uploader
|
||||
Location: /Users/ikravets/.platformio/atmelavr/tools/avrdude
|
||||
Version: 1
|
||||
Version: 2
|
||||
Installed: 2015-02-13 22:23:17
|
||||
----------
|
||||
Package: framework-arduinoavr
|
||||
Location: /Users/ikravets/.platformio/atmelavr/frameworks/arduino
|
||||
Version: 12
|
||||
Installed: 2015-02-23 20:57:40
|
||||
----------
|
||||
Package: tool-micronucleus
|
||||
Version: 1
|
||||
Installed: 2015-02-23 21:20:14
|
||||
|
||||
@@ -30,9 +30,50 @@ Examples
|
||||
--------
|
||||
Updating toolchain-atmelavr package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-arduinoavr package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating tool-avrdude package:
|
||||
Versions: Current=2, Latest=2 [Up-to-date]
|
||||
Updating framework-arduinoavr package:
|
||||
Versions: Current=12, Latest=12 [Up-to-date]
|
||||
Updating tool-micronucleus package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
|
||||
Platform atmelsam
|
||||
--------
|
||||
Updating framework-arduinosam package:
|
||||
Versions: Current=3, Latest=3 [Up-to-date]
|
||||
Updating ldscripts package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating toolchain-gccarmnoneeabi package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating tool-bossac package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
|
||||
Platform stm32
|
||||
--------
|
||||
Updating toolchain-gccarmnoneeabi package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating tool-stlink package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-spl package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-cmsis package:
|
||||
Versions: Current=2, Latest=2 [Up-to-date]
|
||||
Updating framework-opencm3 package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating ldscripts package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
|
||||
Platform teensy
|
||||
--------
|
||||
Updating toolchain-atmelavr package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating ldscripts package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-arduinoteensy package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating toolchain-gccarmnoneeabi package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating tool-teensy package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
|
||||
Platform timsp430
|
||||
@@ -42,13 +83,17 @@ Examples
|
||||
Updating tool-mspdebug package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-energiamsp430 package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Versions: Current=2, Latest=2 [Up-to-date]
|
||||
|
||||
Platform titiva
|
||||
--------
|
||||
Updating ldscripts package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating toolchain-gccarmnoneeabi package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating tool-lm4flash package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-energiativa package:
|
||||
Updating framework-opencm3 package:
|
||||
Versions: Current=1, Latest=1 [Up-to-date]
|
||||
Updating framework-energiativa package:
|
||||
Versions: Current=4, Latest=4 [Up-to-date]
|
||||
|
||||
@@ -14,6 +14,7 @@ To print all available commands and options use:
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
cmd_boards
|
||||
cmd_init
|
||||
cmd_install
|
||||
platformio lib <lib/index>
|
||||
@@ -21,6 +22,7 @@ To print all available commands and options use:
|
||||
cmd_run
|
||||
cmd_search
|
||||
cmd_serialports
|
||||
cmd_settings
|
||||
cmd_show
|
||||
cmd_uninstall
|
||||
cmd_update
|
||||
|
||||
@@ -10,13 +10,14 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio lib install [OPTIONS] [NAMES]
|
||||
platformio lib install [OPTIONS] [LIBRARY_ID]
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
Install new library
|
||||
Install new library by specified
|
||||
`PlatformIO Library Registry ID <http://platformio.org/#!/lib>`_.
|
||||
|
||||
Options
|
||||
-------
|
||||
@@ -34,35 +35,38 @@ Examples
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib install Arduino-IRremote
|
||||
Installing Arduino-IRremote library:
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
The library 'Arduino-IRremote' has been successfully installed!
|
||||
# IRremote: http://platformio.org/#!/lib/show/4/IRremote
|
||||
$ platformio lib install 4
|
||||
# Installing library [ 4 ]:
|
||||
# Downloading [####################################] 100%
|
||||
# Unpacking [####################################] 100%
|
||||
# The library #4 'IRremote' has been successfully installed!
|
||||
|
||||
|
||||
2. Install specified version of library
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib install Arduino-XBee --version=0.5
|
||||
Installing Arduino-XBee library:
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
The library 'Arduino-XBee' has been successfully installed!
|
||||
# XBee: http://platformio.org/#!/lib/show/6/XBee
|
||||
$ platformio lib install 6 --version=0.5
|
||||
# Installing library [ 6 ]:
|
||||
# Downloading [####################################] 100%
|
||||
# Unpacking [####################################] 100%
|
||||
# The library #6 'XBee' has been successfully installed!
|
||||
|
||||
|
||||
3. Install library with dependencies
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib install Adafruit-Arduino-ST7735
|
||||
Installing Adafruit-Arduino-ST7735 library:
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
The library 'Adafruit-Arduino-ST7735' has been successfully installed!
|
||||
Installing dependencies:
|
||||
Installing Adafruit-Arduino-GFX library:
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
The library 'Adafruit-Arduino-GFX' has been successfully installed!
|
||||
# Adafruit-ST7735: http://platformio.org/#!/lib/show/12/Adafruit-ST7735
|
||||
$ platformio lib install 12
|
||||
# Installing library [ 12 ]:
|
||||
# Downloading [####################################] 100%
|
||||
# Unpacking [####################################] 100%
|
||||
# The library #12 'Adafruit-ST7735' has been successfully installed!
|
||||
# Installing dependencies:
|
||||
# Installing library [ 13 ]:
|
||||
# Downloading [####################################] 100%
|
||||
# Unpacking [####################################] 100%
|
||||
# The library #13 'Adafruit-GFX' has been successfully installed!
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio lib list
|
||||
platformio lib list [OPTIONS]
|
||||
|
||||
|
||||
Description
|
||||
@@ -18,6 +18,13 @@ Description
|
||||
|
||||
List installed libraries
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
.. option::
|
||||
--json-output
|
||||
|
||||
Return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
|
||||
|
||||
Examples
|
||||
--------
|
||||
@@ -25,7 +32,15 @@ Examples
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib list
|
||||
Arduino-IRremote Send and receive infrared signals with multiple protocols
|
||||
...
|
||||
Arduino-Webduino An extensible web server library (for use with the Arduino Ethernet Shield)
|
||||
Arduino-XBee Arduino library for communicating with XBees in API mode
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 23 ] Adafruit-L3GD20-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the L3GD20 Gyroscope
|
||||
# [ 12 ] Adafruit-ST7735 arduino, atmelavr "Adafruit Industries": A library for the Adafruit 1.8" SPI display
|
||||
# [ 31 ] Adafruit-Unified-Sensor arduino, atmelavr "Adafruit Industries": Adafruit Unified Sensor Driver
|
||||
# [ 26 ] Adafruit-LSM303DLHC-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for Adafruit's LSM303 Breakout (Accelerometer + Magnetometer)
|
||||
# [ 6 ] XBee arduino, atmelavr "Andrew Rapp": Arduino library for communicating with XBees in API mode
|
||||
# [ 13 ] Adafruit-GFX arduino, atmelavr "Adafruit Industries": A core graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.)
|
||||
# [ 4 ] IRremote arduino, atmelavr "Ken Shirriff": Send and receive infrared signals with multiple protocols
|
||||
# [ 14 ] Adafruit-9DOF-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303)
|
||||
# ...
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio lib regiter [HTTP_URL_TO_LIBRARY.JSON]
|
||||
platformio lib register [HTTP_URL_TO_LIBRARY.JSON]
|
||||
|
||||
|
||||
Description
|
||||
|
||||
@@ -16,8 +16,8 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Search for library over ``name``, ``description`` and ``keywords`` fields from
|
||||
the :ref:`library_config` file in the boolean mode.
|
||||
Search for library in `PlatformIO Library Registry <http://platformio.org/#!/lib>`_
|
||||
by :ref:`library_config` fields in the boolean mode.
|
||||
|
||||
The boolean search capability supports the following operators:
|
||||
|
||||
@@ -71,66 +71,143 @@ Filter libraries by specified author
|
||||
|
||||
Filter libraries by specified keyword
|
||||
|
||||
|
||||
.. option::
|
||||
-f, --framework
|
||||
|
||||
Filter libraries by specified framework
|
||||
|
||||
|
||||
.. option::
|
||||
-p, --platform
|
||||
|
||||
Filter libraries by specified keyword
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
1. Search for "1-Wire" library
|
||||
1. List all libraries
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search 1-wire
|
||||
Found N libraries:
|
||||
Arduino-OneWire Control devices (from Dallas Semiconductor) that use the One Wire protocol
|
||||
...
|
||||
$ platformio lib search
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 14 ] Adafruit-9DOF-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303)
|
||||
# [ 13 ] Adafruit-GFX arduino, atmelavr "Adafruit Industries": A core graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.)
|
||||
# [ 23 ] Adafruit-L3GD20-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the L3GD20 Gyroscope
|
||||
# [ 26 ] Adafruit-LSM303DLHC-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for Adafruit's LSM303 Breakout (Accelerometer + Magnetometer)
|
||||
# [ 12 ] Adafruit-ST7735 arduino, atmelavr "Adafruit Industries": A library for the Adafruit 1.8" SPI display
|
||||
# [ 31 ] Adafruit-Unified-Sensor arduino, atmelavr "Adafruit Industries": Adafruit Unified Sensor Driver
|
||||
# [ 4 ] IRremote arduino, atmelavr "Ken Shirriff": Send and receive infrared signals with multiple protocols
|
||||
# [ 1 ] OneWire arduino, atmelavr "Paul Stoffregen": Control devices (from Dallas Semiconductor) that use the One Wire protocol (DS18S20, DS18B20, DS2408 and etc)
|
||||
# [ 6 ] XBee arduino, atmelavr "Andrew Rapp": Arduino library for communicating with XBees in API mode
|
||||
# [ 15 ] Adafruit-ADXL345-Unified arduino, atmelavr "Adafruit Industries": Unified driver for the ADXL345 Accelerometer
|
||||
# Show next libraries? [y/N]:
|
||||
# ...
|
||||
|
||||
2. Search for Arduino-based "I2C" libraries. The ``+`` sign is here like ``AND``
|
||||
operator.
|
||||
2. Search for `1-Wire libraries <http://platformio.org/#!/lib/search?query=%25221-wire%2522>`_
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "+i2c +arduino"
|
||||
Found N libraries:
|
||||
i2cdevlib-Arduino-i2cdev The I2C Device Library (i2cdevlib) is a collection of uniform and well-documented classes to provide simple and intuitive interfaces to I2C devices.
|
||||
i2cdevlib-Arduino-AK8975 AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology
|
||||
...
|
||||
$ platformio lib search "1-wire"
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 1 ] OneWire arduino, atmelavr "Paul Stoffregen": Control devices (from Dallas Semiconductor) that use the One Wire protocol (DS18S20, DS18B20, DS2408 and etc)
|
||||
# ...
|
||||
|
||||
3. Search for libraries by "web" and "http" keywords. The ``""`` here is for
|
||||
"empty" query argument.
|
||||
3. Search for `Arduino-based "I2C" libraries <http://platformio.org/#!/lib/search?query=framework%253Aarduino%2520i2c>`_
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "" --keyword web --keyword http
|
||||
Found N libraries:
|
||||
Arduino-Webduino An extensible web server library (for use with the Arduino Ethernet Shield)
|
||||
Arduino-aJson An Arduino library to enable JSON processing with Arduino
|
||||
...
|
||||
$ platformio lib search "i2c" --framework="arduino"
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 11 ] I2Cdevlib-Core arduino, atmelavr "Jeff Rowberg": The I2C Device Library (I2Cdevlib) is a collection of uniform and well-documented classes to provide simple and intuitive interfaces to I2C devices.
|
||||
# [ 24 ] Adafruit-L3GD20 arduino, atmelavr "Adafruit Industries": Driver for Adafruit's L3GD20 I2C Gyroscope Breakout
|
||||
# [ 10 ] I2Cdevlib-AK8975 arduino, atmelavr "Jeff Rowberg": AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology
|
||||
# [ 14 ] Adafruit-9DOF-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303)
|
||||
# ...
|
||||
|
||||
4. Search for libraries from "Adafruit Industries" author.
|
||||
4. Search for `libraries by "web" and "http" keywords <http://platformio.org/#!/lib/search?query=keyword%253A%2522web%2522%2520keyword%253A%2522http%2522>`_.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "" --author "Adafruit Industries"
|
||||
Found N libraries:
|
||||
Adafruit-Arduino-ST7735 A library for the Adafruit 1.8" SPI display
|
||||
Adafruit-Arduino-GFX A core graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.)
|
||||
...
|
||||
$ platformio lib search --keyword="web" --keyword="http"
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 5 ] Webduino arduino, atmelavr "Ben Combee": An extensible web server library (for use with the Arduino WizNet Ethernet Shield)
|
||||
# [ 17 ] Adafruit-CC3000 arduino, atmelavr "Adafruit Industries": Library code for Adafruit's CC3000 Wi-Fi/WiFi breakouts
|
||||
# ...
|
||||
|
||||
5. Search for libraries that are compatible with Dallas temperature sensors
|
||||
5. Search for `libraries by "Adafruit Industries" author <http://platformio.org/#!/lib/search?query=author%253A%2522Adafruit%20Industries%2522>`_
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search --author="Adafruit Industries"
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 14 ] Adafruit-9DOF-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303)
|
||||
# [ 13 ] Adafruit-GFX arduino, atmelavr "Adafruit Industries": A core graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.)
|
||||
# [ 23 ] Adafruit-L3GD20-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the L3GD20 Gyroscope
|
||||
# [ 26 ] Adafruit-LSM303DLHC-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for Adafruit's LSM303 Breakout (Accelerometer + Magnetometer)
|
||||
# ...
|
||||
|
||||
6. Search for `libraries which are compatible with Dallas temperature sensors <http://platformio.org/#!/lib/search?query=DS*>`_
|
||||
like DS18B20, DS18S20 and etc.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "DS*"
|
||||
Found N libraries:
|
||||
Arduino-OneWire Control devices (from Dallas Semiconductor) that use the One Wire protocol
|
||||
...
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 1 ] OneWire arduino, atmelavr "Paul Stoffregen": Control devices (from Dallas Semiconductor) that use the One Wire protocol (DS18S20, DS18B20, DS2408 and etc)
|
||||
# ...
|
||||
|
||||
6. Search for Arduino-based *X10* or *XBee* libraries. The search query that is
|
||||
described below can be interpreted like ``arduino x10 OR arduino xbee``.
|
||||
7. Search for `Energia-based *nRF24* or *HttpClient* libraries <http://platformio.org/#!/lib/search?query=framework%253Aenergia%2520%252B(nRF24%2520HttpClient)>`_.
|
||||
The search query that is described below can be interpreted like
|
||||
``energia nRF24 OR energia HttpClient``
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "+arduino +(x10 xbee)"
|
||||
Found 2 libraries:
|
||||
Arduino-X10 Sending X10 signals over AC power lines
|
||||
Arduino-XBee Arduino library for communicating with XBees in API mode
|
||||
$ platformio lib search "+(nRF24 HttpClient)" --framework="energia"
|
||||
# Found 2 libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 46 ] HttpClient energia, timsp430, titiva "Zack Lalanne": HttpClient is a library to make it easier to interact with web servers
|
||||
# [ 43 ] nRF24 energia, timsp430 "Eric": The nRF24L01 is a low-cost 2.4GHz ISM transceiver module. It supports a number of channel frequencies in the 2.4GHz band and a range of data rates.
|
||||
|
||||
|
||||
8. Search for the `all sensor libraries excluding temperature <http://platformio.org/#!/lib/search?query=sensor%2520-temperature>`_.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib search "sensor -temperature"
|
||||
# Found N libraries:
|
||||
#
|
||||
# [ ID ] Name Compatibility "Authors": Description
|
||||
# -------------------------------------------------------------------------------------
|
||||
# [ 31 ] Adafruit-Unified-Sensor arduino, atmelavr "Adafruit Industries": Adafruit Unified Sensor Driver
|
||||
# [ 10 ] I2Cdevlib-AK8975 arduino, atmelavr "Jeff Rowberg": AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology
|
||||
# [ 14 ] Adafruit-9DOF-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the Adafruit 9DOF Breakout (L3GD20 / LSM303)
|
||||
# [ 23 ] Adafruit-L3GD20-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for the L3GD20 Gyroscope
|
||||
# [ 26 ] Adafruit-LSM303DLHC-Unified arduino, atmelavr "Adafruit Industries": Unified sensor driver for Adafruit's LSM303 Breakout (Accelerometer + Magnetometer)
|
||||
# [ 33 ] Adafruit-TMP006 arduino, atmelavr "Adafruit Industries": A library for the Adafruit TMP006 Infrared Thermopile Sensor
|
||||
# [ 34 ] Adafruit-TSL2561-Unified arduino, atmelavr "Adafruit Industries": Unified light sensor driver for Adafruit's TSL2561 breakouts
|
||||
# [ 97 ] I2Cdevlib-BMA150 arduino, atmelavr "Jeff Rowberg": The BMA150 is a triaxial, low-g acceleration sensor IC with digital output for consumer market applications
|
||||
# [ 106 ] I2Cdevlib-MPR121 arduino, atmelavr "Jeff Rowberg": The MPR121 is a 12-bit proximity capacitive touch sensor
|
||||
# [ 111 ] I2Cdevlib-AK8975 energia, timsp430 "Jeff Rowberg": AK8975 is 3-axis electronic compass IC with high sensitive Hall sensor technology
|
||||
# Show next libraries? [y/N]:
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio lib show NAME
|
||||
platformio lib show ID
|
||||
|
||||
|
||||
Description
|
||||
@@ -24,11 +24,14 @@ Examples
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib show Arduino-XBee
|
||||
Arduino-XBee
|
||||
------------
|
||||
Author: Andrew Rapp <andrew.rapp@gmail.com>
|
||||
Keywords: xbee, protocol, radio
|
||||
Version: 0.5
|
||||
|
||||
Arduino library for communicating with XBees in API mode
|
||||
# OneWire: http://platformio.org/#!/lib/show/1/OneWire
|
||||
$ platformio lib show 1
|
||||
# OneWire
|
||||
# -------
|
||||
# Authors: Paul Stoffregen <paul@pjrc.com> http://www.pjrc.com/teensy/td_libs_OneWire.html (maintainer), Jim Studt, Jason Dangel <dangel.jason@gmail.com>, Derek Yerger, Tom Pollard <pollard@alum.mit.edu>, Robin James
|
||||
# Keywords: onewire, 1-wire, bus, sensor, temperature, ibutton
|
||||
# Frameworks: arduino
|
||||
# Platforms: atmelavr
|
||||
# Version: 2.2
|
||||
#
|
||||
# Control devices (from Dallas Semiconductor) that use the One Wire protocol (DS18S20, DS18B20, DS2408 and etc)
|
||||
|
||||
@@ -10,7 +10,7 @@ Usage
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
platformio lib uninstall NAME
|
||||
platformio lib uninstall ID
|
||||
|
||||
|
||||
Description
|
||||
@@ -24,8 +24,6 @@ Examples
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib install Arduino-IRremote
|
||||
Installing Arduino-IRremote library:
|
||||
Downloading [####################################] 100%
|
||||
Unpacking [####################################] 100%
|
||||
The library 'Arduino-IRremote' has been successfully installed!
|
||||
# XBee: http://platformio.org/#!/lib/show/6/XBee
|
||||
$ platformio lib uninstall 6
|
||||
# The library #6 'XBee' has been successfully uninstalled!
|
||||
|
||||
@@ -25,9 +25,19 @@ Examples
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio lib update
|
||||
Updating Arduino-IRremote library:
|
||||
Versions: Current=24ba950f5c, Latest=24ba950f5c [Up-to-date]
|
||||
Updating Arduino-Webduino library:
|
||||
Versions: Current=3631af8e02, Latest=3631af8e02 [Up-to-date]
|
||||
Updating Arduino-XBee library:
|
||||
Versions: Current=0.5, Latest=0.5 [Up-to-date]
|
||||
# Updating [ 23 ] Adafruit-L3GD20-Unified library:
|
||||
# Versions: Current=63de2eb9ea, Latest=63de2eb9ea [Up-to-date]
|
||||
# Updating [ 12 ] Adafruit-ST7735 library:
|
||||
# Versions: Current=e880eb1687, Latest=e880eb1687 [Up-to-date]
|
||||
# Updating [ 31 ] Adafruit-Unified-Sensor library:
|
||||
# Versions: Current=88ae805bce, Latest=88ae805bce [Up-to-date]
|
||||
# Updating [ 26 ] Adafruit-LSM303DLHC-Unified library:
|
||||
# Versions: Current=59767208a8, Latest=59767208a8 [Up-to-date]
|
||||
# Updating [ 13 ] Adafruit-GFX library:
|
||||
# Versions: Current=a9e5bc4707, Latest=a9e5bc4707 [Up-to-date]
|
||||
# Updating [ 1 ] OneWire library:
|
||||
# Versions: Current=2.2, Latest=2.2 [Up-to-date]
|
||||
# Updating [ 4 ] IRremote library:
|
||||
# Versions: Current=f2dafe5030, Latest=f2dafe5030 [Up-to-date]
|
||||
# Updating [ 14 ] Adafruit-9DOF-Unified library:
|
||||
# Versions: Current=b2f07242ac, Latest=b2f07242ac [Up-to-date]
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
Arduino Example: Build \*.ino file with external Adafruit library
|
||||
=================================================================
|
||||
|
||||
1. Download ``platformio``
|
||||
`sources <https://github.com/ivankravets/platformio/archive/develop.zip>`_
|
||||
2. Extract ZIP archive
|
||||
3. Then run these commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Change directory to example
|
||||
$ cd platformio-develop/examples/arduino-adafruit-library/
|
||||
|
||||
# Install Atmel AVR development platform with Arduino Framework
|
||||
$ platformio install atmelavr
|
||||
|
||||
# Process example project
|
||||
$ platformio run
|
||||
|
||||
# Upload firmware
|
||||
$ platformio run -t upload
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file Adafruit_CC3000.h
|
||||
@author KTOWN (Kevin Townsend for Adafruit Industries)
|
||||
@license BSD (see license.txt)
|
||||
|
||||
This is a library for the Adafruit CC3000 WiFi breakout board
|
||||
This library works with the Adafruit CC3000 breakout
|
||||
----> https://www.adafruit.com/products/1469
|
||||
|
||||
Check out the links above for our tutorials and wiring diagrams
|
||||
These chips use SPI to communicate.
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef ADAFRUIT_CC3000_H
|
||||
#define ADAFRUIT_CC3000_H
|
||||
|
||||
#if ARDUINO >= 100
|
||||
#include "Arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
#include "utility/cc3000_common.h"
|
||||
#include "utility/wlan.h"
|
||||
#include "utility/netapp.h"
|
||||
#include "ccspi.h"
|
||||
|
||||
#if defined(__arm__) && defined(__SAM3X8E__) // Arduino Due
|
||||
#define SPI_CLOCK_DIVIDER 6 // used to set the speed for the SPI bus; 6 == 14 Mhz on the Arduino Due
|
||||
#else
|
||||
#define SPI_CLOCK_DIVIDER SPI_CLOCK_DIV2 // Don't set this to a slower speed (i.e. larger div value)
|
||||
// or communication will be flakey on 16mhz chips!
|
||||
#endif
|
||||
|
||||
//#define ENABLE_CC3K_PRINTER
|
||||
|
||||
#ifdef ENABLE_CC3K_PRINTER
|
||||
#define CHECK_PRINTER if(CC3KPrinter != 0)
|
||||
#else
|
||||
#define CHECK_PRINTER if(false)
|
||||
#endif
|
||||
|
||||
#define WLAN_CONNECT_TIMEOUT 10000 // how long to wait, in milliseconds
|
||||
#define RXBUFFERSIZE 64 // how much to buffer on the incoming side
|
||||
#define TXBUFFERSIZE 32 // how much to buffer on the outgoing side
|
||||
|
||||
#define WIFI_ENABLE 1
|
||||
#define WIFI_DISABLE 0
|
||||
#define WIFI_STATUS_CONNECTED 1
|
||||
|
||||
typedef struct Result_Struct
|
||||
{
|
||||
uint32_t num_networks;
|
||||
uint32_t scan_status;
|
||||
uint8_t rssiByte;
|
||||
uint8_t Sec_ssidLen;
|
||||
uint16_t time;
|
||||
uint8_t ssid_name[32];
|
||||
uint8_t bssid[6];
|
||||
} ResultStruct_t; /**!ResultStruct_t : data struct to store SSID scan results */
|
||||
|
||||
/* Enum for wlan_ioctl_statusget results */
|
||||
typedef enum
|
||||
{
|
||||
STATUS_DISCONNECTED = 0,
|
||||
STATUS_SCANNING = 1,
|
||||
STATUS_CONNECTING = 2,
|
||||
STATUS_CONNECTED = 3
|
||||
} status_t;
|
||||
|
||||
class Adafruit_CC3000;
|
||||
|
||||
class Adafruit_CC3000_Client : public Print {
|
||||
public:
|
||||
Adafruit_CC3000_Client(uint16_t s);
|
||||
Adafruit_CC3000_Client(void);
|
||||
Adafruit_CC3000_Client(const Adafruit_CC3000_Client& copy);
|
||||
void operator=(const Adafruit_CC3000_Client& other);
|
||||
|
||||
// NOTE: If public functions below are added/modified/removed please make sure to update the
|
||||
// Adafruit_CC3000_ClientRef class to match!
|
||||
|
||||
bool connected(void);
|
||||
size_t write(uint8_t c);
|
||||
|
||||
size_t fastrprint(const char *str);
|
||||
size_t fastrprintln(const char *str);
|
||||
size_t fastrprint(char *str);
|
||||
size_t fastrprintln(char *str);
|
||||
size_t fastrprint(const __FlashStringHelper *ifsh);
|
||||
size_t fastrprintln(const __FlashStringHelper *ifsh);
|
||||
|
||||
int16_t write(const void *buf, uint16_t len, uint32_t flags = 0);
|
||||
int16_t read(void *buf, uint16_t len, uint32_t flags = 0);
|
||||
uint8_t read(void);
|
||||
int32_t close(void);
|
||||
uint8_t available(void);
|
||||
|
||||
uint8_t _rx_buf[RXBUFFERSIZE], _rx_buf_idx;
|
||||
int16_t bufsiz;
|
||||
|
||||
private:
|
||||
int16_t _socket;
|
||||
|
||||
};
|
||||
|
||||
// Ugly but necessary to include the server header after the client is fully defined.
|
||||
// A forward reference in the server header won't cut it because the server needs to contain
|
||||
// instances of the client. The client definition above can be pulled into a separate
|
||||
// header in a later change to make this cleaner.
|
||||
#include "Adafruit_CC3000_Server.h"
|
||||
|
||||
class Adafruit_CC3000 {
|
||||
public:
|
||||
Adafruit_CC3000(uint8_t csPin, uint8_t irqPin, uint8_t vbatPin, uint8_t spispeed = SPI_CLOCK_DIVIDER);
|
||||
bool begin(uint8_t patchReq = 0, bool useSmartConfigData = false, const char *_deviceName = NULL);
|
||||
void reboot(uint8_t patchReq = 0);
|
||||
void stop(void);
|
||||
bool disconnect(void);
|
||||
bool deleteProfiles(void);
|
||||
void printHex(const byte * data, const uint32_t numBytes);
|
||||
void printHexChar(const byte * data, const uint32_t numBytes);
|
||||
void printIPdots(uint32_t ip);
|
||||
void printIPdotsRev(uint32_t ip);
|
||||
uint32_t IP2U32(uint8_t a, uint8_t b, uint8_t c, uint8_t d);
|
||||
bool getMacAddress(uint8_t address[6]);
|
||||
bool setMacAddress(uint8_t address[6]);
|
||||
bool setStaticIPAddress(uint32_t ip, uint32_t subnetMask, uint32_t defaultGateway, uint32_t dnsServer);
|
||||
bool setDHCP();
|
||||
|
||||
bool connectToAP(const char *ssid, const char *key, uint8_t secmode, uint8_t attempts = 0);
|
||||
bool connectSecure(const char *ssid, const char *key, int32_t secMode);
|
||||
bool connectOpen(const char *ssid);
|
||||
bool checkConnected(void);
|
||||
bool checkDHCP(void);
|
||||
bool getIPAddress(uint32_t *retip, uint32_t *netmask, uint32_t *gateway, uint32_t *dhcpserv, uint32_t *dnsserv);
|
||||
|
||||
bool checkSmartConfigFinished(void);
|
||||
|
||||
Adafruit_CC3000_Client connectTCP(uint32_t destIP, uint16_t destPort);
|
||||
Adafruit_CC3000_Client connectUDP(uint32_t destIP, uint16_t destPort);
|
||||
|
||||
#ifndef CC3000_TINY_DRIVER
|
||||
bool getFirmwareVersion(uint8_t *major, uint8_t *minor);
|
||||
status_t getStatus(void);
|
||||
uint16_t startSSIDscan(void);
|
||||
void stopSSIDscan();
|
||||
uint8_t getNextSSID(uint8_t *rssi, uint8_t *secMode, char *ssidname);
|
||||
|
||||
bool listSSIDResults(void);
|
||||
bool startSmartConfig(const char *_deviceName = NULL, const char *smartConfigKey = NULL);
|
||||
|
||||
bool getIPConfig(tNetappIpconfigRetArgs *ipConfig);
|
||||
|
||||
|
||||
uint16_t ping(uint32_t ip, uint8_t attempts=3, uint16_t timeout=500, uint8_t size=32);
|
||||
uint16_t getHostByName(char *hostname, uint32_t *ip);
|
||||
#endif
|
||||
|
||||
/* Functions that aren't available with the tiny driver */
|
||||
#ifndef CC3000_TINY_DRIVER
|
||||
bool scanSSIDs(uint32_t time);
|
||||
#endif
|
||||
|
||||
void setPrinter(Print*);
|
||||
|
||||
private:
|
||||
bool _initialised;
|
||||
|
||||
};
|
||||
|
||||
extern Print* CC3KPrinter;
|
||||
|
||||
#endif
|
||||
@@ -1,221 +0,0 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file Adafruit_CC3000_Server.cpp
|
||||
@author Tony DiCola (tony@tonydicola.com)
|
||||
@license BSD (see license.txt)
|
||||
|
||||
Adafruit CC3000 TCP server implementation based on the same interface as
|
||||
the Arduino Ethernet library server class.
|
||||
|
||||
See http://arduino.cc/en/Reference/Ethernet for documentation on the
|
||||
Arduino Ethernet library and its server interface.
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
#include "Adafruit_CC3000_Server.h"
|
||||
|
||||
#include "utility/socket.h"
|
||||
|
||||
#define CC3K_PRINTLN_F(text) CHECK_PRINTER { if(CC3KPrinter != NULL) { CC3KPrinter->println(F(text)); } }
|
||||
|
||||
#define HANDLE_NULL(client, value) { if (client == NULL) return value; }
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*
|
||||
Adafruit_CC3000_ClientRef implementation
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
Adafruit_CC3000_ClientRef::Adafruit_CC3000_ClientRef(Adafruit_CC3000_Client* client)
|
||||
: _client(client)
|
||||
{ }
|
||||
|
||||
// Return true if the referenced client is connected. This is provided for
|
||||
// compatibility with Ethernet library code.
|
||||
Adafruit_CC3000_ClientRef::operator bool() {
|
||||
return connected();
|
||||
}
|
||||
// Below are wrappers around the public client functions. These hide the fact that users
|
||||
// are dealing with a reference to a client instance and allow code to be written using
|
||||
// value semantics like in the Ethernet library.
|
||||
bool Adafruit_CC3000_ClientRef::connected(void) {
|
||||
HANDLE_NULL(_client, false);
|
||||
return _client->connected();
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::write(uint8_t c) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->write(c);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprint(const char *str) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprint(str);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprintln(const char *str) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprintln(str);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprint(char *str) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprint(str);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprintln(char *str) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprintln(str);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprint(const __FlashStringHelper *ifsh) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprint(ifsh);
|
||||
}
|
||||
|
||||
size_t Adafruit_CC3000_ClientRef::fastrprintln(const __FlashStringHelper *ifsh) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->fastrprintln(ifsh);
|
||||
}
|
||||
|
||||
int16_t Adafruit_CC3000_ClientRef::write(const void *buf, uint16_t len, uint32_t flags) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->write(buf, len, flags);
|
||||
}
|
||||
|
||||
int16_t Adafruit_CC3000_ClientRef::read(void *buf, uint16_t len, uint32_t flags) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->read(buf, len, flags);
|
||||
}
|
||||
|
||||
uint8_t Adafruit_CC3000_ClientRef::read(void) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->read();
|
||||
}
|
||||
|
||||
int32_t Adafruit_CC3000_ClientRef::close(void) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->close();
|
||||
}
|
||||
|
||||
uint8_t Adafruit_CC3000_ClientRef::available(void) {
|
||||
HANDLE_NULL(_client, 0);
|
||||
return _client->available();
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*
|
||||
Adafruit_CC3000_Server implementation
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
// Construct a TCP server to listen on the specified port.
|
||||
Adafruit_CC3000_Server::Adafruit_CC3000_Server(uint16_t port)
|
||||
: _port(port)
|
||||
, _listenSocket(-1)
|
||||
{ }
|
||||
|
||||
// Return a reference to a client instance which has data available to read.
|
||||
Adafruit_CC3000_ClientRef Adafruit_CC3000_Server::available() {
|
||||
acceptNewConnections();
|
||||
// Find the first client which is ready to read and return it.
|
||||
for (int i = 0; i < MAX_SERVER_CLIENTS; ++i) {
|
||||
if (_clients[i].connected() && _clients[i].available() > 0) {
|
||||
return Adafruit_CC3000_ClientRef(&_clients[i]);
|
||||
}
|
||||
}
|
||||
// Couldn't find a client ready to read, so return a client that is not
|
||||
// connected to signal no clients are available for reading (convention
|
||||
// used by the Ethernet library).
|
||||
return Adafruit_CC3000_ClientRef(NULL);
|
||||
}
|
||||
|
||||
// Initialize the server and start listening for connections.
|
||||
void Adafruit_CC3000_Server::begin() {
|
||||
// Set the CC3000 inactivity timeout to 0 (never timeout). This will ensure
|
||||
// the CC3000 does not close the listening socket when it's idle for more than
|
||||
// 60 seconds (the default timeout). See more information from:
|
||||
// http://e2e.ti.com/support/low_power_rf/f/851/t/292664.aspx
|
||||
unsigned long aucDHCP = 14400;
|
||||
unsigned long aucARP = 3600;
|
||||
unsigned long aucKeepalive = 30;
|
||||
unsigned long aucInactivity = 0;
|
||||
cc3k_int_poll();
|
||||
if (netapp_timeout_values(&aucDHCP, &aucARP, &aucKeepalive, &aucInactivity) != 0) {
|
||||
CC3K_PRINTLN_F("Error setting inactivity timeout!");
|
||||
return;
|
||||
}
|
||||
// Create a TCP socket
|
||||
cc3k_int_poll();
|
||||
int16_t soc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (soc < 0) {
|
||||
CC3K_PRINTLN_F("Couldn't create listening socket!");
|
||||
return;
|
||||
}
|
||||
// Set the socket's accept call as non-blocking.
|
||||
cc3k_int_poll();
|
||||
char arg = SOCK_ON; // nsd: looked in TI example code and they pass this as a 'short' in one example, and 'char' in two others. 'char' seems as likely work, and has no endianess issue
|
||||
if (setsockopt(soc, SOL_SOCKET, SOCKOPT_ACCEPT_NONBLOCK, &arg, sizeof(arg)) < 0) {
|
||||
CC3K_PRINTLN_F("Couldn't set socket as non-blocking!");
|
||||
return;
|
||||
}
|
||||
// Bind the socket to a TCP address.
|
||||
sockaddr_in address;
|
||||
address.sin_family = AF_INET;
|
||||
address.sin_addr.s_addr = htonl(0); // Listen on any network interface, equivalent to INADDR_ANY in sockets programming.
|
||||
address.sin_port = htons(_port); // Listen on the specified port.
|
||||
cc3k_int_poll();
|
||||
if (bind(soc, (sockaddr*) &address, sizeof(address)) < 0) {
|
||||
CC3K_PRINTLN_F("Error binding listen socket to address!");
|
||||
return;
|
||||
}
|
||||
// Start listening for connections.
|
||||
// The backlog parameter is 0 as it is not supported on TI's CC3000 firmware.
|
||||
cc3k_int_poll();
|
||||
if (listen(soc, 0) < 0) {
|
||||
CC3K_PRINTLN_F("Error opening socket for listening!");
|
||||
return;
|
||||
}
|
||||
_listenSocket = soc;
|
||||
}
|
||||
|
||||
// Write data to all connected clients. Buffer is a pointer to an array
|
||||
// of bytes, and size specifies how many bytes to write from the buffer.
|
||||
// Return the sum of bytes written to all clients.
|
||||
size_t Adafruit_CC3000_Server::write(const uint8_t *buffer, size_t size) {
|
||||
size_t written = 0;
|
||||
for (int i = 0; i < MAX_SERVER_CLIENTS; ++i) {
|
||||
if (_clients[i].connected()) {
|
||||
written += _clients[i].write(buffer, size);
|
||||
}
|
||||
}
|
||||
return written;
|
||||
}
|
||||
|
||||
// Write a byte value to all connected clients.
|
||||
// Return the sum of bytes written to all clients.
|
||||
size_t Adafruit_CC3000_Server::write(uint8_t value) {
|
||||
return write(&value, 1);
|
||||
}
|
||||
|
||||
// Accept new connections and update the connected clients.
|
||||
void Adafruit_CC3000_Server::acceptNewConnections() {
|
||||
// For any unconnected client, see if new connections are pending and accept
|
||||
// them as a new client.
|
||||
for (int i = 0; i < MAX_SERVER_CLIENTS; ++i) {
|
||||
if (!_clients[i].connected()) {
|
||||
// Note: Because the non-blocking option was set for the listening
|
||||
// socket this call will not block and instead return SOC_IN_PROGRESS (-2)
|
||||
// if there are no pending client connections. Also, the address of the
|
||||
// connected client is not needed, so those parameters are set to NULL.
|
||||
cc3k_int_poll();
|
||||
int soc = accept(_listenSocket, NULL, NULL);
|
||||
if (soc > -1) {
|
||||
_clients[i] = Adafruit_CC3000_Client(soc);
|
||||
}
|
||||
// else either there were no sockets to accept or an error occured.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@file Adafruit_CC3000_Server.h
|
||||
@author Tony DiCola (tony@tonydicola.com)
|
||||
@license BSD (see license.txt)
|
||||
|
||||
Adafruit CC3000 TCP server implementation based on the same interface as
|
||||
the Arduino Ethernet library server class.
|
||||
|
||||
See http://arduino.cc/en/Reference/Ethernet for documentation on the
|
||||
Arduino Ethernet library and its server interface.
|
||||
|
||||
The only difference between this implementation and the Ethernet library
|
||||
is that a special client reference facade is returned by the available()
|
||||
function, instead of a copy of a client like in the Ethernet library. This
|
||||
is necessary to ensure the buffers that client instances contain aren't
|
||||
copied and get out of sync.
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
#ifndef ADAFRUIT_CC3000_SERVER_H
|
||||
#define ADAFRUIT_CC3000_SERVER_H
|
||||
|
||||
#include "Adafruit_CC3000.h"
|
||||
|
||||
#include "Print.h"
|
||||
#include "Server.h"
|
||||
|
||||
// Assume 4 sockets available, 1 of which is used for listening, so at most 3
|
||||
// clients can be connected at once.
|
||||
#define MAX_SERVER_CLIENTS 3
|
||||
|
||||
// Facade that wraps a reference to a client instance into something that looks
|
||||
// and acts like a client instance value. This is done to mimic the semantics
|
||||
// of the Ethernet library, without running into problems allowing client buffers
|
||||
// to be copied and get out of sync.
|
||||
class Adafruit_CC3000_ClientRef : public Print {
|
||||
public:
|
||||
Adafruit_CC3000_ClientRef(Adafruit_CC3000_Client* client);
|
||||
// Return true if the referenced client is connected. This is provided for
|
||||
// compatibility with Ethernet library code.
|
||||
operator bool();
|
||||
// Below are all the public methods of the client class:
|
||||
bool connected(void);
|
||||
size_t write(uint8_t c);
|
||||
|
||||
size_t fastrprint(const char *str);
|
||||
size_t fastrprintln(const char *str);
|
||||
size_t fastrprint(char *str);
|
||||
size_t fastrprintln(char *str);
|
||||
size_t fastrprint(const __FlashStringHelper *ifsh);
|
||||
size_t fastrprintln(const __FlashStringHelper *ifsh);
|
||||
|
||||
int16_t write(const void *buf, uint16_t len, uint32_t flags = 0);
|
||||
int16_t read(void *buf, uint16_t len, uint32_t flags = 0);
|
||||
uint8_t read(void);
|
||||
int32_t close(void);
|
||||
uint8_t available(void);
|
||||
|
||||
private:
|
||||
// Hide the fact that users are really dealing with a pointer to a client
|
||||
// instance. Note: this class does not own the contents of the client
|
||||
// pointer and should NEVER attempt to free/delete this pointer.
|
||||
Adafruit_CC3000_Client* _client;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class Adafruit_CC3000_Server : public Server {
|
||||
public:
|
||||
// Construct a TCP server to listen on the specified port.
|
||||
Adafruit_CC3000_Server(uint16_t port);
|
||||
// Return a reference to a client instance which has data available to read.
|
||||
Adafruit_CC3000_ClientRef available();
|
||||
// Initialize the server and start listening for connections.
|
||||
virtual void begin();
|
||||
// Write data to all connected clients. Buffer is a pointer to an array
|
||||
// of bytes, and size specifies how many bytes to write from the buffer.
|
||||
// Return the sum of bytes written to all clients.
|
||||
virtual size_t write(const uint8_t *buffer, size_t size);
|
||||
// Write a byte value to all connected clients.
|
||||
// Return the sum of bytes written to all clients.
|
||||
virtual size_t write(uint8_t value);
|
||||
// Make the overloads of write from the Print base class available.
|
||||
using Print::write;
|
||||
|
||||
private:
|
||||
// Store the clients in a simple array.
|
||||
Adafruit_CC3000_Client _clients[MAX_SERVER_CLIENTS];
|
||||
// The port this server will listen for connections on.
|
||||
uint16_t _port;
|
||||
// The id of the listening socket.
|
||||
uint16_t _listenSocket;
|
||||
|
||||
// Accept new connections and update the connected clients.
|
||||
void acceptNewConnections();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,24 +0,0 @@
|
||||
This is a library for the Adafruit CC3000 WiFi Breakouts etc
|
||||
|
||||
Designed specifically to work with the Adafruit CC3000 Breakout
|
||||
----> https://www.adafruit.com/products/1469
|
||||
|
||||
These modules use SPI to communicate, 6 pins are required to interface
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Check out the links above for our tutorials and wiring diagrams
|
||||
|
||||
Arduino library Written by Limor Fried & Kevin Townsend for Adafruit Industries.
|
||||
CC3000 host core written by TI
|
||||
|
||||
To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder Adafruit_CC3000
|
||||
Check that the Adafruit_CC3000 folder contains Adafruit_CC3000.cpp and Adafruit_CC3000.h
|
||||
|
||||
Place the Adafruit_CC3000 library folder your *arduinosketchfolder*/libraries/ folder.
|
||||
You may need to create the libraries subfolder if its your first library. Restart the IDE.
|
||||
|
||||
NOTE: the 'SendTweet' example currently DOES NOT WORK due to Twitter API changes. The code is being kept for posterity in case a workaround can be developed.
|
||||
|
||||
@@ -1,769 +0,0 @@
|
||||
/*****************************************************************************
|
||||
*
|
||||
* spi.c - CC3000 Host Driver Implementation.
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* Adapted for use with the Arduino/AVR by KTOWN (Kevin Townsend)
|
||||
* & Limor Fried for Adafruit Industries
|
||||
* This library works with the Adafruit CC3000 breakout
|
||||
* ----> https://www.adafruit.com/products/1469
|
||||
* Adafruit invests time and resources providing this open source code,
|
||||
* please support Adafruit and open-source hardware by purchasing
|
||||
* products from Adafruit!
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*****************************************************************************/
|
||||
#include <Arduino.h>
|
||||
#include "ccspi.h"
|
||||
#include "utility/hci.h"
|
||||
#include "utility/netapp.h"
|
||||
#include "utility/evnt_handler.h"
|
||||
#include "utility/cc3000_common.h"
|
||||
#include "utility/debug.h"
|
||||
|
||||
extern uint8_t g_csPin, g_irqPin, g_vbatPin, g_IRQnum, g_SPIspeed;
|
||||
|
||||
#define READ (3)
|
||||
#define WRITE (1)
|
||||
#define HI(value) (((value) & 0xFF00) >> 8)
|
||||
#define LO(value) ((value) & 0x00FF)
|
||||
#define HEADERS_SIZE_EVNT (SPI_HEADER_SIZE + 5)
|
||||
#define SPI_HEADER_SIZE (5)
|
||||
|
||||
#define eSPI_STATE_POWERUP (0)
|
||||
#define eSPI_STATE_INITIALIZED (1)
|
||||
#define eSPI_STATE_IDLE (2)
|
||||
#define eSPI_STATE_WRITE_IRQ (3)
|
||||
#define eSPI_STATE_WRITE_FIRST_PORTION (4)
|
||||
#define eSPI_STATE_WRITE_EOT (5)
|
||||
#define eSPI_STATE_READ_IRQ (6)
|
||||
#define eSPI_STATE_READ_FIRST_PORTION (7)
|
||||
#define eSPI_STATE_READ_EOT (8)
|
||||
|
||||
/*
|
||||
these variables store the SPI configuration
|
||||
so they can be modified and restored
|
||||
this is so that we can have multiple SPI devices
|
||||
on the same bus, so they can operate at different speeds
|
||||
and in different modes
|
||||
*/
|
||||
#if defined(SPI2X) && defined(__AVR__) // most likely AVR8
|
||||
uint8_t ccspi_mySPCR, ccspi_mySPSR, ccspi_oldSPSR, ccspi_oldSPCR;
|
||||
#define SpiConfigStoreOld() { \
|
||||
ccspi_oldSPCR = SPCR; \
|
||||
ccspi_oldSPSR = SPSR & _BV(SPI2X); }
|
||||
#define SpiConfigStoreMy() { \
|
||||
ccspi_mySPCR = SPCR; \
|
||||
ccspi_mySPSR = SPSR & _BV(SPI2X); }
|
||||
#define SpiConfigPush() { \
|
||||
ccspi_oldSPCR = SPCR; \
|
||||
ccspi_oldSPSR = SPSR & _BV(SPI2X); \
|
||||
SPCR = ccspi_mySPCR; \
|
||||
if(ccspi_mySPSR) SPSR |= _BV(SPI2X); \
|
||||
else SPSR &= ~_BV(SPI2X); }
|
||||
#define SpiConfigPop() { \
|
||||
SPCR = ccspi_oldSPCR; \
|
||||
if(ccspi_oldSPSR) SPSR |= _BV(SPI2X); \
|
||||
else SPSR &= ~_BV(SPI2X); }
|
||||
|
||||
#elif defined(__AVR_XMEGA__) // most likely XMEGA
|
||||
uint8_t ccspi_mySPICTRL, ccspi_oldSPICTRL;
|
||||
#define SpiConfigStoreOld() do { ccspi_oldSPICTRL = SPCR; } while (0)
|
||||
#define SpiConfigStoreMy() do { ccspi_mySPICTRL = SPCR; } while (0)
|
||||
#define SpiConfigPush() do { ccspi_oldSPICTRL = SPCR; SPCR = ccspi_mySPICTRL; } while (0)
|
||||
#define SpiConfigPop() do { SPCR = ccspi_oldSPICTRL; } while (0)
|
||||
#else
|
||||
// TODO: ARM (Due, Teensy 3.0, etc)
|
||||
// #error platform not yet supported by Adafruit_CC3000
|
||||
#define SpiConfigStoreOld() do { } while (0)
|
||||
#define SpiConfigStoreMy() do { } while (0)
|
||||
#define SpiConfigPush() do { } while (0)
|
||||
#define SpiConfigPop() do { } while (0)
|
||||
#endif
|
||||
|
||||
#ifdef SPI_HAS_TRANSACTION
|
||||
// CC3000 SPI config + begin SPI usage + chip select
|
||||
#define CC3000_ASSERT_CS { \
|
||||
SpiConfigPush(); \
|
||||
SPI.beginTransaction(SPISettings(16000000, MSBFIRST, SPI_MODE1)); \
|
||||
digitalWrite(g_csPin, LOW); }
|
||||
// CC3000 chip deselect + end SPI usage + SPI restore
|
||||
#define CC3000_DEASSERT_CS { \
|
||||
digitalWrite(g_csPin, HIGH); \
|
||||
SPI.endTransaction(); \
|
||||
SpiConfigPop(); }
|
||||
#else
|
||||
// CC3000 chip select + SPI config
|
||||
#define CC3000_ASSERT_CS { \
|
||||
digitalWrite(g_csPin, LOW); \
|
||||
SpiConfigPush(); }
|
||||
// CC3000 chip deselect + SPI restore
|
||||
#define CC3000_DEASSERT_CS { \
|
||||
digitalWrite(g_csPin, HIGH); \
|
||||
SpiConfigPop(); }
|
||||
#endif
|
||||
|
||||
|
||||
/* smartconfig flags (defined in Adafruit_CC3000.cpp) */
|
||||
// extern unsigned long ulSmartConfigFinished, ulCC3000DHCP;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gcSpiHandleRx SPIRxHandler;
|
||||
|
||||
unsigned short usTxPacketLength;
|
||||
unsigned short usRxPacketLength;
|
||||
unsigned long ulSpiState;
|
||||
unsigned char *pTxPacket;
|
||||
unsigned char *pRxPacket;
|
||||
|
||||
} tSpiInformation;
|
||||
|
||||
tSpiInformation sSpiInformation;
|
||||
|
||||
/* Static buffer for 5 bytes of SPI HEADER */
|
||||
unsigned char tSpiReadHeader[] = {READ, 0, 0, 0, 0};
|
||||
|
||||
void SpiWriteDataSynchronous(unsigned char *data, unsigned short size);
|
||||
void SpiWriteAsync(const unsigned char *data, unsigned short size);
|
||||
void SpiPauseSpi(void);
|
||||
void SpiResumeSpi(void);
|
||||
void SSIContReadOperation(void);
|
||||
void cc3k_int_poll(void);
|
||||
|
||||
// The magic number that resides at the end of the TX/RX buffer (1 byte after the allocated size)
|
||||
// for the purpose of detection of the overrun. The location of the memory where the magic number
|
||||
// resides shall never be written. In case it is written - the overrun occured and either recevie function
|
||||
// or send function will stuck forever.
|
||||
#define CC3000_BUFFER_MAGIC_NUMBER (0xDE)
|
||||
|
||||
char spi_buffer[CC3000_RX_BUFFER_SIZE];
|
||||
unsigned char wlan_tx_buffer[CC3000_TX_BUFFER_SIZE];
|
||||
|
||||
static volatile char ccspi_is_in_irq = 0;
|
||||
static volatile char ccspi_int_enabled = 0;
|
||||
|
||||
/* Mandatory functions are:
|
||||
- SpiOpen
|
||||
- SpiWrite
|
||||
- SpiRead
|
||||
- SpiClose
|
||||
- SpiResumeSpi
|
||||
- ReadWlanInterruptPin
|
||||
- WlanInterruptEnable
|
||||
- WlanInterruptDisable
|
||||
- WriteWlanPin
|
||||
*/
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiClose(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiClose");
|
||||
|
||||
if (sSpiInformation.pRxPacket)
|
||||
{
|
||||
sSpiInformation.pRxPacket = 0;
|
||||
}
|
||||
|
||||
/* Disable Interrupt in GPIOA module... */
|
||||
tSLInformation.WlanInterruptDisable();
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiOpen(gcSpiHandleRx pfRxHandler)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiOpen");
|
||||
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_POWERUP;
|
||||
|
||||
memset(spi_buffer, 0, sizeof(spi_buffer));
|
||||
memset(wlan_tx_buffer, 0, sizeof(spi_buffer));
|
||||
|
||||
sSpiInformation.SPIRxHandler = pfRxHandler;
|
||||
sSpiInformation.usTxPacketLength = 0;
|
||||
sSpiInformation.pTxPacket = NULL;
|
||||
sSpiInformation.pRxPacket = (unsigned char *)spi_buffer;
|
||||
sSpiInformation.usRxPacketLength = 0;
|
||||
|
||||
spi_buffer[CC3000_RX_BUFFER_SIZE - 1] = CC3000_BUFFER_MAGIC_NUMBER;
|
||||
wlan_tx_buffer[CC3000_TX_BUFFER_SIZE - 1] = CC3000_BUFFER_MAGIC_NUMBER;
|
||||
|
||||
/* Enable interrupt on the GPIO pin of WLAN IRQ */
|
||||
tSLInformation.WlanInterruptEnable();
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: Finished SpiOpen\n\r");
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
int init_spi(void)
|
||||
{
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: init_spi\n\r");
|
||||
|
||||
/* Set POWER_EN pin to output and disable the CC3000 by default */
|
||||
pinMode(g_vbatPin, OUTPUT);
|
||||
digitalWrite(g_vbatPin, 0);
|
||||
delay(500);
|
||||
|
||||
/* Set CS pin to output (don't de-assert yet) */
|
||||
pinMode(g_csPin, OUTPUT);
|
||||
|
||||
/* Set interrupt/gpio pin to input */
|
||||
#if defined(INPUT_PULLUP)
|
||||
pinMode(g_irqPin, INPUT_PULLUP);
|
||||
#else
|
||||
pinMode(g_irqPin, INPUT);
|
||||
digitalWrite(g_irqPin, HIGH); // w/weak pullup
|
||||
#endif
|
||||
|
||||
SpiConfigStoreOld(); // prime ccspi_old* values for DEASSERT
|
||||
|
||||
/* Initialise SPI (Mode 1) */
|
||||
SPI.begin();
|
||||
SPI.setDataMode(SPI_MODE1);
|
||||
SPI.setBitOrder(MSBFIRST);
|
||||
SPI.setClockDivider(g_SPIspeed);
|
||||
|
||||
SpiConfigStoreMy(); // prime ccspi_my* values for ASSERT
|
||||
|
||||
// Newly-initialized SPI is in the same state that ASSERT_CS will set it
|
||||
// to. Invoke DEASSERT (which also restores SPI registers) so the next
|
||||
// ASSERT call won't clobber the ccspi_old* values -- we need those!
|
||||
#ifdef SPI_HAS_TRANSACTION
|
||||
SPI.usingInterrupt(g_IRQnum);
|
||||
digitalWrite(g_csPin, HIGH); // same as CC3000_DEASSERT_CS, but not
|
||||
SpiConfigPop(); // SPI.endTransaction, because none began
|
||||
#else
|
||||
CC3000_DEASSERT_CS;
|
||||
#endif
|
||||
|
||||
/* ToDo: Configure IRQ interrupt! */
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: Finished init_spi\n\r");
|
||||
|
||||
return(ESUCCESS);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
long SpiFirstWrite(unsigned char *ucBuf, unsigned short usLength)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiWriteFirst\n\r");
|
||||
|
||||
/* Workaround for the first transaction */
|
||||
CC3000_ASSERT_CS;
|
||||
|
||||
/* delay (stay low) for ~50us */
|
||||
delay(1);
|
||||
|
||||
/* SPI writes first 4 bytes of data */
|
||||
SpiWriteDataSynchronous(ucBuf, 4);
|
||||
|
||||
delay(1);
|
||||
|
||||
SpiWriteDataSynchronous(ucBuf + 4, usLength - 4);
|
||||
|
||||
/* From this point on - operate in a regular manner */
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_IDLE;
|
||||
|
||||
CC3000_DEASSERT_CS;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
long SpiWrite(unsigned char *pUserBuffer, unsigned short usLength)
|
||||
{
|
||||
unsigned char ucPad = 0;
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: SpiWrite\n\r");
|
||||
|
||||
/* Figure out the total length of the packet in order to figure out if there is padding or not */
|
||||
if(!(usLength & 0x0001))
|
||||
{
|
||||
ucPad++;
|
||||
}
|
||||
|
||||
pUserBuffer[0] = WRITE;
|
||||
pUserBuffer[1] = HI(usLength + ucPad);
|
||||
pUserBuffer[2] = LO(usLength + ucPad);
|
||||
pUserBuffer[3] = 0;
|
||||
pUserBuffer[4] = 0;
|
||||
|
||||
usLength += (SPI_HEADER_SIZE + ucPad);
|
||||
|
||||
/* The magic number that resides at the end of the TX/RX buffer (1 byte after the allocated size)
|
||||
* for the purpose of overrun detection. If the magic number is overwritten - buffer overrun
|
||||
* occurred - and we will be stuck here forever! */
|
||||
if (wlan_tx_buffer[CC3000_TX_BUFFER_SIZE - 1] != CC3000_BUFFER_MAGIC_NUMBER)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: Error - No magic number found in SpiWrite\n\r");
|
||||
while (1);
|
||||
}
|
||||
|
||||
if (sSpiInformation.ulSpiState == eSPI_STATE_POWERUP)
|
||||
{
|
||||
while (sSpiInformation.ulSpiState != eSPI_STATE_INITIALIZED);
|
||||
}
|
||||
|
||||
if (sSpiInformation.ulSpiState == eSPI_STATE_INITIALIZED)
|
||||
{
|
||||
/* This is time for first TX/RX transactions over SPI: the IRQ is down - so need to send read buffer size command */
|
||||
SpiFirstWrite(pUserBuffer, usLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We need to prevent here race that can occur in case two back to back packets are sent to the
|
||||
* device, so the state will move to IDLE and once again to not IDLE due to IRQ */
|
||||
tSLInformation.WlanInterruptDisable();
|
||||
|
||||
while (sSpiInformation.ulSpiState != eSPI_STATE_IDLE);
|
||||
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_WRITE_IRQ;
|
||||
sSpiInformation.pTxPacket = pUserBuffer;
|
||||
sSpiInformation.usTxPacketLength = usLength;
|
||||
|
||||
/* Assert the CS line and wait till SSI IRQ line is active and then initialize write operation */
|
||||
CC3000_ASSERT_CS;
|
||||
|
||||
/* Re-enable IRQ - if it was not disabled - this is not a problem... */
|
||||
tSLInformation.WlanInterruptEnable();
|
||||
|
||||
/* Check for a missing interrupt between the CS assertion and enabling back the interrupts */
|
||||
if (tSLInformation.ReadWlanInterruptPin() == 0)
|
||||
{
|
||||
SpiWriteDataSynchronous(sSpiInformation.pTxPacket, sSpiInformation.usTxPacketLength);
|
||||
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_IDLE;
|
||||
|
||||
CC3000_DEASSERT_CS;
|
||||
#ifdef SPI_HAS_TRANSACTION
|
||||
WlanInterruptEnable();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/* Due to the fact that we are currently implementing a blocking situation
|
||||
* here we will wait till end of transaction */
|
||||
while (eSPI_STATE_IDLE != sSpiInformation.ulSpiState);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiWriteDataSynchronous(unsigned char *data, unsigned short size)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiWriteDataSynchronous Start\n\r");
|
||||
|
||||
unsigned short loc;
|
||||
for (loc = 0; loc < size; loc ++)
|
||||
{
|
||||
SPI.transfer(data[loc]);
|
||||
#if (DEBUG_MODE == 1)
|
||||
if (!(loc==size-1))
|
||||
{
|
||||
DEBUGPRINT_F(" ");
|
||||
DEBUGPRINT_HEX(data[loc]);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUGPRINT_F(" ");
|
||||
DEBUGPRINT_HEX(data[loc]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
DEBUGPRINT_F("\n\r\tCC3000: SpiWriteDataSynchronous End\n\r");
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiReadDataSynchronous(unsigned char *data, unsigned short size)
|
||||
{
|
||||
unsigned short i = 0;
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: SpiReadDataSynchronous\n\r");
|
||||
SPI.setDataMode(SPI_MODE1);
|
||||
for (i = 0; i < size; i ++)
|
||||
{
|
||||
data[i] = SPI.transfer(0x03);
|
||||
DEBUGPRINT_F(" ");
|
||||
DEBUGPRINT_HEX(data[i]);
|
||||
}
|
||||
DEBUGPRINT_F("\n\r");
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiReadHeader(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiReadHeader\n\r");
|
||||
|
||||
SpiReadDataSynchronous(sSpiInformation.pRxPacket, HEADERS_SIZE_EVNT);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
long SpiReadDataCont(void)
|
||||
{
|
||||
long data_to_recv;
|
||||
unsigned char *evnt_buff, type;
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: SpiReadDataCont\n\r");
|
||||
|
||||
/* Determine what type of packet we have */
|
||||
evnt_buff = sSpiInformation.pRxPacket;
|
||||
data_to_recv = 0;
|
||||
STREAM_TO_UINT8((uint8_t *)(evnt_buff + SPI_HEADER_SIZE), HCI_PACKET_TYPE_OFFSET, type);
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case HCI_TYPE_DATA:
|
||||
{
|
||||
/* We need to read the rest of data.. */
|
||||
STREAM_TO_UINT16((char *)(evnt_buff + SPI_HEADER_SIZE), HCI_DATA_LENGTH_OFFSET, data_to_recv);
|
||||
if (!((HEADERS_SIZE_EVNT + data_to_recv) & 1))
|
||||
{
|
||||
data_to_recv++;
|
||||
}
|
||||
|
||||
if (data_to_recv)
|
||||
{
|
||||
SpiReadDataSynchronous(evnt_buff + HEADERS_SIZE_EVNT, data_to_recv);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HCI_TYPE_EVNT:
|
||||
{
|
||||
/* Calculate the rest length of the data */
|
||||
STREAM_TO_UINT8((char *)(evnt_buff + SPI_HEADER_SIZE), HCI_EVENT_LENGTH_OFFSET, data_to_recv);
|
||||
data_to_recv -= 1;
|
||||
|
||||
/* Add padding byte if needed */
|
||||
if ((HEADERS_SIZE_EVNT + data_to_recv) & 1)
|
||||
{
|
||||
data_to_recv++;
|
||||
}
|
||||
|
||||
if (data_to_recv)
|
||||
{
|
||||
SpiReadDataSynchronous(evnt_buff + HEADERS_SIZE_EVNT, data_to_recv);
|
||||
}
|
||||
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_READ_EOT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiPauseSpi(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiPauseSpi\n\r");
|
||||
|
||||
ccspi_int_enabled = 0;
|
||||
detachInterrupt(g_IRQnum);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiResumeSpi(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiResumeSpi\n\r");
|
||||
|
||||
ccspi_int_enabled = 1;
|
||||
attachInterrupt(g_IRQnum, SPI_IRQ, FALLING);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SpiTriggerRxProcessing(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiTriggerRxProcessing\n\r");
|
||||
|
||||
/* Trigger Rx processing */
|
||||
SpiPauseSpi();
|
||||
CC3000_DEASSERT_CS;
|
||||
|
||||
//DEBUGPRINT_F("Magic?\n\r");
|
||||
/* The magic number that resides at the end of the TX/RX buffer (1 byte after the allocated size)
|
||||
* for the purpose of detection of the overrun. If the magic number is overriten - buffer overrun
|
||||
* occurred - and we will stuck here forever! */
|
||||
if (sSpiInformation.pRxPacket[CC3000_RX_BUFFER_SIZE - 1] != CC3000_BUFFER_MAGIC_NUMBER)
|
||||
{
|
||||
/* You've got problems if you're here! */
|
||||
DEBUGPRINT_F("\tCC3000: ERROR - magic number missing!\n\r");
|
||||
while (1);
|
||||
}
|
||||
|
||||
//DEBUGPRINT_F("OK!\n\r");
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_IDLE;
|
||||
sSpiInformation.SPIRxHandler(sSpiInformation.pRxPacket + SPI_HEADER_SIZE);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void SSIContReadOperation(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: SpiContReadOperation\n\r");
|
||||
|
||||
/* The header was read - continue with the payload read */
|
||||
if (!SpiReadDataCont())
|
||||
{
|
||||
/* All the data was read - finalize handling by switching to teh task
|
||||
* and calling from task Event Handler */
|
||||
//DEBUGPRINT_F("SPItrig\n\r");
|
||||
SpiTriggerRxProcessing();
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void WriteWlanPin( unsigned char val )
|
||||
{
|
||||
if (DEBUG_MODE)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: WriteWlanPin - ");
|
||||
DEBUGPRINT_DEC(val);
|
||||
DEBUGPRINT_F("\n\r");
|
||||
delay(1);
|
||||
}
|
||||
if (val)
|
||||
{
|
||||
digitalWrite(g_vbatPin, HIGH);
|
||||
}
|
||||
else
|
||||
{
|
||||
digitalWrite(g_vbatPin, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
long ReadWlanInterruptPin(void)
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: ReadWlanInterruptPin - ");
|
||||
DEBUGPRINT_DEC(digitalRead(g_irqPin));
|
||||
DEBUGPRINT_F("\n\r");
|
||||
|
||||
return(digitalRead(g_irqPin));
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void WlanInterruptEnable()
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: WlanInterruptEnable.\n\r");
|
||||
// delay(100);
|
||||
ccspi_int_enabled = 1;
|
||||
attachInterrupt(g_IRQnum, SPI_IRQ, FALLING);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void WlanInterruptDisable()
|
||||
{
|
||||
DEBUGPRINT_F("\tCC3000: WlanInterruptDisable\n\r");
|
||||
ccspi_int_enabled = 0;
|
||||
detachInterrupt(g_IRQnum);
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! sendDriverPatch
|
||||
//!
|
||||
//! @param pointer to the length
|
||||
//!
|
||||
//! @return none
|
||||
//!
|
||||
//! @brief The function returns a pointer to the driver patch:
|
||||
//! since there is no patch in the host - it returns 0
|
||||
//
|
||||
//*****************************************************************************
|
||||
char *sendDriverPatch(unsigned long *Length) {
|
||||
*Length = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! sendBootLoaderPatch
|
||||
//!
|
||||
//! @param pointer to the length
|
||||
//!
|
||||
//! @return none
|
||||
//!
|
||||
//! @brief The function returns a pointer to the boot loader patch:
|
||||
//! since there is no patch in the host - it returns 0
|
||||
//
|
||||
//*****************************************************************************
|
||||
char *sendBootLoaderPatch(unsigned long *Length) {
|
||||
*Length = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! sendWLFWPatch
|
||||
//!
|
||||
//! @param pointer to the length
|
||||
//!
|
||||
//! @return none
|
||||
//!
|
||||
//! @brief The function returns a pointer to the FW patch:
|
||||
//! since there is no patch in the host - it returns 0
|
||||
//
|
||||
//*****************************************************************************
|
||||
char *sendWLFWPatch(unsigned long *Length) {
|
||||
*Length = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
|
||||
*/
|
||||
/**************************************************************************/
|
||||
|
||||
void SPI_IRQ(void)
|
||||
{
|
||||
ccspi_is_in_irq = 1;
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: Entering SPI_IRQ\n\r");
|
||||
|
||||
if (sSpiInformation.ulSpiState == eSPI_STATE_POWERUP)
|
||||
{
|
||||
/* IRQ line was low ... perform a callback on the HCI Layer */
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_INITIALIZED;
|
||||
}
|
||||
else if (sSpiInformation.ulSpiState == eSPI_STATE_IDLE)
|
||||
{
|
||||
//DEBUGPRINT_F("IDLE\n\r");
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_READ_IRQ;
|
||||
/* IRQ line goes down - start reception */
|
||||
|
||||
CC3000_ASSERT_CS;
|
||||
|
||||
// Wait for TX/RX Compete which will come as DMA interrupt
|
||||
SpiReadHeader();
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_READ_EOT;
|
||||
//DEBUGPRINT_F("SSICont\n\r");
|
||||
SSIContReadOperation();
|
||||
}
|
||||
else if (sSpiInformation.ulSpiState == eSPI_STATE_WRITE_IRQ)
|
||||
{
|
||||
SpiWriteDataSynchronous(sSpiInformation.pTxPacket, sSpiInformation.usTxPacketLength);
|
||||
sSpiInformation.ulSpiState = eSPI_STATE_IDLE;
|
||||
CC3000_DEASSERT_CS;
|
||||
}
|
||||
|
||||
DEBUGPRINT_F("\tCC3000: Leaving SPI_IRQ\n\r");
|
||||
|
||||
ccspi_is_in_irq = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! cc3k_int_poll
|
||||
//!
|
||||
//! \brief checks if the interrupt pin is low
|
||||
//! just in case the hardware missed a falling edge
|
||||
//! function is in ccspi.cpp
|
||||
//
|
||||
//*****************************************************************************
|
||||
|
||||
void cc3k_int_poll()
|
||||
{
|
||||
if (digitalRead(g_irqPin) == LOW && ccspi_is_in_irq == 0 && ccspi_int_enabled != 0) {
|
||||
SPI_IRQ();
|
||||
}
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
/*****************************************************************************
|
||||
*
|
||||
* spi.h - CC3000 Host Driver Implementation.
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* Adapted for use with the Arduino/AVR by KTOWN (Kevin Townsend)
|
||||
* & Limor Fried for Adafruit Industries
|
||||
* This library works with the Adafruit CC3000 breakout
|
||||
* ----> https://www.adafruit.com/products/1469
|
||||
* Adafruit invests time and resources providing this open source code,
|
||||
* please support Adafruit and open-source hardware by purchasing
|
||||
* products from Adafruit!
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* Neither the name of Texas Instruments Incorporated nor the names of
|
||||
* its contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __SPI_H__
|
||||
#define __SPI_H__
|
||||
|
||||
#if ARDUINO >= 100
|
||||
#include "Arduino.h"
|
||||
#else
|
||||
#include "WProgram.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <SPI.h>
|
||||
|
||||
#include "utility/wlan.h"
|
||||
|
||||
typedef void (*gcSpiHandleRx)(void *p);
|
||||
typedef void (*gcSpiHandleTx)(void);
|
||||
|
||||
extern unsigned char wlan_tx_buffer[];
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// Prototypes for the APIs.
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void SpiOpen(gcSpiHandleRx pfRxHandler);
|
||||
extern void SpiClose(void);
|
||||
extern long SpiWrite(unsigned char *pUserBuffer, unsigned short usLength);
|
||||
extern void SpiResumeSpi(void);
|
||||
extern void SpiCleanGPIOISR(void);
|
||||
extern int init_spi(void);
|
||||
extern long TXBufferIsEmpty(void);
|
||||
extern long RXBufferIsEmpty(void);
|
||||
extern void CC3000_UsynchCallback(long lEventType, char * data, unsigned char length);
|
||||
extern void WriteWlanPin( unsigned char val );
|
||||
extern long ReadWlanInterruptPin(void);
|
||||
extern void WlanInterruptEnable();
|
||||
extern void WlanInterruptDisable();
|
||||
extern char *sendDriverPatch(unsigned long *Length);
|
||||
extern char *sendBootLoaderPatch(unsigned long *Length);
|
||||
extern char *sendWLFWPatch(unsigned long *Length);
|
||||
extern void SPI_IRQ(void);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
|
||||
/***************************************************
|
||||
Adafruit CC3000 Breakout/Shield TCP Chat Server
|
||||
|
||||
This is a simple chat server which allows clients to connect
|
||||
with telnet and exchange messages. Anything sent by one
|
||||
client will be written out to all connected clients.
|
||||
|
||||
See the CC3000 tutorial on Adafruit's learning system
|
||||
for more information on setting up and using the
|
||||
CC3000:
|
||||
http://learn.adafruit.com/adafruit-cc3000-wifi
|
||||
|
||||
Requirements:
|
||||
|
||||
This sketch requires the Adafruit CC3000 library. You can
|
||||
download the library from:
|
||||
https://github.com/adafruit/Adafruit_CC3000_Library
|
||||
|
||||
For information on installing libraries in the Arduino IDE
|
||||
see this page:
|
||||
http://arduino.cc/en/Guide/Libraries
|
||||
|
||||
Usage:
|
||||
|
||||
Update the SSID and, if necessary, the CC3000 hardware pin
|
||||
information below, then run the sketch and check the
|
||||
output of the serial port. After connecting to the
|
||||
wireless network successfully the sketch will output
|
||||
the IP address of the server and start listening for
|
||||
connections. Once listening for connections, connect
|
||||
to the server from your computer using a telnet client
|
||||
on port 23.
|
||||
|
||||
For example on Linux or Mac OSX, if your CC3000 has an
|
||||
IP address 192.168.1.100 you would execute in a command
|
||||
window:
|
||||
|
||||
telnet 192.168.1.100 23
|
||||
|
||||
Connect multiple clients and notice that whatever one client
|
||||
sends will be echoed to all other clients. Press ctrl-] and
|
||||
type quit at the prompt to close the telnet session.
|
||||
|
||||
On Windows you'll need to download a telnet client. PuTTY
|
||||
is a good, free GUI client:
|
||||
http://www.chiark.greenend.org.uk/~sgtatham/putty/
|
||||
|
||||
License:
|
||||
|
||||
This example is copyright (c) 2013 Tony DiCola (tony@tonydicola.com)
|
||||
and is released under an open source MIT license. See details at:
|
||||
http://opensource.org/licenses/MIT
|
||||
|
||||
This code was adapted from Adafruit CC3000 library example
|
||||
code which has the following license:
|
||||
|
||||
Designed specifically to work with the Adafruit WiFi products:
|
||||
----> https://www.adafruit.com/products/1469
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
|
||||
BSD license, all text above must be included in any redistribution
|
||||
****************************************************/
|
||||
#include <Adafruit_CC3000.h>
|
||||
#include <SPI.h>
|
||||
#include "utility/debug.h"
|
||||
#include "utility/socket.h"
|
||||
|
||||
// These are the interrupt and control pins
|
||||
#define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin!
|
||||
// These can be any two pins
|
||||
#define ADAFRUIT_CC3000_VBAT 5
|
||||
#define ADAFRUIT_CC3000_CS 10
|
||||
// Use hardware SPI for the remaining pins
|
||||
// On an UNO, SCK = 13, MISO = 12, and MOSI = 11
|
||||
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
|
||||
SPI_CLOCK_DIVIDER); // you can change this clock speed
|
||||
|
||||
#define WLAN_SSID "myNetwork" // cannot be longer than 32 characters!
|
||||
#define WLAN_PASS "myPassword"
|
||||
// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
|
||||
#define WLAN_SECURITY WLAN_SEC_WPA2
|
||||
|
||||
#define LISTEN_PORT 23 // What TCP port to listen on for connections.
|
||||
|
||||
Adafruit_CC3000_Server chatServer(LISTEN_PORT);
|
||||
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println(F("Hello, CC3000!\n"));
|
||||
|
||||
Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC);
|
||||
|
||||
/* Initialise the module */
|
||||
Serial.println(F("\nInitializing..."));
|
||||
if (!cc3000.begin())
|
||||
{
|
||||
Serial.println(F("Couldn't begin()! Check your wiring?"));
|
||||
while(1);
|
||||
}
|
||||
|
||||
Serial.print(F("\nAttempting to connect to ")); Serial.println(WLAN_SSID);
|
||||
if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
|
||||
Serial.println(F("Failed!"));
|
||||
while(1);
|
||||
}
|
||||
|
||||
Serial.println(F("Connected!"));
|
||||
|
||||
Serial.println(F("Request DHCP"));
|
||||
while (!cc3000.checkDHCP())
|
||||
{
|
||||
delay(100); // ToDo: Insert a DHCP timeout!
|
||||
}
|
||||
|
||||
/* Display the IP address DNS, Gateway, etc. */
|
||||
while (! displayConnectionDetails()) {
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
/*********************************************************/
|
||||
/* You can safely remove this to save some flash memory! */
|
||||
/*********************************************************/
|
||||
Serial.println(F("\r\nNOTE: This sketch may cause problems with other sketches"));
|
||||
Serial.println(F("since the .disconnect() function is never called, so the"));
|
||||
Serial.println(F("AP may refuse connection requests from the CC3000 until a"));
|
||||
Serial.println(F("timeout period passes. This is normal behaviour since"));
|
||||
Serial.println(F("there isn't an obvious moment to disconnect with a server.\r\n"));
|
||||
|
||||
// Start listening for connections
|
||||
chatServer.begin();
|
||||
|
||||
Serial.println(F("Listening for connections..."));
|
||||
}
|
||||
|
||||
void loop(void)
|
||||
{
|
||||
// Try to get a client which is connected.
|
||||
Adafruit_CC3000_ClientRef client = chatServer.available();
|
||||
if (client) {
|
||||
// Check if there is data available to read.
|
||||
if (client.available() > 0) {
|
||||
// Read a byte and write it to all clients.
|
||||
uint8_t ch = client.read();
|
||||
chatServer.write(ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Tries to read the IP address and other connection details
|
||||
*/
|
||||
/**************************************************************************/
|
||||
bool displayConnectionDetails(void)
|
||||
{
|
||||
uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
|
||||
|
||||
if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv))
|
||||
{
|
||||
Serial.println(F("Unable to retrieve the IP Address!\r\n"));
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
|
||||
Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
|
||||
Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
|
||||
Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
|
||||
Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
|
||||
Serial.println();
|
||||
return true;
|
||||
}
|
||||
}
|
||||