Académique Documents
Professionnel Documents
Culture Documents
2012/07/07 armcortexm.blogs.upv.es
Objetivos
Contenido
El lenguaje C es lo adecuado El caos de las bibliotecas CMSIS: La solucin CMSIS y el St STM32F(4) Proyectos
Crendolo con Keil MDK-ARM A partir de una plantilla Al servicio de depuracin Al GLCD
Hola Mundo
Objetivos
Entender la filosofa de desarrollo Tener nociones de CMSIS Aprender a crear un proyecto mnimo Aprender a usar plantillas y bibliotecas externas
El lenguaje C es lo adecuado
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) Pascal, Basic, C++, C#, java, Ada, ... Son lenguajes marginales en el mbito de los microcontroladores
Cada fabricante crea sus bibliotecas C para simplificar Incompatibles entre fabricantes Dificulta la migracin entre fabricantes Si te das cuenta, a ti tampoco te conviene
CMSIS: La solucin
CMSIS: Cortex Microcontroller Software Interface Standard Fruto de la coordinacin entre ARM, fabricantes, desarrolladores de entornos, desarrolladores de bibliotecas, ... Pretende establecer abstraccin del hardware comn a todos los fabricantes de procesadores ARM Cortex-M
CMSIS: La solucin
Funcionalidades para arranque del sistema Acceso caractersticas especficas del ncleo y perifricos bsicos Visin consistente registros de perifricos y servicios de interrupcin
2 1
CMSIS: La solucin
Y 2 se apoya en 1
CMSIS: La solucin
CMSIS: La solucin
El siguiente ejemplo compila bien en un PIC, un 8051, un CortexM, un PC x86, una GPU Nvidia o un IBM Blue Gene/Q
entero de 16 bits sin signo
10
CMSIS y el St STM32F(4)
CMSIS y el St STM32F(4)
12
CMSIS y el St STM32F(4)
Archivo stm32f4xx.h
13
Keil es muy flojillo en esto, cualquier otro entorno es mejor La plantilla de la primera sesin se desarroll con estos pasos Actividad:
Crea tu mismo el proyecto siguiendo el punto Crear la primera aplicacin de la gua de iniciacin de la STM32F4 Discovery de este curso. Echa un vistazo al interior de los archivos creados. Identifcalos con los de la tabla anterior
14
La proporcionan los fabricantes del chip, los entornos, ... St la proporciona con la STM32F4 DSP and Standard peripheral library
15
Una plantilla est preconfigurada para eso No es buena idea perder la biblioteca
16
No problem. Hemos preparado una. 1 - Descarga STM32F4DISCOVERY board firmware package" 2 - Descomprmelo en C:\??? 3 - Crea la carpeta curset dentro de Project 4 - Descomprime la plantilla con printf() ITM debug en esa carpeta 5 - Con Keil, abre el proyecto plantilla_ITM_debug.uvproj dentro de la carpeta MDK-ARM 6 - Prueba a compilar
17
18
Hay que acostumbrarse a usar/adaptar bibliotecas externas Adapta el ejercicio anterior al GLCD grfico para el curso http://armcortexm.blogs.upv.es/display-lcd-grafico-para-el-curso/
19
En general, un microcontrolador est vaci de software Por tanto, nuestro programa ser responsable de
gestionar la operacin de reset configurar relojes (osciladores) que marcan el ritmo del sistema ajustar las zonas de memoria donde colocar cosas: heap, stack, code ... proporcionar la funcin estndar de C main()
20
En general, el arranque lo produce un reset Aqu, el reset es una peticin de interrupcin/servicio Actividad:
Abrir cualquier proyecto y localizar el handler del reset. Pensar dnde puede estar a partir de la tabla de mdulos Seguir las funciones hasta llegar a main()
21
La STM32Fx DSP?
22