Está en la página 1de 35

Instalación y puesta en marcha de herramientas para el

desarrollo de proyectos en plataforma SASORI ARM


Instalación de Herramientas en Widows
Instalar java
Descargamos la última versión de java de la página oficial https://www.java.com/es/download/
Una vez descargado el instalador se ejecuta y aparece una ventana parecida a esta,
presionamos Instalar

Comenzara la instalación de Java

Una vez que se termine la instalación nos aparecerá la siguiente ventana, presionamos cerrar y
ya tenemos instalado java
Instalar Node.js para el uso de npm.cmd
Nos vamos a la página oficial de Node.js https://nodejs.org/es/ y descargamos el recomendado
por la mayoría, en este caso la 10.16.3 LTS

Una vez descargado el instalador lo ejecutamos


Aceptamos los términos y presionamos next

Seleccionamos la ruta donde deseamos instalarlo y presionamos next

Presionamos next
Presionamos install

Comenzara a instalarse el programa

Una vez terminado la ejecución del instalador nos aparecerá el siguiente mensaje, presionamos
finish y tendríamos todo lo necesario para instalar el programa
Instalación de herramientas por npm:
1. Instalar xmp en NPM:
npm install –global xpm

2. instalar arm toolchain


xpm install –global @gnu-mcu-eclipse/arm-none-eabi-gcc
3. Instalación make y rm (herramientas de compilación):
xpm install –global @gnu-mcu-eclipse/windows-builds-tools

4. Instalación OpenOCD:
xpm install –global @gnu-mcu-eclipse/openocd

Instalación de Herramientas en Linux

Instalar openJDK 8 en Ubuntu Trusty

La versión 8 de OpenJDK está disponible para Ubuntu 14.04 en el repositorio PPA OpenJDK
builds. Hay que añadir este repositorio para que podamos instalar esta versión de java, usando
los siguientes comandos:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
Instalación de OpenJDK 8:
sudo apt-get install openjdk-8-jdk
Se chequea que versiones de java tenemos disponibles en nuestro sistema:
sudo adate-java-alternativas --list

Se obtendrá algo así (en un entorno de 32-bit tendrá el prefijo -i386 en vez de -amd64):
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

hacer que se tome la versión de Java 8 por defecto en vez de otra:


sudo update-alternatives --config java
se obtendrá algo así:

observe el asterisco al lado del los números este marca el que se usara por defecto en el sistema,
en caso de no tener el asterisco en el java deseado presionaremos el numero correspondiente
seguido de entre para que lo seleccione, en nuestro caso el 2 para que tengamos java-8-openjdk-
amd64.

Repetir el paso anterior pero con javac:


sudo update-alternatives --config javac

Verificar con java -version y javac -version que sea la versión 8 de JDK la que está por
defecto.
Se debería obtener algo así:

Instalación de herramientas para compilación ARM GCC

Las Herramientas de ARM Embedded GCC se pueden descargar de

https://github.com/gnu-mcu-eclipse/arm-none-eabi-gcc/releases
Todos los sistemas operativos tienen su paquete portable para el conjunto de herramientas GNU
ARM. Las distribuciones GNU/Linux están comprimidas en .tgz bajamos la ultima versión de
las herramientas. Las siguientes son ejemplos del nombre del archivo

 gnu-mcu-eclipse-arm-none-eabi-gcc-8.2.1-1.7-20190524-0603-centos64.tgz
 gnu-mcu-eclipse-arm-none-eabi-gcc-8.2.1-1.7-20190524-0603-centos32.tgz

Los nombres se crearos usando los binarios con CentOS pero pueden ejecutarse sin problemas
en las ultimas versiones de GNU/Linux. Seleccionamos últimas el archivo -centos64 para
sistemas de 64bits y -centos32 para computadoras de 32 bits.

Para instalar las herramientas descomprimir los archivos en la siguiente ruta


/${HOME}/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/ con los siguientes comandos
$ mkdir -p "${HOME}/opt"

