DigiX/Arduino DUE ARM math bibliotheek software setup (2 / 2 stap)

Stap 2: Voeg ARM math bibliotheken voor de arduino software.


De arduino software wordt geleverd met een heleboel leuke (maar vrij moeilijk te begrijpen) DSP-functies. Het gaat hierbij om discrete FFT-functies zoals arm_rfft_q15 (& S, uit, outsq) die ik graag gebruik maken. Maar ze zijn gemist van de linker. Deze stap voegt deze toe aan de arduino omgeving.

Vermoedelijk, deze techniek kan worden gebruikt om link tegen enige C bibliotheek.

Wilt u een voorbeeld van wat code die gebruikmaakt van deze functies dan stel ik u google voor "DueVGA waterval door stimmer". Dit is waar ik kreeg de techniek uit en de code bevat de originele tips die ik met vervaldatum gebruikt.

Anyway, hier zijn de wijzigingen aan de arduino 1.5.5 installatie, dit zal werken voor de Arduino Due, er zijn enkele suggesties voor hoe aan te passen die voor het DigiX board.

1. Voeg een sym-link naar de bibliotheken voor de arduino_due_x/digix bestuur varianten:

Dit werkt voor de vervaldatum (getest met 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.

Maar, als u een DigiX (met 1.5.5), doe dit:

# cd /usr/local/arduino-1.5.5/hardware/digistump/sam/variants/digix/
# ln -s... /.. /System/CMSIS/CMSIS/lib/gcc/libarm_cortexM3l_math.a.

2. het boards.txt-bestand op twee plaatsen wijzigen toe te voegen - larm_cortexM3l_math aan de build.extra_flags-lijn:

Naar de Arduino behoren:

# 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 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}
{build.usb_flags} +arduino_due_x_dbg.build.extra_flags=-D__SAM3X8E__ - mthumb-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}
{build.usb_flags} +arduino_due_x.build.extra_flags=-D__SAM3X8E__ - mthumb-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

Voor de DigiX, soortgelijke wijzigingen aanbrengen in de bestanden onder /usr/local/arduino-1.5.5/hardware/digistump/sam

3. Verander het platforms.txt bestand:

Voor de Arduino Due (getest onder 1.5.4):

Wijzigen in /usr/local/arduino-1.5.5/hardware/arduino/sam, platform.txt om toe te voegen de volgende net na:

Voeg dit toe: "{build.variant.path}/libarm_cortexM3l_math.a"
Net na "{build.variant.path}/{build.variant_system_lib}"
In de regel na de opmerking zegt dat "Combineren gc-profielen, archieven en objecten"

Hier is een diff van de veranderingen:

# 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}"

## Gc-profielen, archieven en objecten combineren
-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-secties - Wl,--gc-profielen - Wl,--post = Reset_Handler -Wl,--onopgeloste-symbolen = verslag-all - Wl,--waarschuwen-common - Wl,--waarschuwen-sectie-uitlijnen - Wl,--waarschuwen-onopgeloste-symbolen - Wl,--start-groep "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--einde-groep
+ # 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-secties - Wl,--gc-profielen - Wl,--post = Reset_Handler -Wl,--onopgeloste-symbolen = verslag-all - Wl,--waarschuwen-common - Wl,--waarschuwen-sectie-uitlijnen - Wl,--waarschuwen-onopgeloste-symbolen - Wl,--start-groep "{build.path}/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--einde-groep
+ 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-secties - Wl,--gc-profielen - Wl,--post = Reset_Handler -Wl,--onopgeloste-symbolen = verslag-all - Wl,--waarschuwen-common - Wl,--waarschuwen-sectie-uitlijnen - Wl,--waarschuwen-onopgeloste-symbolen - Wl,--start-groep "{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 ,--einde-groep

Voor de Digix, zoals in de bovenstaande stappen soortgelijke wijzigingen aanbrengen in het bestand platforms.txt onder:

/usr/local/Arduino-1.5.5/Hardware/digistump/Sam/

Nu zou uw schetsen moeten kunnen bellen naar iets om in te nemen libarm_cortexM3l_math.a!

Yipee!

Command line compilatie met arduino IDE 1.5 +

Dit lijkt te werken voor de DigiX board:

/usr/local/Arduino-1.5.5/Arduino--digistump:sam:digix--upload /root/Arduino/sketchbook/xblinky/xblinky.ino--verbose aan boord

Gerelateerde Artikelen

Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM

Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM

AXIOM ARM werd ontworpen door Sergei Dines: Mechanical Engineer Senior op USF (Tampa).LinkedIN: http://www.linkedin.com/in/sergeidinesWebsite: http://www.surgerobotics.com/E-mail: sergeidinesNieuw!! : Verkorte versie bezoek: http://www.intorobotics.c
Arduino Robot Arm

Arduino Robot Arm

ik had beloofd in een vorige post te delen met u een arduino robot arm project op een later tijdstip. Nou, is die datum vandaag! Echter, in plaats van een joystick gebruikt om te controleren de arduino robotarm, I 'm gonna vooraf het programma van de
Arduino Due gebruiken voor het programmeren en testen ESP8266

