PDF de programación - Conceptos básicos sobre software para microcontroladores ARM Cortex-M

Imágen de pdf Conceptos básicos sobre software para microcontroladores ARM Cortex-M

Conceptos básicos sobre software para microcontroladores ARM Cortex-Mgráfica de visualizaciones

Publicado el 17 de Febrero del 2019
845 visualizaciones desde el 17 de Febrero del 2019
912,6 KB
21 paginas
Creado hace 11a (18/04/2013)
Conceptos básicos sobre software

para microcontroladores ARM Cortex-M

armcortexm.blogs.upv.es

2013/04/18

Contenido

● Objetivos
● El lenguaje C es lo adecuado
● El caos de las bibliotecas
● CMSIS: La solución
● CMSIS y el St STM32F(4)
● Proyectos

– Creándolo con Keil MDK-ARM
– A partir de una plantilla
“Hola Mundo” (Al servicio de depuración)



● El arranque: del vacío al main()

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

2

Objetivos

● Entender la filosofía de desarrollo
● Tener nociones de CMSIS
● Aprender a crear un proyecto mínimo
● Aprender a usar plantillas y bibliotecas externas

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

3

El lenguaje C es lo adecuado

● Esta arquitectura está pensada para desarrollo en lenguaje C

● Usar ensamblador no tiene sentido (ni aquí ni en otros sitios)



(Un programador experto conoce ensamblador y le da ventaja
respecto al resto de programadores)

● Hay otras opciones:

● Pascal, Basic, C++, C#, java, Ada, ...
● Son lenguajes marginales en el ámbito de los microcontroladores

● Como ingeniero, elige ...

Inglés

Griego

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

4

El caos de las bibliotecas

● Los microcontroladores ARM Cortex-M son complejos
● Primera solución

● Cada fabricante crea sus bibliotecas C para simplificar

● Pega (bueno para unos, malo para otros)



Incompatibles entre fabricantes

● Dificulta la migración entre fabricantes

● A ARM no le convenía esto y puso orden
● Si te das cuenta, a ti tampoco te conviene

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

5

CMSIS: La solución

● CMSIS: Cortex Microcontroller Software Interface Standard
● Fruto de la coordinación entre ARM, fabricantes,

desarrolladores de entornos, desarrolladores de bibliotecas, ...
● Pretende establecer abstracción del hardware común a todos

los fabricantes de procesadores ARM Cortex-M

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

6

● Arquitectura de CMSIS (bueno, de CMSIS-Core)

CMSIS: La solución

● Funcionalidades para arranque del sistema
● Acceso características específicas del núcleo y periféricos básicos
● Visión consistente registros de periféricos y servicios de interrupción

1

2

Nota: La imagen corresponde a CMSISv3

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

7

CMSIS: La solución

● ¿Recuerdas el ejemplo del LED?

1

2

● Y 2 se apoya en 1

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

8

CMSIS: La solución

● CMSIS se basa en el sentido común. Por ejemplo:

● Cumple MISRA 2004 (Sí, busca en Google)

A Juan lo echaron de la
Volkswagen por esto

● El código se debe documentar con doxygen (y el desarrollador se

ahorra hacer el manual)

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

9

CMSIS: La solución

● CMSIS se basa en el sentido común. Por ejemplo:

● Emplea la definición de enteros <stdint.h>

– ejemplo: un int es distinto en un PIC 12F, un Cortex-M

o un x86

● El siguiente ejemplo compila bien en un PIC, un 8051, un Cortex-

M, un PC x86, una GPU Nvidia o un IBM Blue Gene/Q

entero de 16 bits sin signo

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

10

CMSIS y el St STM32F(4)

● Módulos C típicos para CMSIS con microcontrolador STM32F4

Fte. STM32F4 DSP and Standard peripheral library

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

11

CMSIS y el St STM32F(4)

● En nuestro ejemplo mínimo del LED

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

12

CMSIS y el St STM32F(4)

● Los cometidos de cada archivo son

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

13

Proyectos: Creándolo con Keil MDK-ARM

● Keil es muy flojillo en esto, cualquier otro entorno es mejor
● La plantilla de la primera sesión se desarrolló con estos pasos
● Actividad:

● Crea tu mismo el proyecto siguiendo el punto “Crear la primera
aplicación” de la guía de iniciación de la STM32F4 Discovery de
este curso.

● Echa un vistazo al interior de los archivos creados. Identifícalos

con los de la tabla anterior

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

14

Proyectos: A partir de una plantilla

● Una plantilla es otra opción

● La proporcionan los fabricantes del chip, los entornos, ...
● St la proporciona con la “STM32F4 DSP and Standard peripheral library”

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

15

Proyectos: A partir de una plantilla

● Un proyecto ARM se debe

apoyar en montones de
bibliotecas
● Hay que ser organizados
● Una plantilla suele usar

rutas preconfiguradas

mis
proyectos

● En la rutas, evitar,

espacios y símbolos
raros

bib, bib, ...

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

16

Proyectos: A partir de una plantilla

● Con la demo de la Discovery no viene plantilla

● No problem. Hemos preparado una.

● Actividad: Usar la plantilla

● 1 - Descomprime la “plantilla con printf() ITM debug” en el

directorio de trabajo

● 2 - Descarga “STM32F4DISCOVERY board firmware package"
● 3 - Descomprímelo en el subdirectorio “terceros”
● 4 - Con Keil, abre el proyecto “plantilla_ITM_debug.uvproj”
● 6 - Prueba a compilar

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

17

“Hola Mundo”: al servicio de depuración

● Modifica main.c para incorporar el siguiente código

● y sigue la guía de activar servicio depuración del blog (English)

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

18

El arranque: del vacío al main()

● En general, un microcontrolador está vació de software
● Por tanto, nuestro programa será responsable de

● gestionar la operación de “reset”
● configurar relojes (osciladores) que marcan el ritmo del sistema
● ajustar las zonas de memoria donde colocar cosas: heap, stack,

code ...

● proporcionar la función estándar de C main()

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

19

El arranque: del vacío al main()

● En general, el arranque lo produce un “reset”
● Aquí, el reset es una petición de interrupción/servicio
● Actividad:

● Abrir cualquier proyecto y localizar el “handler” del reset. Pensar

dónde puede estar a partir de la tabla de módulos

● Seguir las funciones hasta llegar a main()

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

20

Deberes

● Puesss, vemos como sale la sesión

Conceptos básicos sobre el software
armcortexm.blogs.upv.es

21
  • Links de descarga
http://lwp-l.com/pdf15241

Comentarios de: Conceptos básicos sobre software para microcontroladores ARM Cortex-M (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad