microcontroladores arm cortex-m3 - sase.com.ar · pdf filemicrocontroladores arm cortex-m3...

Click here to load reader

Post on 25-May-2018

280 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

  • Microcontroladores ARM Cortex-M3Microcontroladores ARM Cortex-M3

    Core ARM Cortex-M3Soportado por las herramientas de desarrollo

    Perifricos de ARM Cortex-M3Soportados por las herramientas de desarrollo

    Perifricos desarrollados por el fabricante del microcontrolador

    Respetan ciertas pautas de operacin fijadas por ARM

    Poseen archivos de definiciones que permiten que sean soportados por las herramientas de desarrollo

  • Core ARM Cortex-M3Core ARM Cortex-M3

    Arquitectura ARMv7-MHarvard con espacios unificados en mapa de 4GBLoad/StoreBit band

  • Perifricos de ARM Cortex-M3Perifricos de ARM Cortex-M3

    NVICNested Vectored Interrupt Controller

    SysTickTimer continuo

  • Herramientas de desarrolloHerramientas de desarrollo

    IDEProgramador DebuggerCMSIS

  • IDEsIDEs

    El entorno de desarrollo en un Cortex-M3 no es una eleccin del fabricante, sino del desarrollador

    (Si bien existen algunos casos particulares que son todo lo contrario, siempre existe la posibilidad de recurrir a un proveedor no atado con el fabricante o incluso gratuito o hasta Open Source)

  • KeilKeil

    "una empresa del grupo ARM"algo as como el oficialuVision 4ARM-MDK (Microcontroller Development Kit)32KB de cdigo generado.

    CMSISpor defectolos include files son CMSIS.

  • IARIAR

    Embedded Workbench for ARM (EWARM)32KB de cdigo generado.

    CMSISsoporte a partir de la versin 6.2

    debe activarse manualmente en las opciones del proyecto

    los include files son para su propio formato, diferente de CMSIS.

    paquetes provistos por fabricantes

  • CooCoxCooCox

    basado en Eclipsecompilador GNU (gcc) provisto por Code

    Sourcery (hoy Mentor Graphics)No posee simulador, ni forma de ver los perifricos al momento.CMSIS

    debe activarse manualmente en las opciones del proyecto.

    los include files son CMSIS (sin el prefijo _)

  • Programador-DebuggerProgramador-Debugger

    conector de .1 con 20 pinescompatible JTAG.

    standard familia Cortex10 pines de paso .05.

    Algunos micros poseen ambas interfaces: JTAG y SWD.

  • Programador-DebuggerProgramador-Debugger

    Segger J-Linkfunciona con IAR, Keil, CooCox

    Keil uLink funciona con IAR, Keil, CooCox

    otros fabricantes de JTAGembedded en los devkits *

    Alternativas Open SourceColink-EX

    funciona bajo CooCoxdrivers para IAR y Keil

  • CMSISCMSIS

  • Desarrollo de aplicaciones en CDesarrollo de aplicaciones en C

    CMSISARM

    archivos de soporte para el corefabricante del micro

    headers de soporte para los perifricosfabricante del compilador

    inclusin de CMSIS (puede hacerse manual)

    Compiladorfabricante del compilador

    soporte para ese micro (headers, prog de la flash)

  • CMSISCMSIS

    Archivos generales para soportar core y compilador

    core_cm3.h

    Archivos particulares para soportar el microsystem_.c

    contiene SystemInit(), rutina que se encarga de inicializar el clock

    startup_.s o startup_.ccontiene vectores de interrupcin y reset. Este ltimo llama a SystemInit() y luego salta a ejecutar el cdigo del usuario en main().

  • KeilKeil

    Agregamos los archivos desde donde residen.Podemos simplemente incluirlos o copiarlos a nuestro directorio de trabajo.Los archivos requeridos se encuentran en la siguiente ubicacin por defecto:

    Generalesincludos por el header del micro en particular: mimicro.h

    ParticularesC:\Keil\ARM\Startup\\\

  • IARIAR

    Los archivos generales de CMSIS se incluyen mediante una opcin de proyecto:

  • Los archivos particulares los debemos copiar a nuestro directorio de trabajo e incluirlos manualmente, por nuestra cuenta.

  • CooCoxCooCox

    Pestaa Repository copia a nuestro directorio de trabajo ambos sets de archivos.

  • Tipos y registros internosTipos y registros internos

    Los tipos bsicos C99 se encuentran en stdint.h

    este archivo puede ser incluido por el archivo .h, que incluye el soporte para todos los registros y perifricos particulares del micro

    #include "HT32F125x.h"

  • DebuggingDebugging

  • DebuggingDebugging

    JTAGSWDTrace

    Requiere ETM en micro y JTAG c/trace, CAROSWV

    printf(), pseudo-quasi trace econmico

  • I/O: LED + switchI/O: LED + switchHoltek HT32F125x

    KeilIARCooCox

    Fujitsu MB9BF506KeilIAR

    Toshiba TMPM330KeilIAR

    Fujitsu MB9BF618TKeil

  • Systick: Timer de ARM Cortex-MSystick: Timer de ARM Cortex-MHoltek HT32F125x

    KeilIARCooCox

    Fujitsu MB9BF506KeilIAR

    Toshiba TMPM330KeilIAR

    Fujitsu MB9BF618TKeil

  • Estructuras en memoria: directivas Estructuras en memoria: directivas de los compiladoresde los compiladores

    Holtek HT32F125xKeilIARCooCox

  • NVIC: interrupcionesNVIC: interrupciones

    Configurar interrupcin en el perifricoHabilitar en el NVIC

    NVIC_EnableIRQ(IRQn);En el interrupt handler:

    Bajar el flag de pendienteEl handler es una funcin C como cualquier otra, se la identifica por su nombre

    startup_.s o startup_.ccontiene vectores de interrupcin y reset; definidos como weak, de modo que una re-definicin toma precedencia.

    Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16Pgina 17Pgina 18Pgina 19Pgina 20Pgina 21Pgina 22Pgina 23Pgina 24

View more