$ cd "${HOME}/opt"

$ tar xf ~/Downloads/gnu-mcu-eclipse-arm-none-eabi-gcc-8.2.1-1.7-20190524-0603-
centos64.tgz

$ chmod -R -w "${HOME}/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/8.2.1-1.7-20190524-0603"

Nota : Se supone que el archivo se descargo en la carpeta Download, la descompresión en la


carpeta opt para que en el futuro cuando se configure el entorno , el plug-in de GNU MCU
reconozca el archivo automáticamente se puede probar que funciona correctamente con el
siguiente comando:

$"${HOME}/opt/gnu-mcu-eclipse/arm-none-eabi-gcc/8.2.1-1.7-20190524-0603/bin/arm-none-
eabi-gcc" --version

se espera la siguiente respuesta del sistema:

arm-none-eabi-gcc (GNU MCU Eclipse ARM Embedded GCC, 64-bit)

Instalación de eclipse.
En esta parte es muy importante hacer un paso intermedio para instalar una versión compatible
de Eclipse, para esto nos dirigiremos a https://marketplace.eclipse.org/ y buscamos el plug-in
GNU MCU y hacemos clic sobre el nombre del primer resultado

Una vez dentro del plug in aparecerá en la ventana de Adicional Details nos aparecerán todas la
versiones compatibles con este plug in esto nos dice que solo podremos descargar las versiones
que estén en esta lista, al momento de hacer este documento las versiones son desde la Neon
hasta 2019-09
Ahora es necesario ir a la página de eclipse para poder descargar su programa
https://www.eclipse.org/

Presionamos dowload e iremos a la siguiente ventana, donde no descargaremos aun sino que
presionaremos download pacages
Con esto aparecerá una lista de muchos Paquetes diferentes pero el que interesa es el siguiente:

Descargamos la versión de sistema operativo que corresponda y esperamos que termine la


descarga una vez que termine simplemente extraemos los archivos en caso de Windows con
winrar y en Linux:

Descargar la versión correcta del programa, en el caso de este tutorial es una versión de 64bits.

Una vez que se tenga el portable de eclipse hay que descomprimirlo, por lo que tenemos que ir
hacia la carpeta donde se descargo el paquete, por ejemplo:

cd /home/cudar73/Descargas/

se lo descomprime en la carpeta que se desea almacenar el programa, por ejemplo:

tar xfz eclipse-cpp-neon-3-linux-gtk-x86_64.tar.gz -C/home/eclipse73/

Eclipse no se instala, y solo se lo corre desde la carpeta correspondiente. Ejecutamos el


programa, dentro de este nos vamos a la pestaña help y vamos a Eclipse Marketplace
Allí buscamos GNU MCU y nos aparecerá el plug-in que buscamos, presionamos el botón
install y seguimos los siguientes pasos

Confirmamos y aceptamos
Observamos en la esquina inferior derecha el progreso en la instalación

Posiblemente salte el siguiente mensaje simplemente presione Install anyway y continuamos la


instalación

Una vez terminada la instalación nos aparecerá la siguiente ventana solicitando el reinicio del
programa, lo dejamos que reinicie
Generar un acceso directo para el escritorio en Linux (Opcional):

Con el programa instalado y listo para correr, se puede crear un archivo de ejecución de eclipse
para que el sistema operativo lo reconozca para lanzarlo y poder crear accesos directos sin
necesidad de tener que entrar siempre en la carpeta de eclipse para ejecutarlo:

En la carpeta personal ejecutar

nano .local/share/applications/eclipse.desktop

esto creara un archivo .desktop para que Ubuntu lo reconozca como aplicación
en el archivo se podrá lo siguiente:

[Desktop Entry]
Name=Eclipse C Neon
Type=Application
Exec=/home/eclipse73/eclipse/eclipse
Terminal=false
Icon=/home/eclipse73/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=Eclipse

una vez escrito se guarda y se encontrara eclipse dentro del lanzador de aplicaciones.

