Étape 2: Ajouter des bibliothèques de mathématiques de bras pour le logiciel arduino.
Le logiciel arduino est livré avec des fonctions DSP beaucoup de belle (mais assez difficile à comprendre). Celles-ci incluent des fonctions FFT discrètes comme arm_rfft_q15 (& S, out, outsq) que je souhaite utiliser. Mais ils sont ratés de l’éditeur de liens. Cette étape ajoute à l’environnement arduino.
Vraisemblablement, cette technique peut servir de lien à n’importe quelle bibliothèque C.
Si vous voulez un exemple d’un code qui utilise ces fonctions alors je vous suggère google pour « Chute d’eau DueVGA par stimmer ». C’est où j’ai obtenu la technique d’et le code contient des consignes de l’originales que j’ai utilisé le compte.
En tout cas, Voici les changements que j’ai fait l’installation de l’arduino 1.5.5, ceux-ci ne fonctionnera pas pour l’échéance de l’Arduino, il y a quelques suggestions sur la façon d’adapter, pour le jury de DigiX.
1. Ajouter un lien de sym aux bibliothèques pour les variantes arduino_due_x/digix Conseil :
Cela fonctionne pour l’échéance (testé avec 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.
Mais, si vous avez un DigiX (avec 1.5.5), procédez comme suit :
# cd /usr/local/arduino-1.5.5/hardware/digistump/sam/variants/digix/
# ln -s... /.. /System/CMSIS/CMSIS/lib/gcc/libarm_cortexM3l_math.a.
2. modifiez le fichier boards.txt dans deux endroits ajoutant - larm_cortexM3l_math à la ligne de build.extra_flags :
Pour le respect de l’Arduino :
# cd /usr/local/arduino-1.5.5/hardware/arduino/sam
# diff -u boards.txt.0 boards.txt
---12:56:00.498907451 boards.txt.0 2014-02-15 + 0000
+++ 12:57:41.803409801 boards.txt 2014-02-15 + 0000
-13,7 + 13,8
arduino_due_x_dbg.Build.usb_product="Arduino Due »
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 Due »
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
Pour le DigiX, apporter des modifications similaires aux fichiers sous /usr/local/arduino-1.5.5/hardware/digistump/sam
3. modifiez le fichier platforms.txt :
Pour l’Arduino Due (testé sous 1.5.4) :
Dans /usr/local/arduino-1.5.5/hardware/arduino/sam, remplacez platform.txt pour ajouter ce qui suit juste après :
Ajouter ceci: "build.variant.path}/libarm_cortexM3l_math.a {"
Juste après « {build.variant.path}/{build.variant_system_lib} »
À la ligne après le commentaire qui dit « Combiner gc-sections, archives et objets »
Voici un diff des changements :
# diff -u platform.txt.0 platform.txt
---12:58:59.011792641 platform.txt.0 2014-02-15 + 0000
+++ 13:00:18.792188245 platform.txt 2014-02-15 + 0000
-55,7 + 55,8
Recipe.ar.Pattern="{Compiler.Path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
## Combiner gc-sections, archives et objets
-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-sections - Wl, - gc-sections - Wl,--entrée = Reset_Handler -Wl,--en suspens-symboles = rapport-tous - Wl, - avertir-common - Wl, - avertir-section-align - Wl, - avertir-suspens-symboles - Wl,--start-groupe "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--groupes terminaux
+ # 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-sections - Wl, - gc-sections - Wl,--entrée = Reset_Handler -Wl,--en suspens-symboles = rapport-tous - Wl, - avertir-common - Wl, - avertir-section-align - Wl, - avertir-suspens-symboles - Wl,--start-groupe "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--groupes terminaux
+ 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-sections - Wl, - gc-sections - Wl,--entrée = Reset_Handler -Wl,--en suspens-symboles = rapport-tous - Wl, - avertir-common - Wl, - avertir-section-align - Wl, - avertir-suspens-symboles - Wl,--start-groupe "{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 ,--groupes terminaux
Pour le Digix, comme dans les étapes ci-dessus, apporter des modifications similaires au fichier platforms.txt dans :
/usr/local/Arduino-1.5.5/Hardware/digistump/Sam/
Maintenant votre croquis devraient être en mesure d’inscrire des appels à n’importe quoi à libarm_cortexM3l_math.a ! Youpi !
Compilation de ligne de commande avec arduino IDE 1.5 +
Cela semble fonctionner pour le jury de DigiX :
/usr/local/Arduino-1.5.5/Arduino--digistump:sam:digix--/root/Arduino/sketchbook/xblinky/xblinky.ino upload--verbose à bord