A basic guide to start with the MSP430F family and the GCC tools on Linux.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
8.0 KiB

2 years ago
  1. # Guía de usuario MSP430 GCC Toolchain
  2. ------
  3. [^]: Para usuarios de Linux
  4. **Abstract**
  5. This manual aims to describe the setup and basic operations of the MSP430 GCC toolchain to know how to use the open-source GCC compiler for microcontrollers to build an example for an MSP430 target device using the command terminal of Linux. It will also be shown how to debug software with the GDB Agent and the GNU Debugger tools so that the program that was built can be uploaded to the target device successfully.
  6. ------
  7. ## Introducciòn
  8. El paquete GCC de código abierto es un depurador completo y una cadena de herramientas de compilación C/C++ de código abierto para la creación y depuración de aplicaciones integradas basadas en microcontroladores MSP430. Este compilador soporta todos los dispositivos MSP430 sin limitaciones de tamaño de código. Este compilador se puede utilizar de forma independiente desde la línea de comandos o dentro de Code Composer Studio v6.0 o posterior[1].
  9. El paquete de instalación incluye lo siguiente:
  10. 1. Binarios GCC y GDB para Windows y Linux
  11. 2. Encabezado MSP430 y archivos de enlace
  12. 3. Código fuente
  13. 4. GBD Agent Configuration
  14. #### Instalación de MSP430 GCC como paquete independiente
  15. El primer paso es bastante sencillo, consiste en abrir la terminal de comando y direccionarse a la carpeta en donde se guardará el archivo que contenga el programa a ejecutar.
  16. Con el comando **cd** se puede entrar a alguna carpeta en específico como lo puede ser la carpeta de **Descargas**, Ejemplo:
  17. ```c
  18. $ cd Descargas
  19. ```
  20. 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**.
  21. Una vez descargada, se debe buscar en la carpeta de descargas el nombre del archivo.
  22. 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>**.
  23. ```c
  24. $ sudo chmod +x msp430-gcc-full-linux-X64-installer-9.3.1.2.run
  25. $ ./msp430-gcc-full-linux-X64-installer-9.3.1.2.run
  26. ```
  27. Lo cual abrirá la siguiente ventana:
  28. ![](/home/griscampos/Descargas/msp430Guia/1.jpeg)
  29. Seleccione el directorio de instalacion y de click en **Next** hasta finalizar .
  30. Como se muestra en la siguiente imagen.
  31. ![](/home/griscampos/Descargas/msp430Guia/2.jpeg)
  32. Crea una carpeta en donde colocaras el código.
  33. > Comando para crear carpetas desde la terminal , el comando **mkdir** + el nombre del nuevo archivo.
  34. > Comando para encontrar carpetas dentro de la carpeta en la que se encuentra **dir**.
  35. > Comando para entrar en carpeta **cd**.
  36. ```c
  37. $ mkdir Programa1
  38. $ dir
  39. $ cd Programa1
  40. ```
  41. Ya dentro de la carpeta en la que colocaras el código coloca el siguiente comando para colocar el código desde la terminal.
  42. ```c
  43. $ main.c
  44. ```
  45. En el cual se copiara y pegara cualquier código a utilizar.
  46. Ejemplo de código blink led.
  47. ```c
  48. int main(void) {
  49. volatile int i;
  50. // stop watchdog timer\\
  51. WDTCTL = WDTPW | WDTHOLD;
  52. // set up bit 0 of P1 as output\\
  53. P1DIR = 0x01;
  54. // intialize bit 0 of P1 to 0\\
  55. P1OUT = 0x00;
  56. // loop forever\\
  57. for (;;) {
  58. // toggle bit 0 of P1\\
  59. %P1OUT ^= 0x01;
  60. // delay for a while\\
  61. for (i = 0; i < 0x6000; i++);
  62. }
  63. }
  64. ```
  65. #### Compilar un programa desde la termial
  66. Una vez completados los pasos anteriores, puedes compilar tu programa desde la terminal.
  67. ```c
  68. $ ./msp430-elf-gcc -I ~/msp430-gcc/include -L ~/msp430-gcc/include -T ~/msp430-gcc/include/msp430fr6989.ld -mmcu=msp430fr6989 -O2 -g ~/Documentos/Code/main.c -o ~/Documentos/Code/main.o
  69. ```
  70. Primero debes ingresar a la dirección en donde se encuentra instalado el MSP430- GCC y redireccionarte a la carpeta bin.
  71. Para compilar se coloca ./ seguida de la dirección msp430-elf-gcc
  72. Y después coloca los parámetros correspondientes a -I, -L, -T, -g, -o, mmcu
  73. Donde:
  74. -I : Dirección donde se encuentran las librerías
  75. -L: Dirección donde se encuentran las librerías
  76. -T: Dirección donde se encuentra las librerías del microcontrolador\\ especificando cual utilizaras
  77. -g: dirección donde se encuentra tu archivo .c
  78. -o: dirección donde se encuentra tu archivo .c con la diferencia que se cambia el .c por .o
  79. Mmcu: especifica el microcontrolador que utilizaras
  80. ### Creación de un nuevo proyecto
  81. ------
  82. ##### Pasos para la creación de un nuevo proyecto
  83. 1. Crear un directorio para el nuevo proyecto.
  84. 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**.
  85. 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.
  86. 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á.
  87. 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.
  88. ```c
  89. OBJECTS=main.o
  90. GCC_DIR = /home/griscampos/msp430-gcc/bin
  91. SUPPORT_FILE_DIRECTORY = /home/griscampos/msp430-gcc/include
  92. DEVICE = msp430fr6989
  93. CC = $(GCC_DIR)/msp430-elf-gcc
  94. GDB = $(GCC_DIR)/msp430-elf-gdb
  95. CFLAGS = -I $(SUPPORT_FILE_DIRECTORY) -mmcu=$(DEVICE) -O2 -g
  96. LFLAGS = -L $(SUPPORT_FILE_DIRECTORY) -T $(DEVICE).ld
  97. all: ${OBJECTS}
  98. $(CC) $(CFLAGS) $(LFLAGS) $? -o $(DEVICE).out
  99. debug: all
  100. $(GDB) $(DEVICE).out
  101. ```
  102. #### Creación de un archivo .c
  103. 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.
  104. ```c
  105. $ pico ejemplo.c
  106. ```
  107. 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.
  108. # falta imagen aquiii
  109. ### Debugging
  110. > Uso del agente GDB
  111. ###### Introducciòn
  112. El agente GDB es una herramienta para conectar el GDB con el hardware de destino para depurar su software. El GDB
  113. El agente utiliza la pila de depuración MSP430 para conectarse al hardware y proporciona una interfaz al GDB.
  114. En Windows, se proporciona una consola y una versión de aplicación GUI del agente GDB. Solo el
  115. aplicación de consola es compatible con Linux.
  116. #### Iniciando GDB Agent
  117. ###### Línea de comando
  118. Abra una terminal de comando y dirijase al directorio de instalación, una vez que lo haga, ejecute lo siguiente:
  119. ```c
  120. ./bin/gdb\_agent\_console msp430.dat
  121. ```
  122. La aplicación de consola abre un puerto TCP/IP en el equipo local (Figura \ref{Iniciando GDB Agent}). Muestra el número de puerto en la consola. Por defecto, este número de puerto es 55000.
  123. [^]: Es importante que deje abierta esta consola hasta terminar de depurar el programa (debugging) para poder conectar el GDB con el GDB Agent.
  124. ```c
  125. griscampos@griscampos-VirtualBox:~/msp430-gcc$ ./bin/gdb_agent_console msp430.dat
  126. CPU Name Port
  127. -------- ----
  128. msp430 :55000
  129. Starting all cores
  130. CPU Name Status
  131. -------- ------
  132. msp430 Waiting for client
  133. ```