Creación de un proyecto en eclipse para CubeMX

Una vez inicie el sistema nos vamos a File->New->C/C++ Project y aparecerá la si ventana, este
paso puede variar entre versiones pero lo importante es generar un nuevo proyecto en C

Seleccionamos el tipo de proyecto Hello World ARM Cortex M y nombramos el proyecto


Colocamos el tipo de cortex el clock externo el tamaño de flash y de ram correspondiente aún
el ejemplo se utiliza STM32F358CCT6 que tiene 256Kb de flash y 48Kb en este caso se usa el
clock interno por lo que no es necesario especificarlo , el resto de configuraciones quedan así:

Para la siguiente ventana es necesario saber la familia de procesadores y como lo tiene cargado
cmsis para la familia de stm32 se bastante simple , para identificar nuestro Vendor CMSIS
name simplemente se usa stm32 seguido de los dos caracteres el primero pude ser f,l,w,g y el
segundo corresponde normalmente a un numero 0,1,2,3,4,7 con una excepción en el stm32wb,
que es la letra b, con esos dos caracteres mas dos letras “x” en este caso estamos usando el
STM32F358CCT6 el nombre seria stm32f3xx

También es necesario seleccionar la ruta donde se encuentra las herramientas de gnu arm
Una vez presionado finish ya tendremos creado el proyecto ahora queda borrar un par de
archivos y hacer un par de modificaciones en ldscripts/mem.ld, se borrara los siguientes
archivos

Dentro de mem.ld modificaremos el origen de la flash, en los stm32 arranca en la posición de


memoria 0x08000000 con lo que quedaría así
Instalación de CubeMX

Introducción
Este software es un programa que permite hacer una abstracción de hardware facilitando el
desarrollo ya que esta herramienta genera a partir de una configuración deseada por el usuario y
genera a partir de este el código en c para el compilador. Esto ahorra mucho tiempo de
codificación y testing para el desarrollo de sistemas embebidos basados en STM32
descarga e instalación de cubemx en Windows o Linux primero vamos a ir al siguiente link:
https://www.st.com/en/development-tools/stm32cubemx.html

presionamos Get Software y nos llevara a

presionamos nuevamente y nos llevara la siguiente ventana


Una vez aceptada nos solicitara nuestros datos nombre y mail y nos enviaran un mail de
confirmación, con este vendrá un link que permitirá la descarga del software
Una vez obtenido el instalador vamos a descomprimirlo lo cual extraerá 3 instaladores más 1:

instructivo de instalación, en este proceso para la instalación de la herramienta en Linux


utilizaremos el que tiene la extensión “.linux” pero antes de ejecutarlo será necesario darle
permiso de ejecución y lectura para todos los niveles. Abrimos una terminal y con el comando
cd navegamos hasta la carpeta donde se descomprimieron los archivos y les cambiamos los
permisos por medio de chmod como se muestra a continuación

una vez hecho esto ya podemos hacer doble clic sobre SetupSTM32CubeMX-5.3.0.linux y
ejecutamos la instalación.
Para Windows el procedimiento es más simple, solo seleccionamos el SetupSTM32CubeMX-
5.3.0.exe y seguimos hacemos la instalación como cualquier otro programa en esta plataforma.
Una vez instalado el programa lo ejecutamos para crear nuestro nuevo proyecto
Presionamos dentro de new poject→Srart my project from MCU el boton de ACEESS TO
MCU SELECTOR, esto nos llevara a un listado de micro controladores soportados por este
software ,para mostrar el proceso nos basaremos en el chip STM32F303RE pero el
procedimiento es el mismo para cualquiera de los chips de ST.

