Pregunta:
¿Cómo agregar la placa Wiring S a Arduino IDE v.1.6.2?
Germán Carrillo
2015-03-31 20:30:23 UTC
view on stackexchange narkive permalink

Mi Arduino Uno se está quedando sin memoria para admitir mi script (sí, ya probé varias formas de optimizarlo: PROGMEM, EEPROM, sin cadenas, etc.), así que me gustaría cargar mi script en mi placa Wiring S.

Sin embargo, en lugar de "portar" todas las bibliotecas a Wiring, me gustaría compilar mi script en Arduino IDE y subirlo a mi Wiring S. Solía ​​ser "fácil" en Arduino v.1.0. X. porque en algún lugar obtuve una carpeta Wiring (que contiene, entre otras cosas, un archivo boards.txt) y la copié en la carpeta hardware de Arduino, obteniendo la placa Wiring S listada en Arduino IDE.

Desde Arduino 1.5, la especificación para agregar otras placas cambió. Diría que ahora es más complejo. Simplemente no puedo entender la mayor parte de la nueva especificación (sí, soy nuevo en electrónica), por lo que no he podido agregar mi placa Wiring S.

Ejecutar mi script en Arduino 1.0.x no No parece ser una opción, ya que arroja muchos errores (aunque el script se compila en Arduino 1.6.2).

¿Tiene alguna experiencia agregando otras placas (como Wiring S) a Arduino IDE? ¿Podría darme alguna pista?

¿Cual version? Parece haber 4 chips diferentes en estos tableros. ¿Cuál es el chip principal? La nueva especificación de PS no es tan diferente. Requiere que todo se coloque en una carpeta (`avr`), y requiere un archivo platform.txt con solo un nombre y versión (dos líneas). El archivo boards.txt tiene algunas variables con nuevos nombres. Recibirá algunos mensajes de error en el IDE si algo no es correcto.
Tienes razón, pero esos cambios son suficientes para que los usuarios básicos no podamos trabajar con la configuración con la que solíamos trabajar. Por otro lado, es Wiring S v.1.0, se ve exactamente como este: http://www.lextronic.fr/P22978-platine-de-developpement-wiring-s.html
El que enlaza es un Atmega644P, mientras que v1.0 es atmega128. ¿Qué archivo boards.txt usaste para Arduino 1.0? Entonces puedo intentar portarlo por ti.
Yo uso Wiring S, que funciona con AtMega644p. La confusión surgió porque en la parte superior del microcontrolador, hay una etiqueta que dice "WIRING S 1.0" (como se muestra en el enlace que publiqué). Entonces, Wiring S, AtMega644p. El boards.txt que utilicé es https://titanpad.com/wiringsboards ¡Gracias!
[Aquí está mi intento de portabilidad] (http://algemeenbekend.nl/misc/WiringS.zip). No tengo esa placa, así que no puedo probarla. Solo tenga cuidado, ya que los números de pin pueden ser diferentes en la placa y luego en el IDE. También verifique los pines de mayor número.
One responder:
Gil
2016-01-25 08:16:11 UTC
view on stackexchange narkive permalink

Hay dos cosas que hago; Yo uso el Serial.print (F ("string / n")); que imprime los datos de flash en lugar de copiarlos a ram. Mantenga tantas de sus variables locales como sea posible, eso ahorrará RAM. Esto se hace definiendo luego en la función, la ventaja adicional de que nada fuera de la función puede cambiarlas.

Las variables globales y estáticas son las primeras cosas que se cargan en SRAM. Empujan el inicio del montón hacia arriba, hacia la pila, y ocuparán este espacio por toda la eternidad.

Las variables creadas en funciones son objetos y datos asignados dinámicamente. A diferencia de las variables globales y estáticas, estas variables se pueden desasignar para liberar espacio al salir de la función. Pero cada llamada a función crea un marco de pila que hace que la pila crezca hacia el montón. Estos datos se pueden utilizar dentro de la función, ¡pero el espacio se recupera al 100% cuando la función sale!

Gracias por su respuesta, aunque en realidad no estoy pidiendo sugerencias sobre cómo ahorrar espacio en el programa.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...