¿Cómo solucionar problemas de un launchpad de TI que no se ejecuta en Linux?

0

No tengo experiencia con microcontroladores, excepto por un proyecto que un amigo comenzó conmigo y luego abandonó a la mitad. Todavía tengo el hardware y el código, quiero completar el proyecto, pero olvidé la mayoría de las cosas que hicimos hace dos años y reinstalé mi sistema operativo, por lo que ya no tengo configurado mi entorno de desarrollo. Tampoco sé C, pero puedo programar en otros idiomas.

Mi código no hace nada cuando intento ejecutarlo. Para comprobar si el microcontrolador se está comunicando correctamente con la computadora, busqué tutoriales. Esto es lo que encontré:

  1. Debería comenzar mspdebug . No lo hago. Incluso sé lo que debería esperar que suceda, pero lo que recibo es un error.
rumtscho@simak:~/Projects/sovfor$ sudo mspdebug -d /dev/ttyACM0 uif
[sudo] password for rumtscho: 
MSPDebug version 0.19 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2012 Daniel Beer <[email protected]>
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Trying to open UIF on /dev/ttyACM0...
Initializing FET...
uif: read error: Connection timed out
fet: open failed
Trying again...
Initializing FET...
uif: read error: Connection timed out
fet: open failed

Vi a pregunta acerca de un problema similar aquí, pero como ve, el OP admite que no tiene idea de por qué comenzó a trabajar para él.

  1. Debería ejecutar un programa mínimo . Llegué al paso make , incluido <msp430.h> en lugar de porque el compilador lo sugirió. Entonces recibí otro error:
  

rumtscho @ simak: ~ / Projects / had_launchpad-blink-master $ make msp430-gcc   -Os -Wall -g -mmcu = msp430g2553 -c main.c En el archivo incluido de main.c: 32: 0:   /usr/lib/gcc/msp430/4.6.3/../../../../msp430/include/signal.h:43:2:   advertencia: #warning msp430-libc en desuso, usando    [-Wcpp] main.c: En la función 'main': main.c: 65: 11:   error: ‘TASSEL__ACLK’ no declarado (primer uso en esta función)   main.c: 65: 11: nota: cada identificador no declarado se reporta solo una vez   para cada función aparece en main.c: 65: 26: error: ‘MC__UP’   No declarado (primer uso en esta función) main.c: En función   ‘TIMERA0_ISR’: main.c: 79: 27: error: interrumpir el desplazamiento del vector   ‘TIMERA0_VECTOR’ no es una constante entera: *** [main.o] Error 1

Si lo comprendo correctamente, la biblioteca incluida está en desuso, por lo que las variables que debe contener no se encuentran y el compilador piensa que no están declarados. Pero no sé si esta es la interpretación correcta y cómo encontrar la biblioteca correcta para usar.

Como puedes ver, estoy bastante fuera de lugar aquí. ¿Puede sugerir qué próximos pasos podría intentar? ¿Cómo empiezo a hablar con el controlador?

Estoy desarrollando Debian Wheezy, e instalé todos los paquetes sugeridos en varios tutoriales (todo con msp430 en el nombre y algunos otros). Tomé las versiones disponibles en el repositorio de Debian, no compiladas desde la fuente.

    
pregunta rumtscho

1 respuesta

2

Algunas cosas para buscar que son errores comunes en Linux:

  • Verifique que no haya nada más utilizando el puerto serie

En Ubuntu, el programa modem-manager tiende a agarrar los puertos serie y romper el acceso a ellos desde otros programas. Elimínelo con sudo apt-get remove modemmanager .

En Debian brltty hace algo similar. Se rompe todo acceso a los puertos serie. Elimínelo con sudo apt-get remove brltty .

  • Elimine la necesidad de sudo concediendo acceso a su usuario normal al dispositivo serie

Agregar un archivo de reglas udev le permitirá configurar los permisos en el dispositivo / dev / ttyACM0 automáticamente. Agregue el archivo /etc/udev/rules.d/50-launchpad.rules con lo siguiente:

ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0660", GROUP="plugdev"
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f430", MODE="0660", GROUP="plugdev"

Luego reinicia udev con: /etc/init.d/udev restart

    
respondido por el Majenko

Lea otras preguntas en las etiquetas