@ -30,27 +30,24 @@ Con el comando **cd** se puede entrar a alguna carpeta en específico como lo pu
$ cd Descargas
$ 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 <installer>.run** y el comando **./<installer>**.
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 <installer>.run** y el comando **./<installer>**", 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).
Al ejecutar los comandos anteriormente mencionados se abrirá la siguiente ventana:
![](/home/griscampos/Descargas/msp430Guia/1.jpeg)
![](/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)
![](/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 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**.
> Comando para encontrar carpetas dentro de la carpeta en la que se encuentra **dir**.
@ -62,14 +59,7 @@ $ dir
$ cd Programa1
$ 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
```c
int main(void) {
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<msp430fr6989.h>
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.
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.
Primero se debe dirigir a la dirección en donde se encuentra instalado el paquete *MSP430- GCC* y redireccionarse a la carpeta *bin*.
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:
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**
## **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.
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**.
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.
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.
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<msp430fr6989.h>
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**
## **Debugging**
#### **Uso del agente GDB **
#### **Uso del agente GDB **
###### Introducción
###### 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
#### Iniciando GDB Agent
###### Línea de comando
###### 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
```c
$ ./bin/gdb\_agent\_console msp430.dat
$ ./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
```c
$ ./bin/gdb\_agent\_console msp430.dat
$ ./bin/gdb\_agent\_console msp430.dat
@ -223,7 +219,7 @@ msp430 Waiting for client
##### Ejecutar un programa en el debugger
##### 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)**.
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)
(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
```c
(gdb) continue
(gdb) continue
Continuing.
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.
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
```c
@ -331,7 +323,7 @@ $ make debug
Make: *** There is no rule to build the 'debug' target. Tall
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
```c
sudo apt-get install make
sudo apt-get install make
@ -346,11 +338,16 @@ sudo apt-get install make
make: *** [Makefile: debug] Error 127
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 :