¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M...

22
armcortexm.blogs.upv.es ¿Y ahora qué? 2013/05/26

Transcript of ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M...

Page 1: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

armcortexm.blogs.upv.es

¿Y ahora qué?

2013/05/26

Page 2: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 3: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 4: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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!

Page 5: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 6: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 7: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 8: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 9: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 10: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 11: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 12: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 13: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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!

Page 14: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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.

Page 15: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 15

Bibliotecas: Ejemplo servidor web con lwIP

● Ahora sí que vas a alucinar de verdad

Page 16: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 16

Bibliotecas: ...

● Demasiadas● zigbee

● bluetooth

● pantallas gráficas, ....

Page 17: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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)

Page 18: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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)

Page 19: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 20: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

Presentación curso ARM Cortex-Marmcortexm.blogs.upv.es 20

Micros llamativos

● Triad semiconductor● Via Configurable Mixed Signal Processors

Page 21: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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

Page 22: ¿Y ahora qué? - Dpto. de Informática de Sistemas y ...Presentación curso ARM Cortex-M armcortexm.blogs.upv.es 9 Compiladores C/C++ Básicamente, hay 3 compiladores C/C++ MDK-ARM

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