Instalación de software de biblioteca de matemáticas de DigiX/Arduino brazo debido (2 / 2 paso)

Paso 2: Añadir las bibliotecas matemáticas de brazo para el software de arduino.

El software de arduino viene con un montón de agradable (pero bastante difícil de comprender) DSP de funciones. Estos incluyen discretas funciones FFT como arm_rfft_q15 (& S, a, outsq) que me gusta usar. Pero faltaron hacia fuera desde el vinculador. Este paso agrega al entorno de arduino.

Presumiblemente, esta técnica puede utilizarse para enlazar contra la biblioteca de cualquier C.

Si quieres un ejemplo de algún código que utiliza estas funciones entonces le sugiero que google para "Cascada de la DueVGA por stimmer". Aquí es donde tengo la técnica de y el código contiene las pistas originales que he usado con la debida.

De todos modos, aquí están las modificaciones a la instalación de arduino 1.5.5, estos funcionará para el Arduino debido, hay algunas sugerencias sobre cómo adaptarse a la Junta de DigiX.

1. Añadir un enlace de sym a las bibliotecas para las variantes arduino_due_x/digix Junta:

Esto funciona para la debida (probado con 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.

Pero, si tienes un DigiX (con 1.5.5), hacer esto:

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

2. cambiar el archivo boards.txt en dos lugares agregando - larm_cortexM3l_math a la línea de build.extra_flags:

Para la debida de Arduino:

# cd /usr/local/arduino-1.5.5/hardware/arduino/sam
# diff -u boards.txt.0 boards.txt
---boards.txt.0 15 / 02 / 2014 12:56:00.498907451 + 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

DigiX, realice cambios similares a los archivos en /usr/local/arduino-1.5.5/hardware/digistump/sam

3. cambiar el archivo platforms.txt:

Para la debida de Arduino (probado bajo 1.5.4):

En /usr/local/arduino-1.5.5/hardware/arduino/sam, cambie platform.txt para agregar el siguiente justo después:

Añadir a esto: «{build.variant.path}/libarm_cortexM3l_math.a»
Justo después de "{build.variant.path}/{build.variant_system_lib}"
En la línea después del comentario dice "Gc-secciones de cosechadora, archivos y objetos"

Aquí es un diff de los cambios:

# diff -u platform.txt.0 platform.txt
---platform.txt.0 15 / 02 / 2014 12:58:59.011792641 + 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}"

## Combinan secciones de gc, archivos y objetos
-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-secciones - Wl,--gc-sections - Wl,--entrada = Reset_Handler -Wl,--símbolos sin resolver = Informe - Wl,--común advertir - Wl,--advierten-sección-alinear - Wl,--advierten-no resueltos-símbolos - Wl,--Inicio-Grupo"{build.path}/syscalls_sam3.c.o «{object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--final-Grupo
+ # 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-secciones - Wl,--gc-sections - Wl,--entrada = Reset_Handler -Wl,--símbolos sin resolver = Informe - Wl,--común advertir - Wl,--advierten-sección-alinear - Wl,--advierten-no resueltos-símbolos - Wl,--Inicio-Grupo"{build.path}/syscalls_sam3.c.o «{object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--final-Grupo
+ 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-secciones - Wl,--gc-sections - Wl,--entrada = Reset_Handler -Wl,--símbolos sin resolver = Informe - Wl,--común advertir - Wl,--advierten-sección-alinear - Wl,--advierten-no resueltos-símbolos - Wl,--Inicio-Grupo"{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 ,--final-Grupo

Digix, como en los pasos anteriores realice cambios similares en el archivo platforms.txt en:

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

Ahora tus bocetos deben ser capaces de incluir llamadas a cualquier cosa en libarm_cortexM3l_math.a!

Yipee!

Compilación de línea de comandos con arduino IDE 1.5 +

Esto parece trabajar para la Junta de DigiX:

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

Artículos Relacionados

Matemáticas de servo

Matemáticas de servo

siempre he visto cosas diferentemente con mi fondo programación y electrónica. Matemáticas de servo vinieron de mí viendo servos como teniendo tres partes. Los ángulos 0-1000, 1500 de 90 y 180-2000 microseconds(us). 0 es la Range(1000) baja de Servo
Imprimir una pinza de Robot, de instalación de Software - ordenar una impresión.

Imprimir una pinza de Robot, de instalación de Software - ordenar una impresión.

