I have used the usual Uno/Mega devices for years. I recently started trying to use a couple of other boards for specialized projects.
The Artemis ATP takes a LONG time to compile. I “think” that when the selected board in the Arduino IDE is changed, the IDE has to recompile all of the libraries for the new board and the compiled files are cached somewhere. In this case the IDE displays the message “build options changed, rebuilding all”.
I have a simple test sketch which I tried compiling on 3 different boards. The compile times for the initial compile (including libraries) and just recompiling the sketch are listed below.
[b]Compiling Mega Turbo (SAMD21) Artemis ATP[/b]
All 26 s 32 s 9:00 min
Sketch Only 11 sec 10 s 48 s
My questions:
-
Is it normal for the ATP to take this long? The Turbo and Mega are pretty similar; I’m surprised the ATP takes 5-18 times as long. I constantly switch between boards for projects; it is quite annoying to wait 9 minutes for the first compile to finish. Is there something I can do to speed up the ATP compiles?
-
Can I configure the IDE somehow to save the various board caches so they don’t have to be completely recompiled when I switch boards?
-
Reading various posts, I am confused as to the difference between pads and pins. I think pads refer to the pins directly attached to the Apollo chip, as given by the colored chart “Table 559: Apollo3 Blue MCU Pad Function Mapping”. Pins refer to the Uno pin numbers silkscreened on AVR boards.
a) Are the pad names in table 559 defined to my sketch, so I can do
digitalWrite(GPIO1, HIGH)
which sets pad=3/FNCEL=3 to HIGH?
b) How do the Arduino pins map to the pads?
c) How do the ATP silkscreened names correspond to Table 559 names and/or Arduino pin names? I.e., A29 and 45?
- In the discussions, it sounded like one can put either the Arduino pin number OR the pad number into digitalWrite; somehow the IDE knows which one you are using. It sounded like the function signature was different for pads vs pins. If I do digitalWrite(3, HIGH),
a) is this Arduino pin 3 or pad 3?
b) If this is pad 3, how do I specify FNCSEL 3 to get GPIO3?