Hacemos doble clic sobre el nombre de nuestro chip en la MPU list y nos llevara a nuestro
primer proyecto en la pestaña Pinout & Configuration se muestra un esquema reducido del chip
con sus pines en la columna derecha aparecen listados todos los periféricos pertenecientes al
chip separados por categorías
ahora comenzaremos la configuración , en primer lugar es necesario configurar el reloj del
sistema ya que sin este no funcionaria nada del chip , en este ejemplo la placa en la que está
montado el chip no tiene un cristal oscilador por lo que se hará uso del clock interno , pero si
cuenta con un oscilador externo para el LSE(low speed clock) por lo que habilitamos en la
opción de LSE seleccionamos Cristal/Ceramic Resonator, con lo que aparecerá marcado en el
pinOUT del chip los dos pines correspondientes a esa función

Ahora en la opción sys de System Core vamos a seleccionar el protocolo de debug y


programación , en nuestro caso se hará uso del protocolo jtag que también señalara otra serie de
pines por pertenecientes al protocolo (NTRST,TDI,TDO,TMS,TCK) con esto ya tenemos lo
mínimo para que funcione con esto ya tenemos lo mínimo necesario para que el micro
procesador trabaje , para poder verlo andar utilizaremos una gpio , en el caso de la placa
utilizada para este tutorial tiene un led que haremos parpadear , ese led está conectado a el PA5
que físicamente es el pin 21
Ahora para poder identificar de forma más simple el pin le colocaremos una etiqueta , en
nuestro caso LED_G, esto se hace yendo dentro de System Core GPIO haciendo clic sobre el
pin deseado en la tablea y abajo aparecerá un User Label , donde colocaremos el nombre que
elegimos y de ahora en adelante para referirnos a este lo haremos con ese nombre LED_G
Ahora comenzaremos con la configuración del árbol de clock para habilitar el clock
correspondiente de cada periférico , en este tutorial configuraremos el clock interno para
trabajar a 72Mhz

por último se configura el proyecto en si donde se guardara el código que herramientas se


usaran que paquetes y que archivos serán generados, en si la configuración quedaría así para
poder integrarlo en eclipse:
muy bien ya tenemos todo lo necesario solo falta generar código y listo tenemos los archivos
para nuestro blink creados

Ahora ya teniendo el proyecto de cubemx y de eclipse generados llego el momento de integrar


el proyecto de cubemx en el proyecto de eclipse para esto se enlistaran los archivos a copiar y
su lugar de destino, todos las copias se harán a partir de arrastrar la selección de archivos a la
carpeta del proyecto en eclipse, oscea del explorador de Windows a el proyecto. Todas las rutas
de lo que respecta al proyecto de cubemx se referencian a la carpeta destino seleccionada en su
creación, en este caso \TutoblinckCube\
1. Seleccionamos todo lo que hay en la carpeta Inc y lo arrastramos a la carpeta Include de
eclipse cuando hagamos esto no s aparecerá el siguiente mensaje
Seleccionar Copy files y OK
Nota: Esto se tendrá que hacer en cada una de las copias
2. Hacer lo mismo con el contenido de Src y copiarlo en src en eclipse
3. Ahora ir a Drivers/STM32F3xx_Hal_Driver/Inc y copiarlo en system/include/stm32f3xx
4. Hacer lo mismo con Drivers/STM32F3xx_Hal_Driver/Src copiarlo en
system/src/stm32f3xx
5. Ahora se importara todo lo correspondiente al Core de CMSIS por lo que hay que ir a
Drivers/CMSIS/Include copiar todos los archivos nos aparecerá el siguiente cartel

Presionamos Overwrite All y copiara todos los archivos necesarios del CMSIS Core, esto
más que nada es porque eclipse tiene una versión desactualizada del core y Cubemx tiene
una versión más actual
6. Ahora vamos a Devices/CMSIS/Device/ST/STM32F3xx/Include copiar en
system/include/CMSIS nuevamente si aparece el cartel que pregunta si deseamos sobre
escribir le decimos que sobre escriba todo
7. Por ultimo copiaremos el archivo .s que hay en la carpeta /Startup en la carpeta
system/src/cmsis/ y cambiarle usando click derecho sobre el documento->rename le
cambiamos la .s por .S , esto es muy importante ya que la minúscula el compilador no la
diferencia y no reconoce el archivo
Si le damos compilar ahora nos dará un error

Por lo que será necesario un último paso antes de terminar con el proceso click derecho sobre
el proyecto->Propiedades->C/C++Builds->Settings->ToolSettings->Cross ARM C Compiler-
>Preprocessor y dentro de define symbols presionamos el botón para agregar una definición,
que es la selección de nuestro procesador para el HAL, Estas definiciones son utilizadas para
habilitar o deshabilitar drivers para saber cuál es el que necesitamos vamos al archivo
stm32f3xx.h y buscamos en nombre según el HAL

En el caso del chip que estamos usando (STM32F358CCT6) seria STM32F358xx con lo que la
definición nos quedaría así
Si nos aparece el siguiente error:

Se soluciona yendo a system/src/newlib/_sbrk.c clic derecho sobre este archivo, resource


configuration->Exclude for the build y seleccionamos de las compilaciones que queremos
excluirlo

Presionamos OK y listo ya no compilara ese archivo y solucionara el problema.


Para hacer el blink del led ahora agregaremos el siguiente código al bucle infinito
Compilando esto ya nos generara lo necesario para cargar el programa solo queda configurar el
open ocd y cargar el programa

Configuración de OpenOCD en Eclipse

Seleccionamos la flecha hacia abajo de y seleccionamos la opcion de External


Tools Configurations
Clic derecho sobre Program y seleccionamos NEW os aparcera la siguiente ventana
donde podremos configurar el servidor openocd

En Location seleccionamos la ruta al ejecutable de openocd, en Working Directory


seleccionamos la ruta a nuestro proyecto y en argumento ponemos la siguiente línea en
caso de querer usar el protocolo JTAG:

-f interface/ftdi/openocd-usb.cfg -f target/stm32f3x.cfg -d3

Encaso de querer usar protocolo SWD es necesario agregar un argumento quedando el


siguiente comando:

-f interface/ftdi/openocd-usb.cfg -f interface/ftdi/swd-
resistor-hack.cfg -f target/stm32f3x.cfg

suponiendo que se usara JTAG nos quedaría así:


En la pestaña common tildamos la opción de display in favorites menu así:

Presionamos apply y luego en close.

Configuración de Debuger en Eclipse


Vamos al icono presionamos la flecha hacia abajo y seleccionamos Debug
configurations
Clic derecho sobre GDB Hardware Debugging y seleccionamos New

En la opcion build configurations seleccionamos Debug y marcamos la opción disable


auto build y presionamos apply, pasamos a la pestaña Debugger :
aquí en GDB command vamos a donde se encuentra el arm-none-eabi-gdb , en jtag
device sleccionamos Generic TCP/IP y en port number seleccionamos 3333

Presionamos Apply y nos dirigimos a stratup en donde vamos cambiar el reset an delay
por 4segundos
Por último nos dirigimos a common y seleccionamos display in favorites menu y
presionamos apply y luego close. Con esto ya tenemos configurado tanto el debuger
como el servidor de openocd

Instalación de drivers FTDI(Windows)


Para esto primero hay que cambiar los drivers por defecto del FTDI usando Zading.exe que es
un programa que cumple con esta tarea
https://zadig.akeo.ie/
Conectamos el programador jtag sasori y luego ejecutamos como administrador presionamos
Options->list all devices y seleccionamos el RS232 (interface 0)

Presionamos Remplace Driver y esperamos hasta que nos aparezca este cartel:

Una vez que ya tenemos todo esto funcionando solo queda conectar la placa y comenzar con el
debug de nuestro blink para eso simplemente apretamos la flecha hacia abajo del botón
y seleccionamos el servidor Openocd que creamos anteriormente y una vez que se conecte
simplemente apretar la flecha en y seleccionar el debug que creamos , esto nos llevara a
la ventana correspondiente al debug apretamos f8 y veremos como el led de nuestra placa
debería de titilar y cada vez que se apriete el botón cambiara la velocidad de titileo

También podría gustarte