Compare commits
872 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c6d754c50 | ||
|
|
fa095b35c0 | ||
|
|
9d4bdb8a01 | ||
|
|
9c667a4409 | ||
|
|
e99eb502ae | ||
|
|
a2151f384e | ||
|
|
0d46fb5839 | ||
|
|
4a5f9f7aae | ||
|
|
bdd8ee911b | ||
|
|
a029d61925 | ||
|
|
fad2d91143 | ||
|
|
6a59e8347d | ||
|
|
e6c07cc7d0 | ||
|
|
814a352588 | ||
|
|
4888cdc958 | ||
|
|
a0d7cfdebc | ||
|
|
bdf5ac8117 | ||
|
|
28cbc716e4 | ||
|
|
028ca90052 | ||
|
|
9ba4e98237 | ||
|
|
8d3b49bf39 | ||
|
|
c044ba3929 | ||
|
|
9827155244 | ||
|
|
287d079c4d | ||
|
|
d1c52f223b | ||
|
|
1ba7379107 | ||
|
|
66097a89e7 | ||
|
|
731adc71be | ||
|
|
1264ec61d7 | ||
|
|
83b63b1e83 | ||
|
|
aa5fa81bb7 | ||
|
|
1e92424a50 | ||
|
|
37a6ab97fa | ||
|
|
94e908c453 | ||
|
|
420b9a8429 | ||
|
|
fd40287bcb | ||
|
|
66b0a74073 | ||
|
|
55a9930808 | ||
|
|
134ebe7e18 | ||
|
|
528a25e0ab | ||
|
|
adc0866b7d | ||
|
|
eb3c11472c | ||
|
|
77321a6827 | ||
|
|
a2801a1602 | ||
|
|
25a57896c0 | ||
|
|
00dd2e0097 | ||
|
|
ea9f1a5d28 | ||
|
|
b1572ceb25 | ||
|
|
0947169772 | ||
|
|
d9e9508be4 | ||
|
|
76f0206f01 | ||
|
|
860bc6c6b9 | ||
|
|
3f0f35fbc5 | ||
|
|
4141fce796 | ||
|
|
2555c2d68a | ||
|
|
57db4d7132 | ||
|
|
50f9be1544 | ||
|
|
4b669eadb0 | ||
|
|
2569103e1a | ||
|
|
196a29fc90 | ||
|
|
53c92d46e9 | ||
|
|
290f3d6308 | ||
|
|
246c75a1ae | ||
|
|
00a863c100 | ||
|
|
ff82b735f2 | ||
|
|
fdddb19a3c | ||
|
|
bdf0c84109 | ||
|
|
dad77cd8cc | ||
|
|
52d793ed8e | ||
|
|
e607c3ddbe | ||
|
|
6d6e5b1ee9 | ||
|
|
d60ec0fae3 | ||
|
|
159ae8e550 | ||
|
|
d56901d13b | ||
|
|
a45b5c56f6 | ||
|
|
6c2a982c35 | ||
|
|
aa9792167d | ||
|
|
72ebc1a809 | ||
|
|
f564235648 | ||
|
|
bf24e95f7e | ||
|
|
1112d77c3d | ||
|
|
aa21fb1e13 | ||
|
|
18e455f2df | ||
|
|
bfba9812b7 | ||
|
|
5b24029000 | ||
|
|
a5271b3d1c | ||
|
|
b13e6c68b5 | ||
|
|
f55ecadb78 | ||
|
|
b09a92698a | ||
|
|
6be91634fd | ||
|
|
12c4506437 | ||
|
|
c68c0b19ae | ||
|
|
5cbfd74f4d | ||
|
|
1a89b145ef | ||
|
|
e1e7b37ff3 | ||
|
|
4276526c67 | ||
|
|
a2dd8614d4 | ||
|
|
3253d46f45 | ||
|
|
d5935a8c51 | ||
|
|
4f80972c23 | ||
|
|
9ab68e1aff | ||
|
|
155cbc5262 | ||
|
|
622d9f6183 | ||
|
|
cb97944642 | ||
|
|
bee96c4a80 | ||
|
|
8afd0523b1 | ||
|
|
52c988fea0 | ||
|
|
70d3c1dbfe | ||
|
|
330cb4e652 | ||
|
|
34013bfd63 | ||
|
|
1df7e524ed | ||
|
|
460b1c2249 | ||
|
|
4cc3251b02 | ||
|
|
ed2dded753 | ||
|
|
c14e07828f | ||
|
|
f2a21265b3 | ||
|
|
2cc7f72400 | ||
|
|
bab8b92f60 | ||
|
|
c53c44331e | ||
|
|
9d9b509084 | ||
|
|
1595e2f59b | ||
|
|
90c0b48235 | ||
|
|
411cfa6d9a | ||
|
|
137c0bdf9f | ||
|
|
18b64d471f | ||
|
|
fc737be24e | ||
|
|
32e5394aea | ||
|
|
99f1fa3de8 | ||
|
|
2bf2a37784 | ||
|
|
2ca9dfd40e | ||
|
|
8e3c4bcaac | ||
|
|
1dcf3c53ed | ||
|
|
2179f63a97 | ||
|
|
b1a79758ee | ||
|
|
861fec5dbd | ||
|
|
31fc54d037 | ||
|
|
1941e1717a | ||
|
|
f996c946f3 | ||
|
|
21b3e13b70 | ||
|
|
bffd3048d7 | ||
|
|
dd19013a79 | ||
|
|
4f8ccb165c | ||
|
|
b92b61b36f | ||
|
|
a346cf760f | ||
|
|
2bb0a7a759 | ||
|
|
dfac9e8582 | ||
|
|
4cca5de20a | ||
|
|
516cec5a9b | ||
|
|
6630fe7cc0 | ||
|
|
5f68c65680 | ||
|
|
7f3211f46d | ||
|
|
361481d34d | ||
|
|
a2c0a5b547 | ||
|
|
9df0b07308 | ||
|
|
6be0d1fa34 | ||
|
|
feb846a1ff | ||
|
|
2b052e11f8 | ||
|
|
04a2dd8ace | ||
|
|
7a60a36a05 | ||
|
|
bc5fcc0d35 | ||
|
|
8368e5f487 | ||
|
|
684811d7ac | ||
|
|
ccd2ef97c5 | ||
|
|
43e7bd8356 | ||
|
|
84cef9a876 | ||
|
|
3202e7794e | ||
|
|
0897920a8c | ||
|
|
74cfc245ba | ||
|
|
efd29616db | ||
|
|
3ed74de232 | ||
|
|
4dbfc244cc | ||
|
|
e72343c867 | ||
|
|
c7c17484b1 | ||
|
|
1ab7cb6cdd | ||
|
|
ee9df548b7 | ||
|
|
841a1b8188 | ||
|
|
ceccc257e7 | ||
|
|
6076e22f1a | ||
|
|
a6e9eb3686 | ||
|
|
1efed72ada | ||
|
|
1e9a669f07 | ||
|
|
e204bf375d | ||
|
|
4bcbaa7287 | ||
|
|
ec12be530d | ||
|
|
9a6ab51b0f | ||
|
|
bb4b17bf86 | ||
|
|
2cc8b49e27 | ||
|
|
918379dacd | ||
|
|
a09d821f9e | ||
|
|
e5af75a476 | ||
|
|
e5b45edf5b | ||
|
|
f739f3c37b | ||
|
|
7c02454fc7 | ||
|
|
c4f34905db | ||
|
|
04eb7d174c | ||
|
|
ef4072fc23 | ||
|
|
29c27b6a5a | ||
|
|
256bc5a70d | ||
|
|
3591f2813f | ||
|
|
dcd4e5b4ff | ||
|
|
9417d790a7 | ||
|
|
52ea598baa | ||
|
|
3a022a6812 | ||
|
|
e33ec1fe36 | ||
|
|
3cad30de21 | ||
|
|
c842d61919 | ||
|
|
e214f12e28 | ||
|
|
b369396d0a | ||
|
|
4af46bfaaa | ||
|
|
8f1711f7cc | ||
|
|
42915717a4 | ||
|
|
54be8f04e3 | ||
|
|
3999dffd81 | ||
|
|
0b3ddf585a | ||
|
|
955e28fe56 | ||
|
|
15aaa2459c | ||
|
|
5ff858c1d5 | ||
|
|
c551c20104 | ||
|
|
bc8148ba3a | ||
|
|
49f9e2f066 | ||
|
|
8a97e31803 | ||
|
|
e80f2f1b49 | ||
|
|
6ff862e6a4 | ||
|
|
96adc67184 | ||
|
|
c4aebf3bd7 | ||
|
|
b88912c4cf | ||
|
|
732bc9e3a0 | ||
|
|
6f8675815e | ||
|
|
553d3c8f0e | ||
|
|
e51b006a3f | ||
|
|
b22e7654fc | ||
|
|
0c63da60f7 | ||
|
|
7cc4586130 | ||
|
|
c08f564269 | ||
|
|
2bf7821f70 | ||
|
|
3cd1d9e430 | ||
|
|
e20ac5e5be | ||
|
|
fbc7ec4dff | ||
|
|
10ebeba6b9 | ||
|
|
f937db2251 | ||
|
|
8362ba3b96 | ||
|
|
f4f87c8ba3 | ||
|
|
54910c06cf | ||
|
|
6e78986f34 | ||
|
|
5e7f7a14bb | ||
|
|
d8b0ad85c3 | ||
|
|
0b069c10e7 | ||
|
|
56b5392088 | ||
|
|
751cec6c03 | ||
|
|
2568b78213 | ||
|
|
3bb94f51b8 | ||
|
|
51461f9a3a | ||
|
|
f8208799be | ||
|
|
70240054fb | ||
|
|
9e2724918c | ||
|
|
68e65f2b9a | ||
|
|
fa04386790 | ||
|
|
961c470159 | ||
|
|
edc13ba71f | ||
|
|
e8303705b3 | ||
|
|
b216a22e0e | ||
|
|
11d6f547c3 | ||
|
|
692b4a6944 | ||
|
|
855523d669 | ||
|
|
ff7b62d45b | ||
|
|
0aa2b2fcb6 | ||
|
|
5c318aad3b | ||
|
|
206a7acd99 | ||
|
|
d9ef135999 | ||
|
|
3688c468ce | ||
|
|
3b0115cffc | ||
|
|
5078941dfb | ||
|
|
1672e7124b | ||
|
|
23fd362a72 | ||
|
|
5c60a5ac21 | ||
|
|
fd0d925466 | ||
|
|
616f0c929a | ||
|
|
92d99e90ad | ||
|
|
9b2e698f6b | ||
|
|
b2cf1b106c | ||
|
|
66a844f050 | ||
|
|
135eb717f4 | ||
|
|
29bfe96f8e | ||
|
|
c94e1598bf | ||
|
|
aa23d7a56f | ||
|
|
4269f8a3f3 | ||
|
|
d78c105f08 | ||
|
|
ff27aa43e9 | ||
|
|
d1ae3d83af | ||
|
|
e95527efbb | ||
|
|
b2dab994af | ||
|
|
cec0a6bd7d | ||
|
|
b89404cf52 | ||
|
|
02d93cca94 | ||
|
|
7a550677bc | ||
|
|
3c7073326c | ||
|
|
c84ce7edb1 | ||
|
|
34389498c5 | ||
|
|
a89950536a | ||
|
|
d787240dab | ||
|
|
3ca3967711 | ||
|
|
c85d59c371 | ||
|
|
f8ad400ff2 | ||
|
|
b73c167ce0 | ||
|
|
a027455d39 | ||
|
|
4e4e2846f9 | ||
|
|
e7c57199e8 | ||
|
|
918d820d53 | ||
|
|
3faad0375e | ||
|
|
6194fc367b | ||
|
|
9a07f418ce | ||
|
|
8b88806d46 | ||
|
|
8f123f315b | ||
|
|
99b90ffb48 | ||
|
|
91e43ef443 | ||
|
|
595aa2c126 | ||
|
|
217fe38647 | ||
|
|
a75a324a4c | ||
|
|
404c9e4068 | ||
|
|
10b8b55c27 | ||
|
|
212c1922ba | ||
|
|
0f22c475f5 | ||
|
|
a524e2cbea | ||
|
|
b148e8a614 | ||
|
|
3f79b9db6f | ||
|
|
f36d409355 | ||
|
|
3e415ba7be | ||
|
|
5632e53759 | ||
|
|
caf36be549 | ||
|
|
c727f2b197 | ||
|
|
60c0542463 | ||
|
|
4b57e88b4b | ||
|
|
01ea159d19 | ||
|
|
e86546521f | ||
|
|
adc7241859 | ||
|
|
d81bda401e | ||
|
|
0552d34dab | ||
|
|
af90d98a6e | ||
|
|
3c5f92d49d | ||
|
|
4f9fef7b0e | ||
|
|
7616dab297 | ||
|
|
651862fd47 | ||
|
|
59d869d79d | ||
|
|
d331767eac | ||
|
|
e770ae4301 | ||
|
|
cd0f54edfc | ||
|
|
dda4eaf546 | ||
|
|
4d317b03dc | ||
|
|
c21b6014b6 | ||
|
|
71922ef9e2 | ||
|
|
96075f637e | ||
|
|
7a2e3e1a99 | ||
|
|
ab16f9899d | ||
|
|
498429e7a8 | ||
|
|
617cc6c596 | ||
|
|
9c07070580 | ||
|
|
ff2cb608a9 | ||
|
|
bf24eaaf7d | ||
|
|
356bf82843 | ||
|
|
71e953f011 | ||
|
|
f2f99a2392 | ||
|
|
beb338ebea | ||
|
|
e40e387213 | ||
|
|
046de9b4af | ||
|
|
22efce962f | ||
|
|
54768abed7 | ||
|
|
eb639a9bd7 | ||
|
|
3ec33c9c02 | ||
|
|
1b780ba76d | ||
|
|
68ff9d5402 | ||
|
|
da400c7283 | ||
|
|
896b203184 | ||
|
|
2b2b8f0610 | ||
|
|
e35b44b997 | ||
|
|
39b621391b | ||
|
|
a89a0dfe23 | ||
|
|
bc8d8b861f | ||
|
|
2061fe33c7 | ||
|
|
451a78e430 | ||
|
|
bd082fa1f6 | ||
|
|
cee8257749 | ||
|
|
dea5340516 | ||
|
|
d9d87d60d2 | ||
|
|
4f8619b918 | ||
|
|
904acd1071 | ||
|
|
a2d9587950 | ||
|
|
5564125d7c | ||
|
|
9daef7b4b5 | ||
|
|
79fc15cdc5 | ||
|
|
94ac9318d0 | ||
|
|
4d8adc9be4 | ||
|
|
07c2e57fe4 | ||
|
|
1b2de9f6de | ||
|
|
d22831bcd7 | ||
|
|
ef5bf392c7 | ||
|
|
98e2a3e429 | ||
|
|
3f7a027cf1 | ||
|
|
5df9f65eaf | ||
|
|
3a32265142 | ||
|
|
d2620a72d2 | ||
|
|
2443eac3ac | ||
|
|
6af6f7e417 | ||
|
|
5de9436aae | ||
|
|
abbad5fcb0 | ||
|
|
0145c48321 | ||
|
|
eef12c3d91 | ||
|
|
d86ce47cd4 | ||
|
|
cf1d43cf7c | ||
|
|
87d70e47d4 | ||
|
|
74fc71a2f2 | ||
|
|
4cd8f8c0f2 | ||
|
|
2bd27cd95f | ||
|
|
134067bea8 | ||
|
|
7506ded082 | ||
|
|
3580fc5847 | ||
|
|
1ea494ed0c | ||
|
|
e49bf19a9d | ||
|
|
b0ec44506f | ||
|
|
23190e0165 | ||
|
|
2d4ff30450 | ||
|
|
aaddcc7eeb | ||
|
|
6288f12695 | ||
|
|
126e06acce | ||
|
|
e4b25f2b53 | ||
|
|
458b5d9dd7 | ||
|
|
2ca67fc36b | ||
|
|
f4b1ecfcea | ||
|
|
166b43b8dc | ||
|
|
a69fbe34a5 | ||
|
|
3b6466b5e6 | ||
|
|
2fed3d20e3 | ||
|
|
ef69627363 | ||
|
|
34b81c2c48 | ||
|
|
0c9bb3488b | ||
|
|
f0ca3afab8 | ||
|
|
c7fa463c0d | ||
|
|
97502e969d | ||
|
|
c629896172 | ||
|
|
9d83af3e05 | ||
|
|
6e0a2b52fc | ||
|
|
adc07537f0 | ||
|
|
be9aa4b811 | ||
|
|
622910313c | ||
|
|
f7756d8012 | ||
|
|
da9bfe8cf9 | ||
|
|
4b24b9dcbb | ||
|
|
249cd86f2e | ||
|
|
c48c0cabaf | ||
|
|
0412ef805d | ||
|
|
253f211e16 | ||
|
|
fc95e909c9 | ||
|
|
3d8acdc1c4 | ||
|
|
37b81426ad | ||
|
|
43ebb77dae | ||
|
|
a0fd9d4ce8 | ||
|
|
97bedc773f | ||
|
|
9828191030 | ||
|
|
714a93e1ab | ||
|
|
52c74804ff | ||
|
|
8bb579cd86 | ||
|
|
6a14ce8ff4 | ||
|
|
4a6d6ee5ee | ||
|
|
4d76c57a1a | ||
|
|
f122ab9d5e | ||
|
|
4429b05805 | ||
|
|
0a24711890 | ||
|
|
8b77387af4 | ||
|
|
ddba3e4e6e | ||
|
|
83c5e15af2 | ||
|
|
902d525d3c | ||
|
|
8e9ebb1cc9 | ||
|
|
bcfd9a0faa | ||
|
|
0654cd01b3 | ||
|
|
cba8004131 | ||
|
|
074fe0fa9b | ||
|
|
6631c1bef3 | ||
|
|
a3f9fb1911 | ||
|
|
644b14707f | ||
|
|
37d51b625d | ||
|
|
77f8a5ecfb | ||
|
|
9860605b91 | ||
|
|
bab730bf6e | ||
|
|
584e7bb4b5 | ||
|
|
2ef5b7810e | ||
|
|
253e40e736 | ||
|
|
9ac80d9a3a | ||
|
|
3b38a41278 | ||
|
|
d5557ec4b4 | ||
|
|
a6ab0f3bf6 | ||
|
|
9453bd9417 | ||
|
|
efc0ad189f | ||
|
|
285ca1b285 | ||
|
|
0fd0659852 | ||
|
|
80daae0b36 | ||
|
|
da5ef0b604 | ||
|
|
c91d182c84 | ||
|
|
d2ef319833 | ||
|
|
00dd128b04 | ||
|
|
627c3c979f | ||
|
|
f4daa1282b | ||
|
|
a959a48da2 | ||
|
|
d536980947 | ||
|
|
a8e1302151 | ||
|
|
b4e55702aa | ||
|
|
b889b2b616 | ||
|
|
92e0e907be | ||
|
|
777a5eb523 | ||
|
|
249667c35a | ||
|
|
1de5f31752 | ||
|
|
bcc44cc6a1 | ||
|
|
0c05d94c8a | ||
|
|
7ca1399dc5 | ||
|
|
d84b3fafc9 | ||
|
|
b661033db6 | ||
|
|
b7e942d924 | ||
|
|
0e9c85f8a1 | ||
|
|
5406ee109e | ||
|
|
a4bddae4da | ||
|
|
a4dc0a0da1 | ||
|
|
a59bcf5c7a | ||
|
|
e529757d12 | ||
|
|
2adbff6c3f | ||
|
|
116bf7ed6b | ||
|
|
b8a8ca22a1 | ||
|
|
07a8e6950c | ||
|
|
0036770386 | ||
|
|
017e463b97 | ||
|
|
8c8e3bae34 | ||
|
|
76df193ec9 | ||
|
|
3b19e64860 | ||
|
|
96cb9a9834 | ||
|
|
1b11d2e19f | ||
|
|
7662f63720 | ||
|
|
72dae131e6 | ||
|
|
bb6648d8b7 | ||
|
|
f2c53a4c1f | ||
|
|
87eae6f55c | ||
|
|
00c192f596 | ||
|
|
cc6ad179ec | ||
|
|
19e4a449f4 | ||
|
|
b517015248 | ||
|
|
f49c152ddd | ||
|
|
d6372a3b1e | ||
|
|
a110eb10db | ||
|
|
a3493e3625 | ||
|
|
49775dd780 | ||
|
|
06ed8efc83 | ||
|
|
b6b81baa42 | ||
|
|
d3421947f9 | ||
|
|
4cbe2814d1 | ||
|
|
4e15c70058 | ||
|
|
540780d3d1 | ||
|
|
87492c3a0d | ||
|
|
62a71a015e | ||
|
|
174cfa9c56 | ||
|
|
9ac99f22a4 | ||
|
|
a39a9e63ce | ||
|
|
040b115a70 | ||
|
|
6b8d419c97 | ||
|
|
8106e6bfa4 | ||
|
|
6c57ca9860 | ||
|
|
c22cb29d06 | ||
|
|
fd07f12a72 | ||
|
|
14f9fbf961 | ||
|
|
9b30cd8a59 | ||
|
|
d048e2545e | ||
|
|
99029772de | ||
|
|
e9857aec00 | ||
|
|
6f6a90f086 | ||
|
|
f618756fde | ||
|
|
0d70c98518 | ||
|
|
7f74c2126e | ||
|
|
56bde31366 | ||
|
|
8aa72c25c2 | ||
|
|
2fb66ec5f5 | ||
|
|
32e3466fb8 | ||
|
|
42cef5fec5 | ||
|
|
a7c2dccba2 | ||
|
|
2c2eb81a42 | ||
|
|
bbff6c115d | ||
|
|
f286f9e8d4 | ||
|
|
8086450e1d | ||
|
|
4753f2789a | ||
|
|
232ca2e2d5 | ||
|
|
f86a7b6af7 | ||
|
|
b8b35ee319 | ||
|
|
fb011ea2a8 | ||
|
|
3ce572a739 | ||
|
|
cb018ca927 | ||
|
|
a8174a87c6 | ||
|
|
fcb2d5e3a1 | ||
|
|
e000ac4312 | ||
|
|
22b52b3714 | ||
|
|
01294d4c82 | ||
|
|
3e9cb6e1e0 | ||
|
|
10dc65820b | ||
|
|
5a3750eee6 | ||
|
|
0908d0aee4 | ||
|
|
3f1cdb9d69 | ||
|
|
2b0f87a73d | ||
|
|
e3b37db367 | ||
|
|
ae2cb38ea0 | ||
|
|
bb2ffb8f20 | ||
|
|
ed8ba637bb | ||
|
|
3aa0c4215b | ||
|
|
32406390d9 | ||
|
|
d3f69bf1bb | ||
|
|
498e819a51 | ||
|
|
201a32d2d1 | ||
|
|
cee9dc1ccb | ||
|
|
d726669c33 | ||
|
|
9eecac827b | ||
|
|
03efcf3880 | ||
|
|
54a07dd4da | ||
|
|
e3f8b6f736 | ||
|
|
a7277e6547 | ||
|
|
6820318d33 | ||
|
|
d10bf1e355 | ||
|
|
dc93e828f0 | ||
|
|
ea32efa806 | ||
|
|
4c1bca832e | ||
|
|
850c490a53 | ||
|
|
5d97371cfc | ||
|
|
2f331f6f27 | ||
|
|
33e58f40c4 | ||
|
|
9ace80d803 | ||
|
|
01de36ef16 | ||
|
|
1cc5f0cde4 | ||
|
|
dc5464d328 | ||
|
|
8a32178667 | ||
|
|
059b15f5dd | ||
|
|
785aea4f65 | ||
|
|
cd28348678 | ||
|
|
cf0304d31e | ||
|
|
27f7ba229b | ||
|
|
c97eba9792 | ||
|
|
2ce0635ebc | ||
|
|
c1ce890973 | ||
|
|
bc2a5fc4be | ||
|
|
c1827b289d | ||
|
|
4810822d26 | ||
|
|
b5c2b6483b | ||
|
|
906a82cf19 | ||
|
|
77a2f2e9ea | ||
|
|
0a2393f4ce | ||
|
|
158ed33b1c | ||
|
|
c4059a4678 | ||
|
|
df5669a403 | ||
|
|
03eae9b5c5 | ||
|
|
9f3014cb11 | ||
|
|
358b11addd | ||
|
|
d467e7f8e0 | ||
|
|
5c6b839ccf | ||
|
|
cfff0e62e2 | ||
|
|
597ce16e94 | ||
|
|
22fd84a4e5 | ||
|
|
ba23a78c3e | ||
|
|
aa878eb2d9 | ||
|
|
2958c819fc | ||
|
|
80c608e49d | ||
|
|
79910e7078 | ||
|
|
1c40219b0a | ||
|
|
f8a465f554 | ||
|
|
07d3344a37 | ||
|
|
97cb76f5fb | ||
|
|
41ebeb244c | ||
|
|
3615cb1b47 | ||
|
|
f12780c841 | ||
|
|
7cb6f9f013 | ||
|
|
5f31442514 | ||
|
|
a88c67c058 | ||
|
|
87fafb6b71 | ||
|
|
9cfb56f632 | ||
|
|
73511525aa | ||
|
|
4653c8ea67 | ||
|
|
cf32432125 | ||
|
|
f706a1ef90 | ||
|
|
8d5ac4304a | ||
|
|
c5b8cb239a | ||
|
|
dcb19c63cd | ||
|
|
b0925d0876 | ||
|
|
11700d47e7 | ||
|
|
af6adf5e9d | ||
|
|
1928329a9e | ||
|
|
2af52bc418 | ||
|
|
28cc4bb327 | ||
|
|
b34deb4e81 | ||
|
|
331b74812b | ||
|
|
c6ef70c488 | ||
|
|
b371b8d07e | ||
|
|
242f880280 | ||
|
|
90de1cee0d | ||
|
|
0d4056537c | ||
|
|
2073548bab | ||
|
|
61afe92f2a | ||
|
|
d19c8e35a9 | ||
|
|
605017712a | ||
|
|
0e7cfdb088 | ||
|
|
a3bd40c58e | ||
|
|
17f793efa9 | ||
|
|
54cc0b2725 | ||
|
|
895d0d2c9a | ||
|
|
a4aed8f7a3 | ||
|
|
9fbb280857 | ||
|
|
ae249718d4 | ||
|
|
9aa23a8f3a | ||
|
|
f23b66bed0 | ||
|
|
2ebe579722 | ||
|
|
d2571a3184 | ||
|
|
012d86c1d3 | ||
|
|
cf623ef06c | ||
|
|
9eda56e7db | ||
|
|
006870ed46 | ||
|
|
d6af8a989b | ||
|
|
4e41949c96 | ||
|
|
64ea2e8521 | ||
|
|
f8481c1ae9 | ||
|
|
a62ef21615 | ||
|
|
cd52f7148f | ||
|
|
5e6e6d1018 | ||
|
|
35cae15a74 | ||
|
|
dd2916f139 | ||
|
|
691b288d5f | ||
|
|
bdfe4a952b | ||
|
|
69d73daa6a | ||
|
|
f4dfac890f | ||
|
|
a8eec3b745 | ||
|
|
879b4c7eeb | ||
|
|
a62ef2633b | ||
|
|
73a5b119aa | ||
|
|
9f9d2c7b7e | ||
|
|
09f867e86d | ||
|
|
e7ebbdfcb1 | ||
|
|
4663eada02 | ||
|
|
d0b00b51f4 | ||
|
|
314fcba6b6 | ||
|
|
f0312c1b1b | ||
|
|
2fbfee3c2b | ||
|
|
2b7afb587e | ||
|
|
67dc620347 | ||
|
|
6b53436c07 | ||
|
|
cfd11be99a | ||
|
|
906dbd95a6 | ||
|
|
07925f2515 | ||
|
|
de0fa4f32d | ||
|
|
2b39158477 | ||
|
|
9132c4a161 | ||
|
|
5f44b23ca8 | ||
|
|
b45714977d | ||
|
|
d72f11735d | ||
|
|
b1999de02c | ||
|
|
2facbf6177 | ||
|
|
bdf06085de | ||
|
|
b1085de189 | ||
|
|
33c6dfa8a4 | ||
|
|
95bcb7cf3a | ||
|
|
69fcf8db46 | ||
|
|
ca17d6204f | ||
|
|
4294d36b89 | ||
|
|
e00bcb2be8 | ||
|
|
b753095e56 | ||
|
|
a7c33fea4b | ||
|
|
ee913a0828 | ||
|
|
2bb54068a2 | ||
|
|
395695b000 | ||
|
|
503a9b3954 | ||
|
|
d58b840f63 | ||
|
|
78f79ed2c0 | ||
|
|
8f5e2eb58c | ||
|
|
6a1295459b | ||
|
|
3cb328a8c4 | ||
|
|
fd15a1c603 | ||
|
|
f871dd560b | ||
|
|
6306c5db0a | ||
|
|
1c43b63087 | ||
|
|
3f581abea0 | ||
|
|
5a4d8c7bc2 | ||
|
|
637be817e1 | ||
|
|
07a7b00407 | ||
|
|
018e0c4bb6 | ||
|
|
40cc8c0fc1 | ||
|
|
592547173d | ||
|
|
8828166068 | ||
|
|
9d0152ba16 | ||
|
|
da28678b09 | ||
|
|
a82c42e40b | ||
|
|
324fb8b7ce | ||
|
|
391fc805d8 | ||
|
|
21ccbc9c40 | ||
|
|
840e73fb50 | ||
|
|
a91df58c65 | ||
|
|
6d08567155 | ||
|
|
2e2e2ed0de | ||
|
|
fff04ace3a | ||
|
|
c469f26f97 | ||
|
|
54f0d5a41f | ||
|
|
04ebeee38d | ||
|
|
e1dddd9543 | ||
|
|
3d82fa444d | ||
|
|
2f0b5b06d7 | ||
|
|
96c15fbf7c | ||
|
|
43c254be32 | ||
|
|
ec356b8bf2 | ||
|
|
778c7a8974 | ||
|
|
a65838b445 | ||
|
|
c933a7d10c | ||
|
|
f71137ed2c | ||
|
|
84377209dd | ||
|
|
fcc273d3a0 | ||
|
|
d36587e4b3 | ||
|
|
5ce5e43ccf | ||
|
|
a00bd84cad | ||
|
|
f9c8150b2f | ||
|
|
9a80642a3f | ||
|
|
628ee7d771 | ||
|
|
e944484b37 | ||
|
|
926459db29 | ||
|
|
203dfcc1fb | ||
|
|
70eff4b834 | ||
|
|
af14b97ee2 | ||
|
|
c26a21f748 | ||
|
|
7fc402f3b5 | ||
|
|
bd1bd60815 | ||
|
|
e6df241061 | ||
|
|
7e37bb3b12 | ||
|
|
2de3cd4b36 | ||
|
|
faef0131cd | ||
|
|
f2ac24f156 | ||
|
|
812d3e90cc | ||
|
|
9d9fe5c097 | ||
|
|
1330914898 | ||
|
|
02d8bf82a2 | ||
|
|
d2b717871b | ||
|
|
9a49ce2fc4 | ||
|
|
610c0e288d | ||
|
|
a9fa694eb7 | ||
|
|
af0263a60a | ||
|
|
e6868b24ec | ||
|
|
973b99f927 | ||
|
|
ee7db6a39c | ||
|
|
3d51b54386 | ||
|
|
0ee62489c0 | ||
|
|
61b060c732 | ||
|
|
9370464ad0 | ||
|
|
4ffc9d2bdb | ||
|
|
de285ca495 | ||
|
|
be235dc195 | ||
|
|
33709782bd | ||
|
|
08de7f176c | ||
|
|
806de1241a | ||
|
|
06ae2087ce | ||
|
|
b50f475939 | ||
|
|
74a12d0f25 | ||
|
|
b849525921 | ||
|
|
cfbb6121a5 | ||
|
|
46653a61e1 | ||
|
|
610d4a8b8b | ||
|
|
12b3774c3f | ||
|
|
aa400fd434 | ||
|
|
158df98d0c | ||
|
|
b24c9e5b68 | ||
|
|
57c432e688 | ||
|
|
38992c2a9e | ||
|
|
a32ac8cdb9 | ||
|
|
48f2f987a4 | ||
|
|
e7f58b979b | ||
|
|
31e121bc86 | ||
|
|
70b011b077 | ||
|
|
0cbc68f119 | ||
|
|
761d6168d1 | ||
|
|
385f1255da | ||
|
|
6d21cb9d78 |
553 changed files with 43794 additions and 6720 deletions
63
.github/workflows/githubci.yml
vendored
Normal file
63
.github/workflows/githubci.yml
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
name: Build
|
||||
|
||||
on: [pull_request, push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
arduino-platform: ['metro_m0', 'hallowing', 'circuitplayground_m0',
|
||||
'metro_m4', 'pybadge_m4', 'pygamer_m4', 'hallowing_m4', 'pyportal_m4', 'pyportal_m4_titano']
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Checkout submodules
|
||||
shell: bash
|
||||
run: |
|
||||
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
|
||||
git submodule sync --recursive
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive
|
||||
|
||||
- name: Install Arduino CLI and Tools
|
||||
run: |
|
||||
# make all our directories we need for files and libraries
|
||||
mkdir $HOME/.arduino15
|
||||
mkdir $HOME/.arduino15/packages
|
||||
mkdir $HOME/Arduino
|
||||
mkdir $HOME/Arduino/libraries
|
||||
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh
|
||||
echo "::add-path::$GITHUB_WORKSPACE/bin"
|
||||
|
||||
- name: Install BSP and Libraries
|
||||
env:
|
||||
BSP_URL: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
|
||||
BSP_PATH: .arduino15/packages/adafruit/hardware/samd
|
||||
LIB_DEPS: FlashStorage SD
|
||||
run: |
|
||||
arduino-cli config init
|
||||
arduino-cli core update-index
|
||||
arduino-cli core update-index --additional-urls $BSP_URL
|
||||
arduino-cli core install arduino:samd --additional-urls $BSP_URL
|
||||
arduino-cli core install adafruit:samd --additional-urls $BSP_URL
|
||||
# Replace release BSP with our code
|
||||
BSP_VERSION=`eval ls $HOME/$BSP_PATH`
|
||||
rm -r $HOME/$BSP_PATH/*
|
||||
ln -s $GITHUB_WORKSPACE $HOME/$BSP_PATH/$BSP_VERSION
|
||||
arduino-cli lib install $LIB_DEPS
|
||||
|
||||
- name: Build examples
|
||||
run: python3 extras/build_all.py ${{ matrix.arduino-platform }}
|
||||
|
||||
# How to mark this as allowed-to-fail?
|
||||
- name: Build examples (-Wall)
|
||||
run: python3 extras/build_all.py --all_warnings --warnings_do_not_cause_job_failure
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[submodule "cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore"]
|
||||
path = cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore
|
||||
url = https://github.com/adafruit/Adafruit_TinyUSB_ArduinoCore.git
|
||||
80
CHANGELOG
80
CHANGELOG
|
|
@ -1,3 +1,83 @@
|
|||
SAMD CORE ?.?.?? ????.??.??
|
||||
|
||||
SAMD CORE 1.6.21 2019.04.01
|
||||
|
||||
* MKR boards: changed I2C to sercom2, SPI1 + Serial2 to sercom4
|
||||
* Improved accuracy of delay() function. Thanks @BenF
|
||||
* MKR 1500: Changed SARA module to be powered off on boot
|
||||
|
||||
SAMD CORE 1.6.20 2018.11.28
|
||||
|
||||
* Replaced boolean type with bool in examples. Thanks @per1234
|
||||
* Added c++ linker command to allow to include libstdc++ when linking. Thanks @helmut64
|
||||
* CPX driver fixes. Thanks @dhalbert
|
||||
* I2S: Changed library to use 8 MHz oscillator source if 48MHz divider does not fit in 8 bits
|
||||
* UART: Added frame error handling
|
||||
* USB: Fixed memory leak on reconnects
|
||||
* SDU: Added support for Arduino M0. Thanks @jandrassy
|
||||
* Added arduinoOTA upload keys for Arduino M0. Thanks @jandrassy
|
||||
* USB: Fixed USB Host failures and fixed memory overwrite in USBHost. Thanks @gdsports
|
||||
* USB: Added method to return USB error code. Thanks @MarkFischer
|
||||
* CDC: Clear line state on end()
|
||||
* USB: Added USB device end() method
|
||||
* Removed requirement that the DAC is on A0. Thanks @GabrielNotman
|
||||
* Added alternate ports 44, 45 to make the SWCLK and SWDIO pins available on the Zero. Thanks @helmut64
|
||||
* Added defines for MKR pin layout
|
||||
* Fixed freeze in tone()
|
||||
* Added MKR NB 1500 variant and bootloader
|
||||
* Increased the default serial buffer size to 256
|
||||
|
||||
SAMD CORE 1.6.19 2018.07.11
|
||||
|
||||
* Fixed bootloader tools for .org boards
|
||||
* M0: Updated pin definitions for D6, D7 and D13 to match Zero
|
||||
* SPI: Fixed interrupt mask to block. Thanks @ggajoch
|
||||
* Added MKR WiFi 1010 variant and bootloader
|
||||
* Updated Windows Drivers to 1.4.0 and re-signed Adafruit_Circuit_Playground_Express.inf
|
||||
|
||||
SAMD CORE 1.6.18 2018.03.05
|
||||
|
||||
* Wire: Added support for general call (broadcast)
|
||||
* SPI: Added SPI.notUsingInterrupt(...) API
|
||||
* Fixed build errors if variant disabled USB
|
||||
* Wire: TX and RX buffers are now 256 bytes (previously was 64 bytes)
|
||||
* Added samd21e sercom compatibility. Thanks @mitchellpontague
|
||||
* Fixed lock ups when outputting to UART during ISR
|
||||
* Wire: correct I2C frequency calculations, and allow variant to overide default pull up resistor rise time
|
||||
* USB: Fixed build errors when CDC_ENABLED was not set. Thanks @gdsports
|
||||
|
||||
SAMD CORE 1.6.17 2017.11.29
|
||||
|
||||
* More accurate approximation for multiplication factor of PLL to make 48Mhz. Thanks @joverbee
|
||||
* Fix changing trigger mode (RISING/FALLING/...) in attachInterrupt(..) during runtime. Thanks @joverbee
|
||||
* Improved ISR response time. Thanks @joverbee
|
||||
* USB power current can now be overridden in the variant. Thanks @awatterott
|
||||
* UART's now support optional RTS and CTS pins defined in the variant.
|
||||
* Added support for MKR GSM 1400 and MKR WAN 1300
|
||||
|
||||
SAMD CORE 1.6.16 2017.08.23
|
||||
|
||||
* Is now possible to use PWM on D7 (though it can't be used with PWM on D12 at the same time). Thanks @Adminius
|
||||
* PWMs now can perform real 16-bit resolution if analogWriteResolution(16) is set. Thanks @Adminius
|
||||
* USB CDC: fixed issue of available() getting stuck when receiving ZLP's
|
||||
* Serial (UART) tx is now buffered.
|
||||
* Improved CRYSTALLESS stability. Thanks @tannewt
|
||||
* Some fixes to Adafruit Circuit Playground Express variant. Thanks @ladyada
|
||||
* Updated Stream and Print class
|
||||
* Native USB now supports USB Serial Number
|
||||
* Fixed pgm_read_ptr compatibility macro. Thanks @nkrkv
|
||||
|
||||
SAMD CORE 1.6.15 2017.04.27
|
||||
|
||||
* Added missing Windows driver for MKRFox1200
|
||||
* Added SDU support for MKRFox1200
|
||||
|
||||
SAMD CORE 1.6.14 2017.04.04
|
||||
|
||||
* Fixed platform definition for openocd
|
||||
* Added bootloader definitions for MKRFox1200
|
||||
* Added lowpower function on USB subsystem
|
||||
|
||||
SAMD CORE 1.6.13 2017.03.31
|
||||
|
||||
* Added SDU (SD card Updater) library.
|
||||
|
|
|
|||
33
README.md
33
README.md
|
|
@ -1,43 +1,14 @@
|
|||
# Arduino Core for SAMD21 and SAMD51 CPU
|
||||
|
||||
[](https://github.com/adafruit/ArduinoCore-samd/actions)
|
||||
|
||||
This repository contains the source code and configuration files of the Arduino Core
|
||||
for Atmel's SAMD21 and SAMD51 processor (used on the Arduino/Genuino Zero, MKR1000 and MKRZero boards).
|
||||
|
||||
In particular, this adds support for the Adafruit SAMD Boards such as the Feather M0
|
||||
|
||||
## ATSAMD51 Installation on Arduino IDE
|
||||
|
||||
The ATSAMD51 is a significantly new chip, so this is a detailed process for now! For the SAMD21, please install via the board manager (no extra steps required)
|
||||
|
||||
1. Install Arduino IDE 1.8.5 or greater
|
||||
2. Install/update the Adafruit SAMD board support package if you have installed it
|
||||
3. Now we need to update CMSIS! Download https://github.com/adafruit/ArduinoModule-CMSIS-Atmel/archive/master.zip and unzip
|
||||
4. Find your Arduino CMSIS, in Mac its "~/Library/Arduino15/packages/arduino/tools/CMSIS-Atmel/1.1.0/CMSIS" version # may vary, you'll need "Go to folder..." feature in the Finder to get to " ~/Library/Arduino15" as it is hidden. In Windows it is "C:\Users\yourusername\AppData\Local\Arduino15\packages\arduino\tools\CMSIS-Atmel\1.1.0\CMSIS" Inside is a folder named Device
|
||||
|
||||
For Linux: the Arduino stuff is located in ~/.arduino15/packages/arduino/tools/CMSIS-Atmel/1.1.0/CMSIS
|
||||
|
||||
5. Inside the downloaded CMSIS zip, go into the CMSIS-Atmel/CMSIS folder, you should see a folder named Device. *DRAG THE DEVICE FOLDER ONLY* from the zip to your arduino Library folder so that Device is merged with Device. It will replace a bunch of files.
|
||||
|
||||
For Linux, it may be better to just delete the original Device Folder then copy over the new one - the drag/drop worked ok on MACOS, but not so well on my Linux box.
|
||||
|
||||
6. You will also need to replace bossac. For Windows or Mac: Go here https://github.com/adafruit/BOSSA/releases and download either windows exe or mac app of latest bossac. unzip. Go to Step 12.
|
||||
|
||||
For Linux users it is best to build a copy of bossac locally -
|
||||
clone the Adafruit Repostitory to somewhere on your local machine.
|
||||
```
|
||||
git clone https://github.com/adafruit/BOSSA.git
|
||||
change to the arduino branch
|
||||
git checkout arduino
|
||||
```
|
||||
Follow the instructions to build bossac in README.md or at https://github.com/adafruit/BOSSA/tree/arduino.
|
||||
|
||||
7. Replace the binary at ".../Library/Arduino15/packages/arduino/tools/bossac/1.7.0/bossac" or "...\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0\bossac"
|
||||
8. On Windows 7 you will also need to install the updated serial driver, download https://github.com/adafruit/Adafruit_Windows_Drivers/archive/master.zip to get all the drivers, and point the Device Manager to the unzipped folder. It isn't signed, so just approve the installation manually.
|
||||
13. That's it!
|
||||
|
||||
## Bugs or Issues
|
||||
|
||||
## Known Issues for SAMD51:
|
||||
* AREF must be tied to 3.3V for dac to work. This is a bug in the SAMD51 silicon.
|
||||
* USB host mode doesn't work yet
|
||||
|
||||
|
|
|
|||
1123
boards.txt
1123
boards.txt
File diff suppressed because it is too large
Load diff
BIN
bootloaders/blmbadge/bootloader-blm_badge.bin
Normal file
BIN
bootloaders/blmbadge/bootloader-blm_badge.bin
Normal file
Binary file not shown.
BIN
bootloaders/grand_central_m4/bootloader-grandcentral_m4.bin
Normal file
BIN
bootloaders/grand_central_m4/bootloader-grandcentral_m4.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bootloaders/matrixportalM4/bootloader-matrixportal_m4.bin
Normal file
BIN
bootloaders/matrixportalM4/bootloader-matrixportal_m4.bin
Normal file
Binary file not shown.
BIN
bootloaders/metroM4/METRO_M4_sam_ba.bin
Normal file
BIN
bootloaders/metroM4/METRO_M4_sam_ba.bin
Normal file
Binary file not shown.
BIN
bootloaders/metroM4/METRO_M4_sam_ba.elf
Normal file
BIN
bootloaders/metroM4/METRO_M4_sam_ba.elf
Normal file
Binary file not shown.
457
bootloaders/metroM4/METRO_M4_sam_ba.hex
Normal file
457
bootloaders/metroM4/METRO_M4_sam_ba.hex
Normal file
|
|
@ -0,0 +1,457 @@
|
|||
:10000000FCFF022055060000390600003D060000F6
|
||||
:1000100041060000450600004906000000000000FF
|
||||
:100020000000000000000000000000004D0600007D
|
||||
:10003000000000000000000051060000E50700007D
|
||||
:1000400010B5054C237833B9044B13B10448AFF312
|
||||
:1000500000800123237010BD5C0000200000000020
|
||||
:10006000041C000008B5064B1BB106480649AFF357
|
||||
:1000700000800648036813B1054B03B1984708BDDB
|
||||
:1000800000000000041C0000600000205800002058
|
||||
:10009000000000001A4B1B7813F0FF0F0AD1194B18
|
||||
:1000A0001A78194909780A44D2B21A704FF400122A
|
||||
:1000B000164BDA61124B1A780132D2B21A70114B18
|
||||
:1000C0001B78DBB2F02B04D80E4B1B78DBB2092B6C
|
||||
:1000D0000AD80D4B1A785242D2B21A70094A1178D6
|
||||
:1000E0001B780B44DBB21370054B1A78054B1B7859
|
||||
:1000F000D2B29A4203D14FF40012044BDA61704736
|
||||
:100100007800002001000020000000200080004155
|
||||
:1001100010B4C36913F0020FFBD104686FF34104FC
|
||||
:100120000460C36913F0010FFBD1046844F00104BB
|
||||
:100130000460036813F0010FFBD1C36913F0010FD2
|
||||
:10014000FBD1C36913F0020FF7D142F0804343F0B3
|
||||
:1001500004030360C36913F0040FFBD14FF4403371
|
||||
:1001600043608181C36913F0020FFBD1036843F040
|
||||
:10017000020303605DF8044B704700BF037E13F079
|
||||
:10018000010FFBD081627047037E13F0040FFBD098
|
||||
:10019000438B13F0010F07D1438B13F0020F03D1F0
|
||||
:1001A000438B13F0040F02D00122024B1A70806AB5
|
||||
:1001B000C0B270477900002070B5044603689A8B7E
|
||||
:1001C00002F0080292B232B308259D8380229A720F
|
||||
:1001D000112183F80011402183F8051183F80421CF
|
||||
:1001E000114A5068032666F31E705060506966F32A
|
||||
:1001F0001E7050610D4810600D481061506865F325
|
||||
:100200009B30506050686FF30D00506083F804110C
|
||||
:100210000023237106E093F8073113F0100F01D08B
|
||||
:1002200000F022FB207970BD940100209400002092
|
||||
:10023000140100200160002303714371054B8360AA
|
||||
:100240000B7843F002030B700268937813F0020FEF
|
||||
:10025000FBD17047B901000008B5444A936943F0E7
|
||||
:1002600001039361424B93F8581041F0010183F868
|
||||
:10027000581093F83C1001F0F00183F83C1093F80B
|
||||
:100280003C1041F0070183F83C1093F8591041F0FD
|
||||
:10029000010183F8591093F83C1001F00F0183F825
|
||||
:1002A0003C1093F83C1041F0700183F83C10402161
|
||||
:1002B000304BC3F8A810936943F00103936102F532
|
||||
:1002C000A052536813F0040FFBD14FF082431A7809
|
||||
:1002D00042F001021A701A46937813F0010FFBD115
|
||||
:1002E000254B1968C1F34412C1F3822311F01F0199
|
||||
:1002F00003D01F2908BF092100E009211AB11F2AD4
|
||||
:1003000008BF192200E019221BB1072B08BF0623E2
|
||||
:1003100000E0062302F01F0242EA81111B0303F4EE
|
||||
:10032000E04319434FF082431985DA7842F0030223
|
||||
:10033000DA70DA7842F00C02DA701A786FF3C712CA
|
||||
:100340001A701A7842F004021A700C4858621A891E
|
||||
:100350006FF383021A811A8922F001021204120C2F
|
||||
:100360001A810021802201F0C6FA08BD0008004071
|
||||
:1003700000800041001C00408400800094010020A7
|
||||
:100380002DE9F041064615461C461F46214B03EB5E
|
||||
:10039000441310335B68C3F302730333012202FA80
|
||||
:1003A00003F3AB4207D81B4A02EB4412536943F0F4
|
||||
:1003B000004353610CE014F1000818BF4FF001082E
|
||||
:1003C000154B03EB881840462A4601F08BFA41464C
|
||||
:1003D000104A02EB441202F110031161526965F3F5
|
||||
:1003E0000D025A605A686FF39B325A60083406EB6C
|
||||
:1003F00044140223E371637943F08003637107F1CE
|
||||
:10040000080106EB4111CB7913F0020FFBD028460F
|
||||
:10041000BDE8F081940100201401002038B50546A4
|
||||
:1004200014461B4B1B7813F0FF0F13D1194B1A4ABC
|
||||
:100430001A645A6C6FF30D025A645A6C6FF39B3254
|
||||
:100440005A6490F8443143F0400380F8443101226B
|
||||
:100450000F4B1A7095F8473113F0010F15D00D4B63
|
||||
:100460005B6CC3F30D03A34203D20A4B5C6CC4F371
|
||||
:100470000D0408460849224601F034FA012385F8A4
|
||||
:1004800047310022024B1A7000E00024204638BD9C
|
||||
:100490007A00002094010020D400002031B190F8AF
|
||||
:1004A000053143F0200380F80531704790F805319D
|
||||
:1004B00043F0100380F80531704700BF094B5A69BB
|
||||
:1004C0006FF30D025A61022380F8073190F805316D
|
||||
:1004D00043F0800380F8053190F8073113F0020FE4
|
||||
:1004E000FAD070479401002061F07F01C9B2817297
|
||||
:1004F000704700BF10B4032280F84021104B596CA4
|
||||
:1005000062F31E715964402180F845110D4C1C6442
|
||||
:10051000302480F820415C6B62F31E745C6380229F
|
||||
:1005200080F82421084C1C6380F86011596F6FF328
|
||||
:100530001E71596780F864215DF8044B704700BF55
|
||||
:1005400094010020D400002054010020344B1A886C
|
||||
:1005500092B21A8042F20E02324B9A821A46D36845
|
||||
:1005600013F0010FFBD02F4B1A7C6FF302021A74A9
|
||||
:1005700003F500631A7842F001021A701A465368B4
|
||||
:1005800013F0010FFBD140F20512274BDA621A4635
|
||||
:10059000536813F0200FFBD14FF48272224B1A6282
|
||||
:1005A000A3F5406300221A77204A9A621A4692F80D
|
||||
:1005B0002C3013F0100FFAD100221D4B83F82020AD
|
||||
:1005C0001A4692F82C3013F0040FFAD1184B1A7F08
|
||||
:1005D00042F002021A771A4692F82C3013F0020FFA
|
||||
:1005E000FAD1134B5A6A5A621A4692F82C3013F019
|
||||
:1005F000080FFAD198220E4B83F820201A4613696F
|
||||
:1006000013F4807FFBD040F60632074B1A621A467D
|
||||
:10061000536813F0040FFBD10122064B5A71704747
|
||||
:100620000040004100140040001C00400000010494
|
||||
:1006300000100040000800400EBEFEE70DBEFEE7C1
|
||||
:100640000DBEFEE70DBEFEE70DBEFEE705BEFEE7F2
|
||||
:1006500002BEFEE710B5174B174A9A4215D0134653
|
||||
:10066000164A9A4211D0134B134A9A420DD2131DC7
|
||||
:10067000134CE41A24F003040434002310460F49F9
|
||||
:100680005A581A500433A342FAD10E4B0E4A9A42DA
|
||||
:100690000CD00BD2131D0D49C91A21F003011944C6
|
||||
:1006A000043B002243F8042B8B42FBD100F010F8EE
|
||||
:1006B000FEE700BF5C00002000000020081C0000D6
|
||||
:1006C0005F000020A40300205C000020A70300209E
|
||||
:1006D00070B5394B1B68B3F1FF3F2DD0374A384B0B
|
||||
:1006E0001A60043A12F07F0F26D1364B1B7813F0B4
|
||||
:1006F000010F03D00021344B196011E0324B19680F
|
||||
:10070000324B994203D100222F4B1A6014E02F493B
|
||||
:100710002D4B19602E4B013BFDD100212A4B196056
|
||||
:10072000254B1B6883F3088822F07F02294B9A60CF
|
||||
:10073000234B1B681B681847FFF708FF62B600F0E1
|
||||
:10074000D1FE00F055F80546234B4FF400129A6095
|
||||
:100750004022C3F88820C3F898204FF000629A60C6
|
||||
:100760009A611E4B40F2E7325A60C021194A82F862
|
||||
:10077000231000229A6007221A60194C0126AB68E8
|
||||
:100780002846984700B12670237813F0FF0F05D054
|
||||
:10079000002000F02DFB00F0C5FBFCE7237813F0F0
|
||||
:1007A000FF0FECD100F016FF0028E8D0012000F088
|
||||
:1007B0001FFB00F0B7FBFCE7004000000440000016
|
||||
:1007C00014020020000C0040FCFF0220EF6916F02C
|
||||
:1007D000808D5B0000ED00E00080004110E000E053
|
||||
:1007E0007B00002008B5FFF755FC00F077FB08BD43
|
||||
:1007F00010B5064C4FF082432360FFF72DFD2046D5
|
||||
:100800002168FFF717FD204610BD00BF1802002029
|
||||
:10081000F0B5C1B007460E461546084601F073F81C
|
||||
:100820004000831C8DF8003003238DF801303378AD
|
||||
:1008300073B16D08012D0DDD6C463146012224F89F
|
||||
:10084000023F013211F8013F2BB1AA42F7DB02E06F
|
||||
:10085000012200E001223846694652000023FFF7DA
|
||||
:100860008FFD41B0F0BD00BFF0B583B0064604680F
|
||||
:10087000102384F80731A04B1A78A04D2A705A78BB
|
||||
:100880009F490A7098789F4A1080108880B2DF785C
|
||||
:1008900040EA0720108018799B4A1080108880B2A7
|
||||
:1008A0005F7940EA072010809879984A1080108874
|
||||
:1008B00080B2DB7940EA03231380402384F80431BB
|
||||
:1008C0000A782B7843EA022340F20232934200F086
|
||||
:1008D0002D811EDCB3F5807F00F0598109DC812B6E
|
||||
:1008E00000F0C880822B00F0CD80802B40F0F0819A
|
||||
:1008F000B8E0B3F5817F00F05381C0F24D81B3F5CC
|
||||
:10090000407F00F0EF8040F20132934200F0EF8030
|
||||
:10091000DEE1B3F5106F00F093800BDCB3F5D06F20
|
||||
:100920001FD0B3F5086F00F09580B3F5A06F40F0CD
|
||||
:10093000CF817BE042F22102934200F0AF8105DCDF
|
||||
:1009400040F60132934200F02281C1E142F2A1124D
|
||||
:10095000934200F0A78142F22122934200F0B1813C
|
||||
:10096000B6E1684B1B88C3F30723012B0ED1306817
|
||||
:10097000664B1B889BB2122B9DBF644B1A8892B2A8
|
||||
:10098000122263490023FFF7FBFCA5E15D4B1B88A6
|
||||
:10099000C3F30723022B0ED130685C4B1B889BB23C
|
||||
:1009A000432B9DBF594B1A8892B2432259490023C9
|
||||
:1009B000FFF7E6FC90E1534B1B88C3F30723032B9F
|
||||
:1009C0002FD1504B1B88DBB2012B15D013B1022B5A
|
||||
:1009D0001AD021E0504B1868019030684B4B1B88AF
|
||||
:1009E0009BB2042B9DBF494B1A8892B2042201A9E5
|
||||
:1009F0000023FFF7C5FC6FE1444B1A883068474974
|
||||
:100A0000D2B2FFF705FF67E1404B1A8830684449CE
|
||||
:100A1000D2B2FFF7FDFE5FE120460121FFF73EFD68
|
||||
:100A20005AE120460121FFF739FD55E12046FFF745
|
||||
:100A300045FD344B1988306889B2FFF755FD4BE10D
|
||||
:100A4000304B1B8833712046FFF738FD2046FFF7F7
|
||||
:100A500051FD41E1314651F8040B01220023FFF71B
|
||||
:100A60008FFC39E12F4900230B8030680222FFF709
|
||||
:100A700087FC31E12B4900230B8030680222FFF70D
|
||||
:100A80007FFC29E10022274B1A801F4B198801F0B7
|
||||
:100A90005001254A11701A8802F00F021A801B8833
|
||||
:100AA0009BB2032B19D8204B1B7813F0FF0F164B6A
|
||||
:100AB0001B889BB203F1080304EB4314A27914BF13
|
||||
:100AC000C2F34012C2F30012164B1A803068154967
|
||||
:100AD00002220023FFF754FCFEE020460121FFF72D
|
||||
:100AE000DDFCF9E020460121FFF7D8FCF4E02046C8
|
||||
:100AF000FFF7E4FCF0E000BF94000020830000203A
|
||||
:100B0000860000207C000020800000207E00002065
|
||||
:100B10004C190000040000203019000034190000B6
|
||||
:100B20004019000084000020820000206B4B1988CF
|
||||
:100B300089B221F07F01C9B2694A11701A8802F0A6
|
||||
:100B40000F021A80674B1B889BB2DBB9634B1B8873
|
||||
:100B50009BB2BBB1614B1B889BB2032B12D8604B7D
|
||||
:100B60001B7813F0FF0F5D4B1B889BB203F108034A
|
||||
:100B700004EB431314BF202210225A712046FFF7C2
|
||||
:100B80009DFCA9E020460121FFF788FCA4E0204657
|
||||
:100B90000121FFF783FC9FE02046FFF78FFC9BE0DD
|
||||
:100BA0004E4B198889B221F07F01C9B24C4A1170AD
|
||||
:100BB0001A8802F00F021A804A4B1B889BB2002B46
|
||||
:100BC00067D1464B1B889BB2002B62D0434B1B88DE
|
||||
:100BD0009BB2032B5DD8424B1B7813F0FF0F2AD03A
|
||||
:100BE0003E4B1B889BB2083304EB43139B7913F0F5
|
||||
:100BF000200F4AD0394B1A8892B2083204EB4212C5
|
||||
:100C0000202111711B889BB2083304EB4313DB795D
|
||||
:100C100013F0400F39D0314B1A8892B2083204EBEE
|
||||
:100C200042124021D1711B889BB2083304EB43135D
|
||||
:100C300002221A7129E0294B1B889BB2083304EB6E
|
||||
:100C400043139B7913F0100F1FD0244B1A8892B2D4
|
||||
:100C5000083204EB4212102111711B889BB2083339
|
||||
:100C600004EB4313DB7913F0200F0ED01B4B1A88D3
|
||||
:100C700092B2083204EB42122021D1711B889BB240
|
||||
:100C8000083304EB431301221A712046FFF716FCC8
|
||||
:100C900022E020460121FFF701FC1DE02046FFF77E
|
||||
:100CA0000DFC19E03068104B1B889BB2082B9DBFD0
|
||||
:100CB0000D4B1A8892B208220C490023FFF760FB03
|
||||
:100CC0000AE0084B1B8873712046FFF7F7FB03E02F
|
||||
:100CD00020460121FFF7E2FB03B0F0BD80000020B9
|
||||
:100CE000820000207C0000207E00002048000020C0
|
||||
:100CF00000B583B002A941F8040D054B1868012224
|
||||
:100D00001346FFF73DFB012003B05DF804FB00BF75
|
||||
:100D10001802002000B583B0054B18680DF10701DB
|
||||
:100D20000122FFF77BFB9DF8070003B05DF804FB91
|
||||
:100D30001802002008B50648FFF73EFA30B1044B10
|
||||
:100D40001B6893F8470100F0010008BD002008BDB2
|
||||
:100D50001802002010B503460C46044A10681946D4
|
||||
:100D600022460123FFF70CFB204610BD180200208D
|
||||
:100D700038B505460C460648FFF71EFA30B1044B5D
|
||||
:100D8000186829462246FFF749FB38BD002038BDC8
|
||||
:100D900018020020F8B505460F460B48FFF70CFA7D
|
||||
:100DA00058B167B13C46084E306829462246FFF7E5
|
||||
:100DB00035FB0544241AF7D103E00020F8BD38467E
|
||||
:100DC000F8BD3846F8BD00BF1802002008B5C3685A
|
||||
:100DD0000846114698474FF00062034B5A6164225F
|
||||
:100DE000024B1A8008BD00BF008000419000002027
|
||||
:100DF000012806D1054A064B1A600122054B1A70DC
|
||||
:100E0000704710B9044A024B1A60704780190000FD
|
||||
:100E10008802002092000020D819000070B584B02C
|
||||
:100E200004460A46244B1B7813F0FF0F34D00429E4
|
||||
:100E300001D1036836E0022901D1038832E003784A
|
||||
:100E40004E0004AC34440B3C86BB0CE003F00F05B1
|
||||
:100E5000092D94BF45F03005373565701B09013009
|
||||
:100E6000013CB042F2D330238DF8043078238DF862
|
||||
:100E700005300132520004AB13440A2103F80C1C64
|
||||
:100E800004AB1E440D2306F8093C0C4B186801A95D
|
||||
:100E90000232FFF79BFF0CE0084B18682146FFF772
|
||||
:100EA00095FF06E0560004AC34440B3C013C0020A6
|
||||
:100EB000CCE704B070BD00BF8C0000208802002089
|
||||
:100EC00072B6EFF30882044B1A60036883F3088854
|
||||
:100ED00043681847704700BF8C0200200E4B1B88E8
|
||||
:100EE0009BB24BB10C4A1388013B9BB213801BB9D8
|
||||
:100EF0004FF00062094B9A61094B1B889BB24BB1C2
|
||||
:100F0000074A1388013B9BB213801BB94022034B55
|
||||
:100F1000C3F89820704700BF900000200080004177
|
||||
:100F20008E0000202DE9F0438BB002AC894D0FCD2F
|
||||
:100F30000FC495E80F0084E80F00874A9368C3F355
|
||||
:100F400002430AA901EB830353F8203C83490B6059
|
||||
:100F5000926892B282490A6002FB03F381490B60F6
|
||||
:100F60000022814B1A607A22804B1A707A4C7B4D9A
|
||||
:100F70007F4B1B681B697F4840219847034630B16F
|
||||
:100F800040217D4AC2F8941064217C4A11807C4A39
|
||||
:100F9000136078497B4A116000217B4A1160002B65
|
||||
:100FA000E6D0784B1B681B78FF2B00F06682232B62
|
||||
:100FB00040F00482754B1B7813F0FF0F05D06C4B8B
|
||||
:100FC000186873490222FFF701FF684B1B78532B07
|
||||
:100FD00044D16B4B1B686C4A126893421FD9694815
|
||||
:100FE0000168013101600132674802609A1A694B59
|
||||
:100FF00018688242684B34BF1A601860664E5A4BBC
|
||||
:101000001868326800F06EFC33685F4A1168194452
|
||||
:1010100011605C4A116819441160604A13705A4BA0
|
||||
:101020001A68013A1A60574B1A68013A1A605B4B0A
|
||||
:101030001B78584A11688B420ED24D4A1268926949
|
||||
:1010400049480068C91A904730B140224A4BC3F85A
|
||||
:1010500094206422494B1A8000BF9DE1522B0FD18E
|
||||
:10106000434B1B685B69404A10684A4A11689847BD
|
||||
:101070004FF00062404B5A616422494B1A808BE169
|
||||
:101080004F2B05D1384B1B68424A12681A7083E116
|
||||
:10109000482B05D1344B1B683E4A12681A807BE10D
|
||||
:1010A000572B05D1304B1A683A4B1B68136073E11C
|
||||
:1010B0006F2B05D12C4B18680121FFF7AFFE6BE1B8
|
||||
:1010C000682B08D13348284B1B681B88036002211A
|
||||
:1010D000FFF7A4FE60E1772B08D1234B1B681B6848
|
||||
:1010E0002C4803600421FFF799FE55E1472B14D1EA
|
||||
:1010F000284B1868FFF7E4FE2A4B1B6883F3088827
|
||||
:1011000062B6294B1B7813F0FF0F00F04581184B96
|
||||
:101110001B681B68062098473EE1542B09D1012229
|
||||
:101120001A4B1A70124B186819490222FFF74EFE2B
|
||||
:1011300032E14E2B3AD1154B1B7813F0FF0F05D13E
|
||||
:101140000B4B186812490222FFF740FE00220F4B9A
|
||||
:101150001A7021E1601900000040004140020020A7
|
||||
:1011600038020020340200208402002030020020D7
|
||||
:101170008802002044020020008000418E000020F0
|
||||
:10118000280200202C0200203C0200208C000020BD
|
||||
:10119000A0190000900200209402002024020020E8
|
||||
:1011A000900000208C02002092000020562B57D186
|
||||
:1011B000994E306899490122FFF708FE3068984936
|
||||
:1011C0000322FFF703FE974F306839460122FFF7ED
|
||||
:1011D000FDFD306894490D22FFF7F8FD306839466F
|
||||
:1011E0000122FFF7F3FD914B0021914A1160591C38
|
||||
:1011F000904A11601B78002B00F04D818C490B68E0
|
||||
:1012000001330B601368581C10601B78002BF6D15B
|
||||
:10121000814F874E386885493268FFF7D7FD3868B7
|
||||
:1012200080490122FFF7D2FD00233360824A814BBF
|
||||
:101230001A6041E10B6801330B601368581C1060A1
|
||||
:101240001B78002BF6D1744E30687C49784B1A68B5
|
||||
:10125000FFF7BCFD30687A490222FFF7B7FD9BE03B
|
||||
:10126000582B1DD1774B1A68774B19688A4210D2D8
|
||||
:101270002E6836014AF20150638A13F0010FFBD049
|
||||
:101280006261A080638A13F0010FFBD032448A426E
|
||||
:10129000F2D3614B18686D490322FFF797FD7BE09D
|
||||
:1012A000592B44D1674B186820B9694B1A68694BB0
|
||||
:1012B0001A6035E0674B1F68654B1E6823889BB238
|
||||
:1012C000238080082CD04AF215584FF0000EF146CA
|
||||
:1012D0004AF2035CA4F80480638A13F0010FFBD088
|
||||
:1012E0002B68032B0DD970B172464B46B958B150DB
|
||||
:1012F00001332968B3EB910F06D204328342F5D152
|
||||
:1013000002E0734600E073466661A4F804C0628A96
|
||||
:1013100012F0010FFBD09A0016441744C01AD9D11D
|
||||
:101320003D4B18684C490322FFF750FD34E05A2B1F
|
||||
:1013300032D1474B1E68434B1B685BB106EB030879
|
||||
:10134000002716F8010B394600F068F907464645B4
|
||||
:10135000F7D100E00027304B186840490122FFF721
|
||||
:1013600035FD3A460DF107030DF1FF3002F00F0194
|
||||
:1013700012090929CCBF3731303103F801198342F2
|
||||
:10138000F4D1254E306869460822FFF71FFD30680A
|
||||
:1013900033490322FFF71AFD7A22324B1A700022DA
|
||||
:1013A000284B1A60304B1B7813F0FF0F65D01A4B97
|
||||
:1013B00018682E490122FFF709FD5EE0A3F1300213
|
||||
:1013C000D2B2092A06D81F4A303B116843EA0111FC
|
||||
:1013D000116052E0A3F14102D2B2052A06D8194A9F
|
||||
:1013E000373B116843EA0111116046E0A3F1610245
|
||||
:1013F000D2B2052A06D8134A573B116843EA0111B5
|
||||
:1014000011603AE02C2B33D10E4B1A6810490A6058
|
||||
:1014100000221A6031E000BF88020020A4190000F9
|
||||
:101420009C190000A8190000F4190000AC19000074
|
||||
:101430003C0200202C020020B9190000B81900005D
|
||||
:10144000A01900009002002034020020C4190000FE
|
||||
:101450008402002088000020C8190000CC19000078
|
||||
:10146000D0190000300200208C000020D4190000A8
|
||||
:10147000134A13700022134B1A60134A1368013386
|
||||
:101480001360124A116801311160114A12689342C7
|
||||
:10149000FFF487AD6CE50F4F0B4E38680E4932688C
|
||||
:1014A000FFF794FC38680D490122FFF78FFC0023F9
|
||||
:1014B00033600B4A054B1A600349044ABAE600BF81
|
||||
:1014C00030020020900200203C0200202C0200206C
|
||||
:1014D0002802002088020020AC190000A819000092
|
||||
:1014E000B919000008B5234B4022C3F89C204322C1
|
||||
:1014F000C3F88C20A3F5A0535A6942F480525A6174
|
||||
:101500001D4B93F84B2042F0010283F84B2093F8D7
|
||||
:10151000352002F00F0283F8352093F8352042F091
|
||||
:10152000200283F8352093F84A2042F0010283F824
|
||||
:101530004A2093F8352002F0F00283F8352093F822
|
||||
:10154000352042F0020283F835200C484FF22A6120
|
||||
:101550004FF44412FEF7DCFD0023094A1370094AD8
|
||||
:101560001370094A1370094A1370094A1370094A23
|
||||
:10157000137008BD001C0040008000410030004096
|
||||
:101580009802002022030020990200209C020020E3
|
||||
:10159000230300202003002008B5C1B20248FEF753
|
||||
:1015A000EDFD012008BD00BF00300040024B187E59
|
||||
:1015B000C0F38000704700BF0030004008B5FFF75F
|
||||
:1015C000F5FF0028FBD00248FEF7DEFD08BD00BF96
|
||||
:1015D0000030004008B5FFF7E9FF30B1FFF7EEFF3C
|
||||
:1015E000232814BF0020012008BD002008BD00BF33
|
||||
:1015F00070B504460E4631B1451814F8010BFFF7DB
|
||||
:10160000CBFFAC42F9D1304670BD00BF10B50446E7
|
||||
:10161000FFF7D4FF2070012010BD00BF80EA112029
|
||||
:10162000034B33F8103083EA012080B2704700BFCB
|
||||
:10163000041A00002DE9F84F0646884649B30024F5
|
||||
:101640002746DFF860A0DFF86090DFF860B0FFF7B2
|
||||
:10165000B5FFC5B29AF80030F3B928463946FFF70E
|
||||
:10166000DDFF0746B9F8003013B99BF800305BB1D5
|
||||
:10167000731C3570B8F1800F02BFB9F8002002F179
|
||||
:10168000FF32A9F800201E460134A4B24445DED141
|
||||
:1016900005E00020BDE8F88F0120BDE8F88F38464E
|
||||
:1016A000BDE8F88F200300209A02002021030020CB
|
||||
:1016B0002DE9F04F83B001900022454B1A70009144
|
||||
:1016C00019B90122434B1A700DE0434B009A1A805E
|
||||
:1016D0000022404B1A70009B13F07F0F03D0803321
|
||||
:1016E00023F07F0300933A4C0025FFF767FF237830
|
||||
:1016F0004BB12570FFF762FFC0B2237823B10024FD
|
||||
:10170000334B1C705FE0C0B2432821D0712859D000
|
||||
:101710001528EAD11CE000222D4B1A7053E0C0B20C
|
||||
:10172000062809D10BF1010B5FFA8BFB009A803A76
|
||||
:101730000092019B80330193009A7AB90420FFF74D
|
||||
:101740002BFFFFF73BFF0022224B1A7001243AE0E7
|
||||
:101750004FF0010BDFF88080DFF878900120FFF771
|
||||
:101760001BFF5846FFF718FF6FEA0B00C0B2FFF7E8
|
||||
:1017700013FF019E80240027BA46B8F8003013B941
|
||||
:1017800099F800202AB13578013BA8F800300136DD
|
||||
:1017900000E055462846FFF7FFFE28463946FFF78A
|
||||
:1017A0003DFF0746013CE8D1C0F30720FFF7F4FEF8
|
||||
:1017B000F8B2FFF7F1FEFFF701FF054B1B78002B96
|
||||
:1017C000ADD0A8E70024204603B0BDE8F08F00BFED
|
||||
:1017D00020030020210300209A0200202DE9F0437D
|
||||
:1017E00083B0074600223B4B1A7019B901223A4BCD
|
||||
:1017F0001A7004E0394A11800022374B1A706425B0
|
||||
:101800004FF04308364E4046FFF7C6FE344600E030
|
||||
:10181000013CFFF7CBFE10B9002CF9D100E014B960
|
||||
:10182000013DF0D151E001262A4C0225FFF7C6FE0A
|
||||
:1018300022781AB10025274B1D7046E0C3B2012B58
|
||||
:1018400002D0042B34D036E001A82946FFF7F2FE7F
|
||||
:1018500038468021FFF7EEFE8046237883BBFFF7F2
|
||||
:10186000ADFE00021FFA80F9FFF7A8FE484480B2DF
|
||||
:101870002378012B24D0804509D19DF80430B34250
|
||||
:1018800005D1F3439DF80520DBB29A4203D018201E
|
||||
:10189000FFF782FE14E00620FFF77EFE23781BB1DF
|
||||
:1018A00000250C4B1D7010E00136F6B28037BDE705
|
||||
:1018B0000620FFF771FE0022074B1A70012504E095
|
||||
:1018C000044B1B78002BF6D0EAE7284603B0BDE8AE
|
||||
:1018D000F08300BF20030020210300209A02002093
|
||||
:1018E00000350C0010B50023934203D0CC5CC454E7
|
||||
:1018F0000133F9E710BD02440346934202D003F8D6
|
||||
:10190000011BFAE77047034613F8012B002AFBD1AD
|
||||
:10191000181A013870470000F8B500BFF8BC08BCC1
|
||||
:101920009E467047F8B500BFF8BC08BC9E4670479D
|
||||
:101930000403090441726475696E6F204C4C4300C6
|
||||
:101940004D6574726F204D340000000012010002DA
|
||||
:10195000020000409A232000000201020001000062
|
||||
:1019600008000000100000002000000040000000FF
|
||||
:1019700080000000000100000002000000040000E0
|
||||
:1019800099150000BD150000AD150000F11500000F
|
||||
:101990000D160000B1160000DD170000322E3000D9
|
||||
:1019A0000A0D000076000000200000004E6F762037
|
||||
:1019B000203620323031370031313A30393A33383D
|
||||
:1019C00000000000580A0D00590A0D005A000000DE
|
||||
:1019D000230A0D003E000000F10C0000150D000070
|
||||
:1019E000350D0000550D0000710D0000550D000073
|
||||
:1019F000950D00005B41726475696E6F3A58595AD3
|
||||
:101A00005D00000000002110422063308440A5509A
|
||||
:101A1000C660E770088129914AA16BB18CC1ADD134
|
||||
:101A2000CEE1EFF13112100273325222B5529442DC
|
||||
:101A3000F772D662399318837BB35AA3BDD39CC384
|
||||
:101A4000FFF3DEE36224433420040114E664C77428
|
||||
:101A5000A44485546AA54BB528850995EEE5CFF5D4
|
||||
:101A6000ACC58DD55336722611163006D776F6667C
|
||||
:101A70009556B4465BB77AA719973887DFF7FEE724
|
||||
:101A80009DD7BCC7C448E5588668A7784008611848
|
||||
:101A900002282338CCC9EDD98EE9AFF94889699974
|
||||
:101AA0000AA92BB9F55AD44AB77A966A711A500A1C
|
||||
:101AB000333A122AFDDBDCCBBFFB9EEB799B588BC4
|
||||
:101AC0003BBB1AABA66C877CE44CC55C222C033C68
|
||||
:101AD000600C411CAEED8FFDECCDCDDD2AAD0BBD14
|
||||
:101AE000688D499D977EB66ED55EF44E133E322EBC
|
||||
:101AF000511E700E9FFFBEEFDDDFFCCF1BBF3AAF64
|
||||
:101B0000599F788F8891A981CAB1EBA10CD12DC1C1
|
||||
:101B10004EF16FE18010A100C230E3200450254057
|
||||
:101B200046706760B9839893FBA3DAB33DC31CD3B7
|
||||
:101B30007FE35EF3B1029012F322D23235421452A7
|
||||
:101B400077625672EAB5CBA5A89589856EF54FE503
|
||||
:101B50002CD50DC5E234C324A014810466744764F7
|
||||
:101B600024540544DBA7FAB79987B8975FE77EF757
|
||||
:101B70001DC73CD7D326F2369106B0165766767647
|
||||
:101B8000154634564CD96DC90EF92FE9C899E98923
|
||||
:101B90008AB9ABA94458654806782768C018E10897
|
||||
:101BA0008238A3287DCB5CDB3FEB1EFBF98BD89BF7
|
||||
:101BB000BBAB9ABB754A545A376A167AF10AD01AE7
|
||||
:101BC000B32A923A2EFD0FED6CDD4DCDAABD8BAD43
|
||||
:101BD000E89DC98D267C076C645C454CA23C832C37
|
||||
:101BE000E01CC10C1FEF3EFF5DCF7CDF9BAFBABF97
|
||||
:101BF000D98FF89F176E367E554E745E932EB23E87
|
||||
:081C0000D10EF01E00000000EF
|
||||
:101C080001140000090243000201008032090400A7
|
||||
:101C1800000102020000052400100104240200054E
|
||||
:101C2800240600010524010001070583030800FFBD
|
||||
:101C380009040100020A00000007058102400000B3
|
||||
:101C4800070502024000000000C201000000080071
|
||||
:0C1C5800650000004100000000000000DA
|
||||
:04000003000006559E
|
||||
:00000001FF
|
||||
165
bootloaders/metroM4/Makefile
Normal file
165
bootloaders/metroM4/Makefile
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
# Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
# Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Paths
|
||||
ifeq ($(OS),Windows_NT)
|
||||
# Are we using mingw/msys/msys2/cygwin?
|
||||
ifeq ($(TERM),xterm)
|
||||
T=$(shell cygpath -u $(LOCALAPPDATA))
|
||||
MODULE_PATH?=$(T)/Arduino15/packages/arduino
|
||||
RM=rm
|
||||
SEP=/
|
||||
else
|
||||
MODULE_PATH?=$(LOCALAPPDATA)/Arduino15/packages/arduino
|
||||
RM=rm
|
||||
SEP=\\
|
||||
endif
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
MODULE_PATH?=$(HOME)/.arduino15/packages/arduino
|
||||
RM=rm
|
||||
SEP=/
|
||||
endif
|
||||
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
MODULE_PATH?=$(HOME)/Library/Arduino15/packages/arduino/
|
||||
RM=rm
|
||||
SEP=/
|
||||
endif
|
||||
endif
|
||||
|
||||
ARM_GCC_PATH?=$(MODULE_PATH)/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-
|
||||
BUILD_PATH=build
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Tools
|
||||
CC=$(ARM_GCC_PATH)gcc
|
||||
OBJCOPY=$(ARM_GCC_PATH)objcopy
|
||||
NM=$(ARM_GCC_PATH)nm
|
||||
SIZE=$(ARM_GCC_PATH)size
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Compiler options
|
||||
CFLAGS_EXTRA=-D$(BOARD_CHIP) -DBOARD_ID_$(BOARD_ID)
|
||||
CFLAGS=-mthumb -mcpu=cortex-m4 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -ffunction-sections -fdata-sections -nostdlib -nostartfiles --param max-inline-insns-single=500
|
||||
ifdef DEBUG
|
||||
CFLAGS+=-g3 -O1 -DDEBUG=1
|
||||
else
|
||||
CFLAGS+=-Os -DDEBUG=0
|
||||
endif
|
||||
|
||||
ELF=$(BOARD_ID)_sam_ba.elf
|
||||
BIN=$(BOARD_ID)_sam_ba.bin
|
||||
HEX=$(BOARD_ID)_sam_ba.hex
|
||||
|
||||
|
||||
INCLUDES=-I"$(MODULE_PATH)/tools/CMSIS/4.5.0/CMSIS/Include/" -I"$(MODULE_PATH)/tools/CMSIS-Atmel/1.1.0/CMSIS/Device/ATMEL/"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Linker options
|
||||
LDFLAGS=-mthumb -mcpu=cortex-m4 -Wall -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all
|
||||
LDFLAGS+=-Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols --specs=nano.specs --specs=nosys.specs
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Source files and objects
|
||||
SOURCES= \
|
||||
board_driver_led.c \
|
||||
board_driver_serial.c \
|
||||
board_driver_usb.c \
|
||||
board_init.c \
|
||||
board_startup.c \
|
||||
main.c \
|
||||
sam_ba_usb.c \
|
||||
sam_ba_cdc.c \
|
||||
sam_ba_monitor.c \
|
||||
sam_ba_serial.c
|
||||
|
||||
OBJECTS=$(addprefix $(BUILD_PATH)/, $(SOURCES:.c=.o))
|
||||
DEPS=$(addprefix $(BUILD_PATH)/, $(SOURCES:.c=.d))
|
||||
|
||||
ifneq "test$(AVRSTUDIO_EXE_PATH)" "test"
|
||||
AS_BUILD=copy_for_atmel_studio
|
||||
AS_CLEAN=clean_for_atmel_studio
|
||||
else
|
||||
AS_BUILD=
|
||||
AS_CLEAN=
|
||||
endif
|
||||
|
||||
|
||||
all: print_info $(SOURCES) $(BIN) $(HEX) $(AS_BUILD)
|
||||
|
||||
$(ELF): Makefile $(BUILD_PATH) $(OBJECTS)
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Creating ELF binary
|
||||
"$(CC)" -L. -L$(BUILD_PATH) $(LDFLAGS) -Os -Wl,--gc-sections -save-temps -Tbootloader_$(BOARD_ID).ld -Wl,-Map,"$(BUILD_PATH)/$(NAME).map" -o "$(BUILD_PATH)/$(ELF)" -Wl,--start-group $(OBJECTS) -lm -Wl,--end-group
|
||||
"$(NM)" "$(BUILD_PATH)/$(ELF)" >"$(BUILD_PATH)/$(NAME)_symbols.txt"
|
||||
"$(SIZE)" --format=sysv -t -x $(BUILD_PATH)/$(ELF)
|
||||
|
||||
$(BIN): $(ELF)
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Creating flash binary
|
||||
"$(OBJCOPY)" -O binary $(BUILD_PATH)/$< $@
|
||||
|
||||
$(HEX): $(ELF)
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Creating flash binary
|
||||
"$(OBJCOPY)" -O ihex $(BUILD_PATH)/$< $@
|
||||
|
||||
$(BUILD_PATH)/%.o: %.c
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Compiling $< to $@
|
||||
"$(CC)" $(CFLAGS) $(CFLAGS_EXTRA) $(INCLUDES) $< -o $@
|
||||
@echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
$(BUILD_PATH):
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Creating build folder
|
||||
-mkdir $(BUILD_PATH)
|
||||
|
||||
print_info:
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Compiling bootloader using
|
||||
@echo BASE PATH = $(MODULE_PATH)
|
||||
@echo GCC PATH = $(ARM_GCC_PATH)
|
||||
# @echo OS = $(OS)
|
||||
# @echo SHELL = $(SHELL)
|
||||
# @echo TERM = $(TERM)
|
||||
# "$(CC)" -v
|
||||
# env
|
||||
|
||||
copy_for_atmel_studio: $(BIN) $(HEX)
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Atmel Studio detected, copying ELF to project root for debug
|
||||
cp $(BUILD_PATH)/$(ELF) .
|
||||
|
||||
clean_for_atmel_studio:
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Atmel Studio detected, cleaning ELF from project root
|
||||
-$(RM) ./$(ELF)
|
||||
|
||||
clean: $(AS_CLEAN)
|
||||
@echo ----------------------------------------------------------
|
||||
@echo Cleaning project
|
||||
-$(RM) $(BIN)
|
||||
-$(RM) $(HEX)
|
||||
-$(RM) $(BUILD_PATH)/*.*
|
||||
-rmdir $(BUILD_PATH)
|
||||
|
||||
.phony: print_info $(BUILD_PATH)
|
||||
86
bootloaders/metroM4/README.md
Normal file
86
bootloaders/metroM4/README.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# Metro M4 Bootloader
|
||||
|
||||
## 1- Prerequisites
|
||||
|
||||
The project build is based on Makefile system.
|
||||
Makefile is present at project root and try to handle multi-platform cases.
|
||||
|
||||
Multi-plaform GCC is provided by ARM here: https://launchpad.net/gcc-arm-embedded/+download
|
||||
|
||||
Atmel Studio contains both make and ARM GCC toolchain. You don't need to install them in this specific use case.
|
||||
|
||||
### Windows
|
||||
|
||||
* Native command line
|
||||
Make binary can be obtained here: http://gnuwin32.sourceforge.net/packages/make.htm
|
||||
|
||||
* Cygwin/MSys/MSys2/Babun/etc...
|
||||
It is available natively in all distributions.
|
||||
|
||||
* Atmel Studio
|
||||
An Atmel Studio **7** Makefile-based project is present at project root, just open samd21_sam_ba.atsln file in AS7.
|
||||
|
||||
### Linux
|
||||
|
||||
Make is usually available by default.
|
||||
|
||||
### OS X
|
||||
|
||||
Make is available through XCode package.
|
||||
|
||||
|
||||
## 2- Selecting available SAM-BA interfaces
|
||||
|
||||
By default both USB and UART are made available, but this parameter can be modified in sam_ba_monitor.h, line 31:
|
||||
|
||||
Set the define SAM_BA_INTERFACE to
|
||||
* SAM_BA_UART_ONLY for only UART interface
|
||||
* SAM_BA_USBCDC_ONLY for only USB CDC interface
|
||||
* SAM_BA_BOTH_INTERFACES for enabling both the interfaces
|
||||
|
||||
## 3- Behaviour
|
||||
|
||||
This bootloader implements the double-tap on Reset button.
|
||||
By quickly pressing this button two times, the board will reset and stay in bootloader, waiting for communication on either USB or USART.
|
||||
|
||||
The USB port in use is the USB Native port, close to the Reset button.
|
||||
|
||||
The USART in use is the one available on pins D0/D1, labelled respectively RX/TX. Communication parameters are a baudrate at 115200, 8bits of data, no parity and 1 stop bit (8N1).
|
||||
|
||||
## 4- Description
|
||||
|
||||
**Pinmap**
|
||||
|
||||
The following pins are used by the program :
|
||||
PA25 : input/output (USB DP)
|
||||
PA24 : input/output (USB DM)
|
||||
|
||||
PA23 : input (USART RX)
|
||||
PA22 : output (USART TX)
|
||||
|
||||
The application board shall avoid driving the PA25, PA24, PB23 and PB22 signals while the boot program is running (after a POR for example).
|
||||
|
||||
**Clock system**
|
||||
|
||||
CPU runs at 48MHz from Generic Clock Generator 0 on DFLL48M.
|
||||
|
||||
Generic Clock Generator 1 is using external 32kHz oscillator and is the source of DFLL48M.
|
||||
|
||||
USB and USART are using Generic Clock Generator 0 also.
|
||||
|
||||
**Memory Mapping**
|
||||
|
||||
Bootloader code will be located at 0x0 and executed before any applicative code.
|
||||
|
||||
Applications compiled to be executed along with the bootloader will start at 0x2000 (see linker script bootloader_samdx1.ld).
|
||||
|
||||
Before jumping to the application, the bootloader changes the VTOR register to use the interrupt vectors of the application @0x2000.<- not required as application code is taking care of this.
|
||||
|
||||
## 5- How to build
|
||||
|
||||
If not specified the makefile builds for **Metro M4**:
|
||||
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
32
bootloaders/metroM4/board_definitions.h
Normal file
32
bootloaders/metroM4/board_definitions.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if defined(BOARD_ID_METRO_M4)
|
||||
#include "board_definitions_metro_m4.h"
|
||||
#elif defined(BOARD_ID_FEATHER_M4)
|
||||
#include "board_definitions_feather_m4.h"
|
||||
#else
|
||||
#error You must define a BOARD_ID and add the corresponding definitions in board_definitions.h
|
||||
#endif
|
||||
|
||||
// Common definitions
|
||||
// ------------------
|
||||
|
||||
#define BOOT_PIN_MASK (1U << (BOOT_LOAD_PIN & 0x1f))
|
||||
|
||||
82
bootloaders/metroM4/board_definitions_feather_m4.h
Normal file
82
bootloaders/metroM4/board_definitions_feather_m4.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _BOARD_DEFINITIONS_H_
|
||||
#define _BOARD_DEFINITIONS_H_
|
||||
|
||||
/*
|
||||
* USB device definitions
|
||||
*/
|
||||
#define STRING_PRODUCT "Feather M4"
|
||||
#define USB_VID_HIGH 0x23
|
||||
#define USB_VID_LOW 0x9A
|
||||
#define USB_PID_HIGH 0x00
|
||||
#define USB_PID_LOW 0x22
|
||||
|
||||
/*
|
||||
* If BOOT_DOUBLE_TAP_ADDRESS is defined the bootloader is started by
|
||||
* quickly tapping two times on the reset button.
|
||||
* BOOT_DOUBLE_TAP_ADDRESS must point to a free SRAM cell that must not
|
||||
* be touched from the loaded application.
|
||||
*/
|
||||
#define BOOT_DOUBLE_TAP_ADDRESS (HSRAM_ADDR + HSRAM_SIZE - 4)
|
||||
#define BOOT_DOUBLE_TAP_DATA (*((volatile uint32_t *)BOOT_DOUBLE_TAP_ADDRESS))
|
||||
|
||||
/*
|
||||
* If BOOT_LOAD_PIN is defined the bootloader is started if the selected
|
||||
* pin is tied LOW.
|
||||
*/
|
||||
//#define BOOT_LOAD_PIN PIN_PA21 // Pin 7
|
||||
//#define BOOT_LOAD_PIN PIN_PA15 // Pin 5
|
||||
|
||||
#define GPIO(port, pin) ((((port)&0x7u) << 5) + ((pin)&0x1Fu))
|
||||
|
||||
#define BOOK_USART_MASK APBAMASK
|
||||
#define BOOT_USART_MODULE SERCOM0
|
||||
#define BOOT_USART_BUS_CLOCK_INDEX MCLK_APBAMASK_SERCOM0
|
||||
#define BOOT_GCLK_ID_CORE SERCOM0_GCLK_ID_CORE
|
||||
#define BOOT_GCLK_ID_SLOW SERCOM0_GCLK_ID_SLOW
|
||||
#define BOOT_USART_PAD_SETTINGS UART_RX_PAD3_TX_PAD2
|
||||
#define BOOT_USART_PAD3 PINMUX_UNUSED
|
||||
#define BOOT_USART_PAD2 PINMUX_UNUSED
|
||||
|
||||
#define BOOT_USART_PAD1 PINMUX_PA10C_SERCOM0_PAD2
|
||||
#define BOOT_USART_PAD0 PINMUX_PA11C_SERCOM0_PAD3
|
||||
|
||||
/* Master clock frequency */
|
||||
#define CPU_FREQUENCY (48000000ul)
|
||||
#define VARIANT_MCK CPU_FREQUENCY
|
||||
|
||||
/* Frequency of the board main oscillator */
|
||||
#define VARIANT_MAINOSC (32768ul)
|
||||
|
||||
/* Calibration values for DFLL48 pll */
|
||||
#define NVM_SW_CALIB_DFLL48M_COARSE_VAL (58)
|
||||
#define NVM_SW_CALIB_DFLL48M_FINE_VAL (64)
|
||||
|
||||
#define BOARD_LED_PORT (0)
|
||||
#define BOARD_LED_PIN (17)
|
||||
|
||||
#define BOARD_LEDRX_PORT (1)
|
||||
#define BOARD_LEDRX_PIN (3)
|
||||
|
||||
#define BOARD_LEDTX_PORT (0)
|
||||
#define BOARD_LEDTX_PIN (27)
|
||||
|
||||
#endif // _BOARD_DEFINITIONS_H_
|
||||
82
bootloaders/metroM4/board_definitions_metro_m4.h
Normal file
82
bootloaders/metroM4/board_definitions_metro_m4.h
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _BOARD_DEFINITIONS_H_
|
||||
#define _BOARD_DEFINITIONS_H_
|
||||
/*
|
||||
* USB device definitions
|
||||
*/
|
||||
#define STRING_PRODUCT "Metro M4"
|
||||
#define USB_VID_HIGH 0x23
|
||||
#define USB_VID_LOW 0x9A
|
||||
#define USB_PID_HIGH 0x00
|
||||
#define USB_PID_LOW 0x20
|
||||
|
||||
|
||||
/*
|
||||
* If BOOT_DOUBLE_TAP_ADDRESS is defined the bootloader is started by
|
||||
* quickly tapping two times on the reset button.
|
||||
* BOOT_DOUBLE_TAP_ADDRESS must point to a free SRAM cell that must not
|
||||
* be touched from the loaded application.
|
||||
*/
|
||||
#define BOOT_DOUBLE_TAP_ADDRESS (HSRAM_ADDR + HSRAM_SIZE - 4)
|
||||
#define BOOT_DOUBLE_TAP_DATA (*((volatile uint32_t *)BOOT_DOUBLE_TAP_ADDRESS))
|
||||
|
||||
/*
|
||||
* If BOOT_LOAD_PIN is defined the bootloader is started if the selected
|
||||
* pin is tied LOW.
|
||||
*/
|
||||
//#define BOOT_LOAD_PIN PIN_PA21 // Pin 7
|
||||
//#define BOOT_LOAD_PIN PIN_PA15 // Pin 5
|
||||
|
||||
#define GPIO(port, pin) ((((port)&0x7u) << 5) + ((pin)&0x1Fu))
|
||||
|
||||
#define BOOK_USART_MASK APBAMASK
|
||||
#define BOOT_USART_MODULE SERCOM0
|
||||
#define BOOT_USART_BUS_CLOCK_INDEX MCLK_APBAMASK_SERCOM0
|
||||
#define BOOT_GCLK_ID_CORE SERCOM0_GCLK_ID_CORE
|
||||
#define BOOT_GCLK_ID_SLOW SERCOM0_GCLK_ID_SLOW
|
||||
#define BOOT_USART_PAD_SETTINGS UART_RX_PAD3_TX_PAD2
|
||||
#define BOOT_USART_PAD3 PINMUX_UNUSED
|
||||
#define BOOT_USART_PAD2 PINMUX_UNUSED
|
||||
|
||||
#define BOOT_USART_PAD1 PINMUX_PA10C_SERCOM0_PAD2
|
||||
#define BOOT_USART_PAD0 PINMUX_PA11C_SERCOM0_PAD3
|
||||
|
||||
/* Master clock frequency */
|
||||
#define CPU_FREQUENCY (48000000ul)
|
||||
#define VARIANT_MCK CPU_FREQUENCY
|
||||
|
||||
/* Frequency of the board main oscillator */
|
||||
#define VARIANT_MAINOSC (32768ul)
|
||||
|
||||
/* Calibration values for DFLL48 pll */
|
||||
#define NVM_SW_CALIB_DFLL48M_COARSE_VAL (58)
|
||||
#define NVM_SW_CALIB_DFLL48M_FINE_VAL (64)
|
||||
|
||||
#define BOARD_LED_PORT (0)
|
||||
#define BOARD_LED_PIN (21)
|
||||
|
||||
#define BOARD_LEDRX_PORT (1)
|
||||
#define BOARD_LEDRX_PIN (6)
|
||||
|
||||
#define BOARD_LEDTX_PORT (0)
|
||||
#define BOARD_LEDTX_PIN (27)
|
||||
|
||||
#endif // _BOARD_DEFINITIONS_H_
|
||||
42
bootloaders/metroM4/board_driver_led.c
Normal file
42
bootloaders/metroM4/board_driver_led.c
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "board_driver_led.h"
|
||||
|
||||
volatile uint8_t ledKeepValue = 0;
|
||||
volatile uint8_t ledTargetValue = 20;
|
||||
volatile int8_t ledDirection = 1;
|
||||
|
||||
inline void LED_pulse()
|
||||
{
|
||||
if (ledKeepValue == 0) {
|
||||
ledTargetValue += ledDirection;
|
||||
LED_toggle();
|
||||
}
|
||||
ledKeepValue ++;
|
||||
|
||||
if (ledTargetValue > 240 || ledTargetValue < 10) {
|
||||
ledDirection = -ledDirection;
|
||||
ledTargetValue += ledDirection;
|
||||
}
|
||||
|
||||
if (ledKeepValue == ledTargetValue) {
|
||||
LED_toggle();
|
||||
}
|
||||
}
|
||||
63
bootloaders/metroM4/board_driver_led.h
Normal file
63
bootloaders/metroM4/board_driver_led.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _BOARD_DRIVER_LED_
|
||||
#define _BOARD_DRIVER_LED_
|
||||
|
||||
#include <sam.h>
|
||||
#include "board_definitions.h"
|
||||
|
||||
#if defined(BOARD_LED_PORT)
|
||||
inline void LED_init(void) { PORT->Group[BOARD_LED_PORT].DIRSET.reg = (1<<BOARD_LED_PIN); }
|
||||
inline void LED_on(void) { PORT->Group[BOARD_LED_PORT].OUTSET.reg = (1<<BOARD_LED_PIN); }
|
||||
inline void LED_off(void) { PORT->Group[BOARD_LED_PORT].OUTCLR.reg = (1<<BOARD_LED_PIN); }
|
||||
inline void LED_toggle(void) { PORT->Group[BOARD_LED_PORT].OUTTGL.reg = (1<<BOARD_LED_PIN); }
|
||||
#else
|
||||
inline void LED_init(void) { }
|
||||
inline void LED_on(void) { }
|
||||
inline void LED_off(void) { }
|
||||
inline void LED_toggle(void) { }
|
||||
#endif
|
||||
void LED_pulse();
|
||||
|
||||
#if defined(BOARD_LEDRX_PORT)
|
||||
inline void LEDRX_init(void) { PORT->Group[BOARD_LEDRX_PORT].DIRSET.reg = (1<<BOARD_LEDRX_PIN); }
|
||||
inline void LEDRX_on(void) { PORT->Group[BOARD_LEDRX_PORT].OUTCLR.reg = (1<<BOARD_LEDRX_PIN); }
|
||||
inline void LEDRX_off(void) { PORT->Group[BOARD_LEDRX_PORT].OUTSET.reg = (1<<BOARD_LEDRX_PIN); }
|
||||
inline void LEDRX_toggle(void) { PORT->Group[BOARD_LEDRX_PORT].OUTTGL.reg = (1<<BOARD_LEDRX_PIN); }
|
||||
#else
|
||||
inline void LEDRX_init(void) { }
|
||||
inline void LEDRX_on(void) { }
|
||||
inline void LEDRX_off(void) { }
|
||||
inline void LEDRX_toggle(void) { }
|
||||
#endif
|
||||
|
||||
#if defined(BOARD_LEDTX_PORT)
|
||||
inline void LEDTX_init(void) { PORT->Group[BOARD_LEDTX_PORT].DIRSET.reg = (1<<BOARD_LEDTX_PIN); }
|
||||
inline void LEDTX_on(void) { PORT->Group[BOARD_LEDTX_PORT].OUTCLR.reg = (1<<BOARD_LEDTX_PIN); }
|
||||
inline void LEDTX_off(void) { PORT->Group[BOARD_LEDTX_PORT].OUTSET.reg = (1<<BOARD_LEDTX_PIN); }
|
||||
inline void LEDTX_toggle(void) { PORT->Group[BOARD_LEDTX_PORT].OUTTGL.reg = (1<<BOARD_LEDTX_PIN); }
|
||||
#else
|
||||
inline void LEDTX_init(void) { }
|
||||
inline void LEDTX_on(void) { }
|
||||
inline void LEDTX_off(void) { }
|
||||
inline void LEDTX_toggle(void) { }
|
||||
#endif
|
||||
|
||||
#endif // _BOARD_DRIVER_LED_
|
||||
104
bootloaders/metroM4/board_driver_serial.c
Normal file
104
bootloaders/metroM4/board_driver_serial.c
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "board_driver_serial.h"
|
||||
|
||||
bool uart_drv_error_flag = false;
|
||||
|
||||
void uart_basic_init(Sercom *sercom, uint16_t baud_val, enum uart_pad_settings pad_conf)
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.ENABLE);
|
||||
/* Disable the SERCOM UART module */
|
||||
sercom->USART.CTRLA.bit.ENABLE = 0;
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.SWRST);
|
||||
/* Perform a software reset */
|
||||
sercom->USART.CTRLA.bit.SWRST = 1;
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.CTRLA.bit.SWRST);
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.SWRST || sercom->USART.SYNCBUSY.bit.ENABLE);
|
||||
/* Update the UART pad settings, mode and data order settings */
|
||||
sercom->USART.CTRLA.reg = pad_conf | SERCOM_USART_CTRLA_MODE(1) | SERCOM_USART_CTRLA_DORD;
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.CTRLB);
|
||||
/* Enable transmit and receive and set data size to 8 bits */
|
||||
sercom->USART.CTRLB.reg = SERCOM_USART_CTRLB_RXEN | SERCOM_USART_CTRLB_TXEN | SERCOM_USART_CTRLB_CHSIZE(0);
|
||||
/* Load the baud value */
|
||||
sercom->USART.BAUD.reg = baud_val;
|
||||
///* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.ENABLE);
|
||||
/* Enable SERCOM UART */
|
||||
sercom->USART.CTRLA.bit.ENABLE = 1;
|
||||
}
|
||||
|
||||
void uart_disable(Sercom *sercom)
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
while(sercom->USART.SYNCBUSY.bit.ENABLE);
|
||||
/* Disable SERCOM UART */
|
||||
sercom->USART.CTRLA.bit.ENABLE = 0;
|
||||
}
|
||||
|
||||
void uart_write_byte(Sercom *sercom, uint8_t data)
|
||||
{
|
||||
/* Wait for Data Register Empty flag */
|
||||
while(!sercom->USART.INTFLAG.bit.DRE);
|
||||
/* Write the data to DATA register */
|
||||
sercom->USART.DATA.reg = (uint16_t)data;
|
||||
}
|
||||
|
||||
uint8_t uart_read_byte(Sercom *sercom)
|
||||
{
|
||||
/* Wait for Receive Complete flag */
|
||||
while(!sercom->USART.INTFLAG.bit.RXC);
|
||||
/* Check for errors */
|
||||
if (sercom->USART.STATUS.bit.PERR || sercom->USART.STATUS.bit.FERR || sercom->USART.STATUS.bit.BUFOVF)
|
||||
/* Set the error flag */
|
||||
uart_drv_error_flag = true;
|
||||
/* Return the read data */
|
||||
return((uint8_t)sercom->USART.DATA.reg);
|
||||
}
|
||||
|
||||
void uart_write_buffer_polled(Sercom *sercom, uint8_t *ptr, uint16_t length)
|
||||
{
|
||||
/* Do the following for specified length */
|
||||
do {
|
||||
/* Wait for Data Register Empty flag */
|
||||
while(!sercom->USART.INTFLAG.bit.DRE);
|
||||
/* Send data from the buffer */
|
||||
sercom->USART.DATA.reg = (uint16_t)*ptr++;
|
||||
} while (length--);
|
||||
}
|
||||
|
||||
void uart_read_buffer_polled(Sercom *sercom, uint8_t *ptr, uint16_t length)
|
||||
{
|
||||
/* Do the following for specified length */
|
||||
do {
|
||||
/* Wait for Receive Complete flag */
|
||||
while(!sercom->USART.INTFLAG.bit.RXC);
|
||||
/* Check for errors */
|
||||
if (sercom->USART.STATUS.bit.PERR || sercom->USART.STATUS.bit.FERR || sercom->USART.STATUS.bit.BUFOVF)
|
||||
/* Set the error flag */
|
||||
uart_drv_error_flag = true;
|
||||
/* Store the read data to the buffer */
|
||||
*ptr++ = (uint8_t)sercom->USART.DATA.reg;
|
||||
} while (length--);
|
||||
}
|
||||
89
bootloaders/metroM4/board_driver_serial.h
Normal file
89
bootloaders/metroM4/board_driver_serial.h
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UART_DRIVER_H
|
||||
#define UART_DRIVER_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <sam.h>
|
||||
|
||||
#define PINMUX_UNUSED 0xFFFFFFFF
|
||||
|
||||
/* SERCOM UART available pad settings */
|
||||
enum uart_pad_settings {
|
||||
UART_RX_PAD0_TX_PAD2 = SERCOM_USART_CTRLA_RXPO(0) | SERCOM_USART_CTRLA_TXPO(1),
|
||||
UART_RX_PAD1_TX_PAD2 = SERCOM_USART_CTRLA_RXPO(1) | SERCOM_USART_CTRLA_TXPO(1),
|
||||
UART_RX_PAD2_TX_PAD0 = SERCOM_USART_CTRLA_RXPO(2),
|
||||
UART_RX_PAD3_TX_PAD0 = SERCOM_USART_CTRLA_RXPO(3),
|
||||
UART_RX_PAD1_TX_PAD0 = SERCOM_USART_CTRLA_RXPO(1),
|
||||
UART_RX_PAD3_TX_PAD2 = SERCOM_USART_CTRLA_RXPO(3) | SERCOM_USART_CTRLA_TXPO(1),
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Initializes the UART
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
* \param Baud value corresponding to the desired baudrate
|
||||
* \param SERCOM pad settings
|
||||
*/
|
||||
void uart_basic_init(Sercom *sercom, uint16_t baud_val, enum uart_pad_settings pad_conf);
|
||||
|
||||
/**
|
||||
* \brief Disables UART interface
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
*/
|
||||
void uart_disable(Sercom *sercom);
|
||||
|
||||
/**
|
||||
* \brief Sends a single byte through UART interface
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
* \param Data to send
|
||||
*/
|
||||
void uart_write_byte(Sercom *sercom, uint8_t data);
|
||||
|
||||
/**
|
||||
* \brief Reads a single character from UART interface
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
* \return Data byte read
|
||||
*/
|
||||
uint8_t uart_read_byte(Sercom *sercom);
|
||||
|
||||
/**
|
||||
* \brief Sends buffer on UART interface
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
* \param Pointer to data to send
|
||||
* \param Number of bytes to send
|
||||
*/
|
||||
void uart_write_buffer_polled(Sercom *sercom, uint8_t *ptr, uint16_t length);
|
||||
|
||||
/**
|
||||
* \brief Reads data on UART interface
|
||||
*
|
||||
* \param Pointer to SERCOM instance
|
||||
* \param Pointer to store read data
|
||||
* \param Number of bytes to read
|
||||
*/
|
||||
void uart_read_buffer_polled(Sercom *sercom, uint8_t *ptr, uint16_t length);
|
||||
|
||||
#endif
|
||||
359
bootloaders/metroM4/board_driver_usb.c
Normal file
359
bootloaders/metroM4/board_driver_usb.c
Normal file
|
|
@ -0,0 +1,359 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include "board_driver_usb.h"
|
||||
#include "sam_ba_usb.h"
|
||||
#include "sam_ba_cdc.h"
|
||||
|
||||
#define NVM_USB_PAD_TRANSN_POS 32
|
||||
#define NVM_USB_PAD_TRANSN_SIZE 5
|
||||
#define NVM_USB_PAD_TRANSP_POS 37
|
||||
#define NVM_USB_PAD_TRANSP_SIZE 5
|
||||
#define NVM_USB_PAD_TRIM_POS 42
|
||||
#define NVM_USB_PAD_TRIM_SIZE 3
|
||||
|
||||
__attribute__((__aligned__(4))) UsbDeviceDescriptor usb_endpoint_table[MAX_EP]; // Initialized to zero in USB_Init
|
||||
__attribute__((__aligned__(4))) uint8_t udd_ep_out_cache_buffer[2][64]; //1 for CTRL, 1 for BULK
|
||||
__attribute__((__aligned__(4))) uint8_t udd_ep_in_cache_buffer[2][64]; //1 for CTRL, 1 for BULK
|
||||
|
||||
static volatile bool read_job = false;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief
|
||||
*/
|
||||
P_USB_CDC USB_Open(P_USB_CDC pCdc, Usb *pUsb)
|
||||
{
|
||||
pCdc->pUsb = pUsb;
|
||||
pCdc->currentConfiguration = 0;
|
||||
pCdc->currentConnection = 0;
|
||||
pCdc->IsConfigured = USB_IsConfigured;
|
||||
// pCdc->Write = USB_Write;
|
||||
// pCdc->Read = USB_Read;
|
||||
|
||||
pCdc->pUsb->HOST.CTRLA.bit.ENABLE = true;
|
||||
|
||||
while( pCdc->pUsb->HOST.SYNCBUSY.reg & USB_SYNCBUSY_ENABLE ); //wait for sync
|
||||
|
||||
return pCdc;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Load USB calibration value from NVM
|
||||
*/
|
||||
static void USB_load_calib(void)
|
||||
{
|
||||
Usb * hw = USB;
|
||||
uint32_t pad_transn
|
||||
= (*((uint32_t *)(NVMCTRL_SW0) + (NVM_USB_PAD_TRANSN_POS / 32)) >> (NVM_USB_PAD_TRANSN_POS % 32))
|
||||
& ((1 << NVM_USB_PAD_TRANSN_SIZE) - 1);
|
||||
uint32_t pad_transp
|
||||
= (*((uint32_t *)(NVMCTRL_SW0) + (NVM_USB_PAD_TRANSP_POS / 32)) >> (NVM_USB_PAD_TRANSP_POS % 32))
|
||||
& ((1 << NVM_USB_PAD_TRANSP_SIZE) - 1);
|
||||
uint32_t pad_trim = (*((uint32_t *)(NVMCTRL_SW0) + (NVM_USB_PAD_TRIM_POS / 32)) >> (NVM_USB_PAD_TRIM_POS % 32))
|
||||
& ((1 << NVM_USB_PAD_TRIM_SIZE) - 1);
|
||||
if (pad_transn == 0 || pad_transn == 0x1F) {
|
||||
pad_transn = 9;
|
||||
}
|
||||
if (pad_transp == 0 || pad_transp == 0x1F) {
|
||||
pad_transp = 25;
|
||||
}
|
||||
if (pad_trim == 0 || pad_trim == 0x7) {
|
||||
pad_trim = 6;
|
||||
}
|
||||
|
||||
hw->DEVICE.PADCAL.reg = USB_PADCAL_TRANSN(pad_transn) | USB_PADCAL_TRANSP(pad_transp) | USB_PADCAL_TRIM(pad_trim);
|
||||
|
||||
hw->DEVICE.QOSCTRL.bit.CQOS = 3;
|
||||
hw->DEVICE.QOSCTRL.bit.DQOS = 3;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Initializes USB
|
||||
*/
|
||||
void USB_Init(void)
|
||||
{
|
||||
uint32_t pad_transn, pad_transp, pad_trim;
|
||||
|
||||
/* Enable USB clock */
|
||||
MCLK->APBBMASK.bit.USB_ = 1;
|
||||
|
||||
/* Set up the USB DP/DN pins */
|
||||
PORT->Group[0].PINCFG[PIN_PA24H_USB_DM].bit.PMUXEN = 1;
|
||||
PORT->Group[0].PMUX[PIN_PA24H_USB_DM/2].reg &= ~(0xF << (4 * (PIN_PA24H_USB_DM & 0x01u)));
|
||||
PORT->Group[0].PMUX[PIN_PA24H_USB_DM/2].reg |= MUX_PA24H_USB_DM << (4 * (PIN_PA24H_USB_DM & 0x01u));
|
||||
PORT->Group[0].PINCFG[PIN_PA25H_USB_DP].bit.PMUXEN = 1;
|
||||
PORT->Group[0].PMUX[PIN_PA25H_USB_DP/2].reg &= ~(0xF << (4 * (PIN_PA25H_USB_DP & 0x01u)));
|
||||
PORT->Group[0].PMUX[PIN_PA25H_USB_DP/2].reg |= MUX_PA25H_USB_DP << (4 * (PIN_PA25H_USB_DP & 0x01u));
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* Put Generic Clock Generator 0 as source for Generic Clock Multiplexer 6 (USB reference)
|
||||
*
|
||||
*/
|
||||
GCLK->PCHCTRL[USB_GCLK_ID].reg = GCLK_PCHCTRL_GEN_GCLK0_Val | (1 << GCLK_PCHCTRL_CHEN_Pos);
|
||||
MCLK->APBBMASK.reg |= MCLK_APBBMASK_USB;
|
||||
while(GCLK->SYNCBUSY.bit.GENCTRL0)
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
/* Reset */
|
||||
USB->DEVICE.CTRLA.bit.SWRST = 1;
|
||||
while (USB->DEVICE.SYNCBUSY.bit.SWRST)
|
||||
{
|
||||
/* Sync wait */
|
||||
}
|
||||
|
||||
USB_load_calib();
|
||||
|
||||
/* Set the configuration */
|
||||
/* Set mode to Device mode */
|
||||
USB->HOST.CTRLA.bit.MODE = 0;
|
||||
/* Enable Run in Standby */
|
||||
USB->HOST.CTRLA.bit.RUNSTDBY = true;
|
||||
/* Set the descriptor address */
|
||||
USB->HOST.DESCADD.reg = (uint32_t)(&usb_endpoint_table[0]);
|
||||
/* Set speed configuration to Full speed */
|
||||
USB->DEVICE.CTRLB.bit.SPDCONF = USB_DEVICE_CTRLB_SPDCONF_FS_Val;
|
||||
/* Attach to the USB host */
|
||||
USB->DEVICE.CTRLB.reg &= ~USB_DEVICE_CTRLB_DETACH;
|
||||
|
||||
/* Initialize endpoint table RAM location to a known value 0 */
|
||||
memset((uint8_t *)(&usb_endpoint_table[0]), 0, sizeof(usb_endpoint_table));
|
||||
}
|
||||
|
||||
uint32_t USB_Write(Usb *pUsb, const char *pData, uint32_t length, uint8_t ep_num)
|
||||
{
|
||||
uint32_t data_address;
|
||||
uint8_t buf_index;
|
||||
|
||||
/* Set buffer index */
|
||||
buf_index = (ep_num == 0) ? 0 : 1;
|
||||
|
||||
/* Check for requirement for multi-packet or auto zlp */
|
||||
if (length >= (1 << (usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.SIZE + 3)))
|
||||
{
|
||||
/* Update the EP data address */
|
||||
data_address = (uint32_t) pData;
|
||||
/* Enable auto zlp */
|
||||
usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.AUTO_ZLP = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Copy to local buffer */
|
||||
memcpy(udd_ep_in_cache_buffer[buf_index], pData, length);
|
||||
/* Update the EP data address */
|
||||
data_address = (uint32_t) &udd_ep_in_cache_buffer[buf_index];
|
||||
}
|
||||
|
||||
/* Set the buffer address for ep data */
|
||||
usb_endpoint_table[ep_num].DeviceDescBank[1].ADDR.reg = data_address;
|
||||
/* Set the byte count as zero */
|
||||
usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.BYTE_COUNT = length;
|
||||
/* Set the multi packet size as zero for multi-packet transfers where length > ep size */
|
||||
usb_endpoint_table[ep_num].DeviceDescBank[1].PCKSIZE.bit.MULTI_PACKET_SIZE = 0;
|
||||
/* Clear the transfer complete flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT1;
|
||||
/* Set the bank as ready */
|
||||
pUsb->DEVICE.DeviceEndpoint[ep_num].EPSTATUSSET.bit.BK1RDY = true;
|
||||
|
||||
/* Wait for transfer to complete */
|
||||
while ( (pUsb->DEVICE.DeviceEndpoint[ep_num].EPINTFLAG.bit.TRCPT1) == 0 );
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Read available data from Endpoint OUT
|
||||
*/
|
||||
uint32_t USB_Read(Usb *pUsb, char *pData, uint32_t length)
|
||||
{
|
||||
uint32_t packetSize = 0;
|
||||
|
||||
if (!read_job)
|
||||
{
|
||||
/* Set the buffer address for ep data */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].ADDR.reg = (uint32_t)&udd_ep_out_cache_buffer[USB_EP_OUT-1];
|
||||
/* Set the byte count as zero */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT = 0;
|
||||
/* Set the byte count as zero */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE = 0;
|
||||
/* Start the reception by clearing the bank 0 ready bit */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPSTATUSCLR.bit.BK0RDY = true;
|
||||
/* set the user flag */
|
||||
read_job = true;
|
||||
}
|
||||
|
||||
/* Check for Transfer Complete 0 flag */
|
||||
if ( pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPINTFLAG.bit.TRCPT0 )
|
||||
{
|
||||
/* Set packet size */
|
||||
packetSize = SAM_BA_MIN(usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT, length);
|
||||
/* Copy read data to user buffer */
|
||||
memcpy(pData, udd_ep_out_cache_buffer[USB_EP_OUT-1], packetSize);
|
||||
/* Clear the Transfer Complete 0 flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT0;
|
||||
/* Clear the user flag */
|
||||
read_job = false;
|
||||
}
|
||||
|
||||
return packetSize;
|
||||
}
|
||||
|
||||
uint32_t USB_Read_blocking(Usb *pUsb, char *pData, uint32_t length)
|
||||
{
|
||||
if (read_job)
|
||||
{
|
||||
/* Stop the reception by setting the bank 0 ready bit */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPSTATUSSET.bit.BK0RDY = true;
|
||||
/* Clear the user flag */
|
||||
read_job = false;
|
||||
}
|
||||
|
||||
/* Set the buffer address for ep data */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].ADDR.reg = ((uint32_t)pData);
|
||||
/* Set the byte count as zero */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT = 0;
|
||||
/* Set the multi packet size as zero for multi-packet transfers where length > ep size */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE = length;
|
||||
/* Clear the bank 0 ready flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPSTATUSCLR.bit.BK0RDY = true;
|
||||
/* Wait for transfer to complete */
|
||||
while (!( pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPINTFLAG.bit.TRCPT0 ));
|
||||
/* Clear Transfer complete 0 flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT0;
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Test if the device is configured and handle enumeration
|
||||
*/
|
||||
uint8_t USB_IsConfigured(P_USB_CDC pCdc)
|
||||
{
|
||||
Usb *pUsb = pCdc->pUsb;
|
||||
|
||||
/* Check for End of Reset flag */
|
||||
if (pUsb->DEVICE.INTFLAG.reg & USB_DEVICE_INTFLAG_EORST)
|
||||
{
|
||||
/* Clear the flag */
|
||||
pUsb->DEVICE.INTFLAG.reg = USB_DEVICE_INTFLAG_EORST;
|
||||
/* Set Device address as 0 */
|
||||
pUsb->DEVICE.DADD.reg = USB_DEVICE_DADD_ADDEN | 0;
|
||||
/* Configure endpoint 0 */
|
||||
/* Configure Endpoint 0 for Control IN and Control OUT */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE0(1) | USB_DEVICE_EPCFG_EPTYPE1(1);
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY;
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY;
|
||||
/* Configure control OUT Packet size to 64 bytes */
|
||||
usb_endpoint_table[0].DeviceDescBank[0].PCKSIZE.bit.SIZE = 3;
|
||||
/* Configure control IN Packet size to 64 bytes */
|
||||
usb_endpoint_table[0].DeviceDescBank[1].PCKSIZE.bit.SIZE = 3;
|
||||
/* Configure the data buffer address for control OUT */
|
||||
usb_endpoint_table[0].DeviceDescBank[0].ADDR.reg = (uint32_t)&udd_ep_out_cache_buffer[0];
|
||||
/* Configure the data buffer address for control IN */
|
||||
usb_endpoint_table[0].DeviceDescBank[1].ADDR.reg = (uint32_t)&udd_ep_in_cache_buffer[0];
|
||||
/* Set Multipacket size to 8 for control OUT and byte count to 0*/
|
||||
usb_endpoint_table[0].DeviceDescBank[0].PCKSIZE.bit.MULTI_PACKET_SIZE = 8;
|
||||
usb_endpoint_table[0].DeviceDescBank[0].PCKSIZE.bit.BYTE_COUNT = 0;
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK0RDY;
|
||||
|
||||
// Reset current configuration value to 0
|
||||
pCdc->currentConfiguration = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pUsb->DEVICE.DeviceEndpoint[0].EPINTFLAG.reg & USB_DEVICE_EPINTFLAG_RXSTP)
|
||||
{
|
||||
sam_ba_usb_CDC_Enumerate(pCdc);
|
||||
}
|
||||
}
|
||||
|
||||
return pCdc->currentConfiguration;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Stall the control endpoint
|
||||
*/
|
||||
void USB_SendStall(Usb *pUsb, bool direction_in)
|
||||
{
|
||||
/* Check the direction */
|
||||
if (direction_in)
|
||||
{
|
||||
/* Set STALL request on IN direction */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSSET.bit.STALLRQ1 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Set STALL request on OUT direction */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSSET.bit.STALLRQ0 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Send zero length packet through the control endpoint
|
||||
*/
|
||||
void USB_SendZlp(Usb *pUsb)
|
||||
{
|
||||
/* Set the byte count as zero */
|
||||
usb_endpoint_table[0].DeviceDescBank[1].PCKSIZE.bit.BYTE_COUNT = 0;
|
||||
/* Clear the transfer complete flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_TRCPT1;
|
||||
/* Set the bank as ready */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSSET.bit.BK1RDY = true;
|
||||
/* Wait for transfer to complete */
|
||||
while (!( pUsb->DEVICE.DeviceEndpoint[0].EPINTFLAG.bit.TRCPT1 ));
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Set USB device address obtained from host
|
||||
*/
|
||||
void USB_SetAddress(Usb *pUsb, uint16_t wValue)
|
||||
{
|
||||
pUsb->DEVICE.DADD.reg = USB_DEVICE_DADD_ADDEN | wValue;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Configure USB device
|
||||
*/
|
||||
void USB_Configure(Usb *pUsb)
|
||||
{
|
||||
/* Configure BULK OUT endpoint for CDC Data interface*/
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE0(3);
|
||||
/* Set maximum packet size as 64 bytes */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].PCKSIZE.bit.SIZE = 3;
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_BK0RDY;
|
||||
/* Configure the data buffer */
|
||||
usb_endpoint_table[USB_EP_OUT].DeviceDescBank[0].ADDR.reg = (uint32_t)&udd_ep_out_cache_buffer[1];
|
||||
|
||||
/* Configure BULK IN endpoint for CDC Data interface */
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_IN].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE1(3);
|
||||
/* Set maximum packet size as 64 bytes */
|
||||
usb_endpoint_table[USB_EP_IN].DeviceDescBank[1].PCKSIZE.bit.SIZE = 3;
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_IN].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY;
|
||||
/* Configure the data buffer */
|
||||
usb_endpoint_table[USB_EP_IN].DeviceDescBank[1].ADDR.reg = (uint32_t)&udd_ep_in_cache_buffer[1];
|
||||
|
||||
/* Configure INTERRUPT IN endpoint for CDC COMM interface*/
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_COMM].EPCFG.reg = USB_DEVICE_EPCFG_EPTYPE1(4);
|
||||
/* Set maximum packet size as 64 bytes */
|
||||
usb_endpoint_table[USB_EP_COMM].DeviceDescBank[1].PCKSIZE.bit.SIZE = 0;
|
||||
pUsb->DEVICE.DeviceEndpoint[USB_EP_COMM].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK1RDY;
|
||||
}
|
||||
45
bootloaders/metroM4/board_driver_usb.h
Normal file
45
bootloaders/metroM4/board_driver_usb.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _BOARD_DRIVER_USB_H_
|
||||
#define _BOARD_DRIVER_USB_H_
|
||||
|
||||
#include "sam_ba_cdc.h"
|
||||
|
||||
extern UsbDeviceDescriptor usb_endpoint_table[MAX_EP];
|
||||
extern uint8_t udd_ep_out_cache_buffer[2][64]; //1 for CTRL, 1 for BULK
|
||||
extern uint8_t udd_ep_in_cache_buffer[2][64]; //1 for CTRL, 1 for BULK
|
||||
|
||||
P_USB_CDC USB_Open(P_USB_CDC pCdc, Usb *pUsb);
|
||||
|
||||
void USB_Init(void);
|
||||
|
||||
uint32_t USB_Write(Usb *pUsb, const char *pData, uint32_t length, uint8_t ep_num);
|
||||
uint32_t USB_Read(Usb *pUsb, char *pData, uint32_t length);
|
||||
uint32_t USB_Read_blocking(Usb *pUsb, char *pData, uint32_t length);
|
||||
|
||||
uint8_t USB_IsConfigured(P_USB_CDC pCdc);
|
||||
|
||||
void USB_SendStall(Usb *pUsb, bool direction_in);
|
||||
void USB_SendZlp(Usb *pUsb);
|
||||
|
||||
void USB_SetAddress(Usb *pUsb, uint16_t wValue);
|
||||
void USB_Configure(Usb *pUsb);
|
||||
|
||||
#endif // _BOARD_DRIVER_USB_H_
|
||||
145
bootloaders/metroM4/board_init.c
Normal file
145
bootloaders/metroM4/board_init.c
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <sam.h>
|
||||
#include "board_definitions.h"
|
||||
|
||||
/**
|
||||
* \brief system_init() configures the needed clocks and according Flash Read Wait States.
|
||||
* We need to:
|
||||
* 1) Enable XOSC32K clock (External on-board 32.768Hz oscillator), will be used as DFLL48M reference.
|
||||
* 2) Put XOSC32K as source of Generic Clock Generator 3
|
||||
* 3) Put Generic Clock Generator 3 as source for Generic Clock Multiplexer 0 (DFLL48M reference)
|
||||
* 4) Enable DFLL48M clock
|
||||
* 5) Switch Generic Clock Generator 0 to DFLL48M. CPU will run at 48MHz.
|
||||
*/
|
||||
// Constants for Clock generators
|
||||
#define GENERIC_CLOCK_GENERATOR_MAIN (0u)
|
||||
#define GENERIC_CLOCK_GENERATOR_XOSC32K (3u)
|
||||
#define GENERIC_CLOCK_GENERATOR_OSCULP32K (2u) /* Initialized at reset for WDT */
|
||||
//#define GENERIC_CLOCK_GENERATOR_OSC8M (3u)
|
||||
// Constants for Clock multiplexers
|
||||
#define GENERIC_CLOCK_MULTIPLEXER_DFLL48M (0u)
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
|
||||
/* Set 1 Flash Wait State for 48MHz */
|
||||
NVMCTRL->CTRLA.reg |= NVMCTRL_CTRLA_RWS(0);
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* 1) Enable XOSC32K clock (External on-board 32.768Hz oscillator)
|
||||
*/
|
||||
OSC32KCTRL->XOSC32K.reg = OSC32KCTRL_XOSC32K_ENABLE | OSC32KCTRL_XOSC32K_EN32K | OSC32KCTRL_XOSC32K_EN32K | OSC32KCTRL_XOSC32K_CGM_XT | OSC32KCTRL_XOSC32K_XTALEN;
|
||||
|
||||
while( (OSC32KCTRL->STATUS.reg & OSC32KCTRL_STATUS_XOSC32KRDY) == 0 ){
|
||||
/* Wait for oscillator to be ready */
|
||||
}
|
||||
|
||||
OSC32KCTRL->RTCCTRL.bit.RTCSEL = OSC32KCTRL_RTCCTRL_RTCSEL_ULP1K;
|
||||
|
||||
|
||||
/* Software reset the module to ensure it is re-initialized correctly */
|
||||
/* Note: Due to synchronization, there is a delay from writing CTRL.SWRST until the reset is complete.
|
||||
* CTRL.SWRST and STATUS.SYNCBUSY will both be cleared when the reset is complete
|
||||
*/
|
||||
GCLK->CTRLA.bit.SWRST = 1;
|
||||
while ( GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_SWRST ){
|
||||
/* wait for reset to complete */
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* 2) Put XOSC32K as source of Generic Clock Generator 3
|
||||
*/
|
||||
GCLK->GENCTRL[GENERIC_CLOCK_GENERATOR_XOSC32K].reg = GCLK_GENCTRL_SRC(GCLK_GENCTRL_SRC_XOSC32K) | //generic clock gen 3
|
||||
GCLK_GENCTRL_GENEN;
|
||||
|
||||
while ( GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_GENCTRL3 ){
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* 3) Put Generic Clock Generator 3 as source for Generic Clock Gen 0 (DFLL48M reference)
|
||||
*/
|
||||
GCLK->GENCTRL[0].reg = GCLK_GENCTRL_SRC(GCLK_GENCTRL_SRC_OSCULP32K) | GCLK_GENCTRL_GENEN;
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* 4) Enable DFLL48M clock
|
||||
*/
|
||||
|
||||
/* DFLL Configuration in Open Loop mode */
|
||||
|
||||
OSCCTRL->DFLLCTRLA.reg = 0;
|
||||
//GCLK->PCHCTRL[OSCCTRL_GCLK_ID_DFLL48].reg = (1 << GCLK_PCHCTRL_CHEN_Pos) | GCLK_PCHCTRL_GEN(GCLK_PCHCTRL_GEN_GCLK3_Val);
|
||||
|
||||
OSCCTRL->DFLLMUL.reg = OSCCTRL_DFLLMUL_CSTEP( 0x1 ) |
|
||||
OSCCTRL_DFLLMUL_FSTEP( 0x1 ) |
|
||||
OSCCTRL_DFLLMUL_MUL( 0 );
|
||||
|
||||
while ( OSCCTRL->DFLLSYNC.reg & OSCCTRL_DFLLSYNC_DFLLMUL )
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
OSCCTRL->DFLLCTRLB.reg = 0;
|
||||
while ( OSCCTRL->DFLLSYNC.reg & OSCCTRL_DFLLSYNC_DFLLCTRLB )
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
OSCCTRL->DFLLCTRLA.reg |= OSCCTRL_DFLLCTRLA_ENABLE;
|
||||
while ( OSCCTRL->DFLLSYNC.reg & OSCCTRL_DFLLSYNC_ENABLE )
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
OSCCTRL->DFLLVAL.reg = OSCCTRL->DFLLVAL.reg;
|
||||
while( OSCCTRL->DFLLSYNC.bit.DFLLVAL );
|
||||
|
||||
OSCCTRL->DFLLCTRLB.reg = OSCCTRL_DFLLCTRLB_WAITLOCK |
|
||||
OSCCTRL_DFLLCTRLB_CCDIS | OSCCTRL_DFLLCTRLB_USBCRM ;
|
||||
|
||||
while ( !OSCCTRL->STATUS.bit.DFLLRDY )
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------------------------------
|
||||
* 5) Switch Generic Clock Generator 0 to DFLL48M. CPU will run at 48MHz.
|
||||
*/
|
||||
GCLK->GENCTRL[GENERIC_CLOCK_GENERATOR_MAIN].reg = GCLK_GENCTRL_SRC(GCLK_GENCTRL_SRC_DFLL) |
|
||||
GCLK_GENCTRL_IDC |
|
||||
GCLK_GENCTRL_OE |
|
||||
GCLK_GENCTRL_GENEN;
|
||||
|
||||
while ( GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_GENCTRL0 )
|
||||
{
|
||||
/* Wait for synchronization */
|
||||
}
|
||||
|
||||
|
||||
/* Turn on the digital interface clock */
|
||||
//MCLK->APBAMASK.reg |= MCLK_APBAMASK_GCLK;
|
||||
|
||||
/*
|
||||
* Now that all system clocks are configured, we can set CLKDIV .
|
||||
* These values are normally the ones present after Reset.
|
||||
*/
|
||||
MCLK->CPUDIV.reg = MCLK_CPUDIV_DIV_DIV1;
|
||||
}
|
||||
160
bootloaders/metroM4/board_startup.c
Normal file
160
bootloaders/metroM4/board_startup.c
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <sam.h>
|
||||
|
||||
struct ConstVectors
|
||||
{
|
||||
/* Stack pointer */
|
||||
void* pvStack;
|
||||
|
||||
/* Cortex-M handlers */
|
||||
void* pfnReset_Handler;
|
||||
void* pfnNMI_Handler;
|
||||
void* pfnHardFault_Handler;
|
||||
void* pfnMemManage_Handler;
|
||||
void* pfnBusFault_Handler;
|
||||
void* pfnUsageFault_Handler;
|
||||
void* pvReservedM9;
|
||||
void* pvReservedM8;
|
||||
void* pvReservedM7;
|
||||
void* pvReservedM6;
|
||||
void* pfnSVC_Handler;
|
||||
void* pfnDebugMon_Handler;
|
||||
void* pvReservedM3;
|
||||
void* pfnPendSV_Handler;
|
||||
void* pfnSysTick_Handler;
|
||||
};
|
||||
|
||||
/* Symbols exported from linker script */
|
||||
extern uint32_t __etext ;
|
||||
extern uint32_t __data_start__ ;
|
||||
extern uint32_t __data_end__ ;
|
||||
extern uint32_t __bss_start__ ;
|
||||
extern uint32_t __bss_end__ ;
|
||||
extern uint32_t __StackTop;
|
||||
|
||||
extern int main(void);
|
||||
extern void __libc_init_array(void);
|
||||
|
||||
/* Exception Table */
|
||||
__attribute__ ((section(".isr_vector")))
|
||||
const struct ConstVectors exception_table =
|
||||
{
|
||||
/* Configure Initial Stack Pointer, using linker-generated symbols */
|
||||
.pvStack = (void*) (&__StackTop),
|
||||
|
||||
.pfnReset_Handler = (void*) Reset_Handler,
|
||||
.pfnNMI_Handler = (void*) NMI_Handler,
|
||||
.pfnHardFault_Handler = (void*) HardFault_Handler,
|
||||
.pfnMemManage_Handler = (void*) MemManage_Handler,
|
||||
.pfnBusFault_Handler = (void*) BusFault_Handler,
|
||||
.pfnUsageFault_Handler = (void*) UsageFault_Handler,
|
||||
.pvReservedM9 = (void*) (0UL), /* Reserved */
|
||||
.pvReservedM8 = (void*) (0UL), /* Reserved */
|
||||
.pvReservedM7 = (void*) (0UL), /* Reserved */
|
||||
.pvReservedM6 = (void*) (0UL), /* Reserved */
|
||||
.pfnSVC_Handler = (void*) SVC_Handler,
|
||||
.pfnDebugMon_Handler = (void*) (0UL),
|
||||
.pvReservedM3 = (void*) (0UL), /* Reserved */
|
||||
.pfnPendSV_Handler = (void*) PendSV_Handler,
|
||||
.pfnSysTick_Handler = (void*) SysTick_Handler,
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief This is the code that gets called on processor reset.
|
||||
* Initializes the device and call the main() routine.
|
||||
*/
|
||||
void Reset_Handler( void )
|
||||
{
|
||||
uint32_t *pSrc, *pDest;
|
||||
|
||||
/* Initialize the initialized data section */
|
||||
pSrc = &__etext;
|
||||
pDest = &__data_start__;
|
||||
|
||||
if ( (&__data_start__ != &__data_end__) && (pSrc != pDest) )
|
||||
{
|
||||
for (; pDest < &__data_end__ ; pDest++, pSrc++ )
|
||||
{
|
||||
*pDest = *pSrc ;
|
||||
}
|
||||
}
|
||||
|
||||
/* Clear the zero section */
|
||||
if ( &__bss_start__ != &__bss_end__ )
|
||||
{
|
||||
for ( pDest = &__bss_start__ ; pDest < &__bss_end__ ; pDest++ )
|
||||
{
|
||||
*pDest = 0ul ;
|
||||
}
|
||||
}
|
||||
|
||||
// board_init(); // will be done in main() after app check
|
||||
|
||||
/* Initialize the C library */
|
||||
// __libc_init_array();
|
||||
|
||||
main();
|
||||
|
||||
while (1);
|
||||
}
|
||||
|
||||
void NMI_Handler(void)
|
||||
{
|
||||
__BKPT(14);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void HardFault_Handler(void)
|
||||
{
|
||||
__BKPT(13);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void MemManage_Handler(void)
|
||||
{
|
||||
__BKPT(13);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void BusFault_Handler(void)
|
||||
{
|
||||
__BKPT(13);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void UsageFault_Handler(void)
|
||||
{
|
||||
__BKPT(13);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void SVC_Handler(void)
|
||||
{
|
||||
__BKPT(5);
|
||||
while (1);
|
||||
}
|
||||
|
||||
void PendSV_Handler(void)
|
||||
{
|
||||
__BKPT(2);
|
||||
while (1);
|
||||
}
|
||||
222
bootloaders/metroM4/bootloader_FEATHER_M4.ld
Normal file
222
bootloaders/metroM4/bootloader_FEATHER_M4.ld
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
/*
|
||||
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/* Linker script to configure memory regions.
|
||||
* Need modifying for a specific board.
|
||||
* FLASH.ORIGIN: starting address of flash
|
||||
* FLASH.LENGTH: length of flash
|
||||
* RAM.ORIGIN: starting address of RAM bank 0
|
||||
* RAM.LENGTH: length of RAM bank 0
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x4000 /* First 16KB used by bootloader */
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000-0x0004 /* 4 bytes used by bootloader to keep data between resets */
|
||||
}
|
||||
|
||||
/* Linker script to place sections and symbol values. Should be used together
|
||||
* with other linker script that defines memory regions FLASH and RAM.
|
||||
* It references following symbols, which must be defined in code:
|
||||
* Reset_Handler : Entry of reset handler
|
||||
*
|
||||
* It defines following symbols, which code can use without definition:
|
||||
* __exidx_start
|
||||
* __exidx_end
|
||||
* __copy_table_start__
|
||||
* __copy_table_end__
|
||||
* __zero_table_start__
|
||||
* __zero_table_end__
|
||||
* __etext
|
||||
* __data_start__
|
||||
* __preinit_array_start
|
||||
* __preinit_array_end
|
||||
* __init_array_start
|
||||
* __init_array_end
|
||||
* __fini_array_start
|
||||
* __fini_array_end
|
||||
* __data_end__
|
||||
* __bss_start__
|
||||
* __bss_end__
|
||||
* __end__
|
||||
* end
|
||||
* __HeapLimit
|
||||
* __StackLimit
|
||||
* __StackTop
|
||||
* __stack
|
||||
* __sketch_vectors_ptr
|
||||
*/
|
||||
ENTRY(Reset_Handler)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = ORIGIN(FLASH);
|
||||
|
||||
.vectors :
|
||||
{
|
||||
KEEP(*(.isr_vector))
|
||||
} > FLASH
|
||||
|
||||
.text :
|
||||
{
|
||||
*(.text*)
|
||||
|
||||
KEEP(*(.init))
|
||||
KEEP(*(.fini))
|
||||
|
||||
/* .ctors */
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
|
||||
/* .dtors */
|
||||
*crtbegin.o(.dtors)
|
||||
*crtbegin?.o(.dtors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
|
||||
*(.rodata*)
|
||||
|
||||
KEEP(*(.eh_frame*))
|
||||
} > FLASH
|
||||
|
||||
.ARM.extab :
|
||||
{
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
} > FLASH
|
||||
|
||||
__exidx_start = .;
|
||||
.ARM.exidx :
|
||||
{
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
} > FLASH
|
||||
__exidx_end = .;
|
||||
|
||||
/* To copy multiple ROM to RAM sections,
|
||||
* uncomment .copy.table section and,
|
||||
* define __STARTUP_COPY_MULTIPLE in startup_ARMCMx.S */
|
||||
/*
|
||||
.copy.table :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__copy_table_start__ = .;
|
||||
LONG (__etext)
|
||||
LONG (__data_start__)
|
||||
LONG (__data_end__ - __data_start__)
|
||||
LONG (__etext2)
|
||||
LONG (__data2_start__)
|
||||
LONG (__data2_end__ - __data2_start__)
|
||||
__copy_table_end__ = .;
|
||||
} > FLASH
|
||||
*/
|
||||
|
||||
/* To clear multiple BSS sections,
|
||||
* uncomment .zero.table section and,
|
||||
* define __STARTUP_CLEAR_BSS_MULTIPLE in startup_ARMCMx.S */
|
||||
/*
|
||||
.zero.table :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__zero_table_start__ = .;
|
||||
LONG (__bss_start__)
|
||||
LONG (__bss_end__ - __bss_start__)
|
||||
LONG (__bss2_start__)
|
||||
LONG (__bss2_end__ - __bss2_start__)
|
||||
__zero_table_end__ = .;
|
||||
} > FLASH
|
||||
*/
|
||||
|
||||
__etext = .;
|
||||
PROVIDE(__sketch_vectors_ptr = ORIGIN(FLASH) + LENGTH(FLASH));
|
||||
|
||||
|
||||
.data : AT (__etext)
|
||||
{
|
||||
__data_start__ = .;
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP(*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* init data */
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP(*(SORT(.init_array.*)))
|
||||
KEEP(*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
|
||||
|
||||
. = ALIGN(4);
|
||||
/* finit data */
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
KEEP(*(SORT(.fini_array.*)))
|
||||
KEEP(*(.fini_array))
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
|
||||
KEEP(*(.jcr*))
|
||||
. = ALIGN(4);
|
||||
/* All data end */
|
||||
__data_end__ = .;
|
||||
|
||||
} > RAM
|
||||
|
||||
.bss :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__bss_start__ = .;
|
||||
*(.bss*)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
__bss_end__ = .;
|
||||
} > RAM
|
||||
|
||||
.heap (COPY):
|
||||
{
|
||||
__end__ = .;
|
||||
PROVIDE(end = .);
|
||||
*(.heap*)
|
||||
__HeapLimit = .;
|
||||
} > RAM
|
||||
|
||||
/* .stack_dummy section doesn't contains any symbols. It is only
|
||||
* used for linker to calculate size of stack sections, and assign
|
||||
* values to stack symbols later */
|
||||
.stack_dummy (COPY):
|
||||
{
|
||||
*(.stack*)
|
||||
} > RAM
|
||||
|
||||
/* Set stack top to end of RAM, and stack limit move down by
|
||||
* size of stack_dummy section */
|
||||
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
|
||||
PROVIDE(__stack = __StackTop);
|
||||
|
||||
__ram_end__ = ORIGIN(RAM) + LENGTH(RAM) -1 ;
|
||||
|
||||
/* Check if data + heap + stack exceeds RAM limit */
|
||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
|
||||
}
|
||||
222
bootloaders/metroM4/bootloader_METRO_M4.ld
Normal file
222
bootloaders/metroM4/bootloader_METRO_M4.ld
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
/*
|
||||
Copyright (c) 2014-2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/* Linker script to configure memory regions.
|
||||
* Need modifying for a specific board.
|
||||
* FLASH.ORIGIN: starting address of flash
|
||||
* FLASH.LENGTH: length of flash
|
||||
* RAM.ORIGIN: starting address of RAM bank 0
|
||||
* RAM.LENGTH: length of RAM bank 0
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x4000 /* First 16KB used by bootloader */
|
||||
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000-0x0004 /* 4 bytes used by bootloader to keep data between resets */
|
||||
}
|
||||
|
||||
/* Linker script to place sections and symbol values. Should be used together
|
||||
* with other linker script that defines memory regions FLASH and RAM.
|
||||
* It references following symbols, which must be defined in code:
|
||||
* Reset_Handler : Entry of reset handler
|
||||
*
|
||||
* It defines following symbols, which code can use without definition:
|
||||
* __exidx_start
|
||||
* __exidx_end
|
||||
* __copy_table_start__
|
||||
* __copy_table_end__
|
||||
* __zero_table_start__
|
||||
* __zero_table_end__
|
||||
* __etext
|
||||
* __data_start__
|
||||
* __preinit_array_start
|
||||
* __preinit_array_end
|
||||
* __init_array_start
|
||||
* __init_array_end
|
||||
* __fini_array_start
|
||||
* __fini_array_end
|
||||
* __data_end__
|
||||
* __bss_start__
|
||||
* __bss_end__
|
||||
* __end__
|
||||
* end
|
||||
* __HeapLimit
|
||||
* __StackLimit
|
||||
* __StackTop
|
||||
* __stack
|
||||
* __sketch_vectors_ptr
|
||||
*/
|
||||
ENTRY(Reset_Handler)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
. = ORIGIN(FLASH);
|
||||
|
||||
.vectors :
|
||||
{
|
||||
KEEP(*(.isr_vector))
|
||||
} > FLASH
|
||||
|
||||
.text :
|
||||
{
|
||||
*(.text*)
|
||||
|
||||
KEEP(*(.init))
|
||||
KEEP(*(.fini))
|
||||
|
||||
/* .ctors */
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
|
||||
/* .dtors */
|
||||
*crtbegin.o(.dtors)
|
||||
*crtbegin?.o(.dtors)
|
||||
*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
|
||||
*(.rodata*)
|
||||
|
||||
KEEP(*(.eh_frame*))
|
||||
} > FLASH
|
||||
|
||||
.ARM.extab :
|
||||
{
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
} > FLASH
|
||||
|
||||
__exidx_start = .;
|
||||
.ARM.exidx :
|
||||
{
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
} > FLASH
|
||||
__exidx_end = .;
|
||||
|
||||
/* To copy multiple ROM to RAM sections,
|
||||
* uncomment .copy.table section and,
|
||||
* define __STARTUP_COPY_MULTIPLE in startup_ARMCMx.S */
|
||||
/*
|
||||
.copy.table :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__copy_table_start__ = .;
|
||||
LONG (__etext)
|
||||
LONG (__data_start__)
|
||||
LONG (__data_end__ - __data_start__)
|
||||
LONG (__etext2)
|
||||
LONG (__data2_start__)
|
||||
LONG (__data2_end__ - __data2_start__)
|
||||
__copy_table_end__ = .;
|
||||
} > FLASH
|
||||
*/
|
||||
|
||||
/* To clear multiple BSS sections,
|
||||
* uncomment .zero.table section and,
|
||||
* define __STARTUP_CLEAR_BSS_MULTIPLE in startup_ARMCMx.S */
|
||||
/*
|
||||
.zero.table :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__zero_table_start__ = .;
|
||||
LONG (__bss_start__)
|
||||
LONG (__bss_end__ - __bss_start__)
|
||||
LONG (__bss2_start__)
|
||||
LONG (__bss2_end__ - __bss2_start__)
|
||||
__zero_table_end__ = .;
|
||||
} > FLASH
|
||||
*/
|
||||
|
||||
__etext = .;
|
||||
PROVIDE(__sketch_vectors_ptr = ORIGIN(FLASH) + LENGTH(FLASH));
|
||||
|
||||
|
||||
.data : AT (__etext)
|
||||
{
|
||||
__data_start__ = .;
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
||||
. = ALIGN(4);
|
||||
/* preinit data */
|
||||
PROVIDE_HIDDEN (__preinit_array_start = .);
|
||||
KEEP(*(.preinit_array))
|
||||
PROVIDE_HIDDEN (__preinit_array_end = .);
|
||||
|
||||
. = ALIGN(4);
|
||||
/* init data */
|
||||
PROVIDE_HIDDEN (__init_array_start = .);
|
||||
KEEP(*(SORT(.init_array.*)))
|
||||
KEEP(*(.init_array))
|
||||
PROVIDE_HIDDEN (__init_array_end = .);
|
||||
|
||||
|
||||
. = ALIGN(4);
|
||||
/* finit data */
|
||||
PROVIDE_HIDDEN (__fini_array_start = .);
|
||||
KEEP(*(SORT(.fini_array.*)))
|
||||
KEEP(*(.fini_array))
|
||||
PROVIDE_HIDDEN (__fini_array_end = .);
|
||||
|
||||
KEEP(*(.jcr*))
|
||||
. = ALIGN(4);
|
||||
/* All data end */
|
||||
__data_end__ = .;
|
||||
|
||||
} > RAM
|
||||
|
||||
.bss :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
__bss_start__ = .;
|
||||
*(.bss*)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
__bss_end__ = .;
|
||||
} > RAM
|
||||
|
||||
.heap (COPY):
|
||||
{
|
||||
__end__ = .;
|
||||
PROVIDE(end = .);
|
||||
*(.heap*)
|
||||
__HeapLimit = .;
|
||||
} > RAM
|
||||
|
||||
/* .stack_dummy section doesn't contains any symbols. It is only
|
||||
* used for linker to calculate size of stack sections, and assign
|
||||
* values to stack symbols later */
|
||||
.stack_dummy (COPY):
|
||||
{
|
||||
*(.stack*)
|
||||
} > RAM
|
||||
|
||||
/* Set stack top to end of RAM, and stack limit move down by
|
||||
* size of stack_dummy section */
|
||||
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
|
||||
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
|
||||
PROVIDE(__stack = __StackTop);
|
||||
|
||||
__ram_end__ = ORIGIN(RAM) + LENGTH(RAM) -1 ;
|
||||
|
||||
/* Check if data + heap + stack exceeds RAM limit */
|
||||
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
|
||||
}
|
||||
20
bootloaders/metroM4/build_all_bootloaders.sh
Normal file
20
bootloaders/metroM4/build_all_bootloaders.sh
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash -ex
|
||||
|
||||
BOARD_ID=arduino_zero NAME=samd21_sam_ba make clean all
|
||||
|
||||
BOARD_ID=genuino_zero NAME=samd21_sam_ba_genuino make clean all
|
||||
|
||||
BOARD_ID=arduino_mkr1000 NAME=samd21_sam_ba_arduino_mkr1000 make clean all
|
||||
mv -v samd21_sam_ba_arduino_mkr1000.* ../mkr1000/
|
||||
|
||||
BOARD_ID=genuino_mkr1000 NAME=samd21_sam_ba_genuino_mkr1000 make clean all
|
||||
mv -v samd21_sam_ba_genuino_mkr1000.* ../mkr1000/
|
||||
|
||||
BOARD_ID=arduino_mkrzero NAME=samd21_sam_ba_arduino_mkrzero make clean all
|
||||
mv -v samd21_sam_ba_arduino_mkrzero.* ../mkrzero/
|
||||
|
||||
BOARD_ID=arduino_mkrfox1200 NAME=samd21_sam_ba_arduino_mkrfox1200 make clean all
|
||||
mv -v samd21_sam_ba_arduino_mkrfox1200.* ../mkrfox1200/
|
||||
|
||||
echo Done building bootloaders!
|
||||
|
||||
235
bootloaders/metroM4/main.c
Normal file
235
bootloaders/metroM4/main.c
Normal file
|
|
@ -0,0 +1,235 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sam.h>
|
||||
#include "sam_ba_monitor.h"
|
||||
#include "sam_ba_serial.h"
|
||||
#include "board_definitions.h"
|
||||
#include "board_driver_led.h"
|
||||
#include "sam_ba_usb.h"
|
||||
#include "sam_ba_cdc.h"
|
||||
|
||||
extern uint32_t __sketch_vectors_ptr; // Exported value from linker script
|
||||
extern void board_init(void);
|
||||
|
||||
#if (defined DEBUG) && (DEBUG == 1)
|
||||
volatile uint32_t* pulSketch_Start_Address;
|
||||
#endif
|
||||
|
||||
static volatile bool main_b_cdc_enable = false;
|
||||
|
||||
/**
|
||||
* \brief Check the application startup condition
|
||||
*
|
||||
*/
|
||||
static void check_start_application(void)
|
||||
{
|
||||
// LED_init();
|
||||
// LED_off();
|
||||
|
||||
#if (!defined DEBUG) || ((defined DEBUG) && (DEBUG == 0))
|
||||
uint32_t* pulSketch_Start_Address;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Test sketch stack pointer @ &__sketch_vectors_ptr
|
||||
* Stay in SAM-BA if value @ (&__sketch_vectors_ptr) == 0xFFFFFFFF (Erased flash cell value)
|
||||
*/
|
||||
if (__sketch_vectors_ptr == 0xFFFFFFFF)
|
||||
{
|
||||
/* Stay in bootloader */
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the sketch Reset Handler address
|
||||
* __sketch_vectors_ptr is exported from linker script and point on first 32b word of sketch vector table
|
||||
* First 32b word is sketch stack
|
||||
* Second 32b word is sketch entry point: Reset_Handler()
|
||||
*/
|
||||
pulSketch_Start_Address = &__sketch_vectors_ptr ;
|
||||
pulSketch_Start_Address++ ;
|
||||
|
||||
/*
|
||||
* Test vector table address of sketch @ &__sketch_vectors_ptr
|
||||
* Stay in SAM-BA if this function is not aligned enough, ie not valid
|
||||
*/
|
||||
if ( ((uint32_t)(&__sketch_vectors_ptr) & ~SCB_VTOR_TBLOFF_Msk) != 0x00)
|
||||
{
|
||||
/* Stay in bootloader */
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(BOOT_DOUBLE_TAP_ADDRESS)
|
||||
#define DOUBLE_TAP_MAGIC 0xf01669efUL
|
||||
//if (PM->RCAUSE.bit.POR)
|
||||
if( RSTC->RCAUSE.bit.POR )
|
||||
{
|
||||
/* On power-on initialize double-tap */
|
||||
BOOT_DOUBLE_TAP_DATA = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (BOOT_DOUBLE_TAP_DATA == DOUBLE_TAP_MAGIC)
|
||||
{
|
||||
/* Second tap, stay in bootloader */
|
||||
BOOT_DOUBLE_TAP_DATA = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* First tap */
|
||||
BOOT_DOUBLE_TAP_DATA = DOUBLE_TAP_MAGIC;
|
||||
|
||||
/* Wait 0.5sec to see if the user tap reset again.
|
||||
* The loop value is based on SAMD51 default 48Mhz clock @ reset.
|
||||
*/
|
||||
for (uint32_t i=0; i<6000000; i++) /* 500ms */
|
||||
/* force compiler to not optimize this... */
|
||||
__asm__ __volatile__("");
|
||||
|
||||
/* Timeout happened, continue boot... */
|
||||
BOOT_DOUBLE_TAP_DATA = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
#if defined(BOOT_LOAD_PIN)
|
||||
volatile PortGroup *boot_port = (volatile PortGroup *)(&(PORT->Group[BOOT_LOAD_PIN / 32]));
|
||||
volatile bool boot_en;
|
||||
|
||||
// Enable the input mode in Boot GPIO Pin
|
||||
boot_port->DIRCLR.reg = BOOT_PIN_MASK;
|
||||
boot_port->PINCFG[BOOT_LOAD_PIN & 0x1F].reg = PORT_PINCFG_INEN | PORT_PINCFG_PULLEN;
|
||||
boot_port->OUTSET.reg = BOOT_PIN_MASK;
|
||||
// Read the BOOT_LOAD_PIN status
|
||||
boot_en = (boot_port->IN.reg) & BOOT_PIN_MASK;
|
||||
|
||||
// Check the bootloader enable condition
|
||||
if (!boot_en)
|
||||
{
|
||||
// Stay in bootloader
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
// LED_on();
|
||||
|
||||
/* Rebase the Stack Pointer */
|
||||
__set_MSP( (uint32_t)(__sketch_vectors_ptr) );
|
||||
|
||||
/* Rebase the vector table base address */
|
||||
SCB->VTOR = ((uint32_t)(&__sketch_vectors_ptr) & SCB_VTOR_TBLOFF_Msk);
|
||||
|
||||
/* Jump to application Reset Handler in the application */
|
||||
asm("bx %0"::"r"(*pulSketch_Start_Address));
|
||||
}
|
||||
|
||||
#if DEBUG_ENABLE
|
||||
# define DEBUG_PIN_HIGH port_pin_set_output_level(BOOT_LED, 1)
|
||||
# define DEBUG_PIN_LOW port_pin_set_output_level(BOOT_LED, 0)
|
||||
#else
|
||||
# define DEBUG_PIN_HIGH do{}while(0)
|
||||
# define DEBUG_PIN_LOW do{}while(0)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* \brief SAMDx1 SAM-BA Main loop.
|
||||
* \return Unused (ANSI-C compatibility).
|
||||
*/
|
||||
int main(void)
|
||||
{
|
||||
#if SAM_BA_INTERFACE == SAM_BA_USBCDC_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
P_USB_CDC pCdc;
|
||||
#endif
|
||||
DEBUG_PIN_HIGH;
|
||||
|
||||
/* Jump in application if condition is satisfied */
|
||||
check_start_application();
|
||||
|
||||
/* We have determined we should stay in the monitor. */
|
||||
/* System initialization */
|
||||
board_init();
|
||||
__enable_irq();
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_UART_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
/* UART is enabled in all cases */
|
||||
serial_open();
|
||||
#endif
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_USBCDC_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
pCdc = usb_init();
|
||||
#endif
|
||||
|
||||
DEBUG_PIN_LOW;
|
||||
|
||||
/* Initialize LEDs */
|
||||
LED_init();
|
||||
LEDRX_init();
|
||||
LEDRX_off();
|
||||
LEDTX_init();
|
||||
LEDTX_off();
|
||||
|
||||
/* Start the sys tick (1 ms) */
|
||||
SysTick_Config(1000);
|
||||
|
||||
/* Wait for a complete enum on usb or a '#' char on serial line */
|
||||
while (1)
|
||||
{
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_USBCDC_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
if (pCdc->IsConfigured(pCdc) != 0)
|
||||
{
|
||||
main_b_cdc_enable = true;
|
||||
}
|
||||
|
||||
/* Check if a USB enumeration has succeeded and if comm port has been opened */
|
||||
if (main_b_cdc_enable)
|
||||
{
|
||||
sam_ba_monitor_init(SAM_BA_INTERFACE_USBCDC);
|
||||
/* SAM-BA on USB loop */
|
||||
while( 1 )
|
||||
{
|
||||
sam_ba_monitor_run();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_UART_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
/* Check if a '#' has been received */
|
||||
if (!main_b_cdc_enable && serial_sharp_received())
|
||||
{
|
||||
sam_ba_monitor_init(SAM_BA_INTERFACE_USART);
|
||||
/* SAM-BA on Serial loop */
|
||||
while(1)
|
||||
{
|
||||
sam_ba_monitor_run();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void SysTick_Handler(void)
|
||||
{
|
||||
LED_pulse();
|
||||
|
||||
sam_ba_monitor_sys_tick();
|
||||
}
|
||||
98
bootloaders/metroM4/sam_ba_cdc.c
Normal file
98
bootloaders/metroM4/sam_ba_cdc.c
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "sam_ba_cdc.h"
|
||||
#include "board_driver_usb.h"
|
||||
|
||||
usb_cdc_line_coding_t line_coding=
|
||||
{
|
||||
115200, // baudrate
|
||||
0, // 1 Stop Bit
|
||||
0, // None Parity
|
||||
8 // 8 Data bits
|
||||
};
|
||||
|
||||
#define pCdc (&sam_ba_cdc)
|
||||
|
||||
int cdc_putc(/*P_USB_CDC pCdc,*/ int value)
|
||||
{
|
||||
/* Send single byte on USB CDC */
|
||||
USB_Write(pCdc->pUsb, (const char *)&value, 1, USB_EP_IN);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cdc_getc(/*P_USB_CDC pCdc*/void)
|
||||
{
|
||||
uint8_t rx_char;
|
||||
|
||||
/* Read singly byte on USB CDC */
|
||||
USB_Read(pCdc->pUsb, (char *)&rx_char, 1);
|
||||
|
||||
return (int)rx_char;
|
||||
}
|
||||
|
||||
bool cdc_is_rx_ready(/*P_USB_CDC pCdc*/void)
|
||||
{
|
||||
/* Check whether the device is configured */
|
||||
if ( !USB_IsConfigured(pCdc) )
|
||||
return 0;
|
||||
|
||||
/* Return transfer complete 0 flag status */
|
||||
return (pCdc->pUsb->DEVICE.DeviceEndpoint[USB_EP_OUT].EPINTFLAG.bit.TRCPT0);
|
||||
}
|
||||
|
||||
uint32_t cdc_write_buf(/*P_USB_CDC pCdc,*/ void const* data, uint32_t length)
|
||||
{
|
||||
/* Send the specified number of bytes on USB CDC */
|
||||
USB_Write(pCdc->pUsb, (const char *)data, length, USB_EP_IN);
|
||||
return length;
|
||||
}
|
||||
|
||||
uint32_t cdc_read_buf(/*P_USB_CDC pCdc,*/ void* data, uint32_t length)
|
||||
{
|
||||
/* Check whether the device is configured */
|
||||
if ( !USB_IsConfigured(pCdc) )
|
||||
return 0;
|
||||
|
||||
/* Read from USB CDC */
|
||||
return USB_Read(pCdc->pUsb, (char *)data, length);
|
||||
}
|
||||
|
||||
uint32_t cdc_read_buf_xmd(/*P_USB_CDC pCdc,*/ void* data, uint32_t length)
|
||||
{
|
||||
/* Check whether the device is configured */
|
||||
if ( !USB_IsConfigured(pCdc) )
|
||||
return 0;
|
||||
|
||||
/* Blocking read till specified number of bytes is received */
|
||||
// XXX: USB_Read_blocking is not reliable
|
||||
// return USB_Read_blocking(pCdc, (char *)data, length);
|
||||
|
||||
char *dst = (char *)data;
|
||||
uint32_t remaining = length;
|
||||
while (remaining)
|
||||
{
|
||||
uint32_t readed = USB_Read(pCdc->pUsb, (char *)dst, remaining);
|
||||
remaining -= readed;
|
||||
dst += readed;
|
||||
}
|
||||
|
||||
return length;
|
||||
}
|
||||
91
bootloaders/metroM4/sam_ba_cdc.h
Normal file
91
bootloaders/metroM4/sam_ba_cdc.h
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _SAM_BA_USB_CDC_H_
|
||||
#define _SAM_BA_USB_CDC_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include "sam_ba_usb.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t dwDTERate;
|
||||
uint8_t bCharFormat;
|
||||
uint8_t bParityType;
|
||||
uint8_t bDataBits;
|
||||
} usb_cdc_line_coding_t;
|
||||
|
||||
/* CDC Class Specific Request Code */
|
||||
#define GET_LINE_CODING 0x21A1
|
||||
#define SET_LINE_CODING 0x2021
|
||||
#define SET_CONTROL_LINE_STATE 0x2221
|
||||
|
||||
extern usb_cdc_line_coding_t line_coding;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Sends a single byte through USB CDC
|
||||
*
|
||||
* \param Data to send
|
||||
* \return number of data sent
|
||||
*/
|
||||
int cdc_putc(/*P_USB_CDC pCdc,*/ int value);
|
||||
|
||||
/**
|
||||
* \brief Reads a single byte through USB CDC
|
||||
*
|
||||
* \return Data read through USB
|
||||
*/
|
||||
int cdc_getc(/*P_USB_CDC pCdc*/);
|
||||
|
||||
/**
|
||||
* \brief Checks if a character has been received on USB CDC
|
||||
*
|
||||
* \return \c 1 if a byte is ready to be read.
|
||||
*/
|
||||
bool cdc_is_rx_ready(/*P_USB_CDC pCdc*/);
|
||||
|
||||
/**
|
||||
* \brief Sends buffer on USB CDC
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to send
|
||||
* \return number of data sent
|
||||
*/
|
||||
uint32_t cdc_write_buf(/*P_USB_CDC pCdc,*/ void const* data, uint32_t length);
|
||||
|
||||
/**
|
||||
* \brief Gets data on USB CDC
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to read
|
||||
* \return number of data read
|
||||
*/
|
||||
uint32_t cdc_read_buf(/*P_USB_CDC pCdc,*/ void* data, uint32_t length);
|
||||
|
||||
/**
|
||||
* \brief Gets specified number of bytes on USB CDC
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to read
|
||||
* \return number of data read
|
||||
*/
|
||||
uint32_t cdc_read_buf_xmd(/*P_USB_CDC pCdc,*/ void* data, uint32_t length);
|
||||
|
||||
#endif // _SAM_BA_USB_CDC_H_
|
||||
552
bootloaders/metroM4/sam_ba_monitor.c
Normal file
552
bootloaders/metroM4/sam_ba_monitor.c
Normal file
|
|
@ -0,0 +1,552 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "sam.h"
|
||||
#include <string.h>
|
||||
#include "sam_ba_monitor.h"
|
||||
#include "sam_ba_serial.h"
|
||||
#include "board_driver_serial.h"
|
||||
#include "board_driver_usb.h"
|
||||
#include "sam_ba_usb.h"
|
||||
#include "sam_ba_cdc.h"
|
||||
#include "board_driver_led.h"
|
||||
|
||||
const char RomBOOT_Version[] = SAM_BA_VERSION;
|
||||
const char RomBOOT_ExtendedCapabilities[] = "[Arduino:XYZ]";
|
||||
|
||||
/* Provides one common interface to handle both USART and USB-CDC */
|
||||
typedef struct
|
||||
{
|
||||
/* send one byte of data */
|
||||
int (*put_c)(int value);
|
||||
/* Get one byte */
|
||||
int (*get_c)(void);
|
||||
/* Receive buffer not empty */
|
||||
bool (*is_rx_ready)(void);
|
||||
/* Send given data (polling) */
|
||||
uint32_t (*putdata)(void const* data, uint32_t length);
|
||||
/* Get data from comm. device */
|
||||
uint32_t (*getdata)(void* data, uint32_t length);
|
||||
/* Send given data (polling) using xmodem (if necessary) */
|
||||
uint32_t (*putdata_xmd)(void const* data, uint32_t length);
|
||||
/* Get data from comm. device using xmodem (if necessary) */
|
||||
uint32_t (*getdata_xmd)(void* data, uint32_t length);
|
||||
} t_monitor_if;
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_UART_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
/* Initialize structures with function pointers from supported interfaces */
|
||||
const t_monitor_if uart_if =
|
||||
{
|
||||
.put_c = serial_putc,
|
||||
.get_c = serial_getc,
|
||||
.is_rx_ready = serial_is_rx_ready,
|
||||
.putdata = serial_putdata,
|
||||
.getdata = serial_getdata,
|
||||
.putdata_xmd = serial_putdata_xmd,
|
||||
.getdata_xmd = serial_getdata_xmd
|
||||
};
|
||||
#endif
|
||||
|
||||
#if SAM_BA_INTERFACE == SAM_BA_USBCDC_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
//Please note that USB doesn't use Xmodem protocol, since USB already includes flow control and data verification
|
||||
//Data are simply forwarded without further coding.
|
||||
const t_monitor_if usbcdc_if =
|
||||
{
|
||||
.put_c = cdc_putc,
|
||||
.get_c = cdc_getc,
|
||||
.is_rx_ready = cdc_is_rx_ready,
|
||||
.putdata = cdc_write_buf,
|
||||
.getdata = cdc_read_buf,
|
||||
.putdata_xmd = cdc_write_buf,
|
||||
.getdata_xmd = cdc_read_buf_xmd
|
||||
};
|
||||
#endif
|
||||
|
||||
/* The pointer to the interface object use by the monitor */
|
||||
t_monitor_if * ptr_monitor_if;
|
||||
|
||||
/* b_terminal_mode mode (ascii) or hex mode */
|
||||
volatile bool b_terminal_mode = false;
|
||||
volatile bool b_sam_ba_interface_usart = false;
|
||||
|
||||
/* Pulse generation counters to keep track of the time remaining for each pulse type */
|
||||
#define TX_RX_LED_PULSE_PERIOD 100
|
||||
volatile uint16_t txLEDPulse = 0; // time remaining for Tx LED pulse
|
||||
volatile uint16_t rxLEDPulse = 0; // time remaining for Rx LED pulse
|
||||
|
||||
void sam_ba_monitor_init(uint8_t com_interface)
|
||||
{
|
||||
#if SAM_BA_INTERFACE == SAM_BA_UART_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
//Selects the requested interface for future actions
|
||||
if (com_interface == SAM_BA_INTERFACE_USART)
|
||||
{
|
||||
ptr_monitor_if = (t_monitor_if*) &uart_if;
|
||||
b_sam_ba_interface_usart = true;
|
||||
}
|
||||
#endif
|
||||
#if SAM_BA_INTERFACE == SAM_BA_USBCDC_ONLY || SAM_BA_INTERFACE == SAM_BA_BOTH_INTERFACES
|
||||
if (com_interface == SAM_BA_INTERFACE_USBCDC)
|
||||
{
|
||||
ptr_monitor_if = (t_monitor_if*) &usbcdc_if;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Central SAM-BA monitor putdata function using the board LEDs
|
||||
*/
|
||||
static uint32_t sam_ba_putdata(t_monitor_if* pInterface, void const* data, uint32_t length)
|
||||
{
|
||||
uint32_t result ;
|
||||
|
||||
result=pInterface->putdata(data, length);
|
||||
|
||||
LEDTX_on();
|
||||
txLEDPulse = TX_RX_LED_PULSE_PERIOD;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Central SAM-BA monitor getdata function using the board LEDs
|
||||
*/
|
||||
static uint32_t sam_ba_getdata(t_monitor_if* pInterface, void* data, uint32_t length)
|
||||
{
|
||||
uint32_t result ;
|
||||
|
||||
result=pInterface->getdata(data, length);
|
||||
|
||||
if (result)
|
||||
{
|
||||
LEDRX_on();
|
||||
rxLEDPulse = TX_RX_LED_PULSE_PERIOD;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Central SAM-BA monitor putdata function using the board LEDs
|
||||
*/
|
||||
static uint32_t sam_ba_putdata_xmd(t_monitor_if* pInterface, void const* data, uint32_t length)
|
||||
{
|
||||
uint32_t result ;
|
||||
|
||||
result=pInterface->putdata_xmd(data, length);
|
||||
|
||||
LEDTX_on();
|
||||
txLEDPulse = TX_RX_LED_PULSE_PERIOD;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Central SAM-BA monitor getdata function using the board LEDs
|
||||
*/
|
||||
static uint32_t sam_ba_getdata_xmd(t_monitor_if* pInterface, void* data, uint32_t length)
|
||||
{
|
||||
uint32_t result ;
|
||||
|
||||
result=pInterface->getdata_xmd(data, length);
|
||||
|
||||
if (result)
|
||||
{
|
||||
LEDRX_on();
|
||||
rxLEDPulse = TX_RX_LED_PULSE_PERIOD;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief This function allows data emission by USART
|
||||
*
|
||||
* \param *data Data pointer
|
||||
* \param length Length of the data
|
||||
*/
|
||||
void sam_ba_putdata_term(uint8_t* data, uint32_t length)
|
||||
{
|
||||
uint8_t temp, buf[12], *data_ascii;
|
||||
uint32_t i, int_value;
|
||||
|
||||
if (b_terminal_mode)
|
||||
{
|
||||
if (length == 4)
|
||||
int_value = *(uint32_t *) data;
|
||||
else if (length == 2)
|
||||
int_value = *(uint16_t *) data;
|
||||
else
|
||||
int_value = *(uint8_t *) data;
|
||||
|
||||
data_ascii = buf + 2;
|
||||
data_ascii += length * 2 - 1;
|
||||
|
||||
for (i = 0; i < length * 2; i++)
|
||||
{
|
||||
temp = (uint8_t) (int_value & 0xf);
|
||||
|
||||
if (temp <= 0x9)
|
||||
*data_ascii = temp | 0x30;
|
||||
else
|
||||
*data_ascii = temp + 0x37;
|
||||
|
||||
int_value >>= 4;
|
||||
data_ascii--;
|
||||
}
|
||||
buf[0] = '0';
|
||||
buf[1] = 'x';
|
||||
buf[length * 2 + 2] = '\n';
|
||||
buf[length * 2 + 3] = '\r';
|
||||
sam_ba_putdata(ptr_monitor_if, buf, length * 2 + 4);
|
||||
}
|
||||
else
|
||||
sam_ba_putdata(ptr_monitor_if, data, length);
|
||||
return;
|
||||
}
|
||||
|
||||
volatile uint32_t sp;
|
||||
void call_applet(uint32_t address)
|
||||
{
|
||||
uint32_t app_start_address;
|
||||
|
||||
__disable_irq();
|
||||
|
||||
sp = __get_MSP();
|
||||
|
||||
/* Rebase the Stack Pointer */
|
||||
__set_MSP(*(uint32_t *) address);
|
||||
|
||||
/* Load the Reset Handler address of the application */
|
||||
app_start_address = *(uint32_t *)(address + 4);
|
||||
|
||||
/* Jump to application Reset Handler in the application */
|
||||
asm("bx %0"::"r"(app_start_address));
|
||||
}
|
||||
|
||||
uint32_t current_number;
|
||||
uint32_t i, length;
|
||||
uint8_t command, *ptr_data, *ptr, data[SIZEBUFMAX];
|
||||
uint8_t j;
|
||||
uint32_t u32tmp;
|
||||
|
||||
uint32_t PAGE_SIZE, PAGES, MAX_FLASH;
|
||||
|
||||
// Prints a 32-bit integer in hex.
|
||||
static void put_uint32(uint32_t n)
|
||||
{
|
||||
char buff[8];
|
||||
int i;
|
||||
for (i=0; i<8; i++)
|
||||
{
|
||||
int d = n & 0XF;
|
||||
n = (n >> 4);
|
||||
|
||||
buff[7-i] = d > 9 ? 'A' + d - 10 : '0' + d;
|
||||
}
|
||||
sam_ba_putdata( ptr_monitor_if, buff, 8);
|
||||
}
|
||||
|
||||
static void sam_ba_monitor_loop(void)
|
||||
{
|
||||
length = sam_ba_getdata(ptr_monitor_if, data, SIZEBUFMAX);
|
||||
ptr = data;
|
||||
|
||||
for (i = 0; i < length; i++, ptr++)
|
||||
{
|
||||
if (*ptr == 0xff) continue;
|
||||
|
||||
if (*ptr == '#')
|
||||
{
|
||||
if (b_terminal_mode)
|
||||
{
|
||||
sam_ba_putdata(ptr_monitor_if, "\n\r", 2);
|
||||
}
|
||||
if (command == 'S')
|
||||
{
|
||||
//Check if some data are remaining in the "data" buffer
|
||||
if(length>i)
|
||||
{
|
||||
//Move current indexes to next avail data (currently ptr points to "#")
|
||||
ptr++;
|
||||
i++;
|
||||
|
||||
//We need to add first the remaining data of the current buffer already read from usb
|
||||
//read a maximum of "current_number" bytes
|
||||
if ((length-i) < current_number)
|
||||
{
|
||||
u32tmp=(length-i);
|
||||
}
|
||||
else
|
||||
{
|
||||
u32tmp=current_number;
|
||||
}
|
||||
|
||||
memcpy(ptr_data, ptr, u32tmp);
|
||||
i += u32tmp;
|
||||
ptr += u32tmp;
|
||||
j = u32tmp;
|
||||
}
|
||||
//update i with the data read from the buffer
|
||||
i--;
|
||||
ptr--;
|
||||
//Do we expect more data ?
|
||||
if(j<current_number)
|
||||
sam_ba_getdata_xmd(ptr_monitor_if, ptr_data, current_number-j);
|
||||
|
||||
__asm("nop");
|
||||
}
|
||||
else if (command == 'R')
|
||||
{
|
||||
sam_ba_putdata_xmd(ptr_monitor_if, ptr_data, current_number);
|
||||
}
|
||||
else if (command == 'O')
|
||||
{
|
||||
*ptr_data = (char) current_number;
|
||||
}
|
||||
else if (command == 'H')
|
||||
{
|
||||
*((uint16_t *) ptr_data) = (uint16_t) current_number;
|
||||
}
|
||||
else if (command == 'W')
|
||||
{
|
||||
*((int *) ptr_data) = current_number;
|
||||
}
|
||||
else if (command == 'o')
|
||||
{
|
||||
sam_ba_putdata_term(ptr_data, 1);
|
||||
}
|
||||
else if (command == 'h')
|
||||
{
|
||||
current_number = *((uint16_t *) ptr_data);
|
||||
sam_ba_putdata_term((uint8_t*) ¤t_number, 2);
|
||||
}
|
||||
else if (command == 'w')
|
||||
{
|
||||
current_number = *((uint32_t *) ptr_data);
|
||||
sam_ba_putdata_term((uint8_t*) ¤t_number, 4);
|
||||
}
|
||||
else if (command == 'G')
|
||||
{
|
||||
call_applet(current_number);
|
||||
/* Rebase the Stack Pointer */
|
||||
__set_MSP(sp);
|
||||
__enable_irq();
|
||||
if (b_sam_ba_interface_usart) {
|
||||
ptr_monitor_if->put_c(0x6);
|
||||
}
|
||||
}
|
||||
else if (command == 'T')
|
||||
{
|
||||
b_terminal_mode = 1;
|
||||
sam_ba_putdata(ptr_monitor_if, "\n\r", 2);
|
||||
}
|
||||
else if (command == 'N')
|
||||
{
|
||||
if (b_terminal_mode == 0)
|
||||
{
|
||||
sam_ba_putdata( ptr_monitor_if, "\n\r", 2);
|
||||
}
|
||||
b_terminal_mode = 0;
|
||||
}
|
||||
else if (command == 'V')
|
||||
{
|
||||
sam_ba_putdata( ptr_monitor_if, "v", 1);
|
||||
sam_ba_putdata( ptr_monitor_if, (uint8_t *) RomBOOT_Version, strlen(RomBOOT_Version));
|
||||
sam_ba_putdata( ptr_monitor_if, " ", 1);
|
||||
sam_ba_putdata( ptr_monitor_if, (uint8_t *) RomBOOT_ExtendedCapabilities, strlen(RomBOOT_ExtendedCapabilities));
|
||||
sam_ba_putdata( ptr_monitor_if, " ", 1);
|
||||
ptr = (uint8_t*) &(__DATE__);
|
||||
i = 0;
|
||||
while (*ptr++ != '\0')
|
||||
i++;
|
||||
sam_ba_putdata( ptr_monitor_if, (uint8_t *) &(__DATE__), i);
|
||||
sam_ba_putdata( ptr_monitor_if, " ", 1);
|
||||
i = 0;
|
||||
ptr = (uint8_t*) &(__TIME__);
|
||||
while (*ptr++ != '\0')
|
||||
i++;
|
||||
sam_ba_putdata( ptr_monitor_if, (uint8_t *) &(__TIME__), i);
|
||||
sam_ba_putdata( ptr_monitor_if, "\n\r", 2);
|
||||
}
|
||||
else if (command == 'X')
|
||||
{
|
||||
// Syntax: X[ADDR]#
|
||||
// Erase the flash memory starting from ADDR to the end of flash.
|
||||
|
||||
//block size 16 pages
|
||||
|
||||
uint32_t dst_addr = current_number; // starting address
|
||||
|
||||
while (dst_addr < MAX_FLASH)
|
||||
{
|
||||
while (NVMCTRL->STATUS.bit.READY == 0);
|
||||
// Execute "EB" Erase Block
|
||||
NVMCTRL->ADDR.reg = dst_addr;
|
||||
NVMCTRL->CTRLB.reg = NVMCTRL_CTRLB_CMDEX_KEY | NVMCTRL_CTRLB_CMD_EB;
|
||||
while (NVMCTRL->STATUS.bit.READY == 0);
|
||||
|
||||
dst_addr += PAGE_SIZE * 16; // Skip a block
|
||||
}
|
||||
|
||||
// Notify command completed
|
||||
sam_ba_putdata( ptr_monitor_if, "X\n\r", 3);
|
||||
}
|
||||
else if (command == 'Y')
|
||||
{
|
||||
// This command writes the content of a buffer in SRAM into flash memory.
|
||||
|
||||
// Syntax: Y[ADDR],0#
|
||||
// Set the starting address of the SRAM buffer.
|
||||
|
||||
// Syntax: Y[ROM_ADDR],[SIZE]#
|
||||
// Write the first SIZE bytes from the SRAM buffer (previously set) into
|
||||
// flash memory starting from address ROM_ADDR
|
||||
|
||||
static uint32_t *src_buff_addr = NULL;
|
||||
|
||||
if (current_number == 0)
|
||||
{
|
||||
// Set buffer address
|
||||
src_buff_addr = (uint32_t*)ptr_data;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Write to flash
|
||||
uint32_t size = current_number/4;
|
||||
uint32_t *src_addr = src_buff_addr;
|
||||
uint32_t *dst_addr = (uint32_t*)ptr_data;
|
||||
|
||||
// Set automatic page write
|
||||
NVMCTRL->CTRLA.reg |= NVMCTRL_CTRLA_WMODE(NVMCTRL_CTRLA_WMODE_AP);
|
||||
|
||||
// Do writes in pages
|
||||
while (size)
|
||||
{
|
||||
// Execute "PBC" Page Buffer Clear
|
||||
NVMCTRL->CTRLB.reg = NVMCTRL_CTRLB_CMDEX_KEY | NVMCTRL_CTRLB_CMD_PBC;
|
||||
while (NVMCTRL->STATUS.bit.READY == 0)
|
||||
;
|
||||
|
||||
// Fill page buffer
|
||||
uint32_t i;
|
||||
for (i=0; i<(PAGE_SIZE/4) && i<size; i++)
|
||||
{
|
||||
dst_addr[i] = src_addr[i];
|
||||
}
|
||||
|
||||
// Execute "WP" Write Page
|
||||
NVMCTRL->ADDR.reg = ((uint32_t)dst_addr);
|
||||
NVMCTRL->CTRLB.reg = NVMCTRL_CTRLB_CMDEX_KEY | NVMCTRL_CTRLB_CMD_WP;
|
||||
while (NVMCTRL->STATUS.bit.READY == 0)
|
||||
;
|
||||
|
||||
// Advance to next page
|
||||
dst_addr += i;
|
||||
src_addr += i;
|
||||
size -= i;
|
||||
}
|
||||
}
|
||||
|
||||
// Notify command completed
|
||||
sam_ba_putdata( ptr_monitor_if, "Y\n\r", 3);
|
||||
}
|
||||
else if (command == 'Z')
|
||||
{
|
||||
// This command calculate CRC for a given area of memory.
|
||||
// It's useful to quickly check if a transfer has been done
|
||||
// successfully.
|
||||
|
||||
// Syntax: Z[START_ADDR],[SIZE]#
|
||||
// Returns: Z[CRC]#
|
||||
|
||||
uint8_t *data = (uint8_t *)ptr_data;
|
||||
uint32_t size = current_number;
|
||||
uint16_t crc = 0;
|
||||
uint32_t i = 0;
|
||||
for (i=0; i<size; i++)
|
||||
crc = serial_add_crc(*data++, crc);
|
||||
|
||||
// Send response
|
||||
sam_ba_putdata( ptr_monitor_if, "Z", 1);
|
||||
put_uint32(crc);
|
||||
sam_ba_putdata( ptr_monitor_if, "#\n\r", 3);
|
||||
}
|
||||
|
||||
command = 'z';
|
||||
current_number = 0;
|
||||
|
||||
if (b_terminal_mode)
|
||||
{
|
||||
sam_ba_putdata( ptr_monitor_if, ">", 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (('0' <= *ptr) && (*ptr <= '9'))
|
||||
{
|
||||
current_number = (current_number << 4) | (*ptr - '0');
|
||||
}
|
||||
else if (('A' <= *ptr) && (*ptr <= 'F'))
|
||||
{
|
||||
current_number = (current_number << 4) | (*ptr - 'A' + 0xa);
|
||||
}
|
||||
else if (('a' <= *ptr) && (*ptr <= 'f'))
|
||||
{
|
||||
current_number = (current_number << 4) | (*ptr - 'a' + 0xa);
|
||||
}
|
||||
else if (*ptr == ',')
|
||||
{
|
||||
ptr_data = (uint8_t *) current_number;
|
||||
current_number = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
command = *ptr;
|
||||
current_number = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sam_ba_monitor_sys_tick(void)
|
||||
{
|
||||
/* Check whether the TX or RX LED one-shot period has elapsed. if so, turn off the LED */
|
||||
if (txLEDPulse && !(--txLEDPulse))
|
||||
LEDTX_off();
|
||||
if (rxLEDPulse && !(--rxLEDPulse))
|
||||
LEDRX_off();
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief This function starts the SAM-BA monitor.
|
||||
*/
|
||||
void sam_ba_monitor_run(void)
|
||||
{
|
||||
uint32_t pageSizes[] = { 8, 16, 32, 64, 128, 256, 512, 1024 };
|
||||
PAGE_SIZE = pageSizes[NVMCTRL->PARAM.bit.PSZ];
|
||||
PAGES = NVMCTRL->PARAM.bit.NVMP;
|
||||
MAX_FLASH = PAGE_SIZE * PAGES;
|
||||
|
||||
ptr_data = NULL;
|
||||
command = 'z';
|
||||
while (1)
|
||||
{
|
||||
sam_ba_monitor_loop();
|
||||
}
|
||||
}
|
||||
72
bootloaders/metroM4/sam_ba_monitor.h
Normal file
72
bootloaders/metroM4/sam_ba_monitor.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _MONITOR_SAM_BA_H_
|
||||
#define _MONITOR_SAM_BA_H_
|
||||
|
||||
#define SAM_BA_VERSION "2.0"
|
||||
|
||||
/* Enable the interfaces to save code size */
|
||||
#define SAM_BA_BOTH_INTERFACES 0
|
||||
#define SAM_BA_UART_ONLY 1
|
||||
#define SAM_BA_USBCDC_ONLY 2
|
||||
|
||||
#ifndef SAM_BA_INTERFACE
|
||||
#define SAM_BA_INTERFACE SAM_BA_BOTH_INTERFACES
|
||||
#endif
|
||||
|
||||
/* Selects USB as the communication interface of the monitor */
|
||||
#define SAM_BA_INTERFACE_USBCDC 0
|
||||
/* Selects USART as the communication interface of the monitor */
|
||||
#define SAM_BA_INTERFACE_USART 1
|
||||
|
||||
/* Selects USB as the communication interface of the monitor */
|
||||
#define SIZEBUFMAX 64
|
||||
|
||||
/**
|
||||
* \brief Initialize the monitor
|
||||
*
|
||||
*/
|
||||
void sam_ba_monitor_init(uint8_t com_interface);
|
||||
|
||||
/**
|
||||
* \brief System tick function of the SAM-BA Monitor
|
||||
*
|
||||
*/
|
||||
void sam_ba_monitor_sys_tick(void);
|
||||
|
||||
/**
|
||||
* \brief Main function of the SAM-BA Monitor
|
||||
*
|
||||
*/
|
||||
void sam_ba_monitor_run(void);
|
||||
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
void sam_ba_putdata_term(uint8_t* data, uint32_t length);
|
||||
|
||||
/**
|
||||
* \brief
|
||||
*
|
||||
*/
|
||||
void call_applet(uint32_t address);
|
||||
|
||||
#endif // _MONITOR_SAM_BA_H_
|
||||
529
bootloaders/metroM4/sam_ba_serial.c
Normal file
529
bootloaders/metroM4/sam_ba_serial.c
Normal file
|
|
@ -0,0 +1,529 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <sam.h>
|
||||
#include "board_definitions.h"
|
||||
#include "sam_ba_serial.h"
|
||||
#include "board_driver_serial.h"
|
||||
|
||||
/* Local reference to current Usart instance in use with this driver */
|
||||
//struct usart_module usart_sam_ba;
|
||||
|
||||
/* Variable to let the main task select the appropriate communication interface */
|
||||
volatile uint8_t b_sharp_received;
|
||||
|
||||
/* RX and TX Buffers + rw pointers for each buffer */
|
||||
volatile uint8_t buffer_rx_usart[USART_BUFFER_SIZE];
|
||||
|
||||
volatile uint8_t idx_rx_read;
|
||||
volatile uint8_t idx_rx_write;
|
||||
|
||||
volatile uint8_t buffer_tx_usart[USART_BUFFER_SIZE];
|
||||
|
||||
volatile uint8_t idx_tx_read;
|
||||
volatile uint8_t idx_tx_write;
|
||||
|
||||
/* Test for timeout in AT91F_GetChar */
|
||||
uint8_t error_timeout;
|
||||
uint16_t size_of_data;
|
||||
uint8_t mode_of_transfer;
|
||||
|
||||
#define BOOT_USART_PAD(n) BOOT_USART_PAD##n
|
||||
|
||||
#define GPIO_PIN(n) (((n)&0x1Fu) << 0)
|
||||
#define GPIO_PORT(n) ((n) >> 5)
|
||||
|
||||
/**
|
||||
* \brief Open the given USART
|
||||
*/
|
||||
void serial_open(void)
|
||||
{
|
||||
uint32_t port;
|
||||
uint32_t pin;
|
||||
|
||||
GCLK->PCHCTRL[BOOT_GCLK_ID_CORE].reg = GCLK_PCHCTRL_GEN_GCLK0_Val | (1 << GCLK_PCHCTRL_CHEN_Pos);
|
||||
GCLK->PCHCTRL[BOOT_GCLK_ID_SLOW].reg = GCLK_PCHCTRL_GEN_GCLK3_Val | (1 << GCLK_PCHCTRL_CHEN_Pos);
|
||||
|
||||
MCLK->BOOK_USART_MASK.reg |= BOOT_USART_BUS_CLOCK_INDEX ;
|
||||
|
||||
/* Configure the port pins for SERCOM_USART */
|
||||
if (BOOT_USART_PAD0 != PINMUX_UNUSED)
|
||||
{
|
||||
/* Mask 6th bit in pin number to check whether it is greater than 32 i.e., PORTB pin */
|
||||
port = (BOOT_USART_PAD0 & 0x200000) >> 21;
|
||||
pin = (BOOT_USART_PAD0 >> 16);
|
||||
PORT->Group[port].PINCFG[(pin - (port*32))].bit.PMUXEN = 1;
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg &= ~(0xF << (4 * (pin & 0x01u)));
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg |= (BOOT_USART_PAD0 & 0xFF) << (4 * (pin & 0x01u));
|
||||
}
|
||||
|
||||
if (BOOT_USART_PAD1 != PINMUX_UNUSED)
|
||||
{
|
||||
/* Mask 6th bit in pin number to check whether it is greater than 32 i.e., PORTB pin */
|
||||
port = (BOOT_USART_PAD1 & 0x200000) >> 21;
|
||||
pin = BOOT_USART_PAD1 >> 16;
|
||||
PORT->Group[port].PINCFG[(pin - (port*32))].bit.PMUXEN = 1;
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg &= ~(0xF << (4 * (pin & 0x01u)));
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg |= (BOOT_USART_PAD1 & 0xFF) << (4 * (pin & 0x01u));
|
||||
}
|
||||
|
||||
if (BOOT_USART_PAD2 != PINMUX_UNUSED)
|
||||
{
|
||||
/* Mask 6th bit in pin number to check whether it is greater than 32 i.e., PORTB pin */
|
||||
port = (BOOT_USART_PAD2 & 0x200000) >> 21;
|
||||
pin = BOOT_USART_PAD2 >> 16;
|
||||
PORT->Group[port].PINCFG[(pin - (port*32))].bit.PMUXEN = 1;
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg &= ~(0xF << (4 * (pin & 0x01u)));
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg |= (BOOT_USART_PAD2 & 0xFF) << (4 * (pin & 0x01u));
|
||||
}
|
||||
|
||||
if (BOOT_USART_PAD3 != PINMUX_UNUSED)
|
||||
{
|
||||
/* Mask 6th bit in pin number to check whether it is greater than 32 i.e., PORTB pin */
|
||||
port = (BOOT_USART_PAD3 & 0x200000) >> 21;
|
||||
pin = BOOT_USART_PAD3 >> 16;
|
||||
PORT->Group[port].PINCFG[(pin - (port*32))].bit.PMUXEN = 1;
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg &= ~(0xF << (4 * (pin & 0x01u)));
|
||||
PORT->Group[port].PMUX[(pin - (port*32))/2].reg |= (BOOT_USART_PAD3 & 0xFF) << (4 * (pin & 0x01u));
|
||||
}
|
||||
|
||||
/* Baud rate 115200 - clock 48MHz -> BAUD value-63018 */
|
||||
uart_basic_init(BOOT_USART_MODULE, 63018, BOOT_USART_PAD_SETTINGS);
|
||||
|
||||
//Initialize flag
|
||||
b_sharp_received = false;
|
||||
idx_rx_read = 0;
|
||||
idx_rx_write = 0;
|
||||
idx_tx_read = 0;
|
||||
idx_tx_write = 0;
|
||||
|
||||
error_timeout = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Close communication line
|
||||
*/
|
||||
void serial_close(void)
|
||||
{
|
||||
uart_disable(BOOT_USART_MODULE);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Puts a byte on usart line
|
||||
* The type int is used to support printf redirection from compiler LIB.
|
||||
*
|
||||
* \param value Value to put
|
||||
*
|
||||
* \return \c 1 if function was successfully done, otherwise \c 0.
|
||||
*/
|
||||
int serial_putc(int value)
|
||||
{
|
||||
uart_write_byte(BOOT_USART_MODULE, (uint8_t)value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int serial_getc(void)
|
||||
{
|
||||
uint16_t retval;
|
||||
//Wait until input buffer is filled
|
||||
while(!(serial_is_rx_ready()));
|
||||
retval = (uint16_t)uart_read_byte(BOOT_USART_MODULE);
|
||||
//usart_read_wait(&usart_sam_ba, &retval);
|
||||
return (int)retval;
|
||||
|
||||
}
|
||||
|
||||
int serial_sharp_received(void)
|
||||
{
|
||||
if (serial_is_rx_ready())
|
||||
{
|
||||
if (serial_getc() == SHARP_CHARACTER)
|
||||
return (true);
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
||||
bool serial_is_rx_ready(void)
|
||||
{
|
||||
return (BOOT_USART_MODULE->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_RXC);
|
||||
}
|
||||
|
||||
int serial_readc(void)
|
||||
{
|
||||
int retval;
|
||||
retval = buffer_rx_usart[idx_rx_read];
|
||||
idx_rx_read = (idx_rx_read + 1) & (USART_BUFFER_SIZE - 1);
|
||||
return (retval);
|
||||
}
|
||||
|
||||
//Send given data (polling)
|
||||
uint32_t serial_putdata(void const* data, uint32_t length)
|
||||
{
|
||||
uint32_t i;
|
||||
uint8_t* ptrdata;
|
||||
ptrdata = (uint8_t*) data;
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
serial_putc(*ptrdata);
|
||||
ptrdata++;
|
||||
}
|
||||
return (i);
|
||||
}
|
||||
|
||||
//Get data from comm. device
|
||||
uint32_t serial_getdata(void* data, uint32_t length)
|
||||
{
|
||||
uint8_t* ptrdata;
|
||||
ptrdata = (uint8_t*) data;
|
||||
*ptrdata = serial_getc();
|
||||
return (1);
|
||||
}
|
||||
|
||||
static const uint16_t crc16Table[256]=
|
||||
{
|
||||
0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
|
||||
0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
|
||||
0x1231,0x0210,0x3273,0x2252,0x52b5,0x4294,0x72f7,0x62d6,
|
||||
0x9339,0x8318,0xb37b,0xa35a,0xd3bd,0xc39c,0xf3ff,0xe3de,
|
||||
0x2462,0x3443,0x0420,0x1401,0x64e6,0x74c7,0x44a4,0x5485,
|
||||
0xa56a,0xb54b,0x8528,0x9509,0xe5ee,0xf5cf,0xc5ac,0xd58d,
|
||||
0x3653,0x2672,0x1611,0x0630,0x76d7,0x66f6,0x5695,0x46b4,
|
||||
0xb75b,0xa77a,0x9719,0x8738,0xf7df,0xe7fe,0xd79d,0xc7bc,
|
||||
0x48c4,0x58e5,0x6886,0x78a7,0x0840,0x1861,0x2802,0x3823,
|
||||
0xc9cc,0xd9ed,0xe98e,0xf9af,0x8948,0x9969,0xa90a,0xb92b,
|
||||
0x5af5,0x4ad4,0x7ab7,0x6a96,0x1a71,0x0a50,0x3a33,0x2a12,
|
||||
0xdbfd,0xcbdc,0xfbbf,0xeb9e,0x9b79,0x8b58,0xbb3b,0xab1a,
|
||||
0x6ca6,0x7c87,0x4ce4,0x5cc5,0x2c22,0x3c03,0x0c60,0x1c41,
|
||||
0xedae,0xfd8f,0xcdec,0xddcd,0xad2a,0xbd0b,0x8d68,0x9d49,
|
||||
0x7e97,0x6eb6,0x5ed5,0x4ef4,0x3e13,0x2e32,0x1e51,0x0e70,
|
||||
0xff9f,0xefbe,0xdfdd,0xcffc,0xbf1b,0xaf3a,0x9f59,0x8f78,
|
||||
0x9188,0x81a9,0xb1ca,0xa1eb,0xd10c,0xc12d,0xf14e,0xe16f,
|
||||
0x1080,0x00a1,0x30c2,0x20e3,0x5004,0x4025,0x7046,0x6067,
|
||||
0x83b9,0x9398,0xa3fb,0xb3da,0xc33d,0xd31c,0xe37f,0xf35e,
|
||||
0x02b1,0x1290,0x22f3,0x32d2,0x4235,0x5214,0x6277,0x7256,
|
||||
0xb5ea,0xa5cb,0x95a8,0x8589,0xf56e,0xe54f,0xd52c,0xc50d,
|
||||
0x34e2,0x24c3,0x14a0,0x0481,0x7466,0x6447,0x5424,0x4405,
|
||||
0xa7db,0xb7fa,0x8799,0x97b8,0xe75f,0xf77e,0xc71d,0xd73c,
|
||||
0x26d3,0x36f2,0x0691,0x16b0,0x6657,0x7676,0x4615,0x5634,
|
||||
0xd94c,0xc96d,0xf90e,0xe92f,0x99c8,0x89e9,0xb98a,0xa9ab,
|
||||
0x5844,0x4865,0x7806,0x6827,0x18c0,0x08e1,0x3882,0x28a3,
|
||||
0xcb7d,0xdb5c,0xeb3f,0xfb1e,0x8bf9,0x9bd8,0xabbb,0xbb9a,
|
||||
0x4a75,0x5a54,0x6a37,0x7a16,0x0af1,0x1ad0,0x2ab3,0x3a92,
|
||||
0xfd2e,0xed0f,0xdd6c,0xcd4d,0xbdaa,0xad8b,0x9de8,0x8dc9,
|
||||
0x7c26,0x6c07,0x5c64,0x4c45,0x3ca2,0x2c83,0x1ce0,0x0cc1,
|
||||
0xef1f,0xff3e,0xcf5d,0xdf7c,0xaf9b,0xbfba,0x8fd9,0x9ff8,
|
||||
0x6e17,0x7e36,0x4e55,0x5e74,0x2e93,0x3eb2,0x0ed1,0x1ef0
|
||||
};
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \brief Compute the CRC
|
||||
//*----------------------------------------------------------------------------
|
||||
unsigned short serial_add_crc(char ptr, unsigned short crc)
|
||||
{
|
||||
return (crc << 8) ^ crc16Table[((crc >> 8) ^ ptr) & 0xff];
|
||||
}
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \brief
|
||||
//*----------------------------------------------------------------------------
|
||||
static uint16_t getbytes(uint8_t *ptr_data, uint16_t length)
|
||||
{
|
||||
uint16_t crc = 0;
|
||||
uint16_t cpt;
|
||||
uint8_t c;
|
||||
|
||||
for (cpt = 0; cpt < length; ++cpt)
|
||||
{
|
||||
c = serial_getc();
|
||||
if (error_timeout)
|
||||
return 1;
|
||||
crc = serial_add_crc(c, crc);
|
||||
//crc = (crc << 8) ^ xcrc16tab[(crc>>8) ^ c];
|
||||
if (size_of_data || mode_of_transfer)
|
||||
{
|
||||
*ptr_data++ = c;
|
||||
if (length == PKTLEN_128)
|
||||
size_of_data--;
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \brief Used by Xup to send packets.
|
||||
//*----------------------------------------------------------------------------
|
||||
static int putPacket(uint8_t *tmppkt, uint8_t sno)
|
||||
{
|
||||
uint32_t i;
|
||||
uint16_t chksm;
|
||||
uint8_t data;
|
||||
|
||||
chksm = 0;
|
||||
|
||||
serial_putc(SOH);
|
||||
|
||||
serial_putc(sno);
|
||||
serial_putc((uint8_t) ~(sno));
|
||||
|
||||
for (i = 0; i < PKTLEN_128; i++)
|
||||
{
|
||||
if (size_of_data || mode_of_transfer)
|
||||
{
|
||||
data = *tmppkt++;
|
||||
size_of_data--;
|
||||
}
|
||||
else
|
||||
data = 0x00;
|
||||
|
||||
serial_putc(data);
|
||||
|
||||
//chksm = (chksm<<8) ^ xcrc16tab[(chksm>>8)^data];
|
||||
chksm = serial_add_crc(data, chksm);
|
||||
}
|
||||
|
||||
/* An "endian independent way to extract the CRC bytes. */
|
||||
serial_putc((uint8_t) (chksm >> 8));
|
||||
serial_putc((uint8_t) chksm);
|
||||
|
||||
return (serial_getc()); /* Wait for ack */
|
||||
}
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \brief Called when a transfer from target to host is being made (considered
|
||||
//* an upload).
|
||||
//*----------------------------------------------------------------------------
|
||||
//Send given data (polling) using xmodem (if necessary)
|
||||
uint32_t serial_putdata_xmd(void const* data, uint32_t length)
|
||||
{
|
||||
uint8_t c, sno = 1;
|
||||
uint8_t done;
|
||||
uint8_t * ptr_data = (uint8_t *) data;
|
||||
error_timeout = 0;
|
||||
if (!length)
|
||||
mode_of_transfer = 1;
|
||||
else
|
||||
{
|
||||
size_of_data = length;
|
||||
mode_of_transfer = 0;
|
||||
}
|
||||
|
||||
if (length & (PKTLEN_128 - 1))
|
||||
{
|
||||
length += PKTLEN_128;
|
||||
length &= ~(PKTLEN_128 - 1);
|
||||
}
|
||||
|
||||
/* Startup synchronization... */
|
||||
/* Wait to receive a NAK or 'C' from receiver. */
|
||||
done = 0;
|
||||
while (!done) {
|
||||
c = (uint8_t) serial_getc();
|
||||
if (error_timeout)
|
||||
{ // Test for timeout in serial_getc
|
||||
error_timeout = 0;
|
||||
c = (uint8_t) serial_getc();
|
||||
if (error_timeout)
|
||||
{
|
||||
error_timeout = 0;
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
switch (c)
|
||||
{
|
||||
case NAK:
|
||||
done = 1;
|
||||
// ("CSM");
|
||||
break;
|
||||
case 'C':
|
||||
done = 1;
|
||||
// ("CRC");
|
||||
break;
|
||||
case 'q': /* ELS addition, not part of XMODEM spec. */
|
||||
return (0);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
done = 0;
|
||||
sno = 1;
|
||||
while (!done)
|
||||
{
|
||||
c = (uint8_t) putPacket((uint8_t *) ptr_data, sno);
|
||||
if (error_timeout)
|
||||
{ // Test for timeout in serial_getc
|
||||
error_timeout = 0;
|
||||
return (0);
|
||||
}
|
||||
switch (c)
|
||||
{
|
||||
case ACK:
|
||||
++sno;
|
||||
length -= PKTLEN_128;
|
||||
ptr_data += PKTLEN_128;
|
||||
// ("A");
|
||||
break;
|
||||
|
||||
case NAK:
|
||||
// ("N");
|
||||
break;
|
||||
|
||||
case CAN:
|
||||
case EOT:
|
||||
default:
|
||||
done = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!length)
|
||||
{
|
||||
serial_putc(EOT);
|
||||
serial_getc(); /* Flush the ACK */
|
||||
break;
|
||||
}
|
||||
// ("!");
|
||||
}
|
||||
|
||||
mode_of_transfer = 0;
|
||||
// ("Xup_done.");
|
||||
return (1);
|
||||
// return(0);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Used by serial_getdata_xmd to retrieve packets.
|
||||
*/
|
||||
static uint8_t getPacket(uint8_t *ptr_data, uint8_t sno)
|
||||
{
|
||||
uint8_t seq[2];
|
||||
uint16_t crc, xcrc;
|
||||
|
||||
getbytes(seq, 2);
|
||||
xcrc = getbytes(ptr_data, PKTLEN_128);
|
||||
if (error_timeout)
|
||||
return (false);
|
||||
|
||||
/* An "endian independent way to combine the CRC bytes. */
|
||||
crc = (uint16_t) serial_getc() << 8;
|
||||
crc += (uint16_t) serial_getc();
|
||||
|
||||
if (error_timeout == 1)
|
||||
return (false);
|
||||
|
||||
if ((crc != xcrc) || (seq[0] != sno) || (seq[1] != (uint8_t) (~sno)))
|
||||
{
|
||||
serial_putc(CAN);
|
||||
return (false);
|
||||
}
|
||||
|
||||
serial_putc(ACK);
|
||||
return (true);
|
||||
}
|
||||
|
||||
//*----------------------------------------------------------------------------
|
||||
//* \brief Called when a transfer from host to target is being made (considered
|
||||
//* an download).
|
||||
//*----------------------------------------------------------------------------
|
||||
//Get data from comm. device using xmodem (if necessary)
|
||||
uint32_t serial_getdata_xmd(void* data, uint32_t length)
|
||||
{
|
||||
uint32_t timeout;
|
||||
char c;
|
||||
uint8_t * ptr_data = (uint8_t *) data;
|
||||
uint32_t b_run, nbr_of_timeout = 100;
|
||||
uint8_t sno = 0x01;
|
||||
uint32_t data_transfered = 0;
|
||||
|
||||
//Copied from legacy source code ... might need some tweaking
|
||||
uint32_t loops_per_second = CPU_FREQUENCY/60;
|
||||
|
||||
error_timeout = 0;
|
||||
|
||||
if (length == 0)
|
||||
mode_of_transfer = 1;
|
||||
else
|
||||
{
|
||||
size_of_data = length;
|
||||
mode_of_transfer = 0;
|
||||
}
|
||||
|
||||
/* Startup synchronization... */
|
||||
/* Continuously send NAK or 'C' until sender responds. */
|
||||
// ("Xdown");
|
||||
while (1)
|
||||
{
|
||||
serial_putc('C');
|
||||
timeout = loops_per_second;
|
||||
while (!(serial_is_rx_ready()) && timeout)
|
||||
timeout--;
|
||||
if (timeout)
|
||||
break;
|
||||
|
||||
if (!(--nbr_of_timeout))
|
||||
return (0);
|
||||
// return -1;
|
||||
}
|
||||
|
||||
b_run = true;
|
||||
// ("Got response");
|
||||
while (b_run != false)
|
||||
{
|
||||
c = (char) serial_getc();
|
||||
if (error_timeout)
|
||||
{ // Test for timeout in serial_getc
|
||||
error_timeout = 0;
|
||||
return (0);
|
||||
// return (-1);
|
||||
}
|
||||
switch (c)
|
||||
{
|
||||
case SOH: /* 128-byte incoming packet */
|
||||
// ("O");
|
||||
b_run = getPacket(ptr_data, sno);
|
||||
if (error_timeout)
|
||||
{ // Test for timeout in serial_getc
|
||||
error_timeout = 0;
|
||||
return (0);
|
||||
// return (-1);
|
||||
}
|
||||
if (b_run == true)
|
||||
{
|
||||
++sno;
|
||||
ptr_data += PKTLEN_128;
|
||||
data_transfered += PKTLEN_128;
|
||||
}
|
||||
break;
|
||||
case EOT: // ("E");
|
||||
serial_putc(ACK);
|
||||
b_run = false;
|
||||
break;
|
||||
case CAN: // ("C");
|
||||
case ESC: /* "X" User-invoked abort */
|
||||
default:
|
||||
b_run = false;
|
||||
break;
|
||||
}
|
||||
// ("!");
|
||||
}
|
||||
mode_of_transfer = 0;
|
||||
return (true);
|
||||
// return(b_run);
|
||||
}
|
||||
|
||||
143
bootloaders/metroM4/sam_ba_serial.h
Normal file
143
bootloaders/metroM4/sam_ba_serial.h
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef _SAM_BA_SERIAL_H_
|
||||
#define _SAM_BA_SERIAL_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
/* USART buffer size (must be a power of two) */
|
||||
#define USART_BUFFER_SIZE (128)
|
||||
|
||||
/* Define the default time-out value for USART. */
|
||||
#define USART_DEFAULT_TIMEOUT (1000)
|
||||
|
||||
/* Xmodem related defines */
|
||||
/* CRC16 polynomial */
|
||||
#define CRC16POLY (0x1021)
|
||||
|
||||
#define SHARP_CHARACTER '#'
|
||||
|
||||
/* X/Ymodem protocol: */
|
||||
#define SOH (0x01)
|
||||
//#define STX (0x02)
|
||||
#define EOT (0x04)
|
||||
#define ACK (0x06)
|
||||
#define NAK (0x15)
|
||||
#define CAN (0x18)
|
||||
#define ESC (0x1b)
|
||||
|
||||
#define PKTLEN_128 (128)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Open the given USART
|
||||
*/
|
||||
void serial_open(void);
|
||||
|
||||
/**
|
||||
* \brief Stops the USART
|
||||
*/
|
||||
void serial_close(void);
|
||||
|
||||
/**
|
||||
* \brief Puts a byte on usart line
|
||||
*
|
||||
* \param value Value to put
|
||||
*
|
||||
* \return \c 1 if function was successfully done, otherwise \c 0.
|
||||
*/
|
||||
int serial_putc(int value);
|
||||
|
||||
/**
|
||||
* \brief Waits and gets a value on usart line
|
||||
*
|
||||
* \return value read on usart line
|
||||
*/
|
||||
int serial_getc(void);
|
||||
|
||||
/**
|
||||
* \brief Returns true if the SAM-BA Uart received the sharp char
|
||||
*
|
||||
* \return Returns true if the SAM-BA Uart received the sharp char
|
||||
*/
|
||||
int serial_sharp_received(void);
|
||||
|
||||
/**
|
||||
* \brief This function checks if a character has been received on the usart line
|
||||
*
|
||||
* \return \c 1 if a byte is ready to be read.
|
||||
*/
|
||||
bool serial_is_rx_ready(void);
|
||||
|
||||
/**
|
||||
* \brief Gets a value on usart line
|
||||
*
|
||||
* \return value read on usart line
|
||||
*/
|
||||
int serial_readc(void);
|
||||
|
||||
/**
|
||||
* \brief Send buffer on usart line
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to send
|
||||
* \return number of data sent
|
||||
*/
|
||||
uint32_t serial_putdata(void const* data, uint32_t length); //Send given data (polling)
|
||||
|
||||
/**
|
||||
* \brief Gets data from usart line
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to get
|
||||
* \return value read on usart line
|
||||
*/
|
||||
uint32_t serial_getdata(void* data, uint32_t length); //Get data from comm. device
|
||||
|
||||
/**
|
||||
* \brief Send buffer on usart line using Xmodem protocol
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to send
|
||||
* \return number of data sent
|
||||
*/
|
||||
uint32_t serial_putdata_xmd(void const* data, uint32_t length); //Send given data (polling) using xmodem (if necessary)
|
||||
|
||||
/**
|
||||
* \brief Gets data from usart line using Xmodem protocol
|
||||
*
|
||||
* \param data pointer
|
||||
* \param number of data to get
|
||||
* \return value read on usart line
|
||||
*/
|
||||
uint32_t serial_getdata_xmd(void* data, uint32_t length); //Get data from comm. device using xmodem (if necessary)
|
||||
|
||||
/**
|
||||
* \brief Compute the CRC
|
||||
*
|
||||
* \param Char to add to CRC
|
||||
* \param Previous CRC
|
||||
* \return The new computed CRC
|
||||
*/
|
||||
unsigned short serial_add_crc(char c, unsigned short crc);
|
||||
|
||||
#endif // _SAM_BA_SERIAL_H_
|
||||
436
bootloaders/metroM4/sam_ba_usb.c
Normal file
436
bootloaders/metroM4/sam_ba_usb.c
Normal file
|
|
@ -0,0 +1,436 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include "board_definitions.h"
|
||||
#include "sam_ba_usb.h"
|
||||
#include "board_driver_usb.h"
|
||||
#include "sam_ba_cdc.h"
|
||||
|
||||
/* This data array will be copied into SRAM as its length is inferior to 64 bytes,
|
||||
* and so can stay in flash.
|
||||
*/
|
||||
static __attribute__((__aligned__(4)))
|
||||
const char devDescriptor[] =
|
||||
{
|
||||
/* Device descriptor */
|
||||
0x12, // bLength
|
||||
0x01, // bDescriptorType
|
||||
0x00, // bcdUSB L
|
||||
0x02, // bcdUSB H
|
||||
0x02, // bDeviceClass: CDC class code
|
||||
0x00, // bDeviceSubclass: CDC class sub code
|
||||
0x00, // bDeviceProtocol: CDC Device protocol
|
||||
0x40, // bMaxPacketSize0
|
||||
USB_VID_LOW, // idVendor L
|
||||
USB_VID_HIGH, // idVendor H
|
||||
USB_PID_LOW, // idProduct L
|
||||
USB_PID_HIGH, // idProduct H
|
||||
0x00, // bcdDevice L, here matching SAM-BA version
|
||||
0x02, // bcdDevice H
|
||||
STRING_INDEX_MANUFACTURER, // iManufacturer
|
||||
STRING_INDEX_PRODUCT, // iProduct
|
||||
0x00, // SerialNumber, should be based on product unique ID
|
||||
0x01 // bNumConfigs
|
||||
};
|
||||
|
||||
/* This data array will be consumed directly by USB_Write() and must be in SRAM.
|
||||
* We cannot send data from product internal flash.
|
||||
*/
|
||||
static __attribute__((__aligned__(4)))
|
||||
char cfgDescriptor[] =
|
||||
{
|
||||
/* ============== CONFIGURATION 1 =========== */
|
||||
/* Configuration 1 descriptor */
|
||||
0x09, // CbLength
|
||||
0x02, // CbDescriptorType
|
||||
0x43, // CwTotalLength 2 EP + Control
|
||||
0x00,
|
||||
0x02, // CbNumInterfaces
|
||||
0x01, // CbConfigurationValue
|
||||
0x00, // CiConfiguration
|
||||
0x80, // CbmAttributes Bus powered without remote wakeup: 0x80, Self powered without remote wakeup: 0xc0
|
||||
0x32, // CMaxPower, report using 100mA, enough for a bootloader
|
||||
|
||||
/* Communication Class Interface Descriptor Requirement */
|
||||
0x09, // bLength
|
||||
0x04, // bDescriptorType
|
||||
0x00, // bInterfaceNumber
|
||||
0x00, // bAlternateSetting
|
||||
0x01, // bNumEndpoints
|
||||
0x02, // bInterfaceClass
|
||||
0x02, // bInterfaceSubclass
|
||||
0x00, // bInterfaceProtocol
|
||||
0x00, // iInterface
|
||||
|
||||
/* Header Functional Descriptor */
|
||||
0x05, // bFunction Length
|
||||
0x24, // bDescriptor type: CS_INTERFACE
|
||||
0x00, // bDescriptor subtype: Header Func Desc
|
||||
0x10, // bcdCDC:1.1
|
||||
0x01,
|
||||
|
||||
/* ACM Functional Descriptor */
|
||||
0x04, // bFunctionLength
|
||||
0x24, // bDescriptor Type: CS_INTERFACE
|
||||
0x02, // bDescriptor Subtype: ACM Func Desc
|
||||
0x00, // bmCapabilities
|
||||
|
||||
/* Union Functional Descriptor */
|
||||
0x05, // bFunctionLength
|
||||
0x24, // bDescriptorType: CS_INTERFACE
|
||||
0x06, // bDescriptor Subtype: Union Func Desc
|
||||
0x00, // bMasterInterface: Communication Class Interface
|
||||
0x01, // bSlaveInterface0: Data Class Interface
|
||||
|
||||
/* Call Management Functional Descriptor */
|
||||
0x05, // bFunctionLength
|
||||
0x24, // bDescriptor Type: CS_INTERFACE
|
||||
0x01, // bDescriptor Subtype: Call Management Func Desc
|
||||
0x00, // bmCapabilities: D1 + D0
|
||||
0x01, // bDataInterface: Data Class Interface 1
|
||||
|
||||
/* Endpoint 1 descriptor */
|
||||
0x07, // bLength
|
||||
0x05, // bDescriptorType
|
||||
0x83, // bEndpointAddress, Endpoint 03 - IN
|
||||
0x03, // bmAttributes INT
|
||||
0x08, // wMaxPacketSize
|
||||
0x00,
|
||||
0xFF, // bInterval
|
||||
|
||||
/* Data Class Interface Descriptor Requirement */
|
||||
0x09, // bLength
|
||||
0x04, // bDescriptorType
|
||||
0x01, // bInterfaceNumber
|
||||
0x00, // bAlternateSetting
|
||||
0x02, // bNumEndpoints
|
||||
0x0A, // bInterfaceClass
|
||||
0x00, // bInterfaceSubclass
|
||||
0x00, // bInterfaceProtocol
|
||||
0x00, // iInterface
|
||||
|
||||
/* First alternate setting */
|
||||
/* Endpoint 1 descriptor */
|
||||
0x07, // bLength
|
||||
0x05, // bDescriptorType
|
||||
0x81, // bEndpointAddress, Endpoint 01 - IN
|
||||
0x02, // bmAttributes BULK
|
||||
USB_EP_IN_SIZE, // wMaxPacketSize
|
||||
0x00,
|
||||
0x00, // bInterval
|
||||
|
||||
/* Endpoint 2 descriptor */
|
||||
0x07, // bLength
|
||||
0x05, // bDescriptorType
|
||||
0x02, // bEndpointAddress, Endpoint 02 - OUT
|
||||
0x02, // bmAttributes BULK
|
||||
USB_EP_OUT_SIZE, // wMaxPacketSize
|
||||
0x00,
|
||||
0x00 // bInterval
|
||||
};
|
||||
|
||||
#ifndef STRING_MANUFACTURER
|
||||
# define STRING_MANUFACTURER "Arduino LLC"
|
||||
#endif
|
||||
|
||||
#ifndef STRING_PRODUCT
|
||||
# define STRING_PRODUCT "Arduino Zero"
|
||||
#endif
|
||||
|
||||
USB_CDC sam_ba_cdc;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief This function is a callback invoked when a SETUP packet is received
|
||||
*/
|
||||
void sam_ba_usb_CDC_Enumerate(P_USB_CDC pCdc)
|
||||
{
|
||||
Usb *pUsb = pCdc->pUsb;
|
||||
static volatile uint8_t bmRequestType, bRequest, dir;
|
||||
static volatile uint16_t wValue, wIndex, wLength, wStatus;
|
||||
|
||||
/* Clear the Received Setup flag */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_RXSTP;
|
||||
|
||||
/* Read the USB request parameters */
|
||||
bmRequestType = udd_ep_out_cache_buffer[0][0];
|
||||
bRequest = udd_ep_out_cache_buffer[0][1];
|
||||
wValue = (udd_ep_out_cache_buffer[0][2] & 0xFF);
|
||||
wValue |= (udd_ep_out_cache_buffer[0][3] << 8);
|
||||
wIndex = (udd_ep_out_cache_buffer[0][4] & 0xFF);
|
||||
wIndex |= (udd_ep_out_cache_buffer[0][5] << 8);
|
||||
wLength = (udd_ep_out_cache_buffer[0][6] & 0xFF);
|
||||
wLength |= (udd_ep_out_cache_buffer[0][7] << 8);
|
||||
|
||||
/* Clear the Bank 0 ready flag on Control OUT */
|
||||
pUsb->DEVICE.DeviceEndpoint[0].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_BK0RDY;
|
||||
|
||||
/* Handle supported standard device request Cf Table 9-3 in USB specification Rev 1.1 */
|
||||
switch ((bRequest << 8) | bmRequestType)
|
||||
{
|
||||
case STD_GET_DESCRIPTOR:
|
||||
if (wValue>>8 == STD_GET_DESCRIPTOR_DEVICE)
|
||||
{
|
||||
/* Return Device Descriptor */
|
||||
USB_Write(pCdc->pUsb, devDescriptor, SAM_BA_MIN(sizeof(devDescriptor), wLength), USB_EP_CTRL);
|
||||
}
|
||||
else if (wValue>>8 == STD_GET_DESCRIPTOR_CONFIGURATION)
|
||||
{
|
||||
/* Return Configuration Descriptor */
|
||||
USB_Write(pCdc->pUsb, cfgDescriptor, SAM_BA_MIN(sizeof(cfgDescriptor), wLength), USB_EP_CTRL);
|
||||
}
|
||||
else if (wValue>>8 == STD_GET_DESCRIPTOR_STRING)
|
||||
{
|
||||
switch ( wValue & 0xff )
|
||||
{
|
||||
case STRING_INDEX_LANGUAGES: {
|
||||
uint16_t STRING_LANGUAGE[2] = { (STD_GET_DESCRIPTOR_STRING<<8) | 4, 0x0409 };
|
||||
|
||||
USB_Write(pCdc->pUsb, (const char*)STRING_LANGUAGE, SAM_BA_MIN(sizeof(STRING_LANGUAGE), wLength), USB_EP_CTRL);
|
||||
}
|
||||
break;
|
||||
|
||||
case STRING_INDEX_MANUFACTURER:
|
||||
USB_SendString(pCdc->pUsb, STRING_MANUFACTURER, wLength );
|
||||
break;
|
||||
|
||||
case STRING_INDEX_PRODUCT:
|
||||
USB_SendString(pCdc->pUsb, STRING_PRODUCT, wLength );
|
||||
break;
|
||||
default:
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case STD_SET_ADDRESS:
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
/* Set device address to the newly received address from host */
|
||||
USB_SetAddress(pCdc->pUsb, wValue);
|
||||
break;
|
||||
|
||||
case STD_SET_CONFIGURATION:
|
||||
/* Store configuration */
|
||||
pCdc->currentConfiguration = (uint8_t)wValue;
|
||||
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
|
||||
/* Configure the 3 needed endpoints */
|
||||
USB_Configure(pUsb);
|
||||
break;
|
||||
|
||||
case STD_GET_CONFIGURATION:
|
||||
/* Return current configuration value */
|
||||
USB_Write(pCdc->pUsb, (char *) &(pCdc->currentConfiguration), sizeof(pCdc->currentConfiguration), USB_EP_CTRL);
|
||||
break;
|
||||
|
||||
case STD_GET_STATUS_ZERO:
|
||||
wStatus = 0;
|
||||
USB_Write(pCdc->pUsb, (char *) &wStatus, sizeof(wStatus), USB_EP_CTRL);
|
||||
break;
|
||||
|
||||
case STD_GET_STATUS_INTERFACE:
|
||||
wStatus = 0;
|
||||
USB_Write(pCdc->pUsb, (char *) &wStatus, sizeof(wStatus), USB_EP_CTRL);
|
||||
break;
|
||||
|
||||
case STD_GET_STATUS_ENDPOINT:
|
||||
wStatus = 0;
|
||||
dir = wIndex & 80;
|
||||
wIndex &= 0x0F;
|
||||
if (wIndex <= 3)
|
||||
{
|
||||
if (dir)
|
||||
{
|
||||
wStatus = (pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ1) ? 1 : 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
wStatus = (pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUS.reg & USB_DEVICE_EPSTATUSSET_STALLRQ0) ? 1 : 0;
|
||||
}
|
||||
/* Return current status of endpoint */
|
||||
USB_Write(pCdc->pUsb, (char *) &wStatus, sizeof(wStatus), USB_EP_CTRL);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case STD_SET_FEATURE_ZERO:
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
break;
|
||||
|
||||
case STD_SET_FEATURE_INTERFACE:
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
break;
|
||||
|
||||
case STD_SET_FEATURE_ENDPOINT:
|
||||
dir = wIndex & 0x80;
|
||||
wIndex &= 0x0F;
|
||||
if ((wValue == 0) && wIndex && (wIndex <= 3))
|
||||
{
|
||||
/* Set STALL request for the endpoint */
|
||||
if (dir)
|
||||
{
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_STALLRQ1;
|
||||
}
|
||||
else
|
||||
{
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSSET.reg = USB_DEVICE_EPSTATUSSET_STALLRQ0;
|
||||
}
|
||||
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case STD_SET_INTERFACE:
|
||||
case STD_CLEAR_FEATURE_ZERO:
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
break;
|
||||
|
||||
case STD_CLEAR_FEATURE_INTERFACE:
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
break;
|
||||
|
||||
case STD_CLEAR_FEATURE_ENDPOINT:
|
||||
dir = wIndex & 0x80;
|
||||
wIndex &= 0x0F;
|
||||
|
||||
if ((wValue == 0) && wIndex && (wIndex <= 3))
|
||||
{
|
||||
if (dir)
|
||||
{
|
||||
if (pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUS.bit.STALLRQ1)
|
||||
{
|
||||
// Remove stall request
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ1;
|
||||
if (pUsb->DEVICE.DeviceEndpoint[wIndex].EPINTFLAG.bit.STALL1)
|
||||
{
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL1;
|
||||
// The Stall has occurred, then reset data toggle
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSSET_DTGLIN;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUS.bit.STALLRQ0)
|
||||
{
|
||||
// Remove stall request
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSCLR_STALLRQ0;
|
||||
if (pUsb->DEVICE.DeviceEndpoint[wIndex].EPINTFLAG.bit.STALL0)
|
||||
{
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPINTFLAG.reg = USB_DEVICE_EPINTFLAG_STALL0;
|
||||
// The Stall has occurred, then reset data toggle
|
||||
pUsb->DEVICE.DeviceEndpoint[wIndex].EPSTATUSCLR.reg = USB_DEVICE_EPSTATUSSET_DTGLOUT;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
}
|
||||
else
|
||||
{
|
||||
USB_SendStall(pUsb, true);
|
||||
}
|
||||
break;
|
||||
|
||||
// handle CDC class requests
|
||||
case SET_LINE_CODING:
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
break;
|
||||
|
||||
case GET_LINE_CODING:
|
||||
/* Send current line coding */
|
||||
USB_Write(pCdc->pUsb, (char *) &line_coding, SAM_BA_MIN(sizeof(usb_cdc_line_coding_t), wLength), USB_EP_CTRL);
|
||||
break;
|
||||
|
||||
case SET_CONTROL_LINE_STATE:
|
||||
/* Store the current connection */
|
||||
pCdc->currentConnection = wValue;
|
||||
/* Send ZLP */
|
||||
USB_SendZlp(pUsb);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Stall the request */
|
||||
USB_SendStall(pUsb, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief
|
||||
*/
|
||||
P_USB_CDC usb_init(void)
|
||||
{
|
||||
sam_ba_cdc.pUsb = USB;
|
||||
|
||||
/* Initialize USB */
|
||||
USB_Init();
|
||||
/* Get the default CDC structure settings */
|
||||
USB_Open(&sam_ba_cdc, sam_ba_cdc.pUsb);
|
||||
|
||||
return &sam_ba_cdc;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* \brief Send a USB descriptor string.
|
||||
*
|
||||
* The input string is plain ASCII but is sent out as UTF-16 with the correct 2-byte prefix.
|
||||
*/
|
||||
uint32_t USB_SendString(Usb *pUsb, const char* ascii_string, uint8_t maxLength)
|
||||
{
|
||||
uint8_t string_descriptor[255]; // Max USB-allowed string length
|
||||
uint16_t* unicode_string=(uint16_t*)(string_descriptor+2); // point on 3 bytes of descriptor
|
||||
int resulting_length;
|
||||
|
||||
string_descriptor[0] = (strlen(ascii_string)<<1) + 2;
|
||||
string_descriptor[1] = STD_GET_DESCRIPTOR_STRING;
|
||||
|
||||
for ( resulting_length = 1 ; *ascii_string && (resulting_length<maxLength>>1) ; resulting_length++ )
|
||||
{
|
||||
*unicode_string++ = (uint16_t)(*ascii_string++);
|
||||
}
|
||||
|
||||
return USB_Write(pUsb, (const char*)string_descriptor, resulting_length<<1, USB_EP_CTRL);
|
||||
}
|
||||
103
bootloaders/metroM4/sam_ba_usb.h
Normal file
103
bootloaders/metroM4/sam_ba_usb.h
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
/*
|
||||
Copyright (c) 2015 Arduino LLC. All right reserved.
|
||||
Copyright (c) 2015 Atmel Corporation/Thibaut VIARD. All right reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef CDC_ENUMERATE_H
|
||||
#define CDC_ENUMERATE_H
|
||||
|
||||
#include <sam.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define USB_EP_CTRL (0u)
|
||||
#define USB_EP_OUT (2u)
|
||||
#define USB_EP_OUT_SIZE (0x40u)
|
||||
#define USB_EP_IN (1u)
|
||||
#define USB_EP_IN_SIZE (0x40u)
|
||||
#define USB_EP_COMM (3u)
|
||||
#define MAX_EP (4u)
|
||||
|
||||
/* USB standard request code */
|
||||
#define STD_GET_STATUS_ZERO (0x0080u)
|
||||
#define STD_GET_STATUS_INTERFACE (0x0081u)
|
||||
#define STD_GET_STATUS_ENDPOINT (0x0082u)
|
||||
|
||||
#define STD_CLEAR_FEATURE_ZERO (0x0100u)
|
||||
#define STD_CLEAR_FEATURE_INTERFACE (0x0101u)
|
||||
#define STD_CLEAR_FEATURE_ENDPOINT (0x0102u)
|
||||
|
||||
#define STD_SET_FEATURE_ZERO (0x0300u)
|
||||
#define STD_SET_FEATURE_INTERFACE (0x0301u)
|
||||
#define STD_SET_FEATURE_ENDPOINT (0x0302u)
|
||||
|
||||
#define STD_SET_ADDRESS (0x0500u)
|
||||
#define STD_GET_DESCRIPTOR (0x0680u)
|
||||
#define STD_SET_DESCRIPTOR (0x0700u)
|
||||
#define STD_GET_CONFIGURATION (0x0880u)
|
||||
#define STD_SET_CONFIGURATION (0x0900u)
|
||||
#define STD_GET_INTERFACE (0x0A81u)
|
||||
#define STD_SET_INTERFACE (0x0B01u)
|
||||
#define STD_SYNCH_FRAME (0x0C82u)
|
||||
|
||||
#define STD_GET_DESCRIPTOR_DEVICE (1u)
|
||||
#define STD_GET_DESCRIPTOR_CONFIGURATION (2u)
|
||||
#define STD_GET_DESCRIPTOR_STRING (3u)
|
||||
#define STD_GET_DESCRIPTOR_INTERFACE (4u)
|
||||
#define STD_GET_DESCRIPTOR_ENDPOINT (5u)
|
||||
#define STD_GET_DESCRIPTOR_DEVICE_QUALIFIER (6u)
|
||||
#define STD_GET_DESCRIPTOR_OTHER_SPEED_CONFIGURATION (7u)
|
||||
#define STD_GET_DESCRIPTOR_INTERFACE_POWER1 (8u)
|
||||
|
||||
#define FEATURE_ENDPOINT_HALT (0u)
|
||||
#define FEATURE_DEVICE_REMOTE_WAKEUP (1u)
|
||||
#define FEATURE_TEST_MODE (2u)
|
||||
|
||||
#define STRING_INDEX_LANGUAGES (0x00u)
|
||||
#define STRING_INDEX_MANUFACTURER (0x01u)
|
||||
#define STRING_INDEX_PRODUCT (0x02u)
|
||||
|
||||
#define SAM_BA_MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
|
||||
typedef struct _USB_CDC
|
||||
{
|
||||
// Private members
|
||||
Usb *pUsb;
|
||||
uint8_t currentConfiguration;
|
||||
uint8_t currentConnection;
|
||||
// Public Methods:
|
||||
uint8_t (*IsConfigured)(struct _USB_CDC *pCdc);
|
||||
// uint32_t (*Write) (Usb *pUsb, const char *pData, uint32_t length, uint8_t ep_num);
|
||||
// uint32_t (*Read) (Usb *pUsb, char *pData, uint32_t length);
|
||||
} USB_CDC, *P_USB_CDC;
|
||||
|
||||
/**
|
||||
* \brief Initializes the USB module
|
||||
*
|
||||
* \return Pointer to the USB CDC structure
|
||||
*/
|
||||
P_USB_CDC usb_init(void);
|
||||
|
||||
void sam_ba_usb_CDC_Enumerate(P_USB_CDC pCdc);
|
||||
|
||||
uint32_t USB_SendString(Usb *pUsb, const char* ascii_string, uint8_t maxLength);
|
||||
|
||||
extern USB_CDC sam_ba_cdc;
|
||||
|
||||
|
||||
|
||||
#endif // CDC_ENUMERATE_H
|
||||
4
bootloaders/metroM4/samd51_sam_ba.componentinfo.xml
Normal file
4
bootloaders/metroM4/samd51_sam_ba.componentinfo.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
|
||||
<ProjectComponents />
|
||||
</Store>
|
||||
300
bootloaders/metroM4/samd51_sam_ba.cproj
Normal file
300
bootloaders/metroM4/samd51_sam_ba.cproj
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>7.0</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.ARMGCC.C</ToolchainName>
|
||||
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
|
||||
<avrdevice>ATSAMD51J19A</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>C</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>samd21_sam_ba</AssemblyName>
|
||||
<Name>samd51_sam_ba</Name>
|
||||
<RootNamespace>samd21_sam_ba</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||
<UncachedRange />
|
||||
<preserveEEPROM>true</preserveEEPROM>
|
||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||
<ExternalProgrammingToolCommand />
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.27.3" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
<avrtool>com.atmel.avrdbg.tool.edbg</avrtool>
|
||||
<avrtoolserialnumber>00000000EZE000006352</avrtoolserialnumber>
|
||||
<avrdeviceexpectedsignature>0x60060005</avrdeviceexpectedsignature>
|
||||
<avrtoolinterface>SWD</avrtoolinterface>
|
||||
<com_atmel_avrdbg_tool_atmelice>
|
||||
<ToolOptions>
|
||||
<InterfaceProperties>
|
||||
<SwdClock>0</SwdClock>
|
||||
</InterfaceProperties>
|
||||
<InterfaceName>SWD</InterfaceName>
|
||||
</ToolOptions>
|
||||
<ToolType>com.atmel.avrdbg.tool.atmelice</ToolType>
|
||||
<ToolNumber>J41800001895</ToolNumber>
|
||||
<ToolName>Atmel-ICE</ToolName>
|
||||
</com_atmel_avrdbg_tool_atmelice>
|
||||
<avrtoolinterfaceclock>2000000</avrtoolinterfaceclock>
|
||||
<com_atmel_avrdbg_tool_edbg>
|
||||
<ToolOptions>
|
||||
<InterfaceProperties>
|
||||
<SwdClock>2000000</SwdClock>
|
||||
</InterfaceProperties>
|
||||
<InterfaceName>SWD</InterfaceName>
|
||||
</ToolOptions>
|
||||
<ToolType>com.atmel.avrdbg.tool.edbg</ToolType>
|
||||
<ToolNumber>00000000EZE000006352</ToolNumber>
|
||||
<ToolName>EDBG</ToolName>
|
||||
</com_atmel_avrdbg_tool_edbg>
|
||||
<UseGdb>True</UseGdb>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<ArmGcc>
|
||||
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
|
||||
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
|
||||
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
|
||||
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
|
||||
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
|
||||
<armgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</armgcc.compiler.symbols.DefSymbols>
|
||||
<armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>
|
||||
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
|
||||
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
|
||||
<armgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</armgcc.linker.libraries.Libraries>
|
||||
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
|
||||
<armgcc.linker.miscellaneous.LinkerFlags>-Tsamd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
|
||||
</ArmGcc>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<ArmGcc>
|
||||
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
|
||||
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
|
||||
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
|
||||
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
|
||||
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
|
||||
<armgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</armgcc.compiler.symbols.DefSymbols>
|
||||
<armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level>
|
||||
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
|
||||
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
|
||||
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
|
||||
<armgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</armgcc.linker.libraries.Libraries>
|
||||
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
|
||||
<armgcc.linker.miscellaneous.LinkerFlags>-Tsamd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
|
||||
<armgcc.assembler.debugging.DebugLevel>Default (-g)</armgcc.assembler.debugging.DebugLevel>
|
||||
<armgcc.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcc.preprocessingassembler.debugging.DebugLevel>
|
||||
</ArmGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>True</UsesExternalMakeFile>
|
||||
<OutputDirectory />
|
||||
<BuildTarget>DEBUG=1 all</BuildTarget>
|
||||
<CleanTarget>clean</CleanTarget>
|
||||
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'featherm4' ">
|
||||
<ToolchainSettings>
|
||||
<ArmGcc>
|
||||
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
|
||||
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
|
||||
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
|
||||
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
|
||||
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
|
||||
<armgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</armgcc.compiler.symbols.DefSymbols>
|
||||
<armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level>
|
||||
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
|
||||
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
|
||||
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
|
||||
<armgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</armgcc.linker.libraries.Libraries>
|
||||
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
|
||||
<armgcc.linker.miscellaneous.LinkerFlags>-Tsamd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
|
||||
<armgcc.assembler.debugging.DebugLevel>Default (-g)</armgcc.assembler.debugging.DebugLevel>
|
||||
<armgcc.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcc.preprocessingassembler.debugging.DebugLevel>
|
||||
</ArmGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>True</UsesExternalMakeFile>
|
||||
<OutputDirectory />
|
||||
<BuildTarget>DEBUG=1 all BOARD_ID=FEATHER_M4 BOARD_CHIP=__SAMD51G19A__</BuildTarget>
|
||||
<CleanTarget>clean BOARD_ID=FEATHER_M4</CleanTarget>
|
||||
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
|
||||
<OutputPath>bin\featherm4\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'metrom4' ">
|
||||
<ToolchainSettings>
|
||||
<ArmGcc>
|
||||
<armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>
|
||||
<armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>
|
||||
<armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>
|
||||
<armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>
|
||||
<armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>
|
||||
<armgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</armgcc.compiler.symbols.DefSymbols>
|
||||
<armgcc.compiler.optimization.level>Optimize (-O1)</armgcc.compiler.optimization.level>
|
||||
<armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>
|
||||
<armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>
|
||||
<armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>
|
||||
<armgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</armgcc.linker.libraries.Libraries>
|
||||
<armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>
|
||||
<armgcc.linker.miscellaneous.LinkerFlags>-Tsamd21j18a_flash.ld</armgcc.linker.miscellaneous.LinkerFlags>
|
||||
<armgcc.assembler.debugging.DebugLevel>Default (-g)</armgcc.assembler.debugging.DebugLevel>
|
||||
<armgcc.preprocessingassembler.debugging.DebugLevel>Default (-Wa,-g)</armgcc.preprocessingassembler.debugging.DebugLevel>
|
||||
</ArmGcc>
|
||||
</ToolchainSettings>
|
||||
<UsesExternalMakeFile>True</UsesExternalMakeFile>
|
||||
<OutputDirectory />
|
||||
<BuildTarget>DEBUG=0 all BOARD_ID=METRO_M4 BOARD_CHIP=__SAMD51J19A__</BuildTarget>
|
||||
<CleanTarget>clean BOARD_ID=METRO_M4</CleanTarget>
|
||||
<ExternalMakeFilePath>Makefile</ExternalMakeFilePath>
|
||||
<OutputPath>bin\metrom4\</OutputPath>
|
||||
<OutputFileName>METRO_M4_sam_ba</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="board_definitions.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_definitions.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_definitions_feather_m4.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="board_definitions_metro_m4.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_led.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_led.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_led.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_led.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_serial.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_serial.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_serial.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_serial.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_usb.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_usb.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_driver_usb.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_driver_usb.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_init.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_init.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="board_startup.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>board_startup.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="main.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>main.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_cdc.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_cdc.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_cdc.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_cdc.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_monitor.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_monitor.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_monitor.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_monitor.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_serial.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_serial.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_serial.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_serial.h</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_usb.c">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_usb.c</Link>
|
||||
</Compile>
|
||||
<Compile Include="sam_ba_usb.h">
|
||||
<SubType>compile</SubType>
|
||||
<Link>sam_ba_usb.h</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="bootloader_FEATHER_M4.ld">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="bootloader_METRO_M4.ld">
|
||||
<SubType>compile</SubType>
|
||||
</None>
|
||||
<None Include="Makefile">
|
||||
<SubType>compile</SubType>
|
||||
<Link>Makefile</Link>
|
||||
</None>
|
||||
<None Include="README.md">
|
||||
<SubType>compile</SubType>
|
||||
<Link>README.md</Link>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
22
bootloaders/metroM4/samdx1_sam_ba.atsln
Normal file
22
bootloaders/metroM4/samdx1_sam_ba.atsln
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "samd51_sam_ba", "samd51_sam_ba.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|ARM = Debug|ARM
|
||||
Release|ARM = Release|ARM
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|ARM.ActiveCfg = metrom4|ARM
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|ARM.Build.0 = metrom4|ARM
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|ARM.Build.0 = Release|ARM
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
bootloaders/mkrfox1200/samd21_sam_ba_arduino_mkrfox1200.bin
Normal file → Executable file
BIN
bootloaders/mkrfox1200/samd21_sam_ba_arduino_mkrfox1200.bin
Normal file → Executable file
Binary file not shown.
|
|
@ -1,13 +1,13 @@
|
|||
:10000000FC7F002015060000050600000906000020
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:100020000000000000000000000000000D060000BD
|
||||
:100030000000000000000000110600004907000059
|
||||
:10003000000000000000000011060000550700004D
|
||||
:1000400010B5064C2378002B07D1054B002B02D0AE
|
||||
:10005000044800E000BF0123237010BD5C000020B5
|
||||
:1000600000000000A818000008B5084B002B03D0C2
|
||||
:1000600000000000B818000008B5084B002B03D0B2
|
||||
:100070000748084900E000BF07480368002B03D089
|
||||
:10008000064B002B00D0984708BDC046000000007A
|
||||
:10009000A8180000600000205800002000000000A8
|
||||
:10009000B818000060000020580000200000000098
|
||||
:1000A000154A164B1178002909D115491878097895
|
||||
:1000B0004118C9B21970802012494003C8611178F3
|
||||
:1000C0000131C9B211701978F02902D819780929BB
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
:1001D0005E605E693540284358610F4818600F48DB
|
||||
:1001E00018615D680E4828408025AD02284358609C
|
||||
:1001F0005868800B8003586000235171237105E01B
|
||||
:10020000137ADA0602D5201C00F0D8FA207970BDE6
|
||||
:10020000137ADA0602D5201C00F0DEFA207970BDE0
|
||||
:1002100098010020FFFFFF8F9800002018010020A8
|
||||
:10022000FF3F00F0002303714371044B01608360C2
|
||||
:100230000B78022213430B707047C046A1010000E7
|
||||
|
|
@ -47,14 +47,14 @@
|
|||
:1002E0000A40188D1103164A02400A431A851978EC
|
||||
:1002F0007F220A401A701A78042112480A431A70A1
|
||||
:1003000058621A890C218A431A811A8901218A4369
|
||||
:100310001A810021802201F044F938BD0004004018
|
||||
:100310001A810021802201F04AF938BD0004004012
|
||||
:10032000584400413C44004159440041000C004005
|
||||
:100330000640000000500041246080003FF8FFFFAD
|
||||
:10034000FF8FFFFF98010020F7B5141C1F4A5F01C3
|
||||
:1003500001971D1CD319061C5869271C4000400F2B
|
||||
:1003600003301033C74006D00F1C80225968120694
|
||||
:100370000A435A6009E02F1C7B1E9F41144BBF01AA
|
||||
:10038000FF18381C221C01F003F901990F480835A9
|
||||
:10038000FF18381C221C01F009F901990F480835A3
|
||||
:1003900042181761131C5269A104920B890C920335
|
||||
:1003A0000A435A6159690B4A0A405A616B01F318B2
|
||||
:1003B0000222DA715979802252420A435A716B0142
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
:10040000EA5C40200243EA54012333704827FF3757
|
||||
:10041000EA5D0123134012D00B4B5A6C9204920CEC
|
||||
:10042000A24202D25C6CA404A40C081C221C074942
|
||||
:1004300001F0AEF80123EB550023337000E01C1CE3
|
||||
:1004300001F0B4F80123EB550023337000E01C1CDD
|
||||
:10044000201CF8BD7A00002098010020D800002070
|
||||
:10045000FF3F00F0FF3083792022002900D11022D5
|
||||
:100460001343837170470000084BFF305A69920BA9
|
||||
|
|
@ -99,305 +99,306 @@
|
|||
:100620000E4B93420ED10AE00D4C9442F7D00023BA
|
||||
:10063000D1188842F3D9E55804330D60F8E700F08B
|
||||
:1006400011F804E09342FAD2002102C3FAE7FEE770
|
||||
:10065000000000205C000020A40300205C000020BB
|
||||
:10066000AC1800002E4A38B51368141C01331ED094
|
||||
:10067000D1B200291BD12B4B1878012318402A4BEB
|
||||
:100680000AD11D6829498D4201D118600FE0196017
|
||||
:10069000274901390029FCD11960236883F30888B0
|
||||
:1006A000FF239A43234B9A601D4B5B681847FFF763
|
||||
:1006B00029FF62B600F09AFD00F04CF81E4B802234
|
||||
:1006C00052039A601D4B1E4A041C5A60194AC021ED
|
||||
:1006D000106A09060002000A0143116200229A60B2
|
||||
:1006E00007221A60A368201C9847164B002801D0E7
|
||||
:1006F00001221A701A78002A05D0002000F088FA2A
|
||||
:1007000000F000FBFCE71B78002BEBD100F0E2FDD2
|
||||
:100710000028E7D0012000F07BFA00F0F3FAFCE7B4
|
||||
:100720000020000038040040FC7F00203581730762
|
||||
:1007300048E8010000ED00E00044004110E000E066
|
||||
:10074000E70300007B00002008B5FFF7A9FC00F0DC
|
||||
:10075000C3FA08BD10B5054B054C2360FFF770FDCB
|
||||
:10076000201C2168FFF75EFD201C10BD00500041D9
|
||||
:100770001802002070B5051CC0B0081C161C0C1C0B
|
||||
:1007800000F017FF40006A460323023053701070D8
|
||||
:1007900076080123E218013A11785A00002906D19F
|
||||
:1007A000281C69460023FFF7CFFD40B070BDB3425F
|
||||
:1007B000F6DA684681520133ECE70000F7B5BA4A31
|
||||
:1007C00004681378B949271CFF37051C10203872BC
|
||||
:1007D0000B705378B648B74E037093783380D17856
|
||||
:1007E000338809020B4333801179B34B1980517957
|
||||
:1007F00018880902084318809079B0490880D27996
|
||||
:100800000888120202430A8040227A71A84F3A787F
|
||||
:10081000A64F120238780F1C0243A9488446181CC0
|
||||
:10082000624500D1C2E020DC802149008A4200D12B
|
||||
:100830006EE109DC812A00D192E0822A00D195E0A4
|
||||
:10084000802A00D064E18BE081235B009A4200D1D2
|
||||
:10085000CFE000DA58E1C0239B009A4200D157E173
|
||||
:10086000984B9A4200D14FE152E190231B019A42EA
|
||||
:1008700069D015DCD023DB009A4222D088231B01EB
|
||||
:100880009A4269D0A023DB009A4200D040E1201CAC
|
||||
:10089000FFF7EAFD3188286889B2FFF7F9FD3BE1EF
|
||||
:1008A000894B9A4200D12FE100DC31E1874B9A421B
|
||||
:1008B00000D11DE1864B9A4200D029E133886B714B
|
||||
:1008C00022E133881B0A012B08D10B8812222868E9
|
||||
:1008D000934201D80A8892B27E4911E133881B0AFB
|
||||
:1008E000022B08D10B8843222868934201D80A883A
|
||||
:1008F00092B2794904E133881B0A032B00D007E147
|
||||
:100900003388DBB2012B17D0002B07D0022B00D08D
|
||||
:10091000FEE00A882868D2B2704911E0042201A8DA
|
||||
:100920006F4900F035FE3B8804222868934201D8C5
|
||||
:100930003A8892B201A9E3E00A8828686949D2B2EC
|
||||
:10094000FFF718FFE8E03388201C2B71FFF78CFDC0
|
||||
:10095000201CFFF7A3FDDFE0291C01C90122CFE025
|
||||
:10096000614900230B8028680222CAE05E49002208
|
||||
:100970000A801888502210405C4A10701E880F2090
|
||||
:10098000304018801888032800D9C1E012781B88ED
|
||||
:1009900008335B01E418A379002A01D09B0600E02C
|
||||
:1009A000DB06DB0F0B8028680222A9E019887F2272
|
||||
:1009B00091434E4AC9B2117018880F210140198025
|
||||
:1009C0003188002900D0A3E01988002900D19FE0D8
|
||||
:1009D0001988032900D99BE012781B8808335B0132
|
||||
:1009E000E318002A02D020225A718DE0102159719B
|
||||
:1009F0008AE002887F239A433C4BD2B21A70018866
|
||||
:100A00000F220A4002803288002A00D080E002884B
|
||||
:100A1000002A00D17CE00288032A00D978E01B7804
|
||||
:100A2000002B1FD0038808335B01E3189B799A06DB
|
||||
:100A30006AD50388202208335B01E3181A71038802
|
||||
:100A400008335B01E318DB795F065DD5038840223C
|
||||
:100A500008335B01E318DA710388022208335B0173
|
||||
:100A6000E3181EE0038808335B01E3189B79D9067D
|
||||
:100A70004AD50388102208335B01E3181A710388F2
|
||||
:100A800008335B01E318DB799A063DD50388202201
|
||||
:100A900008335B01E318DA710388012208335B0134
|
||||
:100AA000E3181A7130E0C046980000207D00002055
|
||||
:100AB00082000020840000208600002080000020AA
|
||||
:100AC000020300000103000021200000A12100001A
|
||||
:100AD00021220000FC15000004000020E8150000A1
|
||||
:100AE000D8150000DC1500007E0000207C000020EE
|
||||
:100AF0000B8808222868934201D80A8892B20749D5
|
||||
:100B00000023FFF721FC07E0201CFFF7ADFC03E00A
|
||||
:100B1000201C0121FFF79EFCF7BDC04648000020C5
|
||||
:100B200007B5054B0122019001A91868131CFFF7B6
|
||||
:100B30000BFC01200EBDC0461802002013B5054B6A
|
||||
:100B40006C4607341868211C0122FFF745FC207809
|
||||
:100B500016BDC0461802002010B5074C201CFFF738
|
||||
:100B60001FFB031C0020834205D022684823FF336B
|
||||
:100B7000D05C0123184010BD1802002010B5054AB2
|
||||
:100B80000C1C031C191C10680123221CFFF7DCFB42
|
||||
:100B9000201C10BD1802002070B5084C061C201C3B
|
||||
:100BA0000D1CFFF7FDFA0023984205D02068311C88
|
||||
:100BB0002A1CFFF711FC031C181C70BD1802002032
|
||||
:100BC000F8B50C4C051C201C0E1CFFF7E9FA00239D
|
||||
:100BD000271C341C98420AD0002C07D0291C221C48
|
||||
:100BE0003868FFF7F9FB241A2D18F5E7331C181C99
|
||||
:100BF000F8BDC0461802002008B5031C081C111CD3
|
||||
:100C00009847024B64221A8008BDC0468C00002021
|
||||
:100C1000012805D1054B064A1A60064B187004E0FE
|
||||
:100C2000002802D1044A014B1A6070478802002054
|
||||
:100C300030160000940000207C16000030B50A1C1D
|
||||
:100C40001C4985B00978031C00292AD0042A01D147
|
||||
:100C5000006804E0022A01D1008800E00078520018
|
||||
:100C600004A98B180B3B9C1AA3420BD00F21014007
|
||||
:100C7000092902D83025294300E0373119700009CD
|
||||
:100C8000013BF1E701A930230B7078234B700A2058
|
||||
:100C90008B1898700D20D870074B04321B68D868E9
|
||||
:100CA00003E005490968C868191CFFF7A5FF05B0EE
|
||||
:100CB00030BDC046880000208802002072B6EFF3E5
|
||||
:100CC0000883044A1360036883F30888436818475D
|
||||
:100CD0007047C0468C020020084B1A88002A03D0B7
|
||||
:100CE0001A88013A92B21A80054B1A88002A03D05A
|
||||
:100CF0001A88013A92B21A807047C0468C000020D0
|
||||
:100D00008A000020F0B591B008A9CC4A0B1C31CA6A
|
||||
:100D100031C351CA51C360CA60C3C94BC9489A683C
|
||||
:100D20007A255203520F92005258C74902609C68BC
|
||||
:100D3000A4B262430C60C54900240A60C44A14602E
|
||||
:100D4000C44C2570C44CC54D2368281C1B69402128
|
||||
:100D50009847002802D0C24B64221A80C14B00225F
|
||||
:100D60001860C14B1D60C14BC04DBE4F1A602A6850
|
||||
:100D70003B689A42E6D2BC4B1B681A78FF2A00D126
|
||||
:100D800014E2232A00D0EBE1B94E3378002B06D0D1
|
||||
:100D9000B14BB8491B680222D868FFF72DFFAD4B55
|
||||
:100DA0001B78532B3CD13B682A6893421ED9AE482E
|
||||
:100DB00001322A609A1AB04B01681B680131016048
|
||||
:100DC000AE4E9A4201D2326000E03360A0483268F1
|
||||
:100DD0000068049000F0DCFB336829685A182A6028
|
||||
:100DE000A14A1668F1181160A54A13702B68013BDF
|
||||
:100DF0002B609D4B1A68013A1A60A14B9E4A1B78E2
|
||||
:100E000011688B420AD222689148C91A0068926917
|
||||
:100E10009047002802D0924B64221A80C0468DE190
|
||||
:100E2000522B0AD18A48944A2368006811685B698A
|
||||
:100E3000039098476422934B0DE04F2B05D1844BD0
|
||||
:100E40008D4A1B6812681A7078E1482B05D1804BD7
|
||||
:100E5000894A1B6812681A8070E1572B05D17C4BB8
|
||||
:100E6000854A1B6812681A6068E16F2B03D1784BC2
|
||||
:100E70000121186807E0682B08D1754B7E481B6874
|
||||
:100E800002211B880360FFF7D9FE57E1772B06D1BB
|
||||
:100E90006F4B79481B6804211B680360F3E7472BFD
|
||||
:100EA00013D1754B1868FFF709FF774B1B6883F365
|
||||
:100EB000088862B6754B1B78002B00D13EE1664B6B
|
||||
:100EC00006201B681B68984738E1542B04D1012386
|
||||
:100ED0003370614B1B6864E04E2B0CD13378002BD0
|
||||
:100EE00006D15D4B63491B680222D868FFF784FE78
|
||||
:100EF0000023337022E1562B57D123686449D86808
|
||||
:100F00000122FFF779FE23686249D8680322FFF7C0
|
||||
:100F100073FE614D2368291CD8680122FFF76CFE1F
|
||||
:100F200023685E49D8680D22FFF766FE2368291CF6
|
||||
:100F3000D8680122FFF760FE4B4F4C4D5849002303
|
||||
:100F400039602B603A1C281C13685E1C16601B78E5
|
||||
:100F50000593002B03D0036801330360F4E73E4E92
|
||||
:100F60002A683368D868FFF747FE33684A49D8686B
|
||||
:100F70000122FFF741FE059929604A4939603A4A42
|
||||
:100F80001368581C10601B78002B04D0374B1A686C
|
||||
:100F900001321A60F3E733682A68D868FFF72CFE3D
|
||||
:100FA0003368D86833490222C6E0334A582B17D138
|
||||
:100FB000244E264D366813682A68B10093420AD23F
|
||||
:100FC0001F4D5808E861384828801D4D287DC60708
|
||||
:100FD000FBD55B18F2E7204B34491B68D868AAE0C0
|
||||
:100FE000592B79D112681A4B3149002A02D11B685A
|
||||
:100FF0000B606CE0124D086819686B68104E802514
|
||||
:10100000AB4392087360002A61D02A4B0C4D2B80B1
|
||||
:101010000B4E337DDD07FBD500230A4D2D6801956E
|
||||
:10102000AD08AB4203D3244D054E358046E09342D4
|
||||
:10103000F9D09D00465901334E51EEE710160000DD
|
||||
:10104000004000414002002038020020340200200D
|
||||
:101050008402002030020020880200204402002088
|
||||
:101060008A000020280200202C0200203C020020E0
|
||||
:1010700088000020701600009002002094020020DA
|
||||
:10108000240200208C0000208C020020940000200C
|
||||
:101090004C160000751600004E1600009816000051
|
||||
:1010A000501600005C16000002A5FFFF6516000048
|
||||
:1010B0009000002044A5FFFF04A5FFFF3F4E357DB3
|
||||
:1010C000EE07FBD59D0049194019D21A9BE73C4B0E
|
||||
:1010D0003C491B68D8682EE05A2B2FD13A4B176831
|
||||
:1010E0001D680026EF19BD4206D02878311C00F09B
|
||||
:1010F00013F90135061CF6E7314B34491B68012210
|
||||
:10110000D868FFF779FD07230F223240111C3609FA
|
||||
:101110003031092A00DD07311820C0186A46815491
|
||||
:10112000013BF1D2236806A9D8680822FFF764FDC5
|
||||
:1011300023682749D8680322FFF75EFD254B7A22F2
|
||||
:101140001A70254B00221A60244B1B7893422DD035
|
||||
:101150001B4B23491B680122D868FFF74DFD25E092
|
||||
:10116000111C3039C8B21C4B092804D81D682A014B
|
||||
:10117000114319601AE0111C4139052903D81E6872
|
||||
:10118000373A310106E0111C6139052904D8186885
|
||||
:10119000573A01010A4308E02C2A03D10A4A196888
|
||||
:1011A000116001E00B490A7000221A600D4B1A68A9
|
||||
:1011B00001321A600C4B1A680132D5E5004000413B
|
||||
:1011C0008802002069160000840200206D160000CD
|
||||
:1011D0006F160000300200209002002088000020DE
|
||||
:1011E000731600003C0200202C02002010B51C4B9E
|
||||
:1011F00001201A78032402431A701A4B0F2219781F
|
||||
:101200009143197019782143197017490C782043BC
|
||||
:10121000087019780A401A701A7830210A431A7037
|
||||
:10122000124B80211A6A0A431A62114B114A5A80E2
|
||||
:101230005A7852B2002AFBDBC4220F480F499203AE
|
||||
:10124000FEF762FF0E4A002313700E4A13700E4A17
|
||||
:1012500013700E4A13700E4A13700E4A137010BDAD
|
||||
:10126000D6440041BB440041D74400410004004043
|
||||
:10127000000C004019400000001C00422AF600004B
|
||||
:10128000980200201F030020990200209C020020E9
|
||||
:10129000200300201D03002008B5C1B20248FEF75C
|
||||
:1012A00061FF012008BDC046001C0042024B187EB1
|
||||
:1012B0004007C00F7047C046001C004208B5FFF74A
|
||||
:1012C000F5FF0028FBD00248FEF752FF08BDC046DC
|
||||
:1012D000001C004208B5FFF7E9FF0023984205D043
|
||||
:1012E000FFF7ECFF031C233B5A425341181C08BD77
|
||||
:1012F00070B5041C0D1C4618B44204D02078FFF7CA
|
||||
:10130000CBFF0134F8E7281C70BD10B5041CFFF7B3
|
||||
:10131000D5FF2070012010BD0B0A5840034B400040
|
||||
:10132000C05A0902484080B27047C046A616000065
|
||||
:10133000F7B50024051C0F1C261CBC4220D0FFF76B
|
||||
:10134000BDFF114BC0B21B780190002B1AD1311C8C
|
||||
:10135000FFF7E2FF0D4B061C1A88002A04D10C4A45
|
||||
:1013600011782A1C002907D001996A1C2970802F46
|
||||
:1013700002D11988013919800134A4B2151CDCE7A7
|
||||
:10138000301C00E00120FEBD1D0300209A02002059
|
||||
:101390001E030020F0B53E4E85B0002203900C1CC9
|
||||
:1013A00032703C4B914201D1012201E03A490C805C
|
||||
:1013B0001A707F231C4201D080349C43FFF77EFFCC
|
||||
:1013C0003378C0B2002B07D000253570FFF776FFC9
|
||||
:1013D0003378C0B2AB4236D1432803D0712853D002
|
||||
:1013E0001528EBD1012300930120FFF755FF00984A
|
||||
:1013F000FFF752FF00998025C843C0B2FFF74CFFAA
|
||||
:10140000039B00270293244A1388002B1DD12149F6
|
||||
:1014100001930978002918D10198FFF73DFF391C85
|
||||
:101420000198FFF779FF013D071C002DEBD1000A61
|
||||
:10143000C0B2FFF731FFF8B2FFF72EFFFFF73EFF14
|
||||
:101440003378002B0AD035701FE00299013B0978F0
|
||||
:101450001380029B019101330293DDE7C0B206289D
|
||||
:1014600007D1009B03990133DBB280310093803CAC
|
||||
:101470000391002CB8D10420FFF70EFFFFF71EFFE9
|
||||
:10148000044B01251C7000E00025281C05B0F0BDB0
|
||||
:101490001D0300201E0300209A020020F0B5384CE6
|
||||
:1014A00087B0002301902370994201D1012301E00C
|
||||
:1014B000344A1180344A642613704320FFF7ECFE4F
|
||||
:1014C000324FFFF7F3FE002803D1002F03D0013F76
|
||||
:1014D000F7E7002F03D1013E002EEED14DE00125AC
|
||||
:1014E000FFF7ECFE2378002B38D1C0B20290012820
|
||||
:1014F00005D004283DD10620FFF7CEFE39E005AE29
|
||||
:101500000221301CFFF714FF01988021FFF710FF24
|
||||
:1015100023780390002B18D1FFF7D0FE0702FFF7C6
|
||||
:10152000CDFEBFB223783F18BFB2012B0DD0039B75
|
||||
:101530009F4207D13378AB4204D1EB437278DBB2E0
|
||||
:101540009A4204D01820FFF7A7FE002303E00620EC
|
||||
:10155000FFF7A2FE029B2278002A02D00026267006
|
||||
:101560000BE0012B05D1019A6B1C8032DDB2019298
|
||||
:10157000B6E7054A002313700126301C07B0F0BD02
|
||||
:101580001D0300209A0200201E03002000350C00DD
|
||||
:1015900010B50023934203D0CC5CC4540133F9E767
|
||||
:1015A00010BD031C8218934202D019700133FAE770
|
||||
:1015B00070470023C25C0133002AFBD1581E7047DC
|
||||
:1015C000F8B5C046F8BC08BC9E467047F8B5C046A2
|
||||
:1015D000F8BC08BC9E467047040309044172647558
|
||||
:1015E000696E6F204C4C430041726475696E6F20C8
|
||||
:1015F0004D4B52466F7831323030000012010002FC
|
||||
:1016000002000040412350000002010200010000DE
|
||||
:101610000800000010000000200000004000000052
|
||||
:101620008000000000010000000200000004000033
|
||||
:1016300099120000BD120000AD120000F11200006E
|
||||
:101640000B130000951300009D140000760020008D
|
||||
:101650004D617220313020323031370031323A3230
|
||||
:10166000303A313700580A0D00590A0D005A00234C
|
||||
:101670000A0D003E00322E3000000000210B000059
|
||||
:101680003D0B0000590B00007D0B0000990B000082
|
||||
:101690007D0B0000C10B00005B41726475696E6FC9
|
||||
:1016A0003A58595A5D0000002110422063308440AE
|
||||
:1016B000A550C660E770088129914AA16BB18CC121
|
||||
:1016C000ADD1CEE1EFF13112100273325222B55298
|
||||
:1016D0009442F772D662399318837BB35AA3BDD371
|
||||
:1016E0009CC3FFF3DEE36224433420040114E66468
|
||||
:1016F000C774A44485546AA54BB528850995EEE5C1
|
||||
:10170000CFF5ACC58DD55336722611163006D77677
|
||||
:10171000F6669556B4465BB77AA719973887DFF710
|
||||
:10172000FEE79DD7BCC7C448E5588668A77840083F
|
||||
:10173000611802282338CCC9EDD98EE9AFF9488960
|
||||
:1017400069990AA92BB9F55AD44AB77A966A711AD7
|
||||
:10175000500A333A122AFDDBDCCBBFFB9EEB799BB0
|
||||
:10176000588B3BBB1AABA66C877CE44CC55C222C27
|
||||
:10177000033C600C411CAEED8FFDECCDCDDD2AAD00
|
||||
:101780000BBD688D499D977EB66ED55EF44E133EB7
|
||||
:10179000322E511E700E9FFFBEEFDDDFFCCF1BBF50
|
||||
:1017A0003AAF599F788F8891A981CAB1EBA10CD12A
|
||||
:1017B0002DC14EF16FE18010A100C230E320045032
|
||||
:1017C000254046706760B9839893FBA3DAB33DC3A5
|
||||
:1017D0001CD37FE35EF3B1029012F322D232354282
|
||||
:1017E000145277625672EAB5CBA5A89589856EF535
|
||||
:1017F0004FE52CD50DC5E234C324A01481046674D2
|
||||
:10180000476424540544DBA7FAB79987B8975FE784
|
||||
:101810007EF71DC73CD7D326F2369106B016576621
|
||||
:101820007676154634564CD96DC90EF92FE9C8990C
|
||||
:10183000E9898AB9ABA94458654806782768C01871
|
||||
:10184000E1088238A3287DCB5CDB3FEB1EFBF98BE4
|
||||
:10185000D89BBBAB9ABB754A545A376A167AF10AC1
|
||||
:10186000D01AB32A923A2EFD0FED6CDD4DCDAABDF4
|
||||
:101870008BADE89DC98D267C076C645C454CA23C11
|
||||
:10188000832CE01CC10C1FEF3EFF5DCF7CDF9BAFC4
|
||||
:10189000BABFD98FF89F176E367E554E745E932E61
|
||||
:0C18A000B23ED10EF01E0000000000005F
|
||||
:1018AC000114000009024300020100803209040007
|
||||
:1018BC0000010202000005240010010424020005AE
|
||||
:1018CC00240600010524010001070583030800FF1D
|
||||
:1018DC0009040100020A0000000705810240000013
|
||||
:1018EC00070502024000000000C2010000000800D1
|
||||
:0C18FC0069000000410000000000000036
|
||||
:10065000000000205C000020A80300205C000020B7
|
||||
:10066000BC18000038B5304B1A681C1C013221D070
|
||||
:100670002E4A191D1160D9B200291BD12C4A1078BD
|
||||
:10068000012210402B4A0AD115682B498D4201D115
|
||||
:1006900010600FE01160294901390029FCD1116077
|
||||
:1006A000226882F30888FF229343254A93601E4BF9
|
||||
:1006B0005B681847FFF726FF62B600F09DFD00F06B
|
||||
:1006C0004FF8204B802252039A601F4B1F4A041C94
|
||||
:1006D0005A601B4AC021106A09060002000A014341
|
||||
:1006E000116200229A6007221A60A368201C9847B2
|
||||
:1006F000174B002801D001221A701A78002A05D061
|
||||
:10070000002000F08BFA00F003FBFCE71B78002BC5
|
||||
:10071000EBD100F0E5FD0028E7D0012000F07EFAE3
|
||||
:1007200000F0F6FAFCE7C0460020000018020020A6
|
||||
:1007300038040040FC7F00203581730748E8010041
|
||||
:1007400000ED00E00044004110E000E0E70300009D
|
||||
:100750007B00002008B5FFF7A3FC00F0C3FA08BD3A
|
||||
:1007600010B5054B054C2360FFF76AFD201C21687E
|
||||
:10077000FFF758FD201C10BD005000411C02002056
|
||||
:1007800070B5051CC0B0081C161C0C1C00F017FF2F
|
||||
:1007900040006A460323023053701070760801232C
|
||||
:1007A000E218013A11785A00002906D1281C69463E
|
||||
:1007B0000023FFF7C9FD40B070BDB342F6DA6846CA
|
||||
:1007C00081520133ECE70000F7B5BA4A04681378A8
|
||||
:1007D000B949271CFF37051C102038720B7053785D
|
||||
:1007E000B648B74E037093783380D17833880902C6
|
||||
:1007F0000B4333801179B34B198051791888090262
|
||||
:10080000084318809079B0490880D279088812028C
|
||||
:1008100002430A8040227A71A84F3A78A64F12020A
|
||||
:1008200038780F1C0243A9488446181C624500D141
|
||||
:10083000C2E020DC802149008A4200D16EE109DC5F
|
||||
:10084000812A00D192E0822A00D195E0802A00D04E
|
||||
:1008500064E18BE081235B009A4200D1CFE000DAB3
|
||||
:1008600058E1C0239B009A4200D157E1984B9A422D
|
||||
:1008700000D14FE152E190231B019A4269D015DC6F
|
||||
:10088000D023DB009A4222D088231B019A4269D0F0
|
||||
:10089000A023DB009A4200D040E1201CFFF7E4FDDA
|
||||
:1008A0003188286889B2FFF7F3FD3BE1894B9A4212
|
||||
:1008B00000D12FE100DC31E1874B9A4200D11DE1EC
|
||||
:1008C000864B9A4200D029E133886B7122E133884C
|
||||
:1008D0001B0A012B08D10B8812222868934201D8E9
|
||||
:1008E0000A8892B27E4911E133881B0A022B08D193
|
||||
:1008F0000B8843222868934201D80A8892B279492A
|
||||
:1009000004E133881B0A032B00D007E13388DBB2F4
|
||||
:10091000012B17D0002B07D0022B00D0FEE00A8855
|
||||
:100920002868D2B2704911E0042201A86F4900F092
|
||||
:1009300035FE3B8804222868934201D83A8892B257
|
||||
:1009400001A9E3E00A8828686949D2B2FFF718FFD5
|
||||
:10095000E8E03388201C2B71FFF786FD201CFFF791
|
||||
:100960009DFDDFE0291C01C90122CFE06149002380
|
||||
:100970000B8028680222CAE05E4900220A8018889B
|
||||
:10098000502210405C4A10701E880F2030401880A2
|
||||
:100990001888032800D9C1E012781B8808335B014E
|
||||
:1009A000E418A379002A01D09B0600E0DB06DB0FE8
|
||||
:1009B0000B8028680222A9E019887F2291434E4AC1
|
||||
:1009C000C9B2117018880F2101401980318800299F
|
||||
:1009D00000D0A3E01988002900D19FE019880329DD
|
||||
:1009E00000D99BE012781B8808335B01E318002ACA
|
||||
:1009F00002D020225A718DE0102159718AE00288BC
|
||||
:100A00007F239A433C4BD2B21A7001880F220A40CE
|
||||
:100A100002803288002A00D080E00288002A00D1BB
|
||||
:100A20007CE00288032A00D978E01B78002B1FD0D5
|
||||
:100A3000038808335B01E3189B799A066AD503881B
|
||||
:100A4000202208335B01E3181A71038808335B0125
|
||||
:100A5000E318DB795F065DD50388402208335B012C
|
||||
:100A6000E318DA710388022208335B01E3181EE001
|
||||
:100A7000038808335B01E3189B79D9064AD50388BC
|
||||
:100A8000102208335B01E3181A71038808335B01F5
|
||||
:100A9000E318DB799A063DD50388202208335B01F1
|
||||
:100AA000E318DA710388012208335B01E3181A7135
|
||||
:100AB00030E0C046980000207D0000208200002029
|
||||
:100AC0008400002086000020800000200203000037
|
||||
:100AD0000103000021200000A121000021220000CC
|
||||
:100AE0000C16000004000020F4150000E4150000BE
|
||||
:100AF000E81500007E0000207C0000200B88082202
|
||||
:100B00002868934201D80A8892B207490023FFF768
|
||||
:100B10001BFC07E0201CFFF7A7FC03E0201C0121C1
|
||||
:100B2000FFF798FCF7BDC0464800002007B5054B0D
|
||||
:100B30000122019001A91868131CFFF705FC012090
|
||||
:100B40000EBDC0461C02002013B5054B6C46073491
|
||||
:100B50001868211C0122FFF73FFC207816BDC04613
|
||||
:100B60001C02002010B5074C201CFFF719FB031CCA
|
||||
:100B70000020834205D022684823FF33D05C012344
|
||||
:100B8000184010BD1C02002010B5054A0C1C031CA7
|
||||
:100B9000191C10680123221CFFF7D6FB201C10BD76
|
||||
:100BA0001C02002070B5084C061C201C0D1CFFF711
|
||||
:100BB000F7FA0023984205D02068311C2A1CFFF761
|
||||
:100BC0000BFC031C181C70BD1C020020F8B50C4C5B
|
||||
:100BD000051C201C0E1CFFF7E3FA0023271C341C05
|
||||
:100BE00098420AD0002C07D0291C221C3868FFF735
|
||||
:100BF000F3FB241A2D18F5E7331C181CF8BDC0466A
|
||||
:100C00001C02002008B5031C081C111C9847024B4D
|
||||
:100C100064221A8008BDC0468C000020012805D13E
|
||||
:100C2000054B064A1A60064B187004E0002802D1F2
|
||||
:100C3000044A014B1A6070478C02002040160000E5
|
||||
:100C4000940000208C16000030B50A1C1C4985B0A9
|
||||
:100C50000978031C00292AD0042A01D1006804E085
|
||||
:100C6000022A01D1008800E00078520004A98B1804
|
||||
:100C70000B3B9C1AA3420BD00F210140092902D83B
|
||||
:100C80003025294300E0373119700009013BF1E7B5
|
||||
:100C900001A930230B7078234B700A208B189870B1
|
||||
:100CA0000D20D870074B04321B68D86803E0054953
|
||||
:100CB0000968C868191CFFF7A5FF05B030BDC0461C
|
||||
:100CC000880000208C02002072B6EFF30883044AEB
|
||||
:100CD0001360036883F30888436818477047C04669
|
||||
:100CE00090020020084B1A88002A03D01A88013A83
|
||||
:100CF00092B21A80054B1A88002A03D01A88013A4A
|
||||
:100D000092B21A807047C0468C0000208A000020F2
|
||||
:100D1000F0B591B008A9CC4A0B1C31CA31C351CAF5
|
||||
:100D200051C360CA60C3C94BC9489A687A25520347
|
||||
:100D3000520F92005258C74902609C68A4B26243A5
|
||||
:100D40000C60C54900240A60C44A1460C44C257074
|
||||
:100D5000C44CC54D2368281C1B69402198470028B6
|
||||
:100D600002D0C24B64221A80C14B00221860C14BD2
|
||||
:100D70001D60C14BC04DBE4F1A602A683B689A4245
|
||||
:100D8000E6D2BC4B1B681A78FF2A00D114E2232A52
|
||||
:100D900000D0EBE1B94E3378002B06D0B14BB84907
|
||||
:100DA0001B680222D868FFF72DFFAD4B1B78532B31
|
||||
:100DB0003CD13B682A6893421ED9AE4801322A6072
|
||||
:100DC0009A1AB04B01681B6801310160AE4E9A421D
|
||||
:100DD00001D2326000E03360A048326800680490BD
|
||||
:100DE00000F0DCFB336829685A182A60A14A1668AB
|
||||
:100DF000F1181160A54A13702B68013B2B609D4BC5
|
||||
:100E00001A68013A1A60A14B9E4A1B7811688B42FE
|
||||
:100E10000AD222689148C91A00689269904700284E
|
||||
:100E200002D0924B64221A80C0468DE1522B0AD127
|
||||
:100E30008A48944A2368006811685B690390984760
|
||||
:100E40006422934B0DE04F2B05D1844B8D4A1B68D8
|
||||
:100E500012681A7078E1482B05D1804B894A1B68CB
|
||||
:100E600012681A8070E1572B05D17C4B854A1B68AC
|
||||
:100E700012681A6068E16F2B03D1784B0121186862
|
||||
:100E800007E0682B08D1754B7E481B6802211B8840
|
||||
:100E90000360FFF7D9FE57E1772B06D16F4B7948F6
|
||||
:100EA0001B6804211B680360F3E7472B13D1754BC4
|
||||
:100EB0001868FFF709FF774B1B6883F3088862B651
|
||||
:100EC000754B1B78002B00D13EE1664B06201B685A
|
||||
:100ED0001B68984738E1542B04D101233370614BD0
|
||||
:100EE0001B6864E04E2B0CD13378002B06D15D4B90
|
||||
:100EF00063491B680222D868FFF784FE0023337021
|
||||
:100F000022E1562B57D123686449D8680122FFF7A4
|
||||
:100F100079FE23686249D8680322FFF773FE614DAA
|
||||
:100F20002368291CD8680122FFF76CFE23685E49FC
|
||||
:100F3000D8680D22FFF766FE2368291CD8680122B5
|
||||
:100F4000FFF760FE4B4F4C4D5849002339602B6032
|
||||
:100F50003A1C281C13685E1C16601B780593002B36
|
||||
:100F600003D0036801330360F4E73E4E2A68336818
|
||||
:100F7000D868FFF747FE33684A49D8680122FFF76F
|
||||
:100F800041FE059929604A4939603A4A1368581C5C
|
||||
:100F900010601B78002B04D0374B1A6801321A609E
|
||||
:100FA000F3E733682A68D868FFF72CFE3368D868FF
|
||||
:100FB00033490222C6E0334A582B17D1244E264D1E
|
||||
:100FC000366813682A68B10093420AD21F4D580848
|
||||
:100FD000E861384828801D4D287DC607FBD55B1881
|
||||
:100FE000F2E7204B34491B68D868AAE0592B79D125
|
||||
:100FF00012681A4B3149002A02D11B680B606CE061
|
||||
:10100000124D086819686B68104E8025AB43920832
|
||||
:101010007360002A61D02A4B0C4D2B800B4E337D20
|
||||
:10102000DD07FBD500230A4D2D680195AD08AB42C5
|
||||
:1010300003D3244D054E358046E09342F9D09D0000
|
||||
:10104000465901334E51EEE72016000000400041A2
|
||||
:10105000440200203C0200203802002088020020C8
|
||||
:10106000340200208C020020480200208A00002068
|
||||
:101070002C020020300200204002002088000020C6
|
||||
:101080008016000094020020980200202802002010
|
||||
:101090008C00002090020020940000205C160000CC
|
||||
:1010A000851600005E160000A816000060160000FD
|
||||
:1010B0006C16000002A5FFFF7516000090000020CE
|
||||
:1010C00044A5FFFF04A5FFFF3F4E357DEE07FBD58E
|
||||
:1010D0009D0049194019D21A9BE73C4B3C491B68BB
|
||||
:1010E000D8682EE05A2B2FD13A4B17681D6800267E
|
||||
:1010F000EF19BD4206D02878311C00F013F90135F4
|
||||
:10110000061CF6E7314B34491B680122D868FFF70B
|
||||
:1011100079FD07230F223240111C36093031092A8C
|
||||
:1011200000DD07311820C0186A468154013BF1D216
|
||||
:10113000236806A9D8680822FFF764FD23682749B9
|
||||
:10114000D8680322FFF75EFD254B7A221A70254BE3
|
||||
:1011500000221A60244B1B7893422DD01B4B23494D
|
||||
:101160001B680122D868FFF74DFD25E0111C3039BE
|
||||
:10117000C8B21C4B092804D81D682A011143196004
|
||||
:101180001AE0111C4139052903D81E68373A31018C
|
||||
:1011900006E0111C6139052904D81868573A010185
|
||||
:1011A0000A4308E02C2A03D10A4A1968116001E0B9
|
||||
:1011B0000B490A7000221A600D4B1A6801321A603E
|
||||
:1011C0000C4B1A680132D5E5004000418C0200202A
|
||||
:1011D00079160000880200207D1600007F160000AE
|
||||
:1011E00034020020940200208800002083160000B2
|
||||
:1011F000400200203002002010B51C4B01201A785C
|
||||
:10120000032402431A701A4B0F2219789143197064
|
||||
:1012100019782143197017490C7820430870197800
|
||||
:101220000A401A701A7830210A431A70124B802132
|
||||
:101230001A6A0A431A62114B114A5A805A7852B2FA
|
||||
:10124000002AFBDBC4220F480F499203FEF75CFF24
|
||||
:101250000E4A002313700E4A13700E4A13700E4A82
|
||||
:1012600013700E4A13700E4A137010BDD64400411D
|
||||
:10127000BB440041D744004100040040000C004042
|
||||
:1012800019400000001C00422AF600009C020020C9
|
||||
:10129000230300209D020020A00200202403002040
|
||||
:1012A0002103002008B5C1B20248FEF75BFF012010
|
||||
:1012B00008BDC046001C0042024B187E4007C00F0C
|
||||
:1012C0007047C046001C004208B5FFF7F5FF002834
|
||||
:1012D000FBD00248FEF74CFF08BDC046001C004290
|
||||
:1012E00008B5FFF7E9FF0023984205D0FFF7ECFFB0
|
||||
:1012F000031C233B5A425341181C08BD70B5041C03
|
||||
:101300000D1C4618B44204D02078FFF7CBFF0134FF
|
||||
:10131000F8E7281C70BD10B5041CFFF7D5FF20703E
|
||||
:10132000012010BD0B0A5840034B4000C05A09026F
|
||||
:10133000484080B27047C046B6160000F7B500249A
|
||||
:10134000051C0F1C261CBC4220D0FFF7BDFF114B13
|
||||
:10135000C0B21B780190002B1AD1311CFFF7E2FFBD
|
||||
:101360000D4B061C1A88002A04D10C4A11782A1C3D
|
||||
:10137000002907D001996A1C2970802F02D1198891
|
||||
:10138000013919800134A4B2151CDCE7301C00E0DF
|
||||
:101390000120FEBD210300209E0200202203002028
|
||||
:1013A000F0B53E4E85B0002203900C1C32703C4BD1
|
||||
:1013B000914201D1012201E03A490C801A707F2349
|
||||
:1013C0001C4201D080349C43FFF77EFF3378C0B2CB
|
||||
:1013D000002B07D000253570FFF776FF3378C0B2B9
|
||||
:1013E000AB4236D1432803D0712853D01528EBD116
|
||||
:1013F000012300930120FFF755FF0098FFF752FFEC
|
||||
:1014000000998025C843C0B2FFF74CFF039B00271B
|
||||
:101410000293244A1388002B1DD121490193097896
|
||||
:10142000002918D10198FFF73DFF391C0198FFF7FB
|
||||
:1014300079FF013D071C002DEBD1000AC0B2FFF778
|
||||
:1014400031FFF8B2FFF72EFFFFF73EFF3378002B96
|
||||
:101450000AD035701FE00299013B09781380029B86
|
||||
:10146000019101330293DDE7C0B2062807D1009B4A
|
||||
:1014700003990133DBB280310093803C0391002C4F
|
||||
:10148000B8D10420FFF70EFFFFF71EFF044B012524
|
||||
:101490001C7000E00025281C05B0F0BD21030020D1
|
||||
:1014A000220300209E020020F0B5384C87B00023B4
|
||||
:1014B00001902370994201D1012301E0344A118047
|
||||
:1014C000344A642613704320FFF7ECFE324FFFF7D7
|
||||
:1014D000F3FE002803D1002F03D0013FF7E7002FD0
|
||||
:1014E00003D1013E002EEED14DE00125FFF7ECFEC9
|
||||
:1014F0002378002B38D1C0B20290012805D00428EF
|
||||
:101500003DD10620FFF7CEFE39E005AE0221301CAA
|
||||
:10151000FFF714FF01988021FFF710FF2378039055
|
||||
:10152000002B18D1FFF7D0FE0702FFF7CDFEBFB2A8
|
||||
:1015300023783F18BFB2012B0DD0039B9F4207D1E8
|
||||
:101540003378AB4204D1EB437278DBB29A4204D0D9
|
||||
:101550001820FFF7A7FE002303E00620FFF7A2FEF6
|
||||
:10156000029B2278002A02D0002626700BE0012B75
|
||||
:1015700005D1019A6B1C8032DDB20192B6E7054AB3
|
||||
:10158000002313700126301C07B0F0BD210300209A
|
||||
:101590009E0200202203002000350C0010B500231D
|
||||
:1015A000934203D0CC5CC4540133F9E710BD031C53
|
||||
:1015B0008218934202D019700133FAE77047002372
|
||||
:1015C000C25C0133002AFBD1581E7047F8B5C046F3
|
||||
:1015D000F8BC08BC9E467047F8B5C046F8BC08BCCD
|
||||
:1015E0009E4670470403090441726475696E6F205A
|
||||
:1015F0004C4C430041726475696E6F204D4B522014
|
||||
:10160000464F5820313230300000000012010002F5
|
||||
:1016100002000040412350000002010200010000CE
|
||||
:101620000800000010000000200000004000000042
|
||||
:101630008000000000010000000200000004000023
|
||||
:10164000A5120000C9120000B9120000FD1200002E
|
||||
:1016500017130000A1130000A91400007600200059
|
||||
:101660004E6F7620333020323031370031303A310E
|
||||
:10167000333A313900580A0D00590A0D005A002337
|
||||
:101680000A0D003E00322E30000000002D0B00003D
|
||||
:10169000490B0000650B0000890B0000A50B000042
|
||||
:1016A000890B0000CD0B00005B41726475696E6FA1
|
||||
:1016B0003A58595A5D00000021104220633084409E
|
||||
:1016C000A550C660E770088129914AA16BB18CC111
|
||||
:1016D000ADD1CEE1EFF13112100273325222B55288
|
||||
:1016E0009442F772D662399318837BB35AA3BDD361
|
||||
:1016F0009CC3FFF3DEE36224433420040114E66458
|
||||
:10170000C774A44485546AA54BB528850995EEE5B0
|
||||
:10171000CFF5ACC58DD55336722611163006D77667
|
||||
:10172000F6669556B4465BB77AA719973887DFF700
|
||||
:10173000FEE79DD7BCC7C448E5588668A77840082F
|
||||
:10174000611802282338CCC9EDD98EE9AFF9488950
|
||||
:1017500069990AA92BB9F55AD44AB77A966A711AC7
|
||||
:10176000500A333A122AFDDBDCCBBFFB9EEB799BA0
|
||||
:10177000588B3BBB1AABA66C877CE44CC55C222C17
|
||||
:10178000033C600C411CAEED8FFDECCDCDDD2AADF0
|
||||
:101790000BBD688D499D977EB66ED55EF44E133EA7
|
||||
:1017A000322E511E700E9FFFBEEFDDDFFCCF1BBF40
|
||||
:1017B0003AAF599F788F8891A981CAB1EBA10CD11A
|
||||
:1017C0002DC14EF16FE18010A100C230E320045022
|
||||
:1017D000254046706760B9839893FBA3DAB33DC395
|
||||
:1017E0001CD37FE35EF3B1029012F322D232354272
|
||||
:1017F000145277625672EAB5CBA5A89589856EF525
|
||||
:101800004FE52CD50DC5E234C324A01481046674C1
|
||||
:10181000476424540544DBA7FAB79987B8975FE774
|
||||
:101820007EF71DC73CD7D326F2369106B016576611
|
||||
:101830007676154634564CD96DC90EF92FE9C899FC
|
||||
:10184000E9898AB9ABA94458654806782768C01861
|
||||
:10185000E1088238A3287DCB5CDB3FEB1EFBF98BD4
|
||||
:10186000D89BBBAB9ABB754A545A376A167AF10AB1
|
||||
:10187000D01AB32A923A2EFD0FED6CDD4DCDAABDE4
|
||||
:101880008BADE89DC98D267C076C645C454CA23C01
|
||||
:10189000832CE01CC10C1FEF3EFF5DCF7CDF9BAFB4
|
||||
:1018A000BABFD98FF89F176E367E554E745E932E51
|
||||
:0C18B000B23ED10EF01E0000000000004F
|
||||
:1018BC0001140000090243000201008032090400F7
|
||||
:1018CC00000102020000052400100104240200059E
|
||||
:1018DC00240600010524010001070583030800FF0D
|
||||
:1018EC0009040100020A0000000705810240000003
|
||||
:1018FC00070502024000000000C2010000000800C1
|
||||
:0C190C0069000000410000000000000025
|
||||
:0400000300000615DE
|
||||
:00000001FF
|
||||
|
|
|
|||
BIN
bootloaders/mkrgsm1400/samd21_sam_ba_arduino_mkrgsm1400.bin
Executable file
BIN
bootloaders/mkrgsm1400/samd21_sam_ba_arduino_mkrgsm1400.bin
Executable file
Binary file not shown.
502
bootloaders/mkrgsm1400/samd21_sam_ba_arduino_mkrgsm1400.hex
Normal file
502
bootloaders/mkrgsm1400/samd21_sam_ba_arduino_mkrgsm1400.hex
Normal file
|
|
@ -0,0 +1,502 @@
|
|||
:10000000FC7F0020810B0000710B0000750B0000CD
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:10002000000000000000000000000000790B00004C
|
||||
:1000300000000000000000007D0B0000D50C000057
|
||||
:1000400010B5064C2378002B07D1054B002B02D0AE
|
||||
:10005000044800E000BF0123237010BD5C000020B5
|
||||
:1000600000000000D81E000008B5084B002B03D08C
|
||||
:100070000748084900E000BF07480368002B03D089
|
||||
:10008000064B002B00D0984708BDC046000000007A
|
||||
:10009000D81E000060000020580000200000000072
|
||||
:1000A000064B0322104002040549586808401043DB
|
||||
:1000B0005860DA695107FCD47047C0460008004216
|
||||
:1000C000FFFFFCFF38B5284A284B5A805A7852B2B5
|
||||
:1000D000002AFBDB264B04211A6A264D0A431A62CA
|
||||
:1000E0002B68012213432B602A680123214C1A42FA
|
||||
:1000F000FAD1E2691A42F7D11423236041001E4865
|
||||
:1001000001F00CFD421EE068FF231A4098431043A3
|
||||
:10011000E0602368022213432360EA69154B9107CC
|
||||
:10012000FBD45A8B30218A4310210A435A83EB694E
|
||||
:1001300001205A07FBD4114B02241A7802431A708B
|
||||
:100140000F4B0F22197891431970197821431970B8
|
||||
:100150000C490C782043087019780A401A701A78F4
|
||||
:1001600020210A431A7038BD14400000000C0040E2
|
||||
:100170000004004000080042006CDC0248440041DA
|
||||
:100180003444004149440041F7B500230F1C01925B
|
||||
:100190001D1C994254D001212A4E4000084333705F
|
||||
:1001A000C1B2294B0322588B1C1C000910400128A6
|
||||
:1001B00004D05B8B1B091A40022AF2D1606AC00A84
|
||||
:1001C000C00208436062217E1F4B0122880708D4C9
|
||||
:1001D000197E1142F7D05968C02292020A435A6030
|
||||
:1001E00003E05B8B9B08134201D0002528E03270AE
|
||||
:1001F000237E9907FCD5154A154B117801251970F6
|
||||
:100200006268BD4212D0134B022013406360FFF7B7
|
||||
:1002100047FF33785A1C3270227E9007FCD50B4979
|
||||
:100220000B480A780135C254EDB2E9E78023DB02BE
|
||||
:10023000134363600199002902D00320FFF730FFC8
|
||||
:10024000281CFEBD7800002000080042280800425B
|
||||
:1002500099000020FFFFFBFF024B00221870024BA9
|
||||
:100260001A7070477A00002079000020F8B5274BFB
|
||||
:100270001C786400E4B2264B03215D8B1A1C2D0907
|
||||
:100280000D40012D04D05B8B1B0919400229F2D1CE
|
||||
:10029000536ADB0ADB0223435362117E01231942B6
|
||||
:1002A000FBD01B49498B8908194204D00320FFF772
|
||||
:1002B000F7FE022427E017490D782B1C002B11D0E4
|
||||
:1002C000154EEC1A365D154C2670114E177E012422
|
||||
:1002D000768B274202D12642F7D00BE0B6082642A1
|
||||
:1002E0000ED007E00B701C1C00280CD00320FFF779
|
||||
:1002F000D7FE08E003200B700324FFF7D1FE02E0D5
|
||||
:10030000013BDBB2DAE7201CF8BDC0467A000020D2
|
||||
:1003100000080042790000207B00002028080042ED
|
||||
:10032000034A1378591C1170024AD05401207047B7
|
||||
:10033000790000207B000020154A164B1178002917
|
||||
:1003400009D11549187809784118C9B21970802067
|
||||
:1003500012494003C86111780131C9B2117019788E
|
||||
:10036000F02902D81978092909D80B4908784042A0
|
||||
:10037000C0B20870187809784118C9B2197012789B
|
||||
:100380001B789A4203D18022044B5203DA617047F2
|
||||
:100390007D000020010000200000002000440041FA
|
||||
:1003A00010B5041C6B20FFF757FF201CFFF7B8FFA8
|
||||
:1003B0000120FFF75BFF01210A1C6B20FFF7E4FE21
|
||||
:1003C000014B187810BDC0469900002038B5051CB7
|
||||
:1003D0006B200C1CFFF740FF281CFFF7A1FF201C1F
|
||||
:1003E000FFF79EFF0120FFF741FF022038BD08B54F
|
||||
:1003F0000520FFF7D5FFCE23011C19400520FFF78C
|
||||
:10040000E5FF012008BD000010B5041C0020FFF727
|
||||
:10041000C7FF78232D4A9843C1B2944242D018D8DE
|
||||
:100420002B4B9C4238D009D82A4B9C4230D02A4BC7
|
||||
:100430009C422FD0294B9C4245D13FE0284B9C4207
|
||||
:100440002CD0284B9C422BD0274B9C423BD12023C5
|
||||
:1004500033E0264A94422BD00AD8254B9C4223D025
|
||||
:10046000244B9C4222D0244B9C422CD1402324E09C
|
||||
:10047000224A94421ED004D8214B9C4223D16023AF
|
||||
:100480001BE0204A944217D01F4A944215D01AE02C
|
||||
:10049000082312E0102310E018230EE028230CE0BC
|
||||
:1004A00030230AE0382308E0482306E0502304E024
|
||||
:1004B000582302E0682300E0702319430020FFF76F
|
||||
:1004C00085FF012000E0002010BDC046581100004B
|
||||
:1004D00018100000780F0000C80F0000280F00005F
|
||||
:1004E000B810000008110000681000009812000009
|
||||
:1004F000F811000048120000A81100003813000095
|
||||
:10050000E812000088130000D813000010B5041C86
|
||||
:100510000020FFF745FF07239843E122C1B2920074
|
||||
:10052000944220D008D8962C18D0FA235B009C4225
|
||||
:1005300017D0642C22D11CE0114A944215D005D862
|
||||
:100540009623DB009C4219D1042311E0FA22D20049
|
||||
:1005500094420CD00B4A94420AD00FE0012421436C
|
||||
:1005600007E0022304E0032302E0052300E0062362
|
||||
:1005700019430020FFF72AFF012000E0002010BDF2
|
||||
:10058000DC050000B80B000070B504AC267805ACA3
|
||||
:100590002578441EA041C401002901D040210C430C
|
||||
:1005A000002A01D020221443002B01D010231C4329
|
||||
:1005B000002E01D008231C43002D01D004231C432E
|
||||
:1005C0000220FFF7EDFE0125011C294021430220F6
|
||||
:1005D000FFF7FCFE281C70BD10B5041C0420FFF7BB
|
||||
:1005E000DFFE03231840084B9C4204D0074B9C427B
|
||||
:1005F00008D1B02100E0982101430420FFF7E6FE76
|
||||
:10060000012000E0002010BD10100000701000005C
|
||||
:1006100008B50120FFF7C4FECF23011C19400120BB
|
||||
:10062000FFF7D4FE012008BD07B5FFF7E0FEFFF796
|
||||
:10063000EFFF0948FFF7E8FEFA20C000FFF766FF6A
|
||||
:10064000002300930193181C191C1A1CFFF79CFF30
|
||||
:100650000248FFF7C1FF07BD08110000101000009D
|
||||
:1006600008B50348FFF72EFDFFF7DEFF08BDC046C3
|
||||
:10067000A086010010B5C3699C07FCD4036802245E
|
||||
:10068000A3430360C46901231C42FBD104682343D4
|
||||
:1006900003600368DC07FCD4C46901231C42FBD15E
|
||||
:1006A000C469DC401C42F7D1084B1A430260C3699D
|
||||
:1006B0005A07FCD4C0239B0243608181C3699C0715
|
||||
:1006C000FCD4036802221343036010BD0400004001
|
||||
:1006D000037EDA07FCD5018570470000027E012306
|
||||
:1006E0005107FBD5428B1A4207D1428BDA401A429E
|
||||
:1006F00003D1428B92081A4202D0034B01221A7096
|
||||
:10070000008DC0B27047C0467E00002070B50368FF
|
||||
:10071000041C988B1A1C0821FF32084226D0802026
|
||||
:1007200099839872112353704021144B9171507129
|
||||
:100730005E68134DC0202E40800506435E605E69F2
|
||||
:100740003540284358610F4818600F4818615D68AC
|
||||
:100750000E4828408025AD02284358605868800B19
|
||||
:100760008003586000235171237105E0137ADA0683
|
||||
:1007700002D5201C00F0E8FA207970BD9C01002011
|
||||
:10078000FFFFFF8F9C0000201C010020FF3F00F0B6
|
||||
:10079000002303714371044B016083600B780222D4
|
||||
:1007A00013430B707047C0460D07000038B5364B39
|
||||
:1007B0002021DA6901200A43DA61344B06241A78D1
|
||||
:1007C00002431A70324B0F2219789143197019782D
|
||||
:1007D000214319702F490C782043087019780A407A
|
||||
:1007E0001A701A7860210A431A702B4B2B4A5A80D0
|
||||
:1007F0005A7852B2002AFBDB294B01211A780A43AE
|
||||
:100800001A709A78D107FCD426480268510B1F222F
|
||||
:100810001140914200D1052111408C011D8D2249CA
|
||||
:100820002940214319850468A10C0A401F2A00D1E0
|
||||
:100830001D221C8D1F210A408C4322431A85026809
|
||||
:100840000721D20D0A408A4200D103220A40188DA6
|
||||
:100850001103164A02400A431A8519787F220A407A
|
||||
:100860001A701A78042112480A431A7058621A89B9
|
||||
:100870000C218A431A811A8901218A431A81002195
|
||||
:10088000802201F0A4F938BD000400405844004122
|
||||
:100890003C44004159440041000C00400640000027
|
||||
:1008A00000500041246080003FF8FFFFFF8FFFFFF2
|
||||
:1008B0009C010020F7B5141C1F4A5F0101971D1C05
|
||||
:1008C000D319061C5869271C4000400F0330103311
|
||||
:1008D000C74006D00F1C8022596812060A435A608E
|
||||
:1008E00009E02F1C7B1E9F41144BBF01FF18381CD1
|
||||
:1008F000221C01F063F901990F480835421817616D
|
||||
:10090000131C5269A104920B890C92030A435A6189
|
||||
:1009100059690B4A0A405A616B01F3180222DA71D5
|
||||
:100920005979802252420A435A716B01F318DB79DC
|
||||
:100930009A07FAD5201CFEBD9C0100201C01002056
|
||||
:10094000FF3F00F0F8B51A4E051C3378141C002B3D
|
||||
:1009500012D1184B184A1A645A6C920B92035A64BB
|
||||
:10096000586C164A02405A64A2235B00EA5C40209D
|
||||
:100970000243EA54012333704827FF37EA5D01231D
|
||||
:10098000134012D00B4B5A6C9204920CA24202D22A
|
||||
:100990005C6CA404A40C081C221C074901F00EF98D
|
||||
:1009A0000123EB550023337000E01C1C201CF8BD14
|
||||
:1009B0007F0000209C010020DC000020FF3F00F0B1
|
||||
:1009C000FF3083792022002900D110221343837144
|
||||
:1009D00070470000084BFF305A69920B92035A612E
|
||||
:1009E00002230372827980235B4213438371037A6B
|
||||
:1009F0009A07FCD57047C0469C01002080235B42CB
|
||||
:100A00001943C9B28172704770B5A02303225B00FD
|
||||
:100A1000C254134B134A5C6CC021144089050C432B
|
||||
:100A200046255C64FF35402444550F4D30261D6437
|
||||
:100A300090256D0046555D6B1540294392255963FD
|
||||
:100A40006D0080214155094D1D63B0256D00445551
|
||||
:100A50005C6F22405A67B2235B00C15470BDC04630
|
||||
:100A60009C010020FFFFFF8FDC0000205C010020C4
|
||||
:100A700030B5364A1E235168082099430223194392
|
||||
:100A8000516033498A6902438A613248324A90820E
|
||||
:100A9000908A03439382D3689807FCD52F4B01209B
|
||||
:100AA00018701878C40704D52C48407840B2002844
|
||||
:100AB000F7DB01209860587840B20028FBDB284C17
|
||||
:100AC00026484460587840B20028FBDB8224234843
|
||||
:100AD000E4014480587840B20028FBDB908C8024ED
|
||||
:100AE000A0439084D068C506FCD51E4C1A48C46249
|
||||
:100AF000D4681948E506FBD5848C1B4D2C438484AF
|
||||
:100B0000D4681548E506FBD5848C02252C438484E3
|
||||
:100B1000D0680406FCD51048C0684506F8D5D068F2
|
||||
:100B2000C406FCD500229A605A7852B2002AFBDB38
|
||||
:100B30000E480A4A50605A7852B2002AFBDB002362
|
||||
:100B40000B724B728B72CB7230BDC04600400041BD
|
||||
:100B5000000400400C06000000080040000C0040AB
|
||||
:100B600001050100B805FF7D040A0000000703002D
|
||||
:100B70000EBEFEE70DBEFEE705BEFEE702BEFEE7C7
|
||||
:100B80000E4A0F4838B5824204D10E4A0E4B9342AA
|
||||
:100B90000ED10AE00D4C9442F7D00023D1188842C0
|
||||
:100BA000F3D9E55804330D60F8E700F011F804E0DC
|
||||
:100BB0009342FAD2002102C3FAE7FEE700000020C8
|
||||
:100BC0005C000020AC0300205C000020DC1E000064
|
||||
:100BD00038B5344D2B6801331AD0334B2A1D1A60B7
|
||||
:100BE000EAB2002A14D1314B197801231940304B55
|
||||
:100BF0000AD118682F4A904201D1196008E01A60A2
|
||||
:100C00002D4A013A002AFCD11A602C4B01221A709D
|
||||
:100C1000FFF72EFF62B6FFF723FD284B284C1B7809
|
||||
:100C2000002B0AD02B6883F308881E4BFF229343C6
|
||||
:100C3000A3601D4B1B681B68184700F09DFD00F06A
|
||||
:100C40004FF8204B802252039A601F4B1F4A051C0D
|
||||
:100C50005A60216AC0220902090A12060A43226266
|
||||
:100C600000229A6007221A60AB68281C9847184B2C
|
||||
:100C7000002801D001221A701A78002A05D000201D
|
||||
:100C800000F08CFA00F004FBFCE71B78002BEBD1A2
|
||||
:100C900000F0E6FD0028E7D0012000F07FFA00F028
|
||||
:100CA000F7FAFCE7002000001C0200203804004096
|
||||
:100CB000FC7F00203581730748E801008000002098
|
||||
:100CC00000ED00E00044004110E000E0E703000018
|
||||
:100CD0008100002008B5FFF72FFB00F0C3FA08BD24
|
||||
:100CE00010B5054B054C2360FFF760FD201C216803
|
||||
:100CF000FFF74EFD201C10BD0050004120020020D7
|
||||
:100D000070B5051CC0B0081C161C0C1C00F067FF59
|
||||
:100D100040006A46032302305370107076080123A6
|
||||
:100D2000E218013A11785A00002906D1281C6946B8
|
||||
:100D30000023FFF7BFFD40B070BDB342F6DA68464E
|
||||
:100D400081520133ECE70000F7B5BA4A0468137822
|
||||
:100D5000B949271CFF37051C102038720B705378D7
|
||||
:100D6000B648B74E037093783380D1783388090240
|
||||
:100D70000B4333801179B34B1980517918880902DC
|
||||
:100D8000084318809079B0490880D2790888120207
|
||||
:100D900002430A8040227A71A84F3A78A64F120285
|
||||
:100DA00038780F1C0243A9488446181C624500D1BC
|
||||
:100DB000C2E020DC802149008A4200D16EE109DCDA
|
||||
:100DC000812A00D192E0822A00D195E0802A00D0C9
|
||||
:100DD00064E18BE081235B009A4200D1CFE000DA2E
|
||||
:100DE00058E1C0239B009A4200D157E1984B9A42A8
|
||||
:100DF00000D14FE152E190231B019A4269D015DCEA
|
||||
:100E0000D023DB009A4222D088231B019A4269D06A
|
||||
:100E1000A023DB009A4200D040E1201CFFF7DAFD5E
|
||||
:100E20003188286889B2FFF7E9FD3BE1894B9A4296
|
||||
:100E300000D12FE100DC31E1874B9A4200D11DE166
|
||||
:100E4000864B9A4200D029E133886B7122E13388C6
|
||||
:100E50001B0A012B08D10B8812222868934201D863
|
||||
:100E60000A8892B27E4911E133881B0A022B08D10D
|
||||
:100E70000B8843222868934201D80A8892B27949A4
|
||||
:100E800004E133881B0A032B00D007E13388DBB26F
|
||||
:100E9000012B17D0002B07D0022B00D0FEE00A88D0
|
||||
:100EA0002868D2B2704911E0042201A86F4900F00D
|
||||
:100EB00085FE3B8804222868934201D83A8892B282
|
||||
:100EC00001A9E3E00A8828686949D2B2FFF718FF50
|
||||
:100ED000E8E03388201C2B71FFF77CFD201CFFF716
|
||||
:100EE00093FDDFE0291C01C90122CFE06149002305
|
||||
:100EF0000B8028680222CAE05E4900220A80188816
|
||||
:100F0000502210405C4A10701E880F20304018801C
|
||||
:100F10001888032800D9C1E012781B8808335B01C8
|
||||
:100F2000E418A379002A01D09B0600E0DB06DB0F62
|
||||
:100F30000B8028680222A9E019887F2291434E4A3B
|
||||
:100F4000C9B2117018880F21014019803188002919
|
||||
:100F500000D0A3E01988002900D19FE01988032957
|
||||
:100F600000D99BE012781B8808335B01E318002A44
|
||||
:100F700002D020225A718DE0102159718AE0028836
|
||||
:100F80007F239A433C4BD2B21A7001880F220A4049
|
||||
:100F900002803288002A00D080E00288002A00D136
|
||||
:100FA0007CE00288032A00D978E01B78002B1FD050
|
||||
:100FB000038808335B01E3189B799A066AD5038896
|
||||
:100FC000202208335B01E3181A71038808335B01A0
|
||||
:100FD000E318DB795F065DD50388402208335B01A7
|
||||
:100FE000E318DA710388022208335B01E3181EE07C
|
||||
:100FF000038808335B01E3189B79D9064AD5038837
|
||||
:10100000102208335B01E3181A71038808335B016F
|
||||
:10101000E318DB799A063DD50388202208335B016B
|
||||
:10102000E318DA710388012208335B01E3181A71AF
|
||||
:1010300030E0C0469C000020830000208800002093
|
||||
:101040008A0000208C00002086000020020300009F
|
||||
:101050000103000021200000A12100002122000046
|
||||
:101060002C1C000004000020141C0000041C0000C4
|
||||
:10107000081C000084000020820000200B88082249
|
||||
:101080002868934201D80A8892B207490023FFF7E3
|
||||
:1010900011FC07E0201CFFF79DFC03E0201C012150
|
||||
:1010A000FFF78EFCF7BDC0464800002007B5054B92
|
||||
:1010B0000122019001A91868131CFFF7FBFB012016
|
||||
:1010C0000EBDC0462002002013B5054B6C46073408
|
||||
:1010D0001868211C0122FFF735FC207816BDC04698
|
||||
:1010E0002002002010B5074C201CFFF70FFB031C4B
|
||||
:1010F0000020834205D022684823FF33D05C0123BF
|
||||
:10110000184010BD2002002010B5054A0C1C031C1D
|
||||
:10111000191C10680123221CFFF7CCFB201C10BDFA
|
||||
:101120002002002070B5084C061C201C0D1CFFF787
|
||||
:10113000EDFA0023984205D02068311C2A1CFFF7E5
|
||||
:1011400001FC031C181C70BD20020020F8B50C4CDB
|
||||
:10115000051C201C0E1CFFF7D9FA0023271C341C89
|
||||
:1011600098420AD0002C07D0291C221C3868FFF7AF
|
||||
:10117000E9FB241A2D18F5E7331C181CF8BDC046EE
|
||||
:101180002002002008B5031C081C111C9847024BC4
|
||||
:1011900064221A8008BDC04692000020012805D1B3
|
||||
:1011A000054B064A1A60064B187004E0002802D16D
|
||||
:1011B000044A014B1A60704790020020601C000036
|
||||
:1011C00098000020AC1C000030B50A1C1C4985B0FA
|
||||
:1011D0000978031C00292AD0042A01D1006804E000
|
||||
:1011E000022A01D1008800E00078520004A98B187F
|
||||
:1011F0000B3B9C1AA3420BD00F210140092902D8B6
|
||||
:101200003025294300E0373119700009013BF1E72F
|
||||
:1012100001A930230B7078234B700A208B1898702B
|
||||
:101220000D20D870074B04321B68D86803E00549CD
|
||||
:101230000968C868191CFFF7A5FF05B030BDC04696
|
||||
:101240008E0000209002002072B6EFF30883044A5B
|
||||
:101250001360036883F30888436818477047C046E3
|
||||
:1012600094020020084B1A88002A03D01A88013AF9
|
||||
:1012700092B21A80054B1A88002A03D01A88013AC4
|
||||
:1012800092B21A807047C046920000209000002061
|
||||
:10129000F0B591B008A9CC4A0B1C31CA31C351CA70
|
||||
:1012A00051C360CA60C3C94BC9489A687A255203C2
|
||||
:1012B000520F92005258C74902609C68A4B2624320
|
||||
:1012C0000C60C54900240A60C44A1460C44C2570EF
|
||||
:1012D000C44CC54D2368281C1B6940219847002831
|
||||
:1012E00002D0C24B64221A80C14B00221860C14B4D
|
||||
:1012F0001D60C14BC04DBE4F1A602A683B689A42C0
|
||||
:10130000E6D2BC4B1B681A78FF2A00D114E2232ACC
|
||||
:1013100000D0EBE1B94E3378002B06D0B14BB84981
|
||||
:101320001B680222D868FFF72DFFAD4B1B78532BAB
|
||||
:101330003CD13B682A6893421ED9AE4801322A60EC
|
||||
:101340009A1AB04B01681B6801310160AE4E9A4297
|
||||
:1013500001D2326000E03360A04832680068049037
|
||||
:1013600000F02CFC336829685A182A60A14A1668D4
|
||||
:10137000F1181160A54A13702B68013B2B609D4B3F
|
||||
:101380001A68013A1A60A14B9E4A1B7811688B4279
|
||||
:101390000AD222689148C91A0068926990470028C9
|
||||
:1013A00002D0924B64221A80C0468DE1522B0AD1A2
|
||||
:1013B0008A48944A2368006811685B6903909847DB
|
||||
:1013C0006422934B0DE04F2B05D1844B8D4A1B6853
|
||||
:1013D00012681A7078E1482B05D1804B894A1B6846
|
||||
:1013E00012681A8070E1572B05D17C4B854A1B6827
|
||||
:1013F00012681A6068E16F2B03D1784B01211868DD
|
||||
:1014000007E0682B08D1754B7E481B6802211B88BA
|
||||
:101410000360FFF7D9FE57E1772B06D16F4B794870
|
||||
:101420001B6804211B680360F3E7472B13D1754B3E
|
||||
:101430001868FFF709FF774B1B6883F3088862B6CB
|
||||
:10144000754B1B78002B00D13EE1664B06201B68D4
|
||||
:101450001B68984738E1542B04D101233370614B4A
|
||||
:101460001B6864E04E2B0CD13378002B06D15D4B0A
|
||||
:1014700063491B680222D868FFF784FE002333709B
|
||||
:1014800022E1562B57D123686449D8680122FFF71F
|
||||
:1014900079FE23686249D8680322FFF773FE614D25
|
||||
:1014A0002368291CD8680122FFF76CFE23685E4977
|
||||
:1014B000D8680D22FFF766FE2368291CD868012230
|
||||
:1014C000FFF760FE4B4F4C4D5849002339602B60AD
|
||||
:1014D0003A1C281C13685E1C16601B780593002BB1
|
||||
:1014E00003D0036801330360F4E73E4E2A68336893
|
||||
:1014F000D868FFF747FE33684A49D8680122FFF7EA
|
||||
:1015000041FE059929604A4939603A4A1368581CD6
|
||||
:1015100010601B78002B04D0374B1A6801321A6018
|
||||
:10152000F3E733682A68D868FFF72CFE3368D86879
|
||||
:1015300033490222C6E0334A582B17D1244E264D98
|
||||
:10154000366813682A68B10093420AD21F4D5808C2
|
||||
:10155000E861384828801D4D287DC607FBD55B18FB
|
||||
:10156000F2E7204B34491B68D868AAE0592B79D19F
|
||||
:1015700012681A4B3149002A02D11B680B606CE0DB
|
||||
:10158000124D086819686B68104E8025AB439208AD
|
||||
:101590007360002A61D02A4B0C4D2B800B4E337D9B
|
||||
:1015A000DD07FBD500230A4D2D680195AD08AB4240
|
||||
:1015B00003D3244D054E358046E09342F9D09D007B
|
||||
:1015C000465901334E51EEE7401C000000400041F7
|
||||
:1015D00048020020400200203C0200208C02002033
|
||||
:1015E00038020020900200204C02002090000020D1
|
||||
:1015F0003002002034020020440200208E0000202F
|
||||
:10160000A01C0000980200209C0200202C02002058
|
||||
:101610009200002094020020980000207C1C000012
|
||||
:10162000A51C00007E1C0000C81C0000801C0000DF
|
||||
:101630008C1C000002A5FFFF951C000094000020F8
|
||||
:1016400044A5FFFF04A5FFFF3F4E357DEE07FBD508
|
||||
:101650009D0049194019D21A9BE73C4B3C491B6835
|
||||
:10166000D8682EE05A2B2FD13A4B17681D680026F8
|
||||
:10167000EF19BD4206D02878311C00F013F901356E
|
||||
:10168000061CF6E7314B34491B680122D868FFF786
|
||||
:1016900079FD07230F223240111C36093031092A07
|
||||
:1016A00000DD07311820C0186A468154013BF1D291
|
||||
:1016B000236806A9D8680822FFF764FD2368274934
|
||||
:1016C000D8680322FFF75EFD254B7A221A70254B5E
|
||||
:1016D00000221A60244B1B7893422DD01B4B2349C8
|
||||
:1016E0001B680122D868FFF74DFD25E0111C303939
|
||||
:1016F000C8B21C4B092804D81D682A01114319607F
|
||||
:101700001AE0111C4139052903D81E68373A310106
|
||||
:1017100006E0111C6139052904D81868573A0101FF
|
||||
:101720000A4308E02C2A03D10A4A1968116001E033
|
||||
:101730000B490A7000221A600D4B1A6801321A60B8
|
||||
:101740000C4B1A680132D5E50040004190020020A0
|
||||
:10175000991C00008C0200209D1C00009F1C0000B2
|
||||
:1017600038020020980200208E000020A31C0000F8
|
||||
:10177000440200203402002010B51C4B01201A78CE
|
||||
:10178000032402431A701A4B0F22197891431970DF
|
||||
:1017900019782143197017490C782043087019787B
|
||||
:1017A0000A401A701A7830210A431A70124B8021AD
|
||||
:1017B0001A6A0A431A62114B114A5A805A7852B275
|
||||
:1017C000002AFBDBC4220F480F499203FEF752FFA9
|
||||
:1017D0000E4A002313700E4A13700E4A13700E4AFD
|
||||
:1017E00013700E4A13700E4A137010BDD644004198
|
||||
:1017F000BB440041D744004100040040000C0040BD
|
||||
:1018000019400000001C00422AF60000A00200203F
|
||||
:1018100027030020A1020020A402002028030020AA
|
||||
:101820002503002008B5C1B20248FEF751FF012090
|
||||
:1018300008BDC046001C0042024B187E4007C00F86
|
||||
:101840007047C046001C004208B5FFF7F5FF0028AE
|
||||
:10185000FBD00248FEF742FF08BDC046001C004214
|
||||
:1018600008B5FFF7E9FF0023984205D0FFF7ECFF2A
|
||||
:10187000031C233B5A425341181C08BD70B5041C7D
|
||||
:101880000D1C4618B44204D02078FFF7CBFF01347A
|
||||
:10189000F8E7281C70BD10B5041CFFF7D5FF2070B9
|
||||
:1018A000012010BD0B0A5840034B4000C05A0902EA
|
||||
:1018B000484080B27047C046D61C0000F7B50024EF
|
||||
:1018C000051C0F1C261CBC4220D0FFF7BDFF114B8E
|
||||
:1018D000C0B21B780190002B1AD1311CFFF7E2FF38
|
||||
:1018E0000D4B061C1A88002A04D10C4A11782A1CB8
|
||||
:1018F000002907D001996A1C2970802F02D119880C
|
||||
:10190000013919800134A4B2151CDCE7301C00E059
|
||||
:101910000120FEBD25030020A20200202603002096
|
||||
:10192000F0B53E4E85B0002203900C1C32703C4B4B
|
||||
:10193000914201D1012201E03A490C801A707F23C3
|
||||
:101940001C4201D080349C43FFF77EFF3378C0B245
|
||||
:10195000002B07D000253570FFF776FF3378C0B233
|
||||
:10196000AB4236D1432803D0712853D01528EBD190
|
||||
:10197000012300930120FFF755FF0098FFF752FF66
|
||||
:1019800000998025C843C0B2FFF74CFF039B002796
|
||||
:101990000293244A1388002B1DD121490193097811
|
||||
:1019A000002918D10198FFF73DFF391C0198FFF776
|
||||
:1019B00079FF013D071C002DEBD1000AC0B2FFF7F3
|
||||
:1019C00031FFF8B2FFF72EFFFFF73EFF3378002B11
|
||||
:1019D0000AD035701FE00299013B09781380029B01
|
||||
:1019E000019101330293DDE7C0B2062807D1009BC5
|
||||
:1019F00003990133DBB280310093803C0391002CCA
|
||||
:101A0000B8D10420FFF70EFFFFF71EFF044B01259E
|
||||
:101A10001C7000E00025281C05B0F0BD2503002047
|
||||
:101A200026030020A2020020F0B5384C87B0002326
|
||||
:101A300001902370994201D1012301E0344A1180C1
|
||||
:101A4000344A642613704320FFF7ECFE324FFFF751
|
||||
:101A5000F3FE002803D1002F03D0013FF7E7002F4A
|
||||
:101A600003D1013E002EEED14DE00125FFF7ECFE43
|
||||
:101A70002378002B38D1C0B20290012805D0042869
|
||||
:101A80003DD10620FFF7CEFE39E005AE0221301C25
|
||||
:101A9000FFF714FF01988021FFF710FF23780390D0
|
||||
:101AA000002B18D1FFF7D0FE0702FFF7CDFEBFB223
|
||||
:101AB00023783F18BFB2012B0DD0039B9F4207D163
|
||||
:101AC0003378AB4204D1EB437278DBB29A4204D054
|
||||
:101AD0001820FFF7A7FE002303E00620FFF7A2FE71
|
||||
:101AE000029B2278002A02D0002626700BE0012BF0
|
||||
:101AF00005D1019A6B1C8032DDB20192B6E7054A2E
|
||||
:101B0000002313700126301C07B0F0BD2503002010
|
||||
:101B1000A20200202603002000350C00002934D04A
|
||||
:101B20000123002210B488422CD301242407A142AF
|
||||
:101B300004D2814202D209011B01F8E7E400A1426C
|
||||
:101B400004D2814202D249005B00F8E7884201D307
|
||||
:101B5000401A1A434C08A04202D3001B5C082243DF
|
||||
:101B60008C08A04202D3001B9C082243CC08A04250
|
||||
:101B700002D3001BDC082243002803D01B0901D03C
|
||||
:101B80000909E3E7101C10BC7047002801D00020B1
|
||||
:101B9000C04307B4024802A14018029003BDC046EA
|
||||
:101BA000190000000029F0D003B5FFF7B9FF0EBC03
|
||||
:101BB0004243891A1847C0467047C04610B50023F3
|
||||
:101BC000934203D0CC5CC4540133F9E710BD031C2D
|
||||
:101BD0008218934202D019700133FAE7704700234C
|
||||
:101BE000C25C0133002AFBD1581E7047F8B5C046CD
|
||||
:101BF000F8BC08BC9E467047F8B5C046F8BC08BCA7
|
||||
:101C00009E4670470403090441726475696E6F2033
|
||||
:101C10004C4C430041726475696E6F204D4B5220ED
|
||||
:101C200047534D20313430300000000012010002D3
|
||||
:101C300002000040412352000002010200010000A6
|
||||
:101C4000080000001000000020000000400000001C
|
||||
:101C500080000000000100000002000000040000FD
|
||||
:101C60002518000049180000391800007D180000F0
|
||||
:101C70009718000021190000291A000076002000A2
|
||||
:101C80004E6F7620333020323031370031303A31E8
|
||||
:101C9000333A323100580A0D00590A0D005A002318
|
||||
:101CA0000A0D003E00322E3000000000AD10000092
|
||||
:101CB000C9100000E5100000091100002511000006
|
||||
:101CC000091100004D1100005B41726475696E6F6F
|
||||
:101CD0003A58595A5D000000211042206330844078
|
||||
:101CE000A550C660E770088129914AA16BB18CC1EB
|
||||
:101CF000ADD1CEE1EFF13112100273325222B55262
|
||||
:101D00009442F772D662399318837BB35AA3BDD33A
|
||||
:101D10009CC3FFF3DEE36224433420040114E66431
|
||||
:101D2000C774A44485546AA54BB528850995EEE58A
|
||||
:101D3000CFF5ACC58DD55336722611163006D77641
|
||||
:101D4000F6669556B4465BB77AA719973887DFF7DA
|
||||
:101D5000FEE79DD7BCC7C448E5588668A778400809
|
||||
:101D6000611802282338CCC9EDD98EE9AFF948892A
|
||||
:101D700069990AA92BB9F55AD44AB77A966A711AA1
|
||||
:101D8000500A333A122AFDDBDCCBBFFB9EEB799B7A
|
||||
:101D9000588B3BBB1AABA66C877CE44CC55C222CF1
|
||||
:101DA000033C600C411CAEED8FFDECCDCDDD2AADCA
|
||||
:101DB0000BBD688D499D977EB66ED55EF44E133E81
|
||||
:101DC000322E511E700E9FFFBEEFDDDFFCCF1BBF1A
|
||||
:101DD0003AAF599F788F8891A981CAB1EBA10CD1F4
|
||||
:101DE0002DC14EF16FE18010A100C230E3200450FC
|
||||
:101DF000254046706760B9839893FBA3DAB33DC36F
|
||||
:101E00001CD37FE35EF3B1029012F322D23235424B
|
||||
:101E1000145277625672EAB5CBA5A89589856EF5FE
|
||||
:101E20004FE52CD50DC5E234C324A014810466749B
|
||||
:101E3000476424540544DBA7FAB79987B8975FE74E
|
||||
:101E40007EF71DC73CD7D326F2369106B0165766EB
|
||||
:101E50007676154634564CD96DC90EF92FE9C899D6
|
||||
:101E6000E9898AB9ABA94458654806782768C0183B
|
||||
:101E7000E1088238A3287DCB5CDB3FEB1EFBF98BAE
|
||||
:101E8000D89BBBAB9ABB754A545A376A167AF10A8B
|
||||
:101E9000D01AB32A923A2EFD0FED6CDD4DCDAABDBE
|
||||
:101EA0008BADE89DC98D267C076C645C454CA23CDB
|
||||
:101EB000832CE01CC10C1FEF3EFF5DCF7CDF9BAF8E
|
||||
:101EC000BABFD98FF89F176E367E554E745E932E2B
|
||||
:0C1ED000B23ED10EF01E00000000000029
|
||||
:101EDC0001140000090243000201008032090400D1
|
||||
:101EEC000001020200000524001001042402000578
|
||||
:101EFC00240600010524010001070583030800FFE7
|
||||
:101F0C0009040100020A00000007058102400000DC
|
||||
:101F1C00070502024000000000C20100000008009A
|
||||
:0C1F2C00690000004100000000000000FF
|
||||
:0400000300000B816D
|
||||
:00000001FF
|
||||
BIN
bootloaders/mkrnb1500/samd21_sam_ba_arduino_mkrnb1500.bin
Executable file
BIN
bootloaders/mkrnb1500/samd21_sam_ba_arduino_mkrnb1500.bin
Executable file
Binary file not shown.
502
bootloaders/mkrnb1500/samd21_sam_ba_arduino_mkrnb1500.hex
Normal file
502
bootloaders/mkrnb1500/samd21_sam_ba_arduino_mkrnb1500.hex
Normal file
|
|
@ -0,0 +1,502 @@
|
|||
:10000000FC7F0020810B0000710B0000750B0000CD
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:10002000000000000000000000000000790B00004C
|
||||
:1000300000000000000000007D0B0000D50C000057
|
||||
:1000400010B5064C2378002B07D1054B002B02D0AE
|
||||
:10005000044800E000BF0123237010BD5C000020B5
|
||||
:1000600000000000D41E000008B5084B002B03D090
|
||||
:100070000748084900E000BF07480368002B03D089
|
||||
:10008000064B002B00D0984708BDC046000000007A
|
||||
:10009000D41E000060000020580000200000000076
|
||||
:1000A000064B0322104002040549586808401043DB
|
||||
:1000B0005860DA695107FCD47047C0460008004216
|
||||
:1000C000FFFFFCFF38B5284A284B5A805A7852B2B5
|
||||
:1000D000002AFBDB264B04211A6A264D0A431A62CA
|
||||
:1000E0002B68012213432B602A680123214C1A42FA
|
||||
:1000F000FAD1E2691A42F7D11423236041001E4865
|
||||
:1001000001F00CFD421EE068FF231A4098431043A3
|
||||
:10011000E0602368022213432360EA69154B9107CC
|
||||
:10012000FBD45A8B30218A4310210A435A83EB694E
|
||||
:1001300001205A07FBD4114B02241A7802431A708B
|
||||
:100140000F4B0F22197891431970197821431970B8
|
||||
:100150000C490C782043087019780A401A701A78F4
|
||||
:1001600020210A431A7038BD14400000000C0040E2
|
||||
:100170000004004000080042006CDC0248440041DA
|
||||
:100180003444004149440041F7B500230F1C01925B
|
||||
:100190001D1C994254D001212A4E4000084333705F
|
||||
:1001A000C1B2294B0322588B1C1C000910400128A6
|
||||
:1001B00004D05B8B1B091A40022AF2D1606AC00A84
|
||||
:1001C000C00208436062217E1F4B0122880708D4C9
|
||||
:1001D000197E1142F7D05968C02292020A435A6030
|
||||
:1001E00003E05B8B9B08134201D0002528E03270AE
|
||||
:1001F000237E9907FCD5154A154B117801251970F6
|
||||
:100200006268BD4212D0134B022013406360FFF7B7
|
||||
:1002100047FF33785A1C3270227E9007FCD50B4979
|
||||
:100220000B480A780135C254EDB2E9E78023DB02BE
|
||||
:10023000134363600199002902D00320FFF730FFC8
|
||||
:10024000281CFEBD7800002000080042280800425B
|
||||
:1002500099000020FFFFFBFF024B00221870024BA9
|
||||
:100260001A7070477A00002079000020F8B5274BFB
|
||||
:100270001C786400E4B2264B03215D8B1A1C2D0907
|
||||
:100280000D40012D04D05B8B1B0919400229F2D1CE
|
||||
:10029000536ADB0ADB0223435362117E01231942B6
|
||||
:1002A000FBD01B49498B8908194204D00320FFF772
|
||||
:1002B000F7FE022427E017490D782B1C002B11D0E4
|
||||
:1002C000154EEC1A365D154C2670114E177E012422
|
||||
:1002D000768B274202D12642F7D00BE0B6082642A1
|
||||
:1002E0000ED007E00B701C1C00280CD00320FFF779
|
||||
:1002F000D7FE08E003200B700324FFF7D1FE02E0D5
|
||||
:10030000013BDBB2DAE7201CF8BDC0467A000020D2
|
||||
:1003100000080042790000207B00002028080042ED
|
||||
:10032000034A1378591C1170024AD05401207047B7
|
||||
:10033000790000207B000020154A164B1178002917
|
||||
:1003400009D11549187809784118C9B21970802067
|
||||
:1003500012494003C86111780131C9B2117019788E
|
||||
:10036000F02902D81978092909D80B4908784042A0
|
||||
:10037000C0B20870187809784118C9B2197012789B
|
||||
:100380001B789A4203D18022044B5203DA617047F2
|
||||
:100390007D000020010000200000002000440041FA
|
||||
:1003A00010B5041C6B20FFF757FF201CFFF7B8FFA8
|
||||
:1003B0000120FFF75BFF01210A1C6B20FFF7E4FE21
|
||||
:1003C000014B187810BDC0469900002038B5051CB7
|
||||
:1003D0006B200C1CFFF740FF281CFFF7A1FF201C1F
|
||||
:1003E000FFF79EFF0120FFF741FF022038BD08B54F
|
||||
:1003F0000520FFF7D5FFCE23011C19400520FFF78C
|
||||
:10040000E5FF012008BD000010B5041C0020FFF727
|
||||
:10041000C7FF78232D4A9843C1B2944242D018D8DE
|
||||
:100420002B4B9C4238D009D82A4B9C4230D02A4BC7
|
||||
:100430009C422FD0294B9C4245D13FE0284B9C4207
|
||||
:100440002CD0284B9C422BD0274B9C423BD12023C5
|
||||
:1004500033E0264A94422BD00AD8254B9C4223D025
|
||||
:10046000244B9C4222D0244B9C422CD1402324E09C
|
||||
:10047000224A94421ED004D8214B9C4223D16023AF
|
||||
:100480001BE0204A944217D01F4A944215D01AE02C
|
||||
:10049000082312E0102310E018230EE028230CE0BC
|
||||
:1004A00030230AE0382308E0482306E0502304E024
|
||||
:1004B000582302E0682300E0702319430020FFF76F
|
||||
:1004C00085FF012000E0002010BDC046581100004B
|
||||
:1004D00018100000780F0000C80F0000280F00005F
|
||||
:1004E000B810000008110000681000009812000009
|
||||
:1004F000F811000048120000A81100003813000095
|
||||
:10050000E812000088130000D813000010B5041C86
|
||||
:100510000020FFF745FF07239843E122C1B2920074
|
||||
:10052000944220D008D8962C18D0FA235B009C4225
|
||||
:1005300017D0642C22D11CE0114A944215D005D862
|
||||
:100540009623DB009C4219D1042311E0FA22D20049
|
||||
:1005500094420CD00B4A94420AD00FE0012421436C
|
||||
:1005600007E0022304E0032302E0052300E0062362
|
||||
:1005700019430020FFF72AFF012000E0002010BDF2
|
||||
:10058000DC050000B80B000070B504AC267805ACA3
|
||||
:100590002578441EA041C401002901D040210C430C
|
||||
:1005A000002A01D020221443002B01D010231C4329
|
||||
:1005B000002E01D008231C43002D01D004231C432E
|
||||
:1005C0000220FFF7EDFE0125011C294021430220F6
|
||||
:1005D000FFF7FCFE281C70BD10B5041C0420FFF7BB
|
||||
:1005E000DFFE03231840084B9C4204D0074B9C427B
|
||||
:1005F00008D1B02100E0982101430420FFF7E6FE76
|
||||
:10060000012000E0002010BD10100000701000005C
|
||||
:1006100008B50120FFF7C4FECF23011C19400120BB
|
||||
:10062000FFF7D4FE012008BD07B5FFF7E0FEFFF796
|
||||
:10063000EFFF0948FFF7E8FEFA20C000FFF766FF6A
|
||||
:10064000002300930193181C191C1A1CFFF79CFF30
|
||||
:100650000248FFF7C1FF07BD08110000101000009D
|
||||
:1006600008B50348FFF72EFDFFF7DEFF08BDC046C3
|
||||
:10067000A086010010B5C3699C07FCD4036802245E
|
||||
:10068000A3430360C46901231C42FBD104682343D4
|
||||
:1006900003600368DC07FCD4C46901231C42FBD15E
|
||||
:1006A000C469DC401C42F7D1084B1A430260C3699D
|
||||
:1006B0005A07FCD4C0239B0243608181C3699C0715
|
||||
:1006C000FCD4036802221343036010BD0400004001
|
||||
:1006D000037EDA07FCD5018570470000027E012306
|
||||
:1006E0005107FBD5428B1A4207D1428BDA401A429E
|
||||
:1006F00003D1428B92081A4202D0034B01221A7096
|
||||
:10070000008DC0B27047C0467E00002070B50368FF
|
||||
:10071000041C988B1A1C0821FF32084226D0802026
|
||||
:1007200099839872112353704021144B9171507129
|
||||
:100730005E68134DC0202E40800506435E605E69F2
|
||||
:100740003540284358610F4818600F4818615D68AC
|
||||
:100750000E4828408025AD02284358605868800B19
|
||||
:100760008003586000235171237105E0137ADA0683
|
||||
:1007700002D5201C00F0E8FA207970BD9C01002011
|
||||
:10078000FFFFFF8F9C0000201C010020FF3F00F0B6
|
||||
:10079000002303714371044B016083600B780222D4
|
||||
:1007A00013430B707047C0460D07000038B5364B39
|
||||
:1007B0002021DA6901200A43DA61344B06241A78D1
|
||||
:1007C00002431A70324B0F2219789143197019782D
|
||||
:1007D000214319702F490C782043087019780A407A
|
||||
:1007E0001A701A7860210A431A702B4B2B4A5A80D0
|
||||
:1007F0005A7852B2002AFBDB294B01211A780A43AE
|
||||
:100800001A709A78D107FCD426480268510B1F222F
|
||||
:100810001140914200D1052111408C011D8D2249CA
|
||||
:100820002940214319850468A10C0A401F2A00D1E0
|
||||
:100830001D221C8D1F210A408C4322431A85026809
|
||||
:100840000721D20D0A408A4200D103220A40188DA6
|
||||
:100850001103164A02400A431A8519787F220A407A
|
||||
:100860001A701A78042112480A431A7058621A89B9
|
||||
:100870000C218A431A811A8901218A431A81002195
|
||||
:10088000802201F0A4F938BD000400405844004122
|
||||
:100890003C44004159440041000C00400640000027
|
||||
:1008A00000500041246080003FF8FFFFFF8FFFFFF2
|
||||
:1008B0009C010020F7B5141C1F4A5F0101971D1C05
|
||||
:1008C000D319061C5869271C4000400F0330103311
|
||||
:1008D000C74006D00F1C8022596812060A435A608E
|
||||
:1008E00009E02F1C7B1E9F41144BBF01FF18381CD1
|
||||
:1008F000221C01F063F901990F480835421817616D
|
||||
:10090000131C5269A104920B890C92030A435A6189
|
||||
:1009100059690B4A0A405A616B01F3180222DA71D5
|
||||
:100920005979802252420A435A716B01F318DB79DC
|
||||
:100930009A07FAD5201CFEBD9C0100201C01002056
|
||||
:10094000FF3F00F0F8B51A4E051C3378141C002B3D
|
||||
:1009500012D1184B184A1A645A6C920B92035A64BB
|
||||
:10096000586C164A02405A64A2235B00EA5C40209D
|
||||
:100970000243EA54012333704827FF37EA5D01231D
|
||||
:10098000134012D00B4B5A6C9204920CA24202D22A
|
||||
:100990005C6CA404A40C081C221C074901F00EF98D
|
||||
:1009A0000123EB550023337000E01C1C201CF8BD14
|
||||
:1009B0007F0000209C010020DC000020FF3F00F0B1
|
||||
:1009C000FF3083792022002900D110221343837144
|
||||
:1009D00070470000084BFF305A69920B92035A612E
|
||||
:1009E00002230372827980235B4213438371037A6B
|
||||
:1009F0009A07FCD57047C0469C01002080235B42CB
|
||||
:100A00001943C9B28172704770B5A02303225B00FD
|
||||
:100A1000C254134B134A5C6CC021144089050C432B
|
||||
:100A200046255C64FF35402444550F4D30261D6437
|
||||
:100A300090256D0046555D6B1540294392255963FD
|
||||
:100A40006D0080214155094D1D63B0256D00445551
|
||||
:100A50005C6F22405A67B2235B00C15470BDC04630
|
||||
:100A60009C010020FFFFFF8FDC0000205C010020C4
|
||||
:100A700030B5364A1E235168082099430223194392
|
||||
:100A8000516033498A6902438A613248324A90820E
|
||||
:100A9000908A03439382D3689807FCD52F4B01209B
|
||||
:100AA00018701878C40704D52C48407840B2002844
|
||||
:100AB000F7DB01209860587840B20028FBDB284C17
|
||||
:100AC00026484460587840B20028FBDB8224234843
|
||||
:100AD000E4014480587840B20028FBDB908C8024ED
|
||||
:100AE000A0439084D068C506FCD51E4C1A48C46249
|
||||
:100AF000D4681948E506FBD5848C1B4D2C438484AF
|
||||
:100B0000D4681548E506FBD5848C02252C438484E3
|
||||
:100B1000D0680406FCD51048C0684506F8D5D068F2
|
||||
:100B2000C406FCD500229A605A7852B2002AFBDB38
|
||||
:100B30000E480A4A50605A7852B2002AFBDB002362
|
||||
:100B40000B724B728B72CB7230BDC04600400041BD
|
||||
:100B5000000400400C06000000080040000C0040AB
|
||||
:100B600001050100B805FF7D040A0000000703002D
|
||||
:100B70000EBEFEE70DBEFEE705BEFEE702BEFEE7C7
|
||||
:100B80000E4A0F4838B5824204D10E4A0E4B9342AA
|
||||
:100B90000ED10AE00D4C9442F7D00023D1188842C0
|
||||
:100BA000F3D9E55804330D60F8E700F011F804E0DC
|
||||
:100BB0009342FAD2002102C3FAE7FEE700000020C8
|
||||
:100BC0005C000020AC0300205C000020D81E000068
|
||||
:100BD00038B5344D2B6801331AD0334B2A1D1A60B7
|
||||
:100BE000EAB2002A14D1314B197801231940304B55
|
||||
:100BF0000AD118682F4A904201D1196008E01A60A2
|
||||
:100C00002D4A013A002AFCD11A602C4B01221A709D
|
||||
:100C1000FFF72EFF62B6FFF723FD284B284C1B7809
|
||||
:100C2000002B0AD02B6883F308881E4BFF229343C6
|
||||
:100C3000A3601D4B1B681B68184700F09DFD00F06A
|
||||
:100C40004FF8204B802252039A601F4B1F4A051C0D
|
||||
:100C50005A60216AC0220902090A12060A43226266
|
||||
:100C600000229A6007221A60AB68281C9847184B2C
|
||||
:100C7000002801D001221A701A78002A05D000201D
|
||||
:100C800000F08CFA00F004FBFCE71B78002BEBD1A2
|
||||
:100C900000F0E6FD0028E7D0012000F07FFA00F028
|
||||
:100CA000F7FAFCE7002000001C0200203804004096
|
||||
:100CB000FC7F00203581730748E801008000002098
|
||||
:100CC00000ED00E00044004110E000E0E703000018
|
||||
:100CD0008100002008B5FFF72FFB00F0C3FA08BD24
|
||||
:100CE00010B5054B054C2360FFF760FD201C216803
|
||||
:100CF000FFF74EFD201C10BD0050004120020020D7
|
||||
:100D000070B5051CC0B0081C161C0C1C00F067FF59
|
||||
:100D100040006A46032302305370107076080123A6
|
||||
:100D2000E218013A11785A00002906D1281C6946B8
|
||||
:100D30000023FFF7BFFD40B070BDB342F6DA68464E
|
||||
:100D400081520133ECE70000F7B5BA4A0468137822
|
||||
:100D5000B949271CFF37051C102038720B705378D7
|
||||
:100D6000B648B74E037093783380D1783388090240
|
||||
:100D70000B4333801179B34B1980517918880902DC
|
||||
:100D8000084318809079B0490880D2790888120207
|
||||
:100D900002430A8040227A71A84F3A78A64F120285
|
||||
:100DA00038780F1C0243A9488446181C624500D1BC
|
||||
:100DB000C2E020DC802149008A4200D16EE109DCDA
|
||||
:100DC000812A00D192E0822A00D195E0802A00D0C9
|
||||
:100DD00064E18BE081235B009A4200D1CFE000DA2E
|
||||
:100DE00058E1C0239B009A4200D157E1984B9A42A8
|
||||
:100DF00000D14FE152E190231B019A4269D015DCEA
|
||||
:100E0000D023DB009A4222D088231B019A4269D06A
|
||||
:100E1000A023DB009A4200D040E1201CFFF7DAFD5E
|
||||
:100E20003188286889B2FFF7E9FD3BE1894B9A4296
|
||||
:100E300000D12FE100DC31E1874B9A4200D11DE166
|
||||
:100E4000864B9A4200D029E133886B7122E13388C6
|
||||
:100E50001B0A012B08D10B8812222868934201D863
|
||||
:100E60000A8892B27E4911E133881B0A022B08D10D
|
||||
:100E70000B8843222868934201D80A8892B27949A4
|
||||
:100E800004E133881B0A032B00D007E13388DBB26F
|
||||
:100E9000012B17D0002B07D0022B00D0FEE00A88D0
|
||||
:100EA0002868D2B2704911E0042201A86F4900F00D
|
||||
:100EB00085FE3B8804222868934201D83A8892B282
|
||||
:100EC00001A9E3E00A8828686949D2B2FFF718FF50
|
||||
:100ED000E8E03388201C2B71FFF77CFD201CFFF716
|
||||
:100EE00093FDDFE0291C01C90122CFE06149002305
|
||||
:100EF0000B8028680222CAE05E4900220A80188816
|
||||
:100F0000502210405C4A10701E880F20304018801C
|
||||
:100F10001888032800D9C1E012781B8808335B01C8
|
||||
:100F2000E418A379002A01D09B0600E0DB06DB0F62
|
||||
:100F30000B8028680222A9E019887F2291434E4A3B
|
||||
:100F4000C9B2117018880F21014019803188002919
|
||||
:100F500000D0A3E01988002900D19FE01988032957
|
||||
:100F600000D99BE012781B8808335B01E318002A44
|
||||
:100F700002D020225A718DE0102159718AE0028836
|
||||
:100F80007F239A433C4BD2B21A7001880F220A4049
|
||||
:100F900002803288002A00D080E00288002A00D136
|
||||
:100FA0007CE00288032A00D978E01B78002B1FD050
|
||||
:100FB000038808335B01E3189B799A066AD5038896
|
||||
:100FC000202208335B01E3181A71038808335B01A0
|
||||
:100FD000E318DB795F065DD50388402208335B01A7
|
||||
:100FE000E318DA710388022208335B01E3181EE07C
|
||||
:100FF000038808335B01E3189B79D9064AD5038837
|
||||
:10100000102208335B01E3181A71038808335B016F
|
||||
:10101000E318DB799A063DD50388202208335B016B
|
||||
:10102000E318DA710388012208335B01E3181A71AF
|
||||
:1010300030E0C0469C000020830000208800002093
|
||||
:101040008A0000208C00002086000020020300009F
|
||||
:101050000103000021200000A12100002122000046
|
||||
:10106000281C000004000020141C0000041C0000C8
|
||||
:10107000081C000084000020820000200B88082249
|
||||
:101080002868934201D80A8892B207490023FFF7E3
|
||||
:1010900011FC07E0201CFFF79DFC03E0201C012150
|
||||
:1010A000FFF78EFCF7BDC0464800002007B5054B92
|
||||
:1010B0000122019001A91868131CFFF7FBFB012016
|
||||
:1010C0000EBDC0462002002013B5054B6C46073408
|
||||
:1010D0001868211C0122FFF735FC207816BDC04698
|
||||
:1010E0002002002010B5074C201CFFF70FFB031C4B
|
||||
:1010F0000020834205D022684823FF33D05C0123BF
|
||||
:10110000184010BD2002002010B5054A0C1C031C1D
|
||||
:10111000191C10680123221CFFF7CCFB201C10BDFA
|
||||
:101120002002002070B5084C061C201C0D1CFFF787
|
||||
:10113000EDFA0023984205D02068311C2A1CFFF7E5
|
||||
:1011400001FC031C181C70BD20020020F8B50C4CDB
|
||||
:10115000051C201C0E1CFFF7D9FA0023271C341C89
|
||||
:1011600098420AD0002C07D0291C221C3868FFF7AF
|
||||
:10117000E9FB241A2D18F5E7331C181CF8BDC046EE
|
||||
:101180002002002008B5031C081C111C9847024BC4
|
||||
:1011900064221A8008BDC04692000020012805D1B3
|
||||
:1011A000054B064A1A60064B187004E0002802D16D
|
||||
:1011B000044A014B1A607047900200205C1C00003A
|
||||
:1011C00098000020A81C000030B50A1C1C4985B0FE
|
||||
:1011D0000978031C00292AD0042A01D1006804E000
|
||||
:1011E000022A01D1008800E00078520004A98B187F
|
||||
:1011F0000B3B9C1AA3420BD00F210140092902D8B6
|
||||
:101200003025294300E0373119700009013BF1E72F
|
||||
:1012100001A930230B7078234B700A208B1898702B
|
||||
:101220000D20D870074B04321B68D86803E00549CD
|
||||
:101230000968C868191CFFF7A5FF05B030BDC04696
|
||||
:101240008E0000209002002072B6EFF30883044A5B
|
||||
:101250001360036883F30888436818477047C046E3
|
||||
:1012600094020020084B1A88002A03D01A88013AF9
|
||||
:1012700092B21A80054B1A88002A03D01A88013AC4
|
||||
:1012800092B21A807047C046920000209000002061
|
||||
:10129000F0B591B008A9CC4A0B1C31CA31C351CA70
|
||||
:1012A00051C360CA60C3C94BC9489A687A255203C2
|
||||
:1012B000520F92005258C74902609C68A4B2624320
|
||||
:1012C0000C60C54900240A60C44A1460C44C2570EF
|
||||
:1012D000C44CC54D2368281C1B6940219847002831
|
||||
:1012E00002D0C24B64221A80C14B00221860C14B4D
|
||||
:1012F0001D60C14BC04DBE4F1A602A683B689A42C0
|
||||
:10130000E6D2BC4B1B681A78FF2A00D114E2232ACC
|
||||
:1013100000D0EBE1B94E3378002B06D0B14BB84981
|
||||
:101320001B680222D868FFF72DFFAD4B1B78532BAB
|
||||
:101330003CD13B682A6893421ED9AE4801322A60EC
|
||||
:101340009A1AB04B01681B6801310160AE4E9A4297
|
||||
:1013500001D2326000E03360A04832680068049037
|
||||
:1013600000F02CFC336829685A182A60A14A1668D4
|
||||
:10137000F1181160A54A13702B68013B2B609D4B3F
|
||||
:101380001A68013A1A60A14B9E4A1B7811688B4279
|
||||
:101390000AD222689148C91A0068926990470028C9
|
||||
:1013A00002D0924B64221A80C0468DE1522B0AD1A2
|
||||
:1013B0008A48944A2368006811685B6903909847DB
|
||||
:1013C0006422934B0DE04F2B05D1844B8D4A1B6853
|
||||
:1013D00012681A7078E1482B05D1804B894A1B6846
|
||||
:1013E00012681A8070E1572B05D17C4B854A1B6827
|
||||
:1013F00012681A6068E16F2B03D1784B01211868DD
|
||||
:1014000007E0682B08D1754B7E481B6802211B88BA
|
||||
:101410000360FFF7D9FE57E1772B06D16F4B794870
|
||||
:101420001B6804211B680360F3E7472B13D1754B3E
|
||||
:101430001868FFF709FF774B1B6883F3088862B6CB
|
||||
:10144000754B1B78002B00D13EE1664B06201B68D4
|
||||
:101450001B68984738E1542B04D101233370614B4A
|
||||
:101460001B6864E04E2B0CD13378002B06D15D4B0A
|
||||
:1014700063491B680222D868FFF784FE002333709B
|
||||
:1014800022E1562B57D123686449D8680122FFF71F
|
||||
:1014900079FE23686249D8680322FFF773FE614D25
|
||||
:1014A0002368291CD8680122FFF76CFE23685E4977
|
||||
:1014B000D8680D22FFF766FE2368291CD868012230
|
||||
:1014C000FFF760FE4B4F4C4D5849002339602B60AD
|
||||
:1014D0003A1C281C13685E1C16601B780593002BB1
|
||||
:1014E00003D0036801330360F4E73E4E2A68336893
|
||||
:1014F000D868FFF747FE33684A49D8680122FFF7EA
|
||||
:1015000041FE059929604A4939603A4A1368581CD6
|
||||
:1015100010601B78002B04D0374B1A6801321A6018
|
||||
:10152000F3E733682A68D868FFF72CFE3368D86879
|
||||
:1015300033490222C6E0334A582B17D1244E264D98
|
||||
:10154000366813682A68B10093420AD21F4D5808C2
|
||||
:10155000E861384828801D4D287DC607FBD55B18FB
|
||||
:10156000F2E7204B34491B68D868AAE0592B79D19F
|
||||
:1015700012681A4B3149002A02D11B680B606CE0DB
|
||||
:10158000124D086819686B68104E8025AB439208AD
|
||||
:101590007360002A61D02A4B0C4D2B800B4E337D9B
|
||||
:1015A000DD07FBD500230A4D2D680195AD08AB4240
|
||||
:1015B00003D3244D054E358046E09342F9D09D007B
|
||||
:1015C000465901334E51EEE73C1C000000400041FB
|
||||
:1015D00048020020400200203C0200208C02002033
|
||||
:1015E00038020020900200204C02002090000020D1
|
||||
:1015F0003002002034020020440200208E0000202F
|
||||
:101600009C1C0000980200209C0200202C0200205C
|
||||
:10161000920000209402002098000020781C000016
|
||||
:10162000A11C00007A1C0000C41C00007C1C0000EF
|
||||
:10163000881C000002A5FFFF911C00009400002000
|
||||
:1016400044A5FFFF04A5FFFF3F4E357DEE07FBD508
|
||||
:101650009D0049194019D21A9BE73C4B3C491B6835
|
||||
:10166000D8682EE05A2B2FD13A4B17681D680026F8
|
||||
:10167000EF19BD4206D02878311C00F013F901356E
|
||||
:10168000061CF6E7314B34491B680122D868FFF786
|
||||
:1016900079FD07230F223240111C36093031092A07
|
||||
:1016A00000DD07311820C0186A468154013BF1D291
|
||||
:1016B000236806A9D8680822FFF764FD2368274934
|
||||
:1016C000D8680322FFF75EFD254B7A221A70254B5E
|
||||
:1016D00000221A60244B1B7893422DD01B4B2349C8
|
||||
:1016E0001B680122D868FFF74DFD25E0111C303939
|
||||
:1016F000C8B21C4B092804D81D682A01114319607F
|
||||
:101700001AE0111C4139052903D81E68373A310106
|
||||
:1017100006E0111C6139052904D81868573A0101FF
|
||||
:101720000A4308E02C2A03D10A4A1968116001E033
|
||||
:101730000B490A7000221A600D4B1A6801321A60B8
|
||||
:101740000C4B1A680132D5E50040004190020020A0
|
||||
:10175000951C00008C020020991C00009B1C0000BE
|
||||
:1017600038020020980200208E0000209F1C0000FC
|
||||
:10177000440200203402002010B51C4B01201A78CE
|
||||
:10178000032402431A701A4B0F22197891431970DF
|
||||
:1017900019782143197017490C782043087019787B
|
||||
:1017A0000A401A701A7830210A431A70124B8021AD
|
||||
:1017B0001A6A0A431A62114B114A5A805A7852B275
|
||||
:1017C000002AFBDBC4220F480F499203FEF752FFA9
|
||||
:1017D0000E4A002313700E4A13700E4A13700E4AFD
|
||||
:1017E00013700E4A13700E4A137010BDD644004198
|
||||
:1017F000BB440041D744004100040040000C0040BD
|
||||
:1018000019400000001C00422AF60000A00200203F
|
||||
:1018100027030020A1020020A402002028030020AA
|
||||
:101820002503002008B5C1B20248FEF751FF012090
|
||||
:1018300008BDC046001C0042024B187E4007C00F86
|
||||
:101840007047C046001C004208B5FFF7F5FF0028AE
|
||||
:10185000FBD00248FEF742FF08BDC046001C004214
|
||||
:1018600008B5FFF7E9FF0023984205D0FFF7ECFF2A
|
||||
:10187000031C233B5A425341181C08BD70B5041C7D
|
||||
:101880000D1C4618B44204D02078FFF7CBFF01347A
|
||||
:10189000F8E7281C70BD10B5041CFFF7D5FF2070B9
|
||||
:1018A000012010BD0B0A5840034B4000C05A0902EA
|
||||
:1018B000484080B27047C046D21C0000F7B50024F3
|
||||
:1018C000051C0F1C261CBC4220D0FFF7BDFF114B8E
|
||||
:1018D000C0B21B780190002B1AD1311CFFF7E2FF38
|
||||
:1018E0000D4B061C1A88002A04D10C4A11782A1CB8
|
||||
:1018F000002907D001996A1C2970802F02D119880C
|
||||
:10190000013919800134A4B2151CDCE7301C00E059
|
||||
:101910000120FEBD25030020A20200202603002096
|
||||
:10192000F0B53E4E85B0002203900C1C32703C4B4B
|
||||
:10193000914201D1012201E03A490C801A707F23C3
|
||||
:101940001C4201D080349C43FFF77EFF3378C0B245
|
||||
:10195000002B07D000253570FFF776FF3378C0B233
|
||||
:10196000AB4236D1432803D0712853D01528EBD190
|
||||
:10197000012300930120FFF755FF0098FFF752FF66
|
||||
:1019800000998025C843C0B2FFF74CFF039B002796
|
||||
:101990000293244A1388002B1DD121490193097811
|
||||
:1019A000002918D10198FFF73DFF391C0198FFF776
|
||||
:1019B00079FF013D071C002DEBD1000AC0B2FFF7F3
|
||||
:1019C00031FFF8B2FFF72EFFFFF73EFF3378002B11
|
||||
:1019D0000AD035701FE00299013B09781380029B01
|
||||
:1019E000019101330293DDE7C0B2062807D1009BC5
|
||||
:1019F00003990133DBB280310093803C0391002CCA
|
||||
:101A0000B8D10420FFF70EFFFFF71EFF044B01259E
|
||||
:101A10001C7000E00025281C05B0F0BD2503002047
|
||||
:101A200026030020A2020020F0B5384C87B0002326
|
||||
:101A300001902370994201D1012301E0344A1180C1
|
||||
:101A4000344A642613704320FFF7ECFE324FFFF751
|
||||
:101A5000F3FE002803D1002F03D0013FF7E7002F4A
|
||||
:101A600003D1013E002EEED14DE00125FFF7ECFE43
|
||||
:101A70002378002B38D1C0B20290012805D0042869
|
||||
:101A80003DD10620FFF7CEFE39E005AE0221301C25
|
||||
:101A9000FFF714FF01988021FFF710FF23780390D0
|
||||
:101AA000002B18D1FFF7D0FE0702FFF7CDFEBFB223
|
||||
:101AB00023783F18BFB2012B0DD0039B9F4207D163
|
||||
:101AC0003378AB4204D1EB437278DBB29A4204D054
|
||||
:101AD0001820FFF7A7FE002303E00620FFF7A2FE71
|
||||
:101AE000029B2278002A02D0002626700BE0012BF0
|
||||
:101AF00005D1019A6B1C8032DDB20192B6E7054A2E
|
||||
:101B0000002313700126301C07B0F0BD2503002010
|
||||
:101B1000A20200202603002000350C00002934D04A
|
||||
:101B20000123002210B488422CD301242407A142AF
|
||||
:101B300004D2814202D209011B01F8E7E400A1426C
|
||||
:101B400004D2814202D249005B00F8E7884201D307
|
||||
:101B5000401A1A434C08A04202D3001B5C082243DF
|
||||
:101B60008C08A04202D3001B9C082243CC08A04250
|
||||
:101B700002D3001BDC082243002803D01B0901D03C
|
||||
:101B80000909E3E7101C10BC7047002801D00020B1
|
||||
:101B9000C04307B4024802A14018029003BDC046EA
|
||||
:101BA000190000000029F0D003B5FFF7B9FF0EBC03
|
||||
:101BB0004243891A1847C0467047C04610B50023F3
|
||||
:101BC000934203D0CC5CC4540133F9E710BD031C2D
|
||||
:101BD0008218934202D019700133FAE7704700234C
|
||||
:101BE000C25C0133002AFBD1581E7047F8B5C046CD
|
||||
:101BF000F8BC08BC9E467047F8B5C046F8BC08BCA7
|
||||
:101C00009E4670470403090441726475696E6F2033
|
||||
:101C10004C4C430041726475696E6F204D4B5220ED
|
||||
:101C20004E422031353030001201000202000040E7
|
||||
:101C300041235500000201020001000008000000DD
|
||||
:101C400010000000200000004000000080000000A4
|
||||
:101C50000001000000020000000400002518000040
|
||||
:101C600049180000391800007D180000971800007E
|
||||
:101C700021190000291A0000760020004E6F7620FE
|
||||
:101C8000323620323031380031343A32383A333754
|
||||
:101C900000580A0D00590A0D005A00230A0D003E93
|
||||
:101CA00000322E3000000000AD100000C91000000E
|
||||
:101CB000E5100000091100002511000009110000C5
|
||||
:101CC0004D1100005B41726475696E6F3A58595A44
|
||||
:101CD0005D0000002110422063308440A550C660A2
|
||||
:101CE000E770088129914AA16BB18CC1ADD1CEE1D9
|
||||
:101CF000EFF13112100273325222B5529442F77250
|
||||
:101D0000D662399318837BB35AA3BDD39CC3FFF328
|
||||
:101D1000DEE36224433420040114E664C774A4445F
|
||||
:101D200085546AA54BB528850995EEE5CFF5ACC578
|
||||
:101D30008DD55336722611163006D776F66695562F
|
||||
:101D4000B4465BB77AA719973887DFF7FEE79DD7C8
|
||||
:101D5000BCC7C448E5588668A778400861180228BF
|
||||
:101D60002338CCC9EDD98EE9AFF9488969990AA918
|
||||
:101D70002BB9F55AD44AB77A966A711A500A333A8F
|
||||
:101D8000122AFDDBDCCBBFFB9EEB799B588B3BBB68
|
||||
:101D90001AABA66C877CE44CC55C222C033C600C1F
|
||||
:101DA000411CAEED8FFDECCDCDDD2AAD0BBD688DB8
|
||||
:101DB000499D977EB66ED55EF44E133E322E511E6F
|
||||
:101DC000700E9FFFBEEFDDDFFCCF1BBF3AAF599F08
|
||||
:101DD000788F8891A981CAB1EBA10CD12DC14EF1A8
|
||||
:101DE0006FE18010A100C230E3200450254046700E
|
||||
:101DF0006760B9839893FBA3DAB33DC31CD37FE339
|
||||
:101E00005EF3B1029012F322D2323542145277625D
|
||||
:101E10005672EAB5CBA5A89589856EF54FE52CD508
|
||||
:101E20000DC5E234C324A0148104667447642454AD
|
||||
:101E30000544DBA7FAB79987B8975FE77EF71DC718
|
||||
:101E40003CD7D326F2369106B016576676761546FD
|
||||
:101E500034564CD96DC90EF92FE9C899E9898AB968
|
||||
:101E6000ABA94458654806782768C018E10882384D
|
||||
:101E7000A3287DCB5CDB3FEB1EFBF98BD89BBBAB78
|
||||
:101E80009ABB754A545A376A167AF10AD01AB32A9D
|
||||
:101E9000923A2EFD0FED6CDD4DCDAABD8BADE89DC8
|
||||
:101EA000C98D267C076C645C454CA23C832CE01CED
|
||||
:101EB000C10C1FEF3EFF5DCF7CDF9BAFBABFD98F58
|
||||
:101EC000F89F176E367E554E745E932EB23ED10E3D
|
||||
:081ED000F01E000000000000FC
|
||||
:101ED80001140000090243000201008032090400D5
|
||||
:101EE800000102020000052400100104240200057C
|
||||
:101EF800240600010524010001070583030800FFEB
|
||||
:101F080009040100020A00000007058102400000E0
|
||||
:101F1800070502024000000000C20100000008009E
|
||||
:0C1F280069000000410000000000000003
|
||||
:0400000300000B816D
|
||||
:00000001FF
|
||||
BIN
bootloaders/mkrwan1300/samd21_sam_ba_arduino_mkrwan1300.bin
Executable file
BIN
bootloaders/mkrwan1300/samd21_sam_ba_arduino_mkrwan1300.bin
Executable file
Binary file not shown.
404
bootloaders/mkrwan1300/samd21_sam_ba_arduino_mkrwan1300.hex
Normal file
404
bootloaders/mkrwan1300/samd21_sam_ba_arduino_mkrwan1300.hex
Normal file
|
|
@ -0,0 +1,404 @@
|
|||
:10000000FC7F002015060000050600000906000020
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:100020000000000000000000000000000D060000BD
|
||||
:10003000000000000000000011060000550700004D
|
||||
:1000400010B5064C2378002B07D1054B002B02D0AE
|
||||
:10005000044800E000BF0123237010BD5C000020B5
|
||||
:1000600000000000B818000008B5084B002B03D0B2
|
||||
:100070000748084900E000BF07480368002B03D089
|
||||
:10008000064B002B00D0984708BDC046000000007A
|
||||
:10009000B818000060000020580000200000000098
|
||||
:1000A000154A164B1178002909D115491878097895
|
||||
:1000B0004118C9B21970802012494003C8611178F3
|
||||
:1000C0000131C9B211701978F02902D819780929BB
|
||||
:1000D00009D80B4908784042C0B2087018780978EE
|
||||
:1000E0004118C9B2197012781B789A4203D1802244
|
||||
:1000F000044B5203DA6170477800002001000020B1
|
||||
:10010000000000200044004110B5C3699C07FCD4E6
|
||||
:1001100003680224A3430360C46901231C42FBD18A
|
||||
:100120000468234303600368DC07FCD4C46901232B
|
||||
:100130001C42FBD1C469DC401C42F7D1084B1A4376
|
||||
:100140000260C3695A07FCD4C0239B0243608181CB
|
||||
:10015000C3699C07FCD4036802221343036010BDEB
|
||||
:1001600004000040037EDA07FCD5018570470000DB
|
||||
:10017000027E01235107FBD5428B1A4207D1428BE5
|
||||
:10018000DA401A4203D1428B92081A4202D0034B42
|
||||
:1001900001221A70008DC0B27047C046790000205D
|
||||
:1001A00070B50368041C988B1A1C0821FF320842A2
|
||||
:1001B00026D0802099839872112353704021144BCC
|
||||
:1001C000917150715E68134DC0202E40800506432A
|
||||
:1001D0005E605E693540284358610F4818600F48DB
|
||||
:1001E00018615D680E4828408025AD02284358609C
|
||||
:1001F0005868800B8003586000235171237105E01B
|
||||
:10020000137ADA0602D5201C00F0DEFA207970BDE0
|
||||
:1002100098010020FFFFFF8F9800002018010020A8
|
||||
:10022000FF3F00F0002303714371044B01608360C2
|
||||
:100230000B78022213430B707047C046A1010000E7
|
||||
:1002400038B5364B2021DA6901200A43DA61344B94
|
||||
:1002500006241A7802431A70324B0F221978914300
|
||||
:1002600019701978214319702F490C7820430870B0
|
||||
:1002700019780A401A701A7860210A431A702B4BB9
|
||||
:100280002B4A5A805A7852B2002AFBDB294B0121B3
|
||||
:100290001A780A431A709A78D107FCD42648026863
|
||||
:1002A000510B1F221140914200D1052111408C01B8
|
||||
:1002B0001D8D22492940214319850468A10C0A405B
|
||||
:1002C0001F2A00D11D221C8D1F210A408C4322436E
|
||||
:1002D0001A8502680721D20D0A408A4200D1032202
|
||||
:1002E0000A40188D1103164A02400A431A851978EC
|
||||
:1002F0007F220A401A701A78042112480A431A70A1
|
||||
:1003000058621A890C218A431A811A8901218A4369
|
||||
:100310001A810021802201F04AF938BD0004004012
|
||||
:10032000584400413C44004159440041000C004005
|
||||
:100330000640000000500041246080003FF8FFFFAD
|
||||
:10034000FF8FFFFF98010020F7B5141C1F4A5F01C3
|
||||
:1003500001971D1CD319061C5869271C4000400F2B
|
||||
:1003600003301033C74006D00F1C80225968120694
|
||||
:100370000A435A6009E02F1C7B1E9F41144BBF01AA
|
||||
:10038000FF18381C221C01F009F901990F480835A3
|
||||
:1003900042181761131C5269A104920B890C920335
|
||||
:1003A0000A435A6159690B4A0A405A616B01F318B2
|
||||
:1003B0000222DA715979802252420A435A716B0142
|
||||
:1003C000F318DB799A07FAD5201CFEBD98010020AE
|
||||
:1003D00018010020FF3F00F0F8B51A4E051C3378D5
|
||||
:1003E000141C002B12D1184B184A1A645A6C920B29
|
||||
:1003F00092035A64586C164A02405A64A2235B0066
|
||||
:10040000EA5C40200243EA54012333704827FF3757
|
||||
:10041000EA5D0123134012D00B4B5A6C9204920CEC
|
||||
:10042000A24202D25C6CA404A40C081C221C074942
|
||||
:1004300001F0B4F80123EB550023337000E01C1CDD
|
||||
:10044000201CF8BD7A00002098010020D800002070
|
||||
:10045000FF3F00F0FF3083792022002900D11022D5
|
||||
:100460001343837170470000084BFF305A69920BA9
|
||||
:1004700092035A6102230372827980235B42134301
|
||||
:100480008371037A9A07FCD57047C0469801002013
|
||||
:1004900080235B421943C9B28172704770B5A023B3
|
||||
:1004A00003225B00C254134B134A5C6CC0211440FE
|
||||
:1004B00089050C4346255C64FF35402444550F4DA7
|
||||
:1004C00030261D6490256D0046555D6B154029430F
|
||||
:1004D000922559636D0080214155094D1D63B0255A
|
||||
:1004E0006D0044555C6F22405A67B2235B00C154D3
|
||||
:1004F00070BDC04698010020FFFFFF8FD80000208C
|
||||
:100500005801002030B5364A1E235168082099430F
|
||||
:1005100002231943516033498A6902438A61324890
|
||||
:10052000324A9082908A03439382D3689807FCD51D
|
||||
:100530002F4B012018701878C40704D52C48407838
|
||||
:1005400040B20028F7DB01209860587840B20028BC
|
||||
:10055000FBDB284C26484460587840B20028FBDB7F
|
||||
:1005600082242348E4014480587840B20028FBDB11
|
||||
:10057000908C8024A0439084D068C506FCD51E4C86
|
||||
:100580001A48C462D4681948E506FBD5848C1B4D13
|
||||
:100590002C438484D4681548E506FBD5848C022559
|
||||
:1005A0002C438484D0680406FCD51048C0684506F6
|
||||
:1005B000F8D5D068C406FCD500229A605A7852B2A9
|
||||
:1005C000002AFBDB0E480A4A50605A7852B2002AD1
|
||||
:1005D000FBDB00230B724B728B72CB7230BDC046BB
|
||||
:1005E00000400041000400400C06000000080040EC
|
||||
:1005F000000C004001050100B805FF7D040A000061
|
||||
:10060000000703000EBEFEE70DBEFEE705BEFEE7D7
|
||||
:1006100002BEFEE70E4A0F4838B5824204D10E4AA8
|
||||
:100620000E4B93420ED10AE00D4C9442F7D00023BA
|
||||
:10063000D1188842F3D9E55804330D60F8E700F08B
|
||||
:1006400011F804E09342FAD2002102C3FAE7FEE770
|
||||
:10065000000000205C000020A80300205C000020B7
|
||||
:10066000BC18000038B5304B1A681C1C013221D070
|
||||
:100670002E4A191D1160D9B200291BD12C4A1078BD
|
||||
:10068000012210402B4A0AD115682B498D4201D115
|
||||
:1006900010600FE01160294901390029FCD1116077
|
||||
:1006A000226882F30888FF229343254A93601E4BF9
|
||||
:1006B0005B681847FFF726FF62B600F09DFD00F06B
|
||||
:1006C0004FF8204B802252039A601F4B1F4A041C94
|
||||
:1006D0005A601B4AC021106A09060002000A014341
|
||||
:1006E000116200229A6007221A60A368201C9847B2
|
||||
:1006F000174B002801D001221A701A78002A05D061
|
||||
:10070000002000F08BFA00F003FBFCE71B78002BC5
|
||||
:10071000EBD100F0E5FD0028E7D0012000F07EFAE3
|
||||
:1007200000F0F6FAFCE7C0460020000018020020A6
|
||||
:1007300038040040FC7F00203581730748E8010041
|
||||
:1007400000ED00E00044004110E000E0E70300009D
|
||||
:100750007B00002008B5FFF7A3FC00F0C3FA08BD3A
|
||||
:1007600010B5054B054C2360FFF76AFD201C21687E
|
||||
:10077000FFF758FD201C10BD005000411C02002056
|
||||
:1007800070B5051CC0B0081C161C0C1C00F017FF2F
|
||||
:1007900040006A460323023053701070760801232C
|
||||
:1007A000E218013A11785A00002906D1281C69463E
|
||||
:1007B0000023FFF7C9FD40B070BDB342F6DA6846CA
|
||||
:1007C00081520133ECE70000F7B5BA4A04681378A8
|
||||
:1007D000B949271CFF37051C102038720B7053785D
|
||||
:1007E000B648B74E037093783380D17833880902C6
|
||||
:1007F0000B4333801179B34B198051791888090262
|
||||
:10080000084318809079B0490880D279088812028C
|
||||
:1008100002430A8040227A71A84F3A78A64F12020A
|
||||
:1008200038780F1C0243A9488446181C624500D141
|
||||
:10083000C2E020DC802149008A4200D16EE109DC5F
|
||||
:10084000812A00D192E0822A00D195E0802A00D04E
|
||||
:1008500064E18BE081235B009A4200D1CFE000DAB3
|
||||
:1008600058E1C0239B009A4200D157E1984B9A422D
|
||||
:1008700000D14FE152E190231B019A4269D015DC6F
|
||||
:10088000D023DB009A4222D088231B019A4269D0F0
|
||||
:10089000A023DB009A4200D040E1201CFFF7E4FDDA
|
||||
:1008A0003188286889B2FFF7F3FD3BE1894B9A4212
|
||||
:1008B00000D12FE100DC31E1874B9A4200D11DE1EC
|
||||
:1008C000864B9A4200D029E133886B7122E133884C
|
||||
:1008D0001B0A012B08D10B8812222868934201D8E9
|
||||
:1008E0000A8892B27E4911E133881B0A022B08D193
|
||||
:1008F0000B8843222868934201D80A8892B279492A
|
||||
:1009000004E133881B0A032B00D007E13388DBB2F4
|
||||
:10091000012B17D0002B07D0022B00D0FEE00A8855
|
||||
:100920002868D2B2704911E0042201A86F4900F092
|
||||
:1009300035FE3B8804222868934201D83A8892B257
|
||||
:1009400001A9E3E00A8828686949D2B2FFF718FFD5
|
||||
:10095000E8E03388201C2B71FFF786FD201CFFF791
|
||||
:100960009DFDDFE0291C01C90122CFE06149002380
|
||||
:100970000B8028680222CAE05E4900220A8018889B
|
||||
:10098000502210405C4A10701E880F2030401880A2
|
||||
:100990001888032800D9C1E012781B8808335B014E
|
||||
:1009A000E418A379002A01D09B0600E0DB06DB0FE8
|
||||
:1009B0000B8028680222A9E019887F2291434E4AC1
|
||||
:1009C000C9B2117018880F2101401980318800299F
|
||||
:1009D00000D0A3E01988002900D19FE019880329DD
|
||||
:1009E00000D99BE012781B8808335B01E318002ACA
|
||||
:1009F00002D020225A718DE0102159718AE00288BC
|
||||
:100A00007F239A433C4BD2B21A7001880F220A40CE
|
||||
:100A100002803288002A00D080E00288002A00D1BB
|
||||
:100A20007CE00288032A00D978E01B78002B1FD0D5
|
||||
:100A3000038808335B01E3189B799A066AD503881B
|
||||
:100A4000202208335B01E3181A71038808335B0125
|
||||
:100A5000E318DB795F065DD50388402208335B012C
|
||||
:100A6000E318DA710388022208335B01E3181EE001
|
||||
:100A7000038808335B01E3189B79D9064AD50388BC
|
||||
:100A8000102208335B01E3181A71038808335B01F5
|
||||
:100A9000E318DB799A063DD50388202208335B01F1
|
||||
:100AA000E318DA710388012208335B01E3181A7135
|
||||
:100AB00030E0C046980000207D0000208200002029
|
||||
:100AC0008400002086000020800000200203000037
|
||||
:100AD0000103000021200000A121000021220000CC
|
||||
:100AE0000C16000004000020F4150000E4150000BE
|
||||
:100AF000E81500007E0000207C0000200B88082202
|
||||
:100B00002868934201D80A8892B207490023FFF768
|
||||
:100B10001BFC07E0201CFFF7A7FC03E0201C0121C1
|
||||
:100B2000FFF798FCF7BDC0464800002007B5054B0D
|
||||
:100B30000122019001A91868131CFFF705FC012090
|
||||
:100B40000EBDC0461C02002013B5054B6C46073491
|
||||
:100B50001868211C0122FFF73FFC207816BDC04613
|
||||
:100B60001C02002010B5074C201CFFF719FB031CCA
|
||||
:100B70000020834205D022684823FF33D05C012344
|
||||
:100B8000184010BD1C02002010B5054A0C1C031CA7
|
||||
:100B9000191C10680123221CFFF7D6FB201C10BD76
|
||||
:100BA0001C02002070B5084C061C201C0D1CFFF711
|
||||
:100BB000F7FA0023984205D02068311C2A1CFFF761
|
||||
:100BC0000BFC031C181C70BD1C020020F8B50C4C5B
|
||||
:100BD000051C201C0E1CFFF7E3FA0023271C341C05
|
||||
:100BE00098420AD0002C07D0291C221C3868FFF735
|
||||
:100BF000F3FB241A2D18F5E7331C181CF8BDC0466A
|
||||
:100C00001C02002008B5031C081C111C9847024B4D
|
||||
:100C100064221A8008BDC0468C000020012805D13E
|
||||
:100C2000054B064A1A60064B187004E0002802D1F2
|
||||
:100C3000044A014B1A6070478C02002040160000E5
|
||||
:100C4000940000208C16000030B50A1C1C4985B0A9
|
||||
:100C50000978031C00292AD0042A01D1006804E085
|
||||
:100C6000022A01D1008800E00078520004A98B1804
|
||||
:100C70000B3B9C1AA3420BD00F210140092902D83B
|
||||
:100C80003025294300E0373119700009013BF1E7B5
|
||||
:100C900001A930230B7078234B700A208B189870B1
|
||||
:100CA0000D20D870074B04321B68D86803E0054953
|
||||
:100CB0000968C868191CFFF7A5FF05B030BDC0461C
|
||||
:100CC000880000208C02002072B6EFF30883044AEB
|
||||
:100CD0001360036883F30888436818477047C04669
|
||||
:100CE00090020020084B1A88002A03D01A88013A83
|
||||
:100CF00092B21A80054B1A88002A03D01A88013A4A
|
||||
:100D000092B21A807047C0468C0000208A000020F2
|
||||
:100D1000F0B591B008A9CC4A0B1C31CA31C351CAF5
|
||||
:100D200051C360CA60C3C94BC9489A687A25520347
|
||||
:100D3000520F92005258C74902609C68A4B26243A5
|
||||
:100D40000C60C54900240A60C44A1460C44C257074
|
||||
:100D5000C44CC54D2368281C1B69402198470028B6
|
||||
:100D600002D0C24B64221A80C14B00221860C14BD2
|
||||
:100D70001D60C14BC04DBE4F1A602A683B689A4245
|
||||
:100D8000E6D2BC4B1B681A78FF2A00D114E2232A52
|
||||
:100D900000D0EBE1B94E3378002B06D0B14BB84907
|
||||
:100DA0001B680222D868FFF72DFFAD4B1B78532B31
|
||||
:100DB0003CD13B682A6893421ED9AE4801322A6072
|
||||
:100DC0009A1AB04B01681B6801310160AE4E9A421D
|
||||
:100DD00001D2326000E03360A048326800680490BD
|
||||
:100DE00000F0DCFB336829685A182A60A14A1668AB
|
||||
:100DF000F1181160A54A13702B68013B2B609D4BC5
|
||||
:100E00001A68013A1A60A14B9E4A1B7811688B42FE
|
||||
:100E10000AD222689148C91A00689269904700284E
|
||||
:100E200002D0924B64221A80C0468DE1522B0AD127
|
||||
:100E30008A48944A2368006811685B690390984760
|
||||
:100E40006422934B0DE04F2B05D1844B8D4A1B68D8
|
||||
:100E500012681A7078E1482B05D1804B894A1B68CB
|
||||
:100E600012681A8070E1572B05D17C4B854A1B68AC
|
||||
:100E700012681A6068E16F2B03D1784B0121186862
|
||||
:100E800007E0682B08D1754B7E481B6802211B8840
|
||||
:100E90000360FFF7D9FE57E1772B06D16F4B7948F6
|
||||
:100EA0001B6804211B680360F3E7472B13D1754BC4
|
||||
:100EB0001868FFF709FF774B1B6883F3088862B651
|
||||
:100EC000754B1B78002B00D13EE1664B06201B685A
|
||||
:100ED0001B68984738E1542B04D101233370614BD0
|
||||
:100EE0001B6864E04E2B0CD13378002B06D15D4B90
|
||||
:100EF00063491B680222D868FFF784FE0023337021
|
||||
:100F000022E1562B57D123686449D8680122FFF7A4
|
||||
:100F100079FE23686249D8680322FFF773FE614DAA
|
||||
:100F20002368291CD8680122FFF76CFE23685E49FC
|
||||
:100F3000D8680D22FFF766FE2368291CD8680122B5
|
||||
:100F4000FFF760FE4B4F4C4D5849002339602B6032
|
||||
:100F50003A1C281C13685E1C16601B780593002B36
|
||||
:100F600003D0036801330360F4E73E4E2A68336818
|
||||
:100F7000D868FFF747FE33684A49D8680122FFF76F
|
||||
:100F800041FE059929604A4939603A4A1368581C5C
|
||||
:100F900010601B78002B04D0374B1A6801321A609E
|
||||
:100FA000F3E733682A68D868FFF72CFE3368D868FF
|
||||
:100FB00033490222C6E0334A582B17D1244E264D1E
|
||||
:100FC000366813682A68B10093420AD21F4D580848
|
||||
:100FD000E861384828801D4D287DC607FBD55B1881
|
||||
:100FE000F2E7204B34491B68D868AAE0592B79D125
|
||||
:100FF00012681A4B3149002A02D11B680B606CE061
|
||||
:10100000124D086819686B68104E8025AB43920832
|
||||
:101010007360002A61D02A4B0C4D2B800B4E337D20
|
||||
:10102000DD07FBD500230A4D2D680195AD08AB42C5
|
||||
:1010300003D3244D054E358046E09342F9D09D0000
|
||||
:10104000465901334E51EEE72016000000400041A2
|
||||
:10105000440200203C0200203802002088020020C8
|
||||
:10106000340200208C020020480200208A00002068
|
||||
:101070002C020020300200204002002088000020C6
|
||||
:101080008016000094020020980200202802002010
|
||||
:101090008C00002090020020940000205C160000CC
|
||||
:1010A000851600005E160000A816000060160000FD
|
||||
:1010B0006C16000002A5FFFF7516000090000020CE
|
||||
:1010C00044A5FFFF04A5FFFF3F4E357DEE07FBD58E
|
||||
:1010D0009D0049194019D21A9BE73C4B3C491B68BB
|
||||
:1010E000D8682EE05A2B2FD13A4B17681D6800267E
|
||||
:1010F000EF19BD4206D02878311C00F013F90135F4
|
||||
:10110000061CF6E7314B34491B680122D868FFF70B
|
||||
:1011100079FD07230F223240111C36093031092A8C
|
||||
:1011200000DD07311820C0186A468154013BF1D216
|
||||
:10113000236806A9D8680822FFF764FD23682749B9
|
||||
:10114000D8680322FFF75EFD254B7A221A70254BE3
|
||||
:1011500000221A60244B1B7893422DD01B4B23494D
|
||||
:101160001B680122D868FFF74DFD25E0111C3039BE
|
||||
:10117000C8B21C4B092804D81D682A011143196004
|
||||
:101180001AE0111C4139052903D81E68373A31018C
|
||||
:1011900006E0111C6139052904D81868573A010185
|
||||
:1011A0000A4308E02C2A03D10A4A1968116001E0B9
|
||||
:1011B0000B490A7000221A600D4B1A6801321A603E
|
||||
:1011C0000C4B1A680132D5E5004000418C0200202A
|
||||
:1011D00079160000880200207D1600007F160000AE
|
||||
:1011E00034020020940200208800002083160000B2
|
||||
:1011F000400200203002002010B51C4B01201A785C
|
||||
:10120000032402431A701A4B0F2219789143197064
|
||||
:1012100019782143197017490C7820430870197800
|
||||
:101220000A401A701A7830210A431A70124B802132
|
||||
:101230001A6A0A431A62114B114A5A805A7852B2FA
|
||||
:10124000002AFBDBC4220F480F499203FEF75CFF24
|
||||
:101250000E4A002313700E4A13700E4A13700E4A82
|
||||
:1012600013700E4A13700E4A137010BDD64400411D
|
||||
:10127000BB440041D744004100040040000C004042
|
||||
:1012800019400000001C00422AF600009C020020C9
|
||||
:10129000230300209D020020A00200202403002040
|
||||
:1012A0002103002008B5C1B20248FEF75BFF012010
|
||||
:1012B00008BDC046001C0042024B187E4007C00F0C
|
||||
:1012C0007047C046001C004208B5FFF7F5FF002834
|
||||
:1012D000FBD00248FEF74CFF08BDC046001C004290
|
||||
:1012E00008B5FFF7E9FF0023984205D0FFF7ECFFB0
|
||||
:1012F000031C233B5A425341181C08BD70B5041C03
|
||||
:101300000D1C4618B44204D02078FFF7CBFF0134FF
|
||||
:10131000F8E7281C70BD10B5041CFFF7D5FF20703E
|
||||
:10132000012010BD0B0A5840034B4000C05A09026F
|
||||
:10133000484080B27047C046B6160000F7B500249A
|
||||
:10134000051C0F1C261CBC4220D0FFF7BDFF114B13
|
||||
:10135000C0B21B780190002B1AD1311CFFF7E2FFBD
|
||||
:101360000D4B061C1A88002A04D10C4A11782A1C3D
|
||||
:10137000002907D001996A1C2970802F02D1198891
|
||||
:10138000013919800134A4B2151CDCE7301C00E0DF
|
||||
:101390000120FEBD210300209E0200202203002028
|
||||
:1013A000F0B53E4E85B0002203900C1C32703C4BD1
|
||||
:1013B000914201D1012201E03A490C801A707F2349
|
||||
:1013C0001C4201D080349C43FFF77EFF3378C0B2CB
|
||||
:1013D000002B07D000253570FFF776FF3378C0B2B9
|
||||
:1013E000AB4236D1432803D0712853D01528EBD116
|
||||
:1013F000012300930120FFF755FF0098FFF752FFEC
|
||||
:1014000000998025C843C0B2FFF74CFF039B00271B
|
||||
:101410000293244A1388002B1DD121490193097896
|
||||
:10142000002918D10198FFF73DFF391C0198FFF7FB
|
||||
:1014300079FF013D071C002DEBD1000AC0B2FFF778
|
||||
:1014400031FFF8B2FFF72EFFFFF73EFF3378002B96
|
||||
:101450000AD035701FE00299013B09781380029B86
|
||||
:10146000019101330293DDE7C0B2062807D1009B4A
|
||||
:1014700003990133DBB280310093803C0391002C4F
|
||||
:10148000B8D10420FFF70EFFFFF71EFF044B012524
|
||||
:101490001C7000E00025281C05B0F0BD21030020D1
|
||||
:1014A000220300209E020020F0B5384C87B00023B4
|
||||
:1014B00001902370994201D1012301E0344A118047
|
||||
:1014C000344A642613704320FFF7ECFE324FFFF7D7
|
||||
:1014D000F3FE002803D1002F03D0013FF7E7002FD0
|
||||
:1014E00003D1013E002EEED14DE00125FFF7ECFEC9
|
||||
:1014F0002378002B38D1C0B20290012805D00428EF
|
||||
:101500003DD10620FFF7CEFE39E005AE0221301CAA
|
||||
:10151000FFF714FF01988021FFF710FF2378039055
|
||||
:10152000002B18D1FFF7D0FE0702FFF7CDFEBFB2A8
|
||||
:1015300023783F18BFB2012B0DD0039B9F4207D1E8
|
||||
:101540003378AB4204D1EB437278DBB29A4204D0D9
|
||||
:101550001820FFF7A7FE002303E00620FFF7A2FEF6
|
||||
:10156000029B2278002A02D0002626700BE0012B75
|
||||
:1015700005D1019A6B1C8032DDB20192B6E7054AB3
|
||||
:10158000002313700126301C07B0F0BD210300209A
|
||||
:101590009E0200202203002000350C0010B500231D
|
||||
:1015A000934203D0CC5CC4540133F9E710BD031C53
|
||||
:1015B0008218934202D019700133FAE77047002372
|
||||
:1015C000C25C0133002AFBD1581E7047F8B5C046F3
|
||||
:1015D000F8BC08BC9E467047F8B5C046F8BC08BCCD
|
||||
:1015E0009E4670470403090441726475696E6F205A
|
||||
:1015F0004C4C430041726475696E6F204D4B522014
|
||||
:1016000057414E20313330300000000012010002FB
|
||||
:1016100002000040412353000002010200010000CB
|
||||
:101620000800000010000000200000004000000042
|
||||
:101630008000000000010000000200000004000023
|
||||
:10164000A5120000C9120000B9120000FD1200002E
|
||||
:1016500017130000A1130000A91400007600200059
|
||||
:101660004E6F7620333020323031370031303A310E
|
||||
:10167000333A323200580A0D00590A0D005A00233D
|
||||
:101680000A0D003E00322E30000000002D0B00003D
|
||||
:10169000490B0000650B0000890B0000A50B000042
|
||||
:1016A000890B0000CD0B00005B41726475696E6FA1
|
||||
:1016B0003A58595A5D00000021104220633084409E
|
||||
:1016C000A550C660E770088129914AA16BB18CC111
|
||||
:1016D000ADD1CEE1EFF13112100273325222B55288
|
||||
:1016E0009442F772D662399318837BB35AA3BDD361
|
||||
:1016F0009CC3FFF3DEE36224433420040114E66458
|
||||
:10170000C774A44485546AA54BB528850995EEE5B0
|
||||
:10171000CFF5ACC58DD55336722611163006D77667
|
||||
:10172000F6669556B4465BB77AA719973887DFF700
|
||||
:10173000FEE79DD7BCC7C448E5588668A77840082F
|
||||
:10174000611802282338CCC9EDD98EE9AFF9488950
|
||||
:1017500069990AA92BB9F55AD44AB77A966A711AC7
|
||||
:10176000500A333A122AFDDBDCCBBFFB9EEB799BA0
|
||||
:10177000588B3BBB1AABA66C877CE44CC55C222C17
|
||||
:10178000033C600C411CAEED8FFDECCDCDDD2AADF0
|
||||
:101790000BBD688D499D977EB66ED55EF44E133EA7
|
||||
:1017A000322E511E700E9FFFBEEFDDDFFCCF1BBF40
|
||||
:1017B0003AAF599F788F8891A981CAB1EBA10CD11A
|
||||
:1017C0002DC14EF16FE18010A100C230E320045022
|
||||
:1017D000254046706760B9839893FBA3DAB33DC395
|
||||
:1017E0001CD37FE35EF3B1029012F322D232354272
|
||||
:1017F000145277625672EAB5CBA5A89589856EF525
|
||||
:101800004FE52CD50DC5E234C324A01481046674C1
|
||||
:10181000476424540544DBA7FAB79987B8975FE774
|
||||
:101820007EF71DC73CD7D326F2369106B016576611
|
||||
:101830007676154634564CD96DC90EF92FE9C899FC
|
||||
:10184000E9898AB9ABA94458654806782768C01861
|
||||
:10185000E1088238A3287DCB5CDB3FEB1EFBF98BD4
|
||||
:10186000D89BBBAB9ABB754A545A376A167AF10AB1
|
||||
:10187000D01AB32A923A2EFD0FED6CDD4DCDAABDE4
|
||||
:101880008BADE89DC98D267C076C645C454CA23C01
|
||||
:10189000832CE01CC10C1FEF3EFF5DCF7CDF9BAFB4
|
||||
:1018A000BABFD98FF89F176E367E554E745E932E51
|
||||
:0C18B000B23ED10EF01E0000000000004F
|
||||
:1018BC0001140000090243000201008032090400F7
|
||||
:1018CC00000102020000052400100104240200059E
|
||||
:1018DC00240600010524010001070583030800FF0D
|
||||
:1018EC0009040100020A0000000705810240000003
|
||||
:1018FC00070502024000000000C2010000000800C1
|
||||
:0C190C0069000000410000000000000025
|
||||
:0400000300000615DE
|
||||
:00000001FF
|
||||
BIN
bootloaders/mkrwifi1010/samd21_sam_ba_arduino_mkrwifi1010.bin
Executable file
BIN
bootloaders/mkrwifi1010/samd21_sam_ba_arduino_mkrwifi1010.bin
Executable file
Binary file not shown.
502
bootloaders/mkrwifi1010/samd21_sam_ba_arduino_mkrwifi1010.hex
Normal file
502
bootloaders/mkrwifi1010/samd21_sam_ba_arduino_mkrwifi1010.hex
Normal file
|
|
@ -0,0 +1,502 @@
|
|||
:10000000FC7F0020810B0000710B0000750B0000CD
|
||||
:1000100000000000000000000000000000000000E0
|
||||
:10002000000000000000000000000000790B00004C
|
||||
:1000300000000000000000007D0B0000D50C000057
|
||||
:1000400010B5064C2378002B07D1054B002B02D0AE
|
||||
:10005000044800E000BF0123237010BD5C000020B5
|
||||
:1000600000000000D81E000008B5084B002B03D08C
|
||||
:100070000748084900E000BF07480368002B03D089
|
||||
:10008000064B002B00D0984708BDC046000000007A
|
||||
:10009000D81E000060000020580000200000000072
|
||||
:1000A000064B0322104002040549586808401043DB
|
||||
:1000B0005860DA695107FCD47047C0460008004216
|
||||
:1000C000FFFFFCFF38B5284A284B5A805A7852B2B5
|
||||
:1000D000002AFBDB264B04211A6A264D0A431A62CA
|
||||
:1000E0002B68012213432B602A680123214C1A42FA
|
||||
:1000F000FAD1E2691A42F7D11423236041001E4865
|
||||
:1001000001F00CFD421EE068FF231A4098431043A3
|
||||
:10011000E0602368022213432360EA69154B9107CC
|
||||
:10012000FBD45A8B30218A4310210A435A83EB694E
|
||||
:1001300001205A07FBD4114B02241A7802431A708B
|
||||
:100140000F4B0F22197891431970197821431970B8
|
||||
:100150000C490C782043087019780A401A701A78F4
|
||||
:1001600020210A431A7038BD14400000000C0040E2
|
||||
:100170000004004000080042006CDC0248440041DA
|
||||
:100180003444004149440041F7B500230F1C01925B
|
||||
:100190001D1C994254D001212A4E4000084333705F
|
||||
:1001A000C1B2294B0322588B1C1C000910400128A6
|
||||
:1001B00004D05B8B1B091A40022AF2D1606AC00A84
|
||||
:1001C000C00208436062217E1F4B0122880708D4C9
|
||||
:1001D000197E1142F7D05968C02292020A435A6030
|
||||
:1001E00003E05B8B9B08134201D0002528E03270AE
|
||||
:1001F000237E9907FCD5154A154B117801251970F6
|
||||
:100200006268BD4212D0134B022013406360FFF7B7
|
||||
:1002100047FF33785A1C3270227E9007FCD50B4979
|
||||
:100220000B480A780135C254EDB2E9E78023DB02BE
|
||||
:10023000134363600199002902D00320FFF730FFC8
|
||||
:10024000281CFEBD7800002000080042280800425B
|
||||
:1002500099000020FFFFFBFF024B00221870024BA9
|
||||
:100260001A7070477A00002079000020F8B5274BFB
|
||||
:100270001C786400E4B2264B03215D8B1A1C2D0907
|
||||
:100280000D40012D04D05B8B1B0919400229F2D1CE
|
||||
:10029000536ADB0ADB0223435362117E01231942B6
|
||||
:1002A000FBD01B49498B8908194204D00320FFF772
|
||||
:1002B000F7FE022427E017490D782B1C002B11D0E4
|
||||
:1002C000154EEC1A365D154C2670114E177E012422
|
||||
:1002D000768B274202D12642F7D00BE0B6082642A1
|
||||
:1002E0000ED007E00B701C1C00280CD00320FFF779
|
||||
:1002F000D7FE08E003200B700324FFF7D1FE02E0D5
|
||||
:10030000013BDBB2DAE7201CF8BDC0467A000020D2
|
||||
:1003100000080042790000207B00002028080042ED
|
||||
:10032000034A1378591C1170024AD05401207047B7
|
||||
:10033000790000207B000020154A164B1178002917
|
||||
:1003400009D11549187809784118C9B21970802067
|
||||
:1003500012494003C86111780131C9B2117019788E
|
||||
:10036000F02902D81978092909D80B4908784042A0
|
||||
:10037000C0B20870187809784118C9B2197012789B
|
||||
:100380001B789A4203D18022044B5203DA617047F2
|
||||
:100390007D000020010000200000002000440041FA
|
||||
:1003A00010B5041C6B20FFF757FF201CFFF7B8FFA8
|
||||
:1003B0000120FFF75BFF01210A1C6B20FFF7E4FE21
|
||||
:1003C000014B187810BDC0469900002038B5051CB7
|
||||
:1003D0006B200C1CFFF740FF281CFFF7A1FF201C1F
|
||||
:1003E000FFF79EFF0120FFF741FF022038BD08B54F
|
||||
:1003F0000520FFF7D5FFCE23011C19400520FFF78C
|
||||
:10040000E5FF012008BD000010B5041C0020FFF727
|
||||
:10041000C7FF78232D4A9843C1B2944242D018D8DE
|
||||
:100420002B4B9C4238D009D82A4B9C4230D02A4BC7
|
||||
:100430009C422FD0294B9C4245D13FE0284B9C4207
|
||||
:100440002CD0284B9C422BD0274B9C423BD12023C5
|
||||
:1004500033E0264A94422BD00AD8254B9C4223D025
|
||||
:10046000244B9C4222D0244B9C422CD1402324E09C
|
||||
:10047000224A94421ED004D8214B9C4223D16023AF
|
||||
:100480001BE0204A944217D01F4A944215D01AE02C
|
||||
:10049000082312E0102310E018230EE028230CE0BC
|
||||
:1004A00030230AE0382308E0482306E0502304E024
|
||||
:1004B000582302E0682300E0702319430020FFF76F
|
||||
:1004C00085FF012000E0002010BDC046581100004B
|
||||
:1004D00018100000780F0000C80F0000280F00005F
|
||||
:1004E000B810000008110000681000009812000009
|
||||
:1004F000F811000048120000A81100003813000095
|
||||
:10050000E812000088130000D813000010B5041C86
|
||||
:100510000020FFF745FF07239843E122C1B2920074
|
||||
:10052000944220D008D8962C18D0FA235B009C4225
|
||||
:1005300017D0642C22D11CE0114A944215D005D862
|
||||
:100540009623DB009C4219D1042311E0FA22D20049
|
||||
:1005500094420CD00B4A94420AD00FE0012421436C
|
||||
:1005600007E0022304E0032302E0052300E0062362
|
||||
:1005700019430020FFF72AFF012000E0002010BDF2
|
||||
:10058000DC050000B80B000070B504AC267805ACA3
|
||||
:100590002578441EA041C401002901D040210C430C
|
||||
:1005A000002A01D020221443002B01D010231C4329
|
||||
:1005B000002E01D008231C43002D01D004231C432E
|
||||
:1005C0000220FFF7EDFE0125011C294021430220F6
|
||||
:1005D000FFF7FCFE281C70BD10B5041C0420FFF7BB
|
||||
:1005E000DFFE03231840084B9C4204D0074B9C427B
|
||||
:1005F00008D1B02100E0982101430420FFF7E6FE76
|
||||
:10060000012000E0002010BD10100000701000005C
|
||||
:1006100008B50120FFF7C4FECF23011C19400120BB
|
||||
:10062000FFF7D4FE012008BD07B5FFF7E0FEFFF796
|
||||
:10063000EFFF0948FFF7E8FEFA20C000FFF766FF6A
|
||||
:10064000002300930193181C191C1A1CFFF79CFF30
|
||||
:100650000248FFF7C1FF07BD08110000101000009D
|
||||
:1006600008B50348FFF72EFDFFF7DEFF08BDC046C3
|
||||
:10067000A086010010B5C3699C07FCD4036802245E
|
||||
:10068000A3430360C46901231C42FBD104682343D4
|
||||
:1006900003600368DC07FCD4C46901231C42FBD15E
|
||||
:1006A000C469DC401C42F7D1084B1A430260C3699D
|
||||
:1006B0005A07FCD4C0239B0243608181C3699C0715
|
||||
:1006C000FCD4036802221343036010BD0400004001
|
||||
:1006D000037EDA07FCD5018570470000027E012306
|
||||
:1006E0005107FBD5428B1A4207D1428BDA401A429E
|
||||
:1006F00003D1428B92081A4202D0034B01221A7096
|
||||
:10070000008DC0B27047C0467E00002070B50368FF
|
||||
:10071000041C988B1A1C0821FF32084226D0802026
|
||||
:1007200099839872112353704021144B9171507129
|
||||
:100730005E68134DC0202E40800506435E605E69F2
|
||||
:100740003540284358610F4818600F4818615D68AC
|
||||
:100750000E4828408025AD02284358605868800B19
|
||||
:100760008003586000235171237105E0137ADA0683
|
||||
:1007700002D5201C00F0E8FA207970BD9C01002011
|
||||
:10078000FFFFFF8F9C0000201C010020FF3F00F0B6
|
||||
:10079000002303714371044B016083600B780222D4
|
||||
:1007A00013430B707047C0460D07000038B5364B39
|
||||
:1007B0002021DA6901200A43DA61344B06241A78D1
|
||||
:1007C00002431A70324B0F2219789143197019782D
|
||||
:1007D000214319702F490C782043087019780A407A
|
||||
:1007E0001A701A7860210A431A702B4B2B4A5A80D0
|
||||
:1007F0005A7852B2002AFBDB294B01211A780A43AE
|
||||
:100800001A709A78D107FCD426480268510B1F222F
|
||||
:100810001140914200D1052111408C011D8D2249CA
|
||||
:100820002940214319850468A10C0A401F2A00D1E0
|
||||
:100830001D221C8D1F210A408C4322431A85026809
|
||||
:100840000721D20D0A408A4200D103220A40188DA6
|
||||
:100850001103164A02400A431A8519787F220A407A
|
||||
:100860001A701A78042112480A431A7058621A89B9
|
||||
:100870000C218A431A811A8901218A431A81002195
|
||||
:10088000802201F0A4F938BD000400405844004122
|
||||
:100890003C44004159440041000C00400640000027
|
||||
:1008A00000500041246080003FF8FFFFFF8FFFFFF2
|
||||
:1008B0009C010020F7B5141C1F4A5F0101971D1C05
|
||||
:1008C000D319061C5869271C4000400F0330103311
|
||||
:1008D000C74006D00F1C8022596812060A435A608E
|
||||
:1008E00009E02F1C7B1E9F41144BBF01FF18381CD1
|
||||
:1008F000221C01F063F901990F480835421817616D
|
||||
:10090000131C5269A104920B890C92030A435A6189
|
||||
:1009100059690B4A0A405A616B01F3180222DA71D5
|
||||
:100920005979802252420A435A716B01F318DB79DC
|
||||
:100930009A07FAD5201CFEBD9C0100201C01002056
|
||||
:10094000FF3F00F0F8B51A4E051C3378141C002B3D
|
||||
:1009500012D1184B184A1A645A6C920B92035A64BB
|
||||
:10096000586C164A02405A64A2235B00EA5C40209D
|
||||
:100970000243EA54012333704827FF37EA5D01231D
|
||||
:10098000134012D00B4B5A6C9204920CA24202D22A
|
||||
:100990005C6CA404A40C081C221C074901F00EF98D
|
||||
:1009A0000123EB550023337000E01C1C201CF8BD14
|
||||
:1009B0007F0000209C010020DC000020FF3F00F0B1
|
||||
:1009C000FF3083792022002900D110221343837144
|
||||
:1009D00070470000084BFF305A69920B92035A612E
|
||||
:1009E00002230372827980235B4213438371037A6B
|
||||
:1009F0009A07FCD57047C0469C01002080235B42CB
|
||||
:100A00001943C9B28172704770B5A02303225B00FD
|
||||
:100A1000C254134B134A5C6CC021144089050C432B
|
||||
:100A200046255C64FF35402444550F4D30261D6437
|
||||
:100A300090256D0046555D6B1540294392255963FD
|
||||
:100A40006D0080214155094D1D63B0256D00445551
|
||||
:100A50005C6F22405A67B2235B00C15470BDC04630
|
||||
:100A60009C010020FFFFFF8FDC0000205C010020C4
|
||||
:100A700030B5364A1E235168082099430223194392
|
||||
:100A8000516033498A6902438A613248324A90820E
|
||||
:100A9000908A03439382D3689807FCD52F4B01209B
|
||||
:100AA00018701878C40704D52C48407840B2002844
|
||||
:100AB000F7DB01209860587840B20028FBDB284C17
|
||||
:100AC00026484460587840B20028FBDB8224234843
|
||||
:100AD000E4014480587840B20028FBDB908C8024ED
|
||||
:100AE000A0439084D068C506FCD51E4C1A48C46249
|
||||
:100AF000D4681948E506FBD5848C1B4D2C438484AF
|
||||
:100B0000D4681548E506FBD5848C02252C438484E3
|
||||
:100B1000D0680406FCD51048C0684506F8D5D068F2
|
||||
:100B2000C406FCD500229A605A7852B2002AFBDB38
|
||||
:100B30000E480A4A50605A7852B2002AFBDB002362
|
||||
:100B40000B724B728B72CB7230BDC04600400041BD
|
||||
:100B5000000400400C06000000080040000C0040AB
|
||||
:100B600001050100B805FF7D040A0000000703002D
|
||||
:100B70000EBEFEE70DBEFEE705BEFEE702BEFEE7C7
|
||||
:100B80000E4A0F4838B5824204D10E4A0E4B9342AA
|
||||
:100B90000ED10AE00D4C9442F7D00023D1188842C0
|
||||
:100BA000F3D9E55804330D60F8E700F011F804E0DC
|
||||
:100BB0009342FAD2002102C3FAE7FEE700000020C8
|
||||
:100BC0005C000020AC0300205C000020DC1E000064
|
||||
:100BD00038B5344D2B6801331AD0334B2A1D1A60B7
|
||||
:100BE000EAB2002A14D1314B197801231940304B55
|
||||
:100BF0000AD118682F4A904201D1196008E01A60A2
|
||||
:100C00002D4A013A002AFCD11A602C4B01221A709D
|
||||
:100C1000FFF72EFF62B6FFF723FD284B284C1B7809
|
||||
:100C2000002B0AD02B6883F308881E4BFF229343C6
|
||||
:100C3000A3601D4B1B681B68184700F09DFD00F06A
|
||||
:100C40004FF8204B802252039A601F4B1F4A051C0D
|
||||
:100C50005A60216AC0220902090A12060A43226266
|
||||
:100C600000229A6007221A60AB68281C9847184B2C
|
||||
:100C7000002801D001221A701A78002A05D000201D
|
||||
:100C800000F08CFA00F004FBFCE71B78002BEBD1A2
|
||||
:100C900000F0E6FD0028E7D0012000F07FFA00F028
|
||||
:100CA000F7FAFCE7002000001C0200203804004096
|
||||
:100CB000FC7F00203581730748E801008000002098
|
||||
:100CC00000ED00E00044004110E000E0E703000018
|
||||
:100CD0008100002008B5FFF72FFB00F0C3FA08BD24
|
||||
:100CE00010B5054B054C2360FFF760FD201C216803
|
||||
:100CF000FFF74EFD201C10BD0050004120020020D7
|
||||
:100D000070B5051CC0B0081C161C0C1C00F067FF59
|
||||
:100D100040006A46032302305370107076080123A6
|
||||
:100D2000E218013A11785A00002906D1281C6946B8
|
||||
:100D30000023FFF7BFFD40B070BDB342F6DA68464E
|
||||
:100D400081520133ECE70000F7B5BA4A0468137822
|
||||
:100D5000B949271CFF37051C102038720B705378D7
|
||||
:100D6000B648B74E037093783380D1783388090240
|
||||
:100D70000B4333801179B34B1980517918880902DC
|
||||
:100D8000084318809079B0490880D2790888120207
|
||||
:100D900002430A8040227A71A84F3A78A64F120285
|
||||
:100DA00038780F1C0243A9488446181C624500D1BC
|
||||
:100DB000C2E020DC802149008A4200D16EE109DCDA
|
||||
:100DC000812A00D192E0822A00D195E0802A00D0C9
|
||||
:100DD00064E18BE081235B009A4200D1CFE000DA2E
|
||||
:100DE00058E1C0239B009A4200D157E1984B9A42A8
|
||||
:100DF00000D14FE152E190231B019A4269D015DCEA
|
||||
:100E0000D023DB009A4222D088231B019A4269D06A
|
||||
:100E1000A023DB009A4200D040E1201CFFF7DAFD5E
|
||||
:100E20003188286889B2FFF7E9FD3BE1894B9A4296
|
||||
:100E300000D12FE100DC31E1874B9A4200D11DE166
|
||||
:100E4000864B9A4200D029E133886B7122E13388C6
|
||||
:100E50001B0A012B08D10B8812222868934201D863
|
||||
:100E60000A8892B27E4911E133881B0A022B08D10D
|
||||
:100E70000B8843222868934201D80A8892B27949A4
|
||||
:100E800004E133881B0A032B00D007E13388DBB26F
|
||||
:100E9000012B17D0002B07D0022B00D0FEE00A88D0
|
||||
:100EA0002868D2B2704911E0042201A86F4900F00D
|
||||
:100EB00085FE3B8804222868934201D83A8892B282
|
||||
:100EC00001A9E3E00A8828686949D2B2FFF718FF50
|
||||
:100ED000E8E03388201C2B71FFF77CFD201CFFF716
|
||||
:100EE00093FDDFE0291C01C90122CFE06149002305
|
||||
:100EF0000B8028680222CAE05E4900220A80188816
|
||||
:100F0000502210405C4A10701E880F20304018801C
|
||||
:100F10001888032800D9C1E012781B8808335B01C8
|
||||
:100F2000E418A379002A01D09B0600E0DB06DB0F62
|
||||
:100F30000B8028680222A9E019887F2291434E4A3B
|
||||
:100F4000C9B2117018880F21014019803188002919
|
||||
:100F500000D0A3E01988002900D19FE01988032957
|
||||
:100F600000D99BE012781B8808335B01E318002A44
|
||||
:100F700002D020225A718DE0102159718AE0028836
|
||||
:100F80007F239A433C4BD2B21A7001880F220A4049
|
||||
:100F900002803288002A00D080E00288002A00D136
|
||||
:100FA0007CE00288032A00D978E01B78002B1FD050
|
||||
:100FB000038808335B01E3189B799A066AD5038896
|
||||
:100FC000202208335B01E3181A71038808335B01A0
|
||||
:100FD000E318DB795F065DD50388402208335B01A7
|
||||
:100FE000E318DA710388022208335B01E3181EE07C
|
||||
:100FF000038808335B01E3189B79D9064AD5038837
|
||||
:10100000102208335B01E3181A71038808335B016F
|
||||
:10101000E318DB799A063DD50388202208335B016B
|
||||
:10102000E318DA710388012208335B01E3181A71AF
|
||||
:1010300030E0C0469C000020830000208800002093
|
||||
:101040008A0000208C00002086000020020300009F
|
||||
:101050000103000021200000A12100002122000046
|
||||
:101060002C1C000004000020141C0000041C0000C4
|
||||
:10107000081C000084000020820000200B88082249
|
||||
:101080002868934201D80A8892B207490023FFF7E3
|
||||
:1010900011FC07E0201CFFF79DFC03E0201C012150
|
||||
:1010A000FFF78EFCF7BDC0464800002007B5054B92
|
||||
:1010B0000122019001A91868131CFFF7FBFB012016
|
||||
:1010C0000EBDC0462002002013B5054B6C46073408
|
||||
:1010D0001868211C0122FFF735FC207816BDC04698
|
||||
:1010E0002002002010B5074C201CFFF70FFB031C4B
|
||||
:1010F0000020834205D022684823FF33D05C0123BF
|
||||
:10110000184010BD2002002010B5054A0C1C031C1D
|
||||
:10111000191C10680123221CFFF7CCFB201C10BDFA
|
||||
:101120002002002070B5084C061C201C0D1CFFF787
|
||||
:10113000EDFA0023984205D02068311C2A1CFFF7E5
|
||||
:1011400001FC031C181C70BD20020020F8B50C4CDB
|
||||
:10115000051C201C0E1CFFF7D9FA0023271C341C89
|
||||
:1011600098420AD0002C07D0291C221C3868FFF7AF
|
||||
:10117000E9FB241A2D18F5E7331C181CF8BDC046EE
|
||||
:101180002002002008B5031C081C111C9847024BC4
|
||||
:1011900064221A8008BDC04692000020012805D1B3
|
||||
:1011A000054B064A1A60064B187004E0002802D16D
|
||||
:1011B000044A014B1A60704790020020601C000036
|
||||
:1011C00098000020AC1C000030B50A1C1C4985B0FA
|
||||
:1011D0000978031C00292AD0042A01D1006804E000
|
||||
:1011E000022A01D1008800E00078520004A98B187F
|
||||
:1011F0000B3B9C1AA3420BD00F210140092902D8B6
|
||||
:101200003025294300E0373119700009013BF1E72F
|
||||
:1012100001A930230B7078234B700A208B1898702B
|
||||
:101220000D20D870074B04321B68D86803E00549CD
|
||||
:101230000968C868191CFFF7A5FF05B030BDC04696
|
||||
:101240008E0000209002002072B6EFF30883044A5B
|
||||
:101250001360036883F30888436818477047C046E3
|
||||
:1012600094020020084B1A88002A03D01A88013AF9
|
||||
:1012700092B21A80054B1A88002A03D01A88013AC4
|
||||
:1012800092B21A807047C046920000209000002061
|
||||
:10129000F0B591B008A9CC4A0B1C31CA31C351CA70
|
||||
:1012A00051C360CA60C3C94BC9489A687A255203C2
|
||||
:1012B000520F92005258C74902609C68A4B2624320
|
||||
:1012C0000C60C54900240A60C44A1460C44C2570EF
|
||||
:1012D000C44CC54D2368281C1B6940219847002831
|
||||
:1012E00002D0C24B64221A80C14B00221860C14B4D
|
||||
:1012F0001D60C14BC04DBE4F1A602A683B689A42C0
|
||||
:10130000E6D2BC4B1B681A78FF2A00D114E2232ACC
|
||||
:1013100000D0EBE1B94E3378002B06D0B14BB84981
|
||||
:101320001B680222D868FFF72DFFAD4B1B78532BAB
|
||||
:101330003CD13B682A6893421ED9AE4801322A60EC
|
||||
:101340009A1AB04B01681B6801310160AE4E9A4297
|
||||
:1013500001D2326000E03360A04832680068049037
|
||||
:1013600000F02CFC336829685A182A60A14A1668D4
|
||||
:10137000F1181160A54A13702B68013B2B609D4B3F
|
||||
:101380001A68013A1A60A14B9E4A1B7811688B4279
|
||||
:101390000AD222689148C91A0068926990470028C9
|
||||
:1013A00002D0924B64221A80C0468DE1522B0AD1A2
|
||||
:1013B0008A48944A2368006811685B6903909847DB
|
||||
:1013C0006422934B0DE04F2B05D1844B8D4A1B6853
|
||||
:1013D00012681A7078E1482B05D1804B894A1B6846
|
||||
:1013E00012681A8070E1572B05D17C4B854A1B6827
|
||||
:1013F00012681A6068E16F2B03D1784B01211868DD
|
||||
:1014000007E0682B08D1754B7E481B6802211B88BA
|
||||
:101410000360FFF7D9FE57E1772B06D16F4B794870
|
||||
:101420001B6804211B680360F3E7472B13D1754B3E
|
||||
:101430001868FFF709FF774B1B6883F3088862B6CB
|
||||
:10144000754B1B78002B00D13EE1664B06201B68D4
|
||||
:101450001B68984738E1542B04D101233370614B4A
|
||||
:101460001B6864E04E2B0CD13378002B06D15D4B0A
|
||||
:1014700063491B680222D868FFF784FE002333709B
|
||||
:1014800022E1562B57D123686449D8680122FFF71F
|
||||
:1014900079FE23686249D8680322FFF773FE614D25
|
||||
:1014A0002368291CD8680122FFF76CFE23685E4977
|
||||
:1014B000D8680D22FFF766FE2368291CD868012230
|
||||
:1014C000FFF760FE4B4F4C4D5849002339602B60AD
|
||||
:1014D0003A1C281C13685E1C16601B780593002BB1
|
||||
:1014E00003D0036801330360F4E73E4E2A68336893
|
||||
:1014F000D868FFF747FE33684A49D8680122FFF7EA
|
||||
:1015000041FE059929604A4939603A4A1368581CD6
|
||||
:1015100010601B78002B04D0374B1A6801321A6018
|
||||
:10152000F3E733682A68D868FFF72CFE3368D86879
|
||||
:1015300033490222C6E0334A582B17D1244E264D98
|
||||
:10154000366813682A68B10093420AD21F4D5808C2
|
||||
:10155000E861384828801D4D287DC607FBD55B18FB
|
||||
:10156000F2E7204B34491B68D868AAE0592B79D19F
|
||||
:1015700012681A4B3149002A02D11B680B606CE0DB
|
||||
:10158000124D086819686B68104E8025AB439208AD
|
||||
:101590007360002A61D02A4B0C4D2B800B4E337D9B
|
||||
:1015A000DD07FBD500230A4D2D680195AD08AB4240
|
||||
:1015B00003D3244D054E358046E09342F9D09D007B
|
||||
:1015C000465901334E51EEE7401C000000400041F7
|
||||
:1015D00048020020400200203C0200208C02002033
|
||||
:1015E00038020020900200204C02002090000020D1
|
||||
:1015F0003002002034020020440200208E0000202F
|
||||
:10160000A01C0000980200209C0200202C02002058
|
||||
:101610009200002094020020980000207C1C000012
|
||||
:10162000A51C00007E1C0000C81C0000801C0000DF
|
||||
:101630008C1C000002A5FFFF951C000094000020F8
|
||||
:1016400044A5FFFF04A5FFFF3F4E357DEE07FBD508
|
||||
:101650009D0049194019D21A9BE73C4B3C491B6835
|
||||
:10166000D8682EE05A2B2FD13A4B17681D680026F8
|
||||
:10167000EF19BD4206D02878311C00F013F901356E
|
||||
:10168000061CF6E7314B34491B680122D868FFF786
|
||||
:1016900079FD07230F223240111C36093031092A07
|
||||
:1016A00000DD07311820C0186A468154013BF1D291
|
||||
:1016B000236806A9D8680822FFF764FD2368274934
|
||||
:1016C000D8680322FFF75EFD254B7A221A70254B5E
|
||||
:1016D00000221A60244B1B7893422DD01B4B2349C8
|
||||
:1016E0001B680122D868FFF74DFD25E0111C303939
|
||||
:1016F000C8B21C4B092804D81D682A01114319607F
|
||||
:101700001AE0111C4139052903D81E68373A310106
|
||||
:1017100006E0111C6139052904D81868573A0101FF
|
||||
:101720000A4308E02C2A03D10A4A1968116001E033
|
||||
:101730000B490A7000221A600D4B1A6801321A60B8
|
||||
:101740000C4B1A680132D5E50040004190020020A0
|
||||
:10175000991C00008C0200209D1C00009F1C0000B2
|
||||
:1017600038020020980200208E000020A31C0000F8
|
||||
:10177000440200203402002010B51C4B01201A78CE
|
||||
:10178000032402431A701A4B0F22197891431970DF
|
||||
:1017900019782143197017490C782043087019787B
|
||||
:1017A0000A401A701A7830210A431A70124B8021AD
|
||||
:1017B0001A6A0A431A62114B114A5A805A7852B275
|
||||
:1017C000002AFBDBC4220F480F499203FEF752FFA9
|
||||
:1017D0000E4A002313700E4A13700E4A13700E4AFD
|
||||
:1017E00013700E4A13700E4A137010BDD644004198
|
||||
:1017F000BB440041D744004100040040000C0040BD
|
||||
:1018000019400000001C00422AF60000A00200203F
|
||||
:1018100027030020A1020020A402002028030020AA
|
||||
:101820002503002008B5C1B20248FEF751FF012090
|
||||
:1018300008BDC046001C0042024B187E4007C00F86
|
||||
:101840007047C046001C004208B5FFF7F5FF0028AE
|
||||
:10185000FBD00248FEF742FF08BDC046001C004214
|
||||
:1018600008B5FFF7E9FF0023984205D0FFF7ECFF2A
|
||||
:10187000031C233B5A425341181C08BD70B5041C7D
|
||||
:101880000D1C4618B44204D02078FFF7CBFF01347A
|
||||
:10189000F8E7281C70BD10B5041CFFF7D5FF2070B9
|
||||
:1018A000012010BD0B0A5840034B4000C05A0902EA
|
||||
:1018B000484080B27047C046D61C0000F7B50024EF
|
||||
:1018C000051C0F1C261CBC4220D0FFF7BDFF114B8E
|
||||
:1018D000C0B21B780190002B1AD1311CFFF7E2FF38
|
||||
:1018E0000D4B061C1A88002A04D10C4A11782A1CB8
|
||||
:1018F000002907D001996A1C2970802F02D119880C
|
||||
:10190000013919800134A4B2151CDCE7301C00E059
|
||||
:101910000120FEBD25030020A20200202603002096
|
||||
:10192000F0B53E4E85B0002203900C1C32703C4B4B
|
||||
:10193000914201D1012201E03A490C801A707F23C3
|
||||
:101940001C4201D080349C43FFF77EFF3378C0B245
|
||||
:10195000002B07D000253570FFF776FF3378C0B233
|
||||
:10196000AB4236D1432803D0712853D01528EBD190
|
||||
:10197000012300930120FFF755FF0098FFF752FF66
|
||||
:1019800000998025C843C0B2FFF74CFF039B002796
|
||||
:101990000293244A1388002B1DD121490193097811
|
||||
:1019A000002918D10198FFF73DFF391C0198FFF776
|
||||
:1019B00079FF013D071C002DEBD1000AC0B2FFF7F3
|
||||
:1019C00031FFF8B2FFF72EFFFFF73EFF3378002B11
|
||||
:1019D0000AD035701FE00299013B09781380029B01
|
||||
:1019E000019101330293DDE7C0B2062807D1009BC5
|
||||
:1019F00003990133DBB280310093803C0391002CCA
|
||||
:101A0000B8D10420FFF70EFFFFF71EFF044B01259E
|
||||
:101A10001C7000E00025281C05B0F0BD2503002047
|
||||
:101A200026030020A2020020F0B5384C87B0002326
|
||||
:101A300001902370994201D1012301E0344A1180C1
|
||||
:101A4000344A642613704320FFF7ECFE324FFFF751
|
||||
:101A5000F3FE002803D1002F03D0013FF7E7002F4A
|
||||
:101A600003D1013E002EEED14DE00125FFF7ECFE43
|
||||
:101A70002378002B38D1C0B20290012805D0042869
|
||||
:101A80003DD10620FFF7CEFE39E005AE0221301C25
|
||||
:101A9000FFF714FF01988021FFF710FF23780390D0
|
||||
:101AA000002B18D1FFF7D0FE0702FFF7CDFEBFB223
|
||||
:101AB00023783F18BFB2012B0DD0039B9F4207D163
|
||||
:101AC0003378AB4204D1EB437278DBB29A4204D054
|
||||
:101AD0001820FFF7A7FE002303E00620FFF7A2FE71
|
||||
:101AE000029B2278002A02D0002626700BE0012BF0
|
||||
:101AF00005D1019A6B1C8032DDB20192B6E7054A2E
|
||||
:101B0000002313700126301C07B0F0BD2503002010
|
||||
:101B1000A20200202603002000350C00002934D04A
|
||||
:101B20000123002210B488422CD301242407A142AF
|
||||
:101B300004D2814202D209011B01F8E7E400A1426C
|
||||
:101B400004D2814202D249005B00F8E7884201D307
|
||||
:101B5000401A1A434C08A04202D3001B5C082243DF
|
||||
:101B60008C08A04202D3001B9C082243CC08A04250
|
||||
:101B700002D3001BDC082243002803D01B0901D03C
|
||||
:101B80000909E3E7101C10BC7047002801D00020B1
|
||||
:101B9000C04307B4024802A14018029003BDC046EA
|
||||
:101BA000190000000029F0D003B5FFF7B9FF0EBC03
|
||||
:101BB0004243891A1847C0467047C04610B50023F3
|
||||
:101BC000934203D0CC5CC4540133F9E710BD031C2D
|
||||
:101BD0008218934202D019700133FAE7704700234C
|
||||
:101BE000C25C0133002AFBD1581E7047F8B5C046CD
|
||||
:101BF000F8BC08BC9E467047F8B5C046F8BC08BCA7
|
||||
:101C00009E4670470403090441726475696E6F2033
|
||||
:101C10004C4C430041726475696E6F204D4B5220ED
|
||||
:101C2000576946692031303130000000120100024E
|
||||
:101C300002000040412354000002010200010000A4
|
||||
:101C4000080000001000000020000000400000001C
|
||||
:101C500080000000000100000002000000040000FD
|
||||
:101C60002518000049180000391800007D180000F0
|
||||
:101C70009718000021190000291A000076002000A2
|
||||
:101C80004D617220313920323031380030393A34E8
|
||||
:101C9000353A313400580A0D00590A0D005A002314
|
||||
:101CA0000A0D003E00322E3000000000AD10000092
|
||||
:101CB000C9100000E5100000091100002511000006
|
||||
:101CC000091100004D1100005B41726475696E6F6F
|
||||
:101CD0003A58595A5D000000211042206330844078
|
||||
:101CE000A550C660E770088129914AA16BB18CC1EB
|
||||
:101CF000ADD1CEE1EFF13112100273325222B55262
|
||||
:101D00009442F772D662399318837BB35AA3BDD33A
|
||||
:101D10009CC3FFF3DEE36224433420040114E66431
|
||||
:101D2000C774A44485546AA54BB528850995EEE58A
|
||||
:101D3000CFF5ACC58DD55336722611163006D77641
|
||||
:101D4000F6669556B4465BB77AA719973887DFF7DA
|
||||
:101D5000FEE79DD7BCC7C448E5588668A778400809
|
||||
:101D6000611802282338CCC9EDD98EE9AFF948892A
|
||||
:101D700069990AA92BB9F55AD44AB77A966A711AA1
|
||||
:101D8000500A333A122AFDDBDCCBBFFB9EEB799B7A
|
||||
:101D9000588B3BBB1AABA66C877CE44CC55C222CF1
|
||||
:101DA000033C600C411CAEED8FFDECCDCDDD2AADCA
|
||||
:101DB0000BBD688D499D977EB66ED55EF44E133E81
|
||||
:101DC000322E511E700E9FFFBEEFDDDFFCCF1BBF1A
|
||||
:101DD0003AAF599F788F8891A981CAB1EBA10CD1F4
|
||||
:101DE0002DC14EF16FE18010A100C230E3200450FC
|
||||
:101DF000254046706760B9839893FBA3DAB33DC36F
|
||||
:101E00001CD37FE35EF3B1029012F322D23235424B
|
||||
:101E1000145277625672EAB5CBA5A89589856EF5FE
|
||||
:101E20004FE52CD50DC5E234C324A014810466749B
|
||||
:101E3000476424540544DBA7FAB79987B8975FE74E
|
||||
:101E40007EF71DC73CD7D326F2369106B0165766EB
|
||||
:101E50007676154634564CD96DC90EF92FE9C899D6
|
||||
:101E6000E9898AB9ABA94458654806782768C0183B
|
||||
:101E7000E1088238A3287DCB5CDB3FEB1EFBF98BAE
|
||||
:101E8000D89BBBAB9ABB754A545A376A167AF10A8B
|
||||
:101E9000D01AB32A923A2EFD0FED6CDD4DCDAABDBE
|
||||
:101EA0008BADE89DC98D267C076C645C454CA23CDB
|
||||
:101EB000832CE01CC10C1FEF3EFF5DCF7CDF9BAF8E
|
||||
:101EC000BABFD98FF89F176E367E554E745E932E2B
|
||||
:0C1ED000B23ED10EF01E00000000000029
|
||||
:101EDC0001140000090243000201008032090400D1
|
||||
:101EEC000001020200000524001001042402000578
|
||||
:101EFC00240600010524010001070583030800FFE7
|
||||
:101F0C0009040100020A00000007058102400000DC
|
||||
:101F1C00070502024000000000C20100000008009A
|
||||
:0C1F2C00690000004100000000000000FF
|
||||
:0400000300000B816D
|
||||
:00000001FF
|
||||
0
bootloaders/mkrzero/samd21_sam_ba_arduino_mkrzero.bin
Normal file → Executable file
0
bootloaders/mkrzero/samd21_sam_ba_arduino_mkrzero.bin
Normal file → Executable file
|
|
@ -218,7 +218,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -218,7 +218,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -218,7 +218,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -218,7 +218,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -222,7 +222,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -222,7 +222,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -222,7 +222,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -222,7 +222,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -226,7 +226,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -226,7 +226,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -226,7 +226,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
|
|
@ -226,7 +226,11 @@ void I2S_Handler ( void );
|
|||
* \brief Configuration of the Cortex-M0+ Processor and Core Peripherals
|
||||
*/
|
||||
|
||||
#define LITTLE_ENDIAN 1
|
||||
#if defined(LITTLE_ENDIAN) && (LITTLE_ENDIAN != 1)
|
||||
#error "Little Endian is already defined, but to different value than expected?!"
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1
|
||||
#endif
|
||||
#define __CM0PLUS_REV 1 /*!< Core revision r0p1 */
|
||||
#define __MPU_PRESENT 0 /*!< MPU present or not */
|
||||
#define __NVIC_PRIO_BITS 2 /*!< Number of bits used for Priority Levels */
|
||||
|
|
|
|||
BIN
bootloaders/qtpyM0/bootloader-qtpy_m0.bin
Normal file
BIN
bootloaders/qtpyM0/bootloader-qtpy_m0.bin
Normal file
Binary file not shown.
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.atsln
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.atsln
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.atsuo
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.atsuo
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.cproj
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/Bootloader_Sofia.cproj
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/atmel_devices_cdc.cat
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/atmel_devices_cdc.cat
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/atmel_devices_cdc.inf
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/atmel_devices_cdc.inf
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/boards/board.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/boards/board.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/samd/sleepmgr.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/samd/sleepmgr.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/samd/sleepmgr.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/samd/sleepmgr.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/sleepmgr.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/sleepmgr/sleepmgr.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc_conf.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc_conf.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc_desc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/device/udi_cdc_desc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/usb_protocol_cdc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/class/cdc/usb_protocol_cdc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc_desc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udc_desc.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udd.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udd.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udi.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/udc/udi.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/usb_atmel.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/usb_atmel.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/usb_protocol.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/services/usb/usb_protocol.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/interrupt/interrupt_sam_nvic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/parts.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/common/utils/parts.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/boards/samd21_xplained_pro/board_init.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/boards/samd21_xplained_pro/samd21_xplained_pro.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/port.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/port.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/port.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/port.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/port/quick_start/qs_port_basic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/quick_start_count/qs_rtc_count_basic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/quick_start_count/qs_rtc_count_basic.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/quick_start_count_callback/qs_rtc_count_callback.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/quick_start_count_callback/qs_rtc_count_callback.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/rtc_count.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/rtc_count.c
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/rtc_count.h
Normal file → Executable file
0
bootloaders/sofia/Bootloader_D21_Sofia_V2.1/src/ASF/sam0/drivers/rtc/rtc_count.h
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue