¿y ahora qué? - dpto. de informática de sistemas y ...presentación curso arm cortex-m...
TRANSCRIPT
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 2
Contenido● Al principio ...
● Libros (mal está la cosa)
● Quiero hacer cosas rápido (y no aprender ARM)
● Compiladores C/C++
● Entornos de desarrollo integrados
● RTOS y microkernels
– Ejemplo: FreeRTOS● Bibliotecas
– Ejemplo: servidor web con lwIP● Micros llamativos
● Y, al final
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 3
Al principio
● Elige (y no cambies)● Un microcontrolador ampliamente aceptado y con comunidad
● Un entorno de desarrollo sencillo
● Colabora y sé abierto. Llegarás mucho más lejos● ¿Recuerdas nuestras recomendaciones?
NXP lpcxpressoSt stm32 discovery
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 4
Libros (mal está la cosa)
● La biblia oficial. Para entender la arquitectura, CM ,...● Si lo que quieres es trastear ¡no lo mires aún!
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 5
Libros (mal está la cosa)
● Parece práctico, pero usa TI Stellaris, que no es CMSIS
● Recordadnos que os contemos una cosa muy importante sobre TI
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 6
Libros (mal está la cosa)
● Sobre el STM32, os recomendamos los que enviamos a la lista
● Muy buenos para empezar
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 7
Quiero hacer cosas rápido (y no aprender ARM)
● mbed: sistemas basados en NXL LPC 1769
mbed
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 8
Quiero hacer cosas rápido (y no aprender ARM)
● Arduino DUE● Atmel SAM3 (Cortex-M3)
● Aún muy inmaduro ya no
● Obligados por la competencia y las limitaciones del AVR8
● Si tuviese que vivir de esto, haría “shields” para la DUE
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 9
Compiladores C/C++
● Básicamente, hay 3 compiladores C/C++● MDK-ARM (Keil) de la empresa ARM, que es la referencia
● IAR Embedded Workbench for ARM
● Derivados GNU GCC: ARM GCC, Code Sourcery GCC, ... (y suportados oficialmente por ARM)
● ARM se dió cuenta hace unos años de la ventaja de ser más abierto
● https://launchpad.net/gcc-arm-embedded
● Muchos entornos de desarrollo derivan de GCC
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 10
Entornos de desarrollo integrados
● Montones. Va una selección comercial● Keil MDK-ARM: Oficial, IDE un poco arcaico. Dicen que el
siguiente va a ser la pera. L32K
● IAR EWB: Plancha huevos y fríe corbatas. Multiarquitectura. L32K
● Raissonance RIDE: GCC + Scintilla (codeblocks y notepad++).
● Atollic Truestudio. GCC + Eclipse: La bestia
● Code-red LPCxpresso. GCC + Eclipse. Bombazo -> lo acaba de comprar NXP. (Probe Silabs)
● Y libres● Coocox IDE. GCC (que instalas tu aparte)
● ... o te puedes elegir tu IDE y combinar con tu GCC
● Si haces cosas para Android, elige uno basado en Eclipse. Bueno, hace unos días Google dice que abandona Eclipse
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 11
RTOS y microkernels
● Un microkernel facilitará enormemente la coordinación de tareas
● Buffering, semáforos, zonas críticas, multitarea, productor-consumidor, …
● Nuestra recomendación● Libre: Freertos
● Comercial: Micrium ucos/II
● Y, quizá, CMSIS 3 RTOS (ya disponible en la página de Keil)
● También muy aceptados: ChibiOS y CoOS
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 12
RTOS y microkernels: Ejemplo con FreeRTOS
● Fragmento del ejemplo que tienes en nuestra página
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 13
RTOS y microkernels: Ejemplo con FreeRTOS
● Ahora tu● Crear 3 nuevas tareas de manera que LED2 parpadee a 300 ms,
LED 3 a 500 ms, y LED4 a 700 ms● No te asustes, mira main.c, analízalo un poco y manos a la obra
● Mola, ¡eh!
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 14
Bibliotecas: TCP/IP, UDP/IP, HTTP ...
● Recomendamos para empezar las de Adam Dunkels (Internet of things)
● uIP: Muy pequeña. Perfecta para micros modestos.
● lwIP: Más requisitos de memoria, pero más potente.
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 15
Bibliotecas: Ejemplo servidor web con lwIP
● Ahora sí que vas a alucinar de verdad
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 16
Bibliotecas: ...
● Demasiadas● zigbee
● bluetooth
● pantallas gráficas, ....
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 17
Micros llamativos
● Microsemi/Actel Smartfusion cSoc● Mezcla de Cortex-M3 y FPGA
● Hace un par de meses ha salido Smartfusion2 (más seguridad)
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 18
Micros llamativos
● Energy micro: Ultrabajo consumo + radio. Cortex-M3● Están trabajando en sacar M0+ y M4F (hace un par de días)
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 19
Micros llamativos
● Cypress PSOC 5 (y PSOC 3)● Impresionante flexibilidad
● Hace un mes: PSOC 4
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 20
Micros llamativos
● Triad semiconductor● Via Configurable Mixed Signal Processors
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 21
Micros llamativos
● NXP LPC800. Cortex-M0+● Pines razonables para mis montajes
● Perfecto para reemplazar los montajes sencillos tipo PIC
Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 22
Y, al final
● Puedes usar el entorno “custom” del fabricante que te interese● Aprovéchate de las ventajas de un RTOS●
● Y sigue colaborando● https://my.st.com/public/STe2ecommunities/mcu/default.aspx
● Foro que montaron los alumnos: http://armcortexm.micsoftware.es/
● Lista de correo: http://armcortexm.blogs.upv.es/2012/06/12/lista-de-correo-electronico-para-los-interesados-en-los-arm-cortex-m/
● Wiki: estamos en ello lista para el curso avanzado