¿Así que quiere llegar a hacer cosas interesantes con la impresión 3D pero no sabes cómo empezar? Entonces esperemos que este pequeño tutorial le ayudará a ponerse en marcha. Si usted acaba de llegar para la sensación de archivos STL gratis, el enlac
Hacer: es robótica Starter Kit - comprensión Bitwise matemáticas

Hacer: es robótica Starter Kit - comprensión Bitwise matemáticas

Esta entrada de blog es una continuación de mi jugando con el Kit de robótica hacen: es. Que me puede pasar en la información que he aprendido por lo que hará más fácil para que otros puedan ponerse al día en el trabajo con el Kit de robótica.Después
Máquina de madera matemáticas

Máquina de madera matemáticas

En una etapa bastante tardía de mi vida profesional (edad 57) comencé un nuevo curso de master en la Universidad de Utrecht. Un maestro de educación física. La parte física es muy divertido, pero es difícil disfrutar de las matemáticas. Nuestro maest
Blox matemáticas

Blox matemáticas

Matemáticas Blox es un tangible divertido juego de concursos de matemáticas.Ver el video de arriba para ver cómo funciona! https://www.youtube.com/watch?v=90Q0cenjk-cEl juego está diseñado para la placa de Blox (descrito aquí) que muestra al jugador
Como as de tu clase de matemáticas

Como as de tu clase de matemáticas

En mi historia de la Universidad me ha tomado 4 clases de matemáticas y han aced a todos.  Definitivamente puedo decir que no soy un genio, solo he descubierto varias herramientas que me han ayudado en el camino.  Este semestre que estoy tomando 2 cá
Juega con las matemáticas: hacer el GIF animado y HTML5

Juega con las matemáticas: hacer el GIF animado y HTML5

muchos sitios web social permiten ahora publicar imágenes animadas (GIF). Hace instructable. Facebook no no (a partir de ahora).En este Instructable, usted aprenderá cómo:generar imágenes con matemáticas (tipo de trama de contorno),definir colores,ge
Útil Moreiras (Pre-Kinder matemáticas grado 10 º)

Útil Moreiras (Pre-Kinder matemáticas grado 10 º)

Asi que me hice waffles para mis hijos esta mañana, y de repente me golpeó:Los wafles son la herramienta perfecta para la enseñanza de matemáticas!A menudo hemos visto matemáticas con otros artículos para el hogar, como Legos. Sin embargo, waffles pu
Juego de matemáticas memoria de madera no tóxicos hechos a mano

Juego de matemáticas memoria de madera no tóxicos hechos a mano

Había querido probar mi mano en la fabricación de un juego de memoria de madera durante mucho tiempo. Mi idea original era crear una serie de números 0-9 como símbolos de matemáticas básicas. Divertido y educativo en uno. También quería probar manera
Papel de "Cubo" hizo de paraboloides hiperbólicos - Origami Modular de matemáticas

Papel de "Cubo" hizo de paraboloides hiperbólicos - Origami Modular de matemáticas

si usted sabe cálculo multivariable o no, tienes que admitir esta escultura de papel lleno de matemáticas se ve muy bien. Una de mis partes favoritas es cómo se hace por unidades modulares, que hace el origami actual involucrado simple (aunque algo r
3D impreso manipulativos de matemáticas

3D impreso manipulativos de matemáticas

Manipulativos de matemáticas se utilizan en primaria temprana para ayudar a los niños a entender números con algo que pueden tocar y contar. Comprar manipuladores de plástico simple es escandalosamente caro, así que hice una versión imprimible 3D bar
Embalaje de paquetes - manos en matemáticas

Embalaje de paquetes - manos en matemáticas

¿Puede unirse a las matemáticas con la diversión?¡ Sí!Para la mayoría de los niños y adultos las matemáticas podrían ser aburrido y difícil. Pero todos los días utilizamos las matemáticas para hacer todo tipo de cosas en nuestra vida. Embalaje de paq
Compass sutil para el profesor de matemáticas ocupado...

Compass sutil para el profesor de matemáticas ocupado...

cuando era un niño, tuve un profesor de matemáticas que tenía un compás original, estaba bastante orgulloso de él y le dijo a la clase su solución era más barato y más fácil de transportar de aula a aula de compases tradicionales...Aquí está su soluc
Hacer matemáticas EZEE

Hacer matemáticas EZEE

Tengo un gran fan de las matemáticas y en mis 15 años de vida hasta ahora he aprendido algunos trucos de varios libro de matemáticas Védicas y pocos descubrí yo mismo. Quiero compartir algunos 8 trucos que recuerdo... Espero que les guste...Paso 1: M