Arduino Due gebruiken voor het programmeren en testen ESP8266

Als u wenst te programmeren een ESP8266 (Wifi SoC) zult u normaal gebruik maken van een USB naar seriële adapter zoals deze. In het geval u geen één hebt maar u hebt kan een Arduino Due tot rond je de Arduino tuig als een brug te programmeren en test
Huis gebouwd IR Remote ontvanger of Demodulator met behulp van de fototransistor en Arduino Due

Huis gebouwd IR Remote ontvanger of Demodulator met behulp van de fototransistor en Arduino Due

Mijn IR ontvangersmodule van Banggood bangged na de eerste run - het gewoon niet langer werken. De volgende nieuwe dia duurt weken te komen, maar de show moet gaan... dus besloten om tijdelijke oplossing te vinden, en het werkte:).Ik googled, en gevo
3 fase sinusgolf generator op basis van Arduino Due

3 fase sinusgolf generator op basis van Arduino Due

het doel van dit aandeel is om iemand die probeert te gebruiken de inachtneming te helpen meer performance + gebrek aan referentie + niet-nuttige gegevensblad.Dit project is het kundig voor het genereren van maximaal 3 fase sinusgolf @ 256 monsters /
Arduino Robot Arm Mixologist

Arduino Robot Arm Mixologist

"Maar wacht," zou je zeggen, "Ik dacht dat RobotGeek al gepubliceerd een instructable over het gebruik van een robotarm voor het leveren van dranken!" Die we zeggen, "Ja, maar niet uitzien." Het laatste project kon schotel ui
Arduino Robot Arm barman

Arduino Robot Arm barman

Wilt u wel eens een robot die kan pop uit de schoten? De toekomst van feesten is hier met de Robot Arm barman! Serveren drankjes in stijl, en maak indruk op uw gasten met de druk op de knop! Dit project maakt gebruik van een RobotGeek Snapper Arm met
Attiny85 RF zender op Arduino Uno Receiver (Manchester bibliotheek /w Arduino 1.0)

Attiny85 RF zender op Arduino Uno Receiver (Manchester bibliotheek /w Arduino 1.0)

Voor dit project zal u het volgende nodig:Arduino UnoAttiny85315 Mhz zender315 Mhz ontvanger10uF condensatorBrood bordBrood bord Jumper KabelsDraads Jumper KabelsStap 1: Download de Arduino Software, Attiny ondersteuning en Manchester Radio bibliothe
Een EEPROM van 24LC256 toe te voegen aan de Arduino Due

Een EEPROM van 24LC256 toe te voegen aan de Arduino Due

de arduino verschuldigde ontbreekt een eeprom. Dit instructable toegevoegd en kunt u waarden opslaan in niet-vluchtig geheugen dat een arduino firmware-update zal overleven.Stap 1: Breadboarding Er zijn sommige werkelijk goede instructies hier:http:/
Hoe interface vochtigheid en (DHT11) temperatuursensor aan de Arduino en inclusief DHT11 bibliotheek.

Hoe interface vochtigheid en (DHT11) temperatuursensor aan de Arduino en inclusief DHT11 bibliotheek.

DTH11 omvat zowel de temperatuur als de vochtigheid sensor.Hardwareonderdelen nodig:-1) DTH11 Vochtigheid en temperatuursensor2) Arduino UNO3) aansluitende draden4) DTH bibliotheekKunt u de sensor DTH11 Data Sheet vanaf de onderstaande linkhttp://www
Arduino robot arm marmeren run

Arduino robot arm marmeren run

Dit is een instructable om te laten zien een van de projecten die ik aan onlangs gewerkt heb.Alle robots ik maken heb lage kosten als het belangrijkste thema. Alle robots die kosten tussen £5 en 20 pond zijn gemaakt. Ik zal hopelijk een paar meer (zo
Arduino Due gitaar ADC Input en DAC Output Mixer

Arduino Due gitaar ADC Input en DAC Output Mixer

dit is het vervolg op mijn andere instructable waarmee een circuit om ingangssignalen die zijn gegenereerd door een gitaar in de arduino verschuldigd ADC.[Bijgewerkt 26 Jan 2014 - het diagram is veranderd... Zie opmerkingen hieronder.]Dit instructabl
Arduino - oscilloscoop (arme man oscilloscoop)

Arduino - oscilloscoop (arme man oscilloscoop)

Hi guys,een paar dagen geleden vond ik deze code in de github en het is het beste wat die ik tot nu toe gevonden dus ik besloten heb om dit project te verspreiden zo veel als ik kan, voor iedereen die wil dat een goedkope oscilloscoop rond dit is de
Arduino controle Arm

Arduino controle Arm

Benodigdheden:3 - servomotoren3 - servo stekkers1 - arduino moederbord1 - blu bestuur12 - draads connectoren1 - vlak platform2-6 x 4 inch stuk karton1-4 x 4 inch stuk karton1 - soldeer pistool1 - rollen van het solderen van draad1 - schaar1 - tapeSta