DigiX/Arduino DUE ARM matematiska biblioteket mjukvara setup (2 / 2 steg)
Steg 2: Lägga till ARM math bibliotek för arduino programvaran.
Arduino software kommer med en mycket trevlig (men ganska svår att förstå) DSP-funktioner. Dessa inkluderar diskret FFT funktioner som arm_rfft_q15 (& S, ut, outsq) som jag gillar att använda. Men de missat från länkaren. Detta steg lägger dem till arduino-miljö.
Förmodligen, kan denna teknik användas för att länka mot någon C-bibliotek.
Om du vill ha ett exempel på kod som använder dessa funktioner då föreslår jag er google för "DueVGA vattenfall av stimmer". Det är där jag fick på tekniken från och koden innehåller ursprungliga tipsen som jag använt med förfallodatum.
Anyway, här är de ändringar jag gjort arduino 1.5.5 installationen, dessa fungerar för Arduino Due, det finns några förslag om hur man ska anpassa som för DigiX styrelsen.
1. Lägg en sym länk till bibliotek för varianter av arduino_due_x/digix styrelse:
Detta fungerar för Due (testat med 1.5.4):
# cd /usr/local/arduino-1.5.5/hardware/arduino/sam/variants/arduino_due_x/
# ln -s... /.. /system/CMSIS/CMSIS/lib/gcc/libarm_cortexM3l_math.a.
Men, om du har en DigiX (med 1.5.5), gör detta:
# cd /usr/local/arduino-1.5.5/hardware/digistump/sam/variants/digix/
# ln -s... /.. /system/CMSIS/CMSIS/lib/gcc/libarm_cortexM3l_math.a.
2. ändra filen boards.txt på två ställen att lägga till - larm_cortexM3l_math till raden build.extra_flags:
För Arduino förfallodatum:
# cd /usr/local/arduino-1.5.5/hardware/arduino/sam
# diff -u boards.txt.0 boards.txt
---boards.txt.0 2014-02-15 12:56:00.498907451 + 0000
+++ boards.txt 2014-02-15 12:57:41.803409801 + 0000
-13,7 + 13,8
arduino_due_x_dbg.Build.usb_product="Arduino på grund av"
arduino_due_x_dbg.Build.Board=SAM_DUE
arduino_due_x_dbg.Build.core=Arduino
-arduino_due_x_dbg.build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}
+ # MDTE: arduino_due_x_dbg.build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}
+arduino_due_x_dbg.Build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}-larm_cortexM3l_math
arduino_due_x_dbg.Build.ldscript=linker_scripts/gcc/Flash.LD
arduino_due_x_dbg.Build.variant=arduino_due_x
arduino_due_x_dbg.Build.variant_system_lib=libsam_sam3x8e_gcc_rel.a
-34,7 + 35,8
arduino_due_x.Build.usb_product="Arduino på grund av"
arduino_due_x.Build.Board=SAM_DUE
arduino_due_x.Build.core=Arduino
-arduino_due_x.build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}
+ # MDTE: arduino_due_x.build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}
+arduino_due_x.Build.extra_flags=-D__SAM3X8E__ - mthumb {build.usb_flags}-larm_cortexM3l_math
arduino_due_x.Build.ldscript=linker_scripts/gcc/Flash.LD
arduino_due_x.Build.variant=arduino_due_x
arduino_due_x.Build.variant_system_lib=libsam_sam3x8e_gcc_rel.a
För DigiX, gör liknande ändringar i filerna under /usr/local/arduino-1.5.5/hardware/digistump/sam
3. ändra filen platforms.txt:
För Arduino Due (testat under 1.5.4):
/Usr/local/arduino-1.5.5/hardware/arduino/sam, ändra platform.txt för att lägga till följande bara efter:
Lägg till detta: "{build.variant.path}/libarm_cortexM3l_math.a"
Strax efter "{build.variant.path}/{build.variant_system_lib}"
På raden efter kommentaren säger som "Kombinera gc-sektioner, arkiv och objekt"
Här är en diff av ändringarna:
# diff -u platform.txt.0 platform.txt
---platform.txt.0 2014-02-15 12:58:59.011792641 + 0000
+++ platform.txt 2014-02-15 13:00:18.792188245 + 0000
-55,7 + 55,8
recipe.ar.Pattern="{compiler.Path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
## Kombinera gc-sektioner, arkiv och objekt
-recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags}-mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -lm - lgcc - mthumb -Wl,--cref -Wl,--check-sektioner - Wl,--gc-sektioner - Wl,--entry = Reset_Handler -Wl,--olösta-symboler = rapport-all - Wl,--Varna-common - Wl,--Varna-avsnitt-align - Wl,--Varna-olösta-symboler - Wl,--start-grupp "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--slut-gruppen
+ # MDTE: recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags}-mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -lm - lgcc - mthumb -Wl,--cref -Wl,--check-sektioner - Wl,--gc-sektioner - Wl,--entry = Reset_Handler -Wl,--olösta-symboler = rapport-all - Wl,--Varna-common - Wl,--Varna-avsnitt-align - Wl,--Varna-olösta-symboler - Wl,--start-grupp "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--slut-gruppen
+ recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags}-mcpu={build.mcu} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -lm - lgcc - mthumb -Wl,--cref -Wl,--check-sektioner - Wl,--gc-sektioner - Wl,--entry = Reset_Handler -Wl,--olösta-symboler = rapport-all - Wl,--Varna-common - Wl,--Varna-avsnitt-align - Wl,--Varna-olösta-symboler - Wl,--start-grupp "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.variant.path}/libarm_cortexM3l_math.a" "{build.path}/{archive_file}" -Wl ,--slut-gruppen
För Digix, som i ovanstående steg gör liknande ändringar i filen platforms.txt under:
/usr/local/Arduino-1.5.5/Hardware/digistump/Sam/
Nu bör dina skisser kunna omfatta samtal till något i libarm_cortexM3l_math.a! Yipee!
Kommandoraden sammanställning med arduino IDE 1.5 +
Detta verkar fungera för DigiX styrelse:
/usr/local/Arduino-1.5.5/Arduino--digistump:sam:digix--upload /root/Arduino/sketchbook/xblinky/xblinky.ino--verbose gå ombord