From c6aec50d65875506616eb993f4270781bb3ef203 Mon Sep 17 00:00:00 2001 From: AlbertoGV Date: Mon, 11 Jul 2022 13:19:32 -0500 Subject: [PATCH] =?UTF-8?q?Orden=C3=A9=20y=20correg=C3=AD=20algunas=20cosa?= =?UTF-8?q?s=20del=20documento=20en=20general?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guía de usuario MSP430 GCC Toolchain.md | 159 +++++++++++------------ 1 file changed, 78 insertions(+), 81 deletions(-) diff --git a/Guía de usuario MSP430 GCC Toolchain.md b/Guía de usuario MSP430 GCC Toolchain.md index ce9a4c4..23aad1a 100644 --- a/Guía de usuario MSP430 GCC Toolchain.md +++ b/Guía de usuario MSP430 GCC Toolchain.md @@ -30,27 +30,24 @@ Con el comando **cd** se puede entrar a alguna carpeta en específico como lo pu $ cd Descargas ``` -Antes de continuar con el siguiente paso se debe dirigir a la pagina oficial de TI (Texas Instruments) y yendo directamente a la siguiente pagina [https://www.ti.com/tool/MSP430\-GCC\-OPENSOURCE]() en la pestaña de descargas seleccione la opción mas factible para su computadora en este caso **Mitto Systems GCC 64-bit Linux installer incl. support files**. - -Una vez descargada, se debe buscar en la carpeta de descargas el nombre del archivo. -Ya una vez se tiene el nombre del archivo descargado, en la terminal de comando se debe colocar lo siguiente, lo cual nos permitirá instalar el programa, colocando sudo **chmod +x .run** y el comando **./**. +Antes de continuar con el siguiente paso se debe dirigir a la pagina oficial de TI (Texas Instruments) yendo directamente a la siguiente pagina [https://www.ti.com/tool/MSP430\-GCC\-OPENSOURCE](). En la pestaña de *descargas* se debe seleccionar la opción mas factible para su computadora en este caso **Mitto Systems GCC 64-bit Linux installer incl. support files**. Una vez descargada, en la carpeta de descargas se debe buscar el nombre del archivo y posteriormente, en la terminal de comando se debe colocar lo siguiente: "sudo **chmod +x .run** y el comando **./**", lo cual permitirá instalar el programa. A continuación se muestra un ejemplo, donde **msp430-gcc-full-linux-X64-installer-9.3.1.2.run** es el nombre del archivo que se descargó (installer). ```c $ sudo chmod +x msp430-gcc-full-linux-X64-installer-9.3.1.2.run $ ./msp430-gcc-full-linux-X64-installer-9.3.1.2.run ``` -Lo cual abrirá la siguiente ventana: +Al ejecutar los comandos anteriormente mencionados se abrirá la siguiente ventana: ![](/home/griscampos/Descargas/msp430Guia/1.jpeg) -Seleccione el directorio de instalacion y de click en **Next** hasta finalizar . - -Como se muestra en la siguiente imagen. +Se debe seleccionar el directorio de instalacion y dar click en **Next** hasta finalizar como se muestra en la siguiente imagen: ![](/home/griscampos/Descargas/msp430Guia/2.jpeg) -Crea una carpeta en donde colocaras el código. +#### Creación de directorio + +Se debe crear una carpeta en donde se colocará el código y los archivos necesarios para compilar el programa, en este caso se creó la carpeta **Programa1** como ejemplo. > Comando para crear carpetas desde la terminal , el comando **mkdir** + el nombre del nuevo archivo. > Comando para encontrar carpetas dentro de la carpeta en la que se encuentra **dir**. @@ -62,14 +59,7 @@ $ dir $ cd Programa1 ``` -Ya dentro de la carpeta en la que colocaras el código coloca el siguiente comando para colocar el código desde la terminal. - -```c -$ main.c -``` - -En el cual se copiara y pegara cualquier código a utilizar. -Ejemplo de código para hacer parpadear un led: +El código que se muestra a continuación, hace parpadear el LED P1.1 del microcontrolador MSP430FR6989, este se utilizará como ejemplo a lo largo del documento. Para poder compilar y depurar el código, es necesario copiar dicho código en un archivo **.c**. ```c int main(void) { @@ -92,7 +82,48 @@ int main(void) { } ``` -#### Compilar un programa desde la termial de Linux +#### Creación de un archivo .c + +Para crear un archivo **.c** se debe posicionar en el directorio en el que lo desea crear y se debe digitar el comando **pico filename.c**. Por fines explicativos, como ejemplo, se creará un archivo **.c** llamado **Ejemplo** en la carpeta **Programa1** (previamente creada). Una vez que se ejecuta el comando mencionado, se abrirá una ventana en la que se deberá copiar el códiogo del programa que se quiere subir a la tarjeta. En nuestro caso se copió el código mencionado anteriormente. + +Comando para editar/crear el archivo **.c**. + +```c +$ pico Ejemplo.c +``` + +A continuación, se muestra el programa copiado en la ventana que se abrió con el comando *pico*. + +```c +#include + +int main(void) { + volatile int i; + + // stop watchdog timer + WDTCTL = WDTPW | WDTHOLD; + // set up bit 0 of P1 as output + P1DIR = 0x01; + // intialize bit 0 of P1 to 0 + P1OUT = 0x00; + + // loop forever + for (;;) { + // toggle bit 0 of P1 + P1OUT ^= 0x01; + // delay for a while + for (i = 0; i < 0x6000; i++); + + +[ 26 líneas leídas ] +^G Ayuda ^O Guardar ^W Buscar ^K Cortar ^T Ejecutar ^C Ubicación M-U Deshacer M-A Poner marca M-] A llave M-Q Anterior ^B Atrás ^◂ Palabr ant +^X Salir ^R Leer fich. ^\ Reemplazar ^U Pegar ^J Justificar ^/ Ir a línea M-E Rehacer M-6 Copiar ^Q Buscar atrás M-W Siguiente ^F Adelante ^▸ Palabra Siguiente + +``` + +Una vez copiado el código, se teclea **Ctrl + X** para salir, posteriormente se guarda el archivo tecleando **S** y por último se teclea **Enter** para regresar a la terminal de comandos. + +#### Compilación de un programa desde la termial de Linux El programa se puede compilar manualmente desde la terminal indicando las rutas de instalación de las librerías, binarios y demás, o usando un método más sencillo implementando un archivo *Makefile* incluido en los ejemplos por defecto que el paquete contiene. En este documento se muestran los pasos a seguir empleando el segundo método comenzando con la creación de un nuevo proyecto; sin embargo, a continuación, se muestra un ejemplo de compilación manual desde la terminal. @@ -103,30 +134,33 @@ $ ./msp430-elf-gcc -I ~/msp430-gcc/include -L ~/msp430-gcc/include -T ~/msp430- ``` Primero se debe dirigir a la dirección en donde se encuentra instalado el paquete *MSP430- GCC* y redireccionarse a la carpeta *bin*. -Para compilar se coloca ./ seguido de la dirección *msp430-elf-gcc*. -Y después coloca los parámetros correspondientes a -I, -L, -T, -g, -o, mmcu +Para compilar se coloca ./ seguido de la dirección *msp430-elf-gcc* y después se colocan los parámetros de las banderas (flags) correspondientes a -I, -L, -T, -g, -o, -mmcu. + Donde: --I :Agrega el directorio a la lista de directorios para buscar archivos de encabezado. --L: Agrega rutas en las que ld buscara bibliotecas de archivo. --T: Dirección donde se encuentra las librerías del microcontrolador\\ especificando cual utilizaras --g: dirección donde se encuentra tu archivo .c --o: dirección donde se encuentra tu archivo .c con la diferencia que se cambia el .c por .o -Mmcu: especifica el microcontrolador que utilizaras + +- **-I**: se agrega el directorio a la lista de directorios para buscar archivos de encabezado. +- **-L**: se agregan la ruta en las que ld buscará las bibliotecas del archivo. +- **-T**: dirección donde se encuentran las librerías del microcontrolador especificando cuales se utilizarán +- **-g**: dirección donde se encuentra el archivo .c +- **-o**: se especifica la ruta donde se encuentra el archivo .c, con la diferencia que se cambia el .c por .o (output file) +- **-mmcu**: especifica el microcontrolador que se utilizará ## **Creación de un nuevo proyecto** ------ -##### Pasos para la creación de un nuevo proyecto +#### Pasos para la creación de un nuevo proyecto 1. Crear un directorio para el nuevo proyecto. 2. Insertar el archivo .c que contiene el programa que se subirá a la tarjeta. Para crear un archivo .c vea el apartado **Creación de un archivo .c**. -3. Dentro de la carpeta que se instaló (msp430-gcc), hay un directorio llamado **examples** que contiene ejemplos predeterminados. Copiar uno de los archivos **Makefile** de los proyectos de ejemplo dentro del directorio de su nuevo proyecto. -4. Abrir el archivo **Makefile** que copió y cambiar el formato de estructura actual por el que se muestra en la Figura Estructura de archivo Makefile. En la variable **OBJECTS** se debe colocar el nombre del programa que se va a subir (archivo .c) respetando la terminación **.o**. En la variable **DEVICE** se debe colocar el nombre del microcontrolador que se usará. +3. Dentro de la carpeta que se instaló (msp430-gcc), hay un directorio llamado **examples** que contiene ejemplos predeterminados. Copiar uno de los archivos **Makefile** de los proyectos de ejemplo dentro del directorio de su nuevo proyecto, en este caso, dentro de la carpeta **Programa1**. +4. Abrir el archivo **Makefile** que copió y cambiar el formato de estructura actual por el que se muestra a continuación. En la variable **OBJECTS** se debe colocar el nombre del programa que se va a subir (archivo .c) respetando la terminación **.o**. En la variable **DEVICE** se debe colocar el nombre del microcontrolador que se usará. 5. Colocar las rutas de instalación correpondientes para las variables **GCC\_DIR** y **SUPPORT\_FILE\_DIRECTORY**. Las direcciones para las variables son **../../../bin** y **../../../include** respectivamente como se muestra en el siguiente ejemplo. +Estructura de archivo Makefile: + ```c -OBJECTS=main.o +OBJECTS=Ejemplo.o GCC_DIR = /home/usuario/msp430-gcc/bin SUPPORT_FILE_DIRECTORY = /home/usuario/msp430-gcc/include @@ -146,66 +180,28 @@ debug: all $(GDB) $(DEVICE).out ``` -#### Creación de un archivo .c - -Para crear un archivo .c dirijase en el directorio en el que lo desea crear y digite el siguiente comando **pico filename.c**. Por fines explicativos, como ejemplo, se creará un archivo .c llamado **Ejemplo** en la carpeta **Programa1**,como se muestra el comando antes mencionado adaptado al ejemplo. - -```c -$ pico ejemplo.c -``` - -Para crear un archivo .c dirijase en el directorio en el que lo desea crear y digite el siguiente comando **pico filename.c**. Por fines explicativos, como ejemplo, se creará un archivo .c llamado **Ejemplo** en la carpeta **Programa1**, en la Figura se muestra el comando antes mencionado adaptado al ejemplo. - -```c -#include - -int main(void) { - volatile int i; - - // stop watchdog timer - WDTCTL = WDTPW | WDTHOLD; - // set up bit 0 of P1 as output - P1DIR = 0x01; - // intialize bit 0 of P1 to 0 - P1OUT = 0x00; - - // loop forever - for (;;) { - // toggle bit 0 of P1 - P1OUT ^= 0x01; - // delay for a while - for (i = 0; i < 0x6000; i++); - - -[ 26 líneas leídas ] -^G Ayuda ^O Guardar ^W Buscar ^K Cortar ^T Ejecutar ^C Ubicación M-U Deshacer M-A Poner marca M-] A llave M-Q Anterior ^B Atrás ^◂ Palabr ant -^X Salir ^R Leer fich. ^\ Reemplazar ^U Pegar ^J Justificar ^/ Ir a línea M-E Rehacer M-6 Copiar ^Q Buscar atrás M-W Siguiente ^F Adelante ^▸ Palabra Siguiente - -``` - ## **Debugging** #### **Uso del agente GDB ** ###### Introducción -El agente GDB es una herramienta para conectar el GDB con el hardware de destino para depurar su software. El GDB -El agente utiliza la pila de depuración MSP430 para conectarse al hardware y proporciona una interfaz al GDB. -En Windows, se proporciona una consola y una versión de aplicación GUI del agente GDB. Solo la aplicación de consola es compatible con Linux. +El agente GDB es una herramienta para conectar el GDB con el hardware de destino para depurar el software. El GDB Agent utiliza la pila de depuración MSP430 para conectarse al hardware y proporciona una interfaz al GDB. +En Windows, se proporciona una consola y una versión de aplicación GUI del agente GDB. Solo la aplicación de consola (terminal de comandos) es compatible con Linux. #### Iniciando GDB Agent ###### Línea de comando -Abra una terminal de comando y dirijase al directorio de instalación, una vez que lo haga, ejecute lo siguiente: +Abra una terminal de comando y dirijase al directorio de instalación, una vez hecho, ejecute lo siguiente: ```c $ ./bin/gdb\_agent\_console msp430.dat ``` -La aplicación de consola abre un puerto TCP/IP en el equipo local. Muestra el número de puerto en la consola. Por defecto, este número de puerto es 55000. +La aplicación de consola abre un puerto TCP/IP en el equipo local. Muestra el número de puerto en la consola, por defecto, este número de puerto es 55000. -[^]: Es importante que deje abierta esta consola hasta terminar de depurar el programa (debugging) para poder conectar el GDB con el GDB Agent. +[^]: Es importante que se deje abierta esta consola hasta terminar de depurar el programa (debugging) para poder conectar el GDB con el GDB Agent. ```c $ ./bin/gdb\_agent\_console msp430.dat @@ -223,7 +219,7 @@ msp430 Waiting for client ##### Ejecutar un programa en el debugger -1. Abra otra terminal de comando y dirijase a la ruta donde se encuentra el directorio con el archivo **.c** y el Makefile del programa que quiere cargar a la tarjeta. +1. Abra otra terminal de comando y dirijase a la ruta donde se encuentra el directorio con el archivo **.c** y el **Makefile** del programa que quiere cargar a la tarjeta. 2. Escriba el comando **make debug**. Este comando inicia el GDB y espera que se introduzcan comandos, esto es indicado por el puntero **(gdb)**. @@ -291,17 +287,13 @@ msp430 Waiting for client (gdb) ``` - - -6. Escriba el comando **continue** para correr el programa o en su defecto escriba **step** para compilar elprograma por partes. +6. Escriba el comando **continue** para correr el programa o en su defecto escriba **step** para compilar el programa paso por paso. ```c (gdb) continue Continuing. ``` - - 7. Para parar la ejecución teclee **Ctrl + C** (^C), y para salir del GDB escriba **q**, presione enter y posteriormente escriba **y** y presione enter. ```c @@ -331,7 +323,7 @@ $ make debug Make: *** There is no rule to build the 'debug' target. Tall ``` -Instala make para solucionar el problema mediante el comando : +Instalar make para solucionar el problema mediante el comando : ```c sudo apt-get install make @@ -346,11 +338,16 @@ sudo apt-get install make make: *** [Makefile: debug] Error 127 ``` -Instala la libreria libncursesw.so.5 para solucionar el problema mediante el comando : +Instalar la libreria *libncursesw.so.5* para solucionar el problema, en caso de que continúe el problema, instalar *libncursesw5-dev* mediante el comando : ```c sudo apt-get install libncursesw.so.5 +sudo apt-get inatall libncursesw5-dev (opcional) ``` ------ +### **Referencias** + + [1] Texas Instruments. Msp430-gcc-opensource gcc-open source compiler for msp microcontrollers, 2017. +