Tabla de contenido:

Comience a desarrollar STM32 en Linux: 4 pasos
Comience a desarrollar STM32 en Linux: 4 pasos

Video: Comience a desarrollar STM32 en Linux: 4 pasos

Video: Comience a desarrollar STM32 en Linux: 4 pasos
Video: Demo Video, Unlock android device by Kali linux 2024, Mes de julio
Anonim
Image
Image
Descarga todo lo que necesitas
Descarga todo lo que necesitas

En este Instructable, les mostraré lo fácil que es comenzar a desarrollar programas STM32 en Linux. Empecé a usar Linux como mi máquina principal hace 2 años y no me han defraudado. Todo funciona más rápido y mejor que Windows. Por supuesto, es menos conveniente de vez en cuando, pero te obliga a aprender cosas más a fondo para que puedas usarlo.

De todos modos, en este instructivo, parte de una serie que estoy comenzando aquí Y en youtube trata sobre cómo comenzar. Por favor, asegúrese de ver también mi video de YouTube donde explico todo como un segmento y usted puede codificar junto a mí.

En esta serie, le mostraré cómo puede desarrollar usando solo un editor de texto como el bloc de notas, SublimeText o Atom, por lo que no necesita ningún software propietario o IDE. Esto es lo más básico posible y es sorprendentemente fácil.

Paso 1: descargue todo lo que necesita

Necesita descargar tres partes para que todo funcione:

  • Compilador GCC para ARM
  • Archivos de firmware STM32
  • Utilidad st-link
  • Proyecto de muestra

El compilador es la pieza principal de software que compila nuestro código C con todos los demás archivos de la biblioteca en un lenguaje de máquina que nuestro controlador stm32 puede entender. Descargue la última versión precompilada de este compilador.

La carpeta que contiene el firmware STM32 es la que contiene todos los archivos principales y de inicio necesarios para el funcionamiento del procesador principal. Usaremos la biblioteca periférica estándar que ha sido superada por HAL. Me gusta más StPeriphLibrary ya que las empresas que trabajan en estos procesadores los utilizan porque es robusto, antiguo y compatible. También es más resistente. No reduce el trabajo que tiene que hacer para inicializar un periférico o encender un LED, pero lo obliga a aprender cómo funcionan estos procesadores. Con eso, tiene más conocimiento del funcionamiento interno, lo que le da sentido a la programación de cualquier tarea.

La última pieza de software para descargar es la utilidad st-link. Se mantiene en github y se usa para transferir archivos binarios compilados al procesador usando stlink IC en la placa que sirve como programador / depurador SWD / JTAG.

También he proporcionado una carpeta de proyecto de muestra de la que hablo más adelante y puede descargarla. Está dentro de la primera carpeta VIDEO1.

Paso 2: instalación del software

Instalación de software
Instalación de software
Instalación de software
Instalación de software

Una vez que haya descargado todos los archivos, le sugiero que los ponga dentro de una carpeta común, ya que todos se usan juntos para el mismo propósito. Pongo todas las carpetas dentro de una carpeta llamada "Incrustado" en mi directorio HOME.

Comenzaremos con las bibliotecas STM32 más sencillas. La carpeta que ha descargado se puede dejar allí. Solo asegúrese de investigar para ver dónde se almacenan los archivos apropiados. Por lo tanto, puede cambiar y editar el MakeFile principal para que funcione con su plataforma.

El segundo más fácil es el compilador. Tampoco es necesario que le haga nada, pero haremos del compilador una función accesible globalmente para que pueda llamar al compilador desde cualquier carpeta independientemente de la ruta. Todos los pasos se pueden hacer en la terminal o en la interfaz gráfica de usuario, pero me gusta usar la terminal, ya que cuando tienes experiencia se vuelve más rápido y fácil y te animo a que uses más la terminal, si le tienes miedo. Estos son los pasos:

  1. Vaya a su carpeta de inicio "/ home / YOURUSERNAME /" o "~ /" o escriba cd en la terminal
  2. abra el archivo ".bashrc" escribiendo: nano.bashrc
  3. desplácese hacia abajo hasta el final del archivo y agregue esta línea: export PATH = $ PATH: ~ / Embedded / gcc-arm-none-eabi-8-2018-q4 / bin
  4. salir guardando: CTRL + X, haga clic en Y, ENTER
  5. ejecutar comando: fuente.bashrc para actualizar las fuentes de la terminal
  6. verifique si todo está funcionando escribiendo: arm-none-eabi-gcc --version, debería mostrar la última versión del compilador

Para instalar st-link, extraiga el archivo que ha descargado en la carpeta Embedded. Luego sigue estos pasos:

  1. Ejecutar: hacer
  2. Vaya a la carpeta "build / Release": cd build / Release
  3. Escriba ls y verá dos ejecutables llamados "st-flash" y "st-util"
  4. Mueva esos dos al directorio principal stlink: mv st-flash st-util../../
  5. Puede, si desea utilizar estas dos funciones, editar globalmente el archivo ".bashrc" nuevamente agregando:

    export PATH = $ PATH: ~ / Embedded / stlink /

¡Eso es todo! Tienes todo lo que necesitas. Ahora ve a buscar tu editor de texto favorito. Use solo uno estándar, uno más inteligente como SublimeText o Atom, es lo que uso.

Paso 3: configuración de un proyecto de muestra

Configurar un proyecto de muestra
Configurar un proyecto de muestra

Ahora crearemos un proyecto de muestra que puede usar para comenzar cada proyecto. Es como una plantilla con toda la configuración principal ya manejada.

Puedes descargarlo en mi MEGA, el enlace está en el primer paso de este instructivo y debajo de cada video mío de YouTube. Dentro está el archivo main.c vacío junto con algunos archivos de inicio para este procesador y el Makefile. Makefile es el que le dice al compilador de C dónde encontrar el compilador arm, cómo compilar y dónde están todas las bibliotecas. Para obtener estos archivos apropiados para su proyecto, puede ir a la carpeta de la biblioteca STM32 y buscar un "proyecto" o carpetas de "ejemplos". En el interior verá y copiará estos archivos: main.c, Makefile y XXX_conf.h, system_XXX.c. También necesitará el archivo vinculador stm32_flash.ld que se puede encontrar en la carpeta:

"/ FLASH_Program / TrueSTUDIO / FLASH_Program /" que está dentro de la carpeta de ejemplo o simplemente busque el archivo.

Makefile se puede encontrar en línea o copiar desde mi carpeta, pero necesitará cambiar algunas cosas. Echemos un vistazo a mi archivo make y lo que podría cambiar.

# Ruta a la carpeta stlink para cargar el código al tablero

STLINK = ~ / Embedded / stlink # Coloque sus archivos fuente aquí (*.c) SRCS = main.c system_stm32f4xx.c # Archivos fuente de bibliotecas #SRCS + = stm32f4xx_rcc.c #SRCS + = stm32f4xx_gpio.c # Se generarán binarios con este nombre (.elf,.bin,.hex) PROJ_NAME = test # Ponga su directorio de código de biblioteca STM32F4 aquí, cambie YOURUSERNAME al suyo STM_COMMON = / home / matej / Embedded / STM32F4-Discovery_FW_V1.1.0 # Configuración del compilador. Solo edite CFLAGS para incluir otros archivos de encabezado. CC = arm-none-eabi-gcc OBJCOPY = arm-none-eabi-objcopy # Indicadores del compilador CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS + = -DUSE_STDPERIPH_DRIVER CFLAGS + = -mlittle-endian -mthumb -mcpu = cortex-m4 -mthumb-interwork CFLAGS + = -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS + = -I. # Incluir archivos de bibliotecas STM CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / CMSIS / Incluir CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / CMSIS / ST / STM32F4xx / Incluir CFLAGS + = -I $ (STM_COMMON) / Bibliotecas / STM32F4xx_StdPeriph_Driver / inc CFLAGS + = -I $ (STM_COMMON) / Utilities / STM32F4-Discovery # agregar archivo de inicio para compilar SRCS + = $ (STM_COMMON) / Bibliotecas / CMSIS / ST / STM32F4xx / Source / Templates_ True. s OBJS = $ (SRCS:.c =.o) vpath%.c $ (STM_COMMON) / Libraries / STM32F4xx_StdPeriph_Driver / src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $ ^ -o $ @ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binary $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash de la grabación STM32F4: proj $ (STLINK) / st-flash write $ (PROJ_NAME).bin 0x80000000

  • Puede editar la primera línea para cambiar la ruta a la carpeta de su utilidad stlink
  • Puede cambiar la línea al destino de su carpeta con bibliotecas y SU NOMBRE DE USUARIO

    STM_COMMON = / home / YOURUSERNAME / Embedded / STM32F4-Discovery_FW_V1.1.0

  • Consulte también la sección donde están vinculadas todas las bibliotecas. Esto puede cambiar dependiendo de la plataforma que esté utilizando, así que verifique los cambios en el árbol de archivos. Se puede cambiar todo lo demás que incluya rutas a ciertos archivos, como la siguiente línea con el archivo de inicio.

Después de haber editado todas estas cosas dentro del Makefile, puede verificar si está funcionando abriendo una terminal dentro de su directorio y escribiendo: make. Si compila todo sin problemas, entonces está listo. Si no es así, mire los errores del compilador y edite el Makefile.

Además, cuando uso Atom, coloco dos piezas de código una al lado de la otra. Por lo general, main.cy Makefile a la izquierda, ya que solo necesita editar Makefile una vez y las bibliotecas a la derecha. Puede ver en la imagen que he abierto la carpeta que contiene los archivos.cy.h para cada biblioteca. Puedes ver todo esto en los videos.

Paso 4: ¡Terminado

¡Finalizado!
¡Finalizado!

Ahora que tiene su Makefile configurado y el compilador funcionando, puede usar esta carpeta para todos los proyectos como plantilla, así que asegúrese de guardar una copia de esta carpeta.

También puede probar los programas st-flash y st-info conectando su placa de desarrollo y escribiendo en la terminal:

st-info --probe

Puede ver la plataforma que reconoce el software stlink y la familia IC junto con el caché y otras cosas. Puede escribir:

st-info

para ver todos los parámetros disponibles.

Ahora puede comenzar a programar. En el siguiente instructivo y video, le mostraré los conceptos básicos de GPIO y relojes. Estos dos son los conceptos básicos para todo lo demás, ya que casi todo con lo que interactúa la placa está sobre GPIO y todo funciona en el reloj y verá el patrón para programar estos procesadores.

Hasta entonces, gracias por ver mi instructivo y mi video de youtube, si aún no lo ha hecho.

Recomendado: