Download - Porting de FreeOSEK a la plataforma MSP430
![Page 1: Porting de FreeOSEK a la plataforma MSP430](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/1.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/2.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/3.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/4.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/5.jpg)
POSIX
HIS
Estructura Firmware CIAA
5
![Page 6: Porting de FreeOSEK a la plataforma MSP430](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/6.jpg)
• 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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/7.jpg)
• 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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/8.jpg)
FreeOSEK & HIS
7
![Page 9: Porting de FreeOSEK a la plataforma MSP430](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/9.jpg)
• 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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/10.jpg)
• 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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/11.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/12.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/13.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/14.jpg)
Slide 13
3 IdemAriel Lutenberg, 22/11/2016
![Page 15: Porting de FreeOSEK a la plataforma MSP430](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/15.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/16.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/17.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/18.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/19.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/20.jpg)
Herramientas de desarrollo
18
![Page 21: Porting de FreeOSEK a la plataforma MSP430](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/21.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/22.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/23.jpg)
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](https://reader031.vdocumento.com/reader031/viewer/2022012516/618fab51f61caf16c82b3fd3/html5/thumbnails/24.jpg)
GRACIAS POR SU ATENCIÓN !!!