Porting de FreeOSEK a la plataforma MSP430

24
Porting de FreeOSEK a la plataforma MSP430 Ing. Franco Bucafusco Carrera de Especialización Sistemas Embebidos Universidad de Buenos Aires Jurado: Ing. Juan Manuel Cruz (FIUBA, UTN-FRBA) Esp. Ing. Patricio Bos (FIUBA) Dr. Ing. Pablo Gomez (FIUBA) Director del trabajo: Esp. Ing. Pablo Ridolfi

Transcript of Porting de FreeOSEK a la plataforma MSP430

Page 1: Porting de FreeOSEK a la plataforma MSP430

Porting de FreeOSEK a la plataforma MSP430

Ing. Franco Bucafusco

Carrera de Especialización Sistemas Embebidos

Universidad de Buenos Aires

Jurado:

Ing. Juan Manuel Cruz (FIUBA, UTN-FRBA)

Esp. Ing. Patricio Bos (FIUBA)

Dr. Ing. Pablo Gomez (FIUBA)

Director del trabajo:

Esp. Ing. Pablo Ridolfi

Page 2: Porting de FreeOSEK a la plataforma MSP430

Motivación #1

• El microcontrolador MSP430 permite realizar

diseños de ultra bajo consumo.

• 5.3 mA en Modo Activo (@25MHz)

2,5 uA en Modo LPM 3 (reloj del tick, activo)

ICC [mA] [tick 1ms]

ACTIVO SLEEP tAct. [us] tSleep [us] IAVG [mA] PAVG [mW]

MSP430F5529 10 0,0025 36 964 0,36 1,2

LPC4337 83 8.8 7,35 992 9,4 30,1

2

Page 3: Porting de FreeOSEK a la plataforma MSP430

Motivación #2

• Sistema operativo Estático

• La inclusión de esta plataforma al ecosistema

CIAA, permitirá a los desarrolladores tener un

mayor abanico de aplicaciones

3

Page 4: Porting de FreeOSEK a la plataforma MSP430

Alcances del trabajo.

• Implementar FreeOSEK en el uC

MSP430F5529

• Implementar los Drivers de las GPIOs del

microcontrolador, basado en HIS.

• Implementar los Drivers de las UARTs del

microcontrolador, basado en POSIX

4

Page 5: Porting de FreeOSEK a la plataforma MSP430

POSIX

HIS

Estructura Firmware CIAA

5

Page 6: Porting de FreeOSEK a la plataforma MSP430

• Está basado en el estándar OSEK.

Free OSEK

• Se configura a través del lenguaje OIL

• Es un RTOS Estático.

• Incluye Tests de Conformidad.

6

Page 7: Porting de FreeOSEK a la plataforma MSP430

• Permite la definición a través del lenguaje DIL.

HIS

• Los Drivers son Estáticos.

• Se fusiona muy bien con OSEK-VDX!

6

Page 8: Porting de FreeOSEK a la plataforma MSP430

FreeOSEK & HIS

7

Page 9: Porting de FreeOSEK a la plataforma MSP430

• Integración de librerías de Texas Instruments

CIAA-Firmware para MSP430

• Estructura de carpetas y Makefiles

• Compilador y Debugger

• Implementación del PORT

• Tests de conformidad

8

Page 10: Porting de FreeOSEK a la plataforma MSP430

• Análisis del Firmware hecho para Cortex-M

Adaptación de FreeOSEK para MSP430

• Vector de Interrupciones

• Timer para Interrupciones Periódicas

• Inicialización del stack

• Rutinas en assembler

• Agregado del uso de modos de bajo consumo.

• Test de conformidad

9

Page 11: Porting de FreeOSEK a la plataforma MSP430

MSP430: Arquitectura

● RISC

● Von Neumann

● Arq. Ortogonal.

● 16 registros (4 reservados)

● MSP430: 50 instrucciones.

● MSP430X: Extiende funcionalidad para direcciones de 20 bits (37 instrucciones más)

10

Page 12: Porting de FreeOSEK a la plataforma MSP430

MSP430: Interrupciones

● Interconexión en cascada de cada módulo. ● Prioridad fija (depende del dispositivo).● Tres tipos de fuentes:

○ Sistema○ Usuario ○ Periféricos

11

Page 13: Porting de FreeOSEK a la plataforma MSP430

MSP430: Tick y Cambio de Contexto

● Interrupción periódica: Se implementa con el periférico TimerA, canal 0.

● La interrupción por software se implementó empleando el TimerA, canal 1.

12

3

Page 14: Porting de FreeOSEK a la plataforma MSP430

Slide 13

3 IdemAriel Lutenberg, 22/11/2016

Page 15: Porting de FreeOSEK a la plataforma MSP430

MSP430: Bajo Consumo

● Diferentes combinaciones que contemplaban:○ El reloj del CPU ○ El reloj auxiliar (hacia periféricos)○ El reloj secundario (hacia periféricos)○ El DCO○ El FLL

13

Page 16: Porting de FreeOSEK a la plataforma MSP430

Driver: GPIO HIS

PIN LED3 {PORT = 8;PIN = 2;DIRECTION = IO_OUTPUT_INIT_LOW;INVERTED = FALSE;}

PIN KEY1 {PORT = 1;PIN = 7;DIRECTION = IO_INPUT_PULLEDUP;INVERTED = FALSE;NOTIFICATION = TRUE;}

ISR PORT1 {...}

14

Page 17: Porting de FreeOSEK a la plataforma MSP430

Driver: UART Posix

● Se basó en la implementación existente en CIAA Firmware.

● Se implementó para las 2 UARTs disponibles en el microcontrolador

15

● HIS no estandariza un driver para UART

Page 18: Porting de FreeOSEK a la plataforma MSP430

FreeOSEK : Mejoras en la generación

● Validaciones:

○ Tareas con eventos definidos => EXTENDIDAS

○ Tareas sin eventos definidos => BASIC

○ Eventos declarados de forma global, sin tareas asociadas.

○ Cantidad máxima de eventos

○ Tareas con eventos sin definir de forma global.

16

Page 19: Porting de FreeOSEK a la plataforma MSP430

FreeOSEK : Mejoras en la generación

● Asignación de eventos de forma más óptima

17

Page 20: Porting de FreeOSEK a la plataforma MSP430

Herramientas de desarrollo

18

Page 21: Porting de FreeOSEK a la plataforma MSP430

Conclusiones:

• Se utilizaron conocimientos adquiridos en:

• Ingeniería de Software

19

• Sistemas Operativos en Tiempo Real

• Gestión de proyectos

• Arquitectura de Microprocesadores

Page 22: Porting de FreeOSEK a la plataforma MSP430

Conclusiones:

• Implementación del RTOS FreeOSEK:

Ejemplo: blinking

Tests de conformidad de OSEK superados.

20

• Implementación de Drivers:

• UART (POSIX)

ejemplo: blinking_echo

• GPIO (HIS)

ejemplo: blinking_hisio

Page 23: Porting de FreeOSEK a la plataforma MSP430

Próximos pasos:

• Extender el port para aprovechar todo el

mapa de memoria del microcontrolador.

• Dar soporte al multiplicador por HW.

• Desarrollar una CIAA basada en MSP430

• Mejora del depurador

21

Page 24: Porting de FreeOSEK a la plataforma MSP430

GRACIAS POR SU ATENCIÓN !!!