investigación | fiuba - facultad de...
TRANSCRIPT
![Page 1: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/1.jpg)
sAPI (simpleAPI): diseño e implementación
de una biblioteca para sistematizar
la programación de sistemas embebidos
Esp. Ing. Eric Nicolás Pernia
FACULTADDE INGENIERIAUniversidad de Buenos Aires
MAESTRÍA EN SISTEMAS EMBEBIDOS
MSc. Ing. Félix Gustavo Emilio Safar (UNQ) • Dr. Ing. Pablo Martín Gómez (FIUBA)• Mg. Ing. Pablo Oscar Ridolfi (UTN-FRBA, FIUBA)• Ing. Juan Manuel Cruz (FIUBA,UTN-FRBA)
Jurados:Director:
Trabajo Final
Diciembre 2018
![Page 2: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/2.jpg)
Agenda
1. Introducción
2. Diseño e implementación.
3. Demostración.
4. Ensayos y Resultados.
5. Conclusiones.
1
![Page 3: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/3.jpg)
2
1.1. Motivación y contexto.
1.2. Objetivos.
1.3. Plataformas del Proyecto CIAA.
1.4. Requerimientos y planificación.
1. Introducción
![Page 4: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/4.jpg)
Motivación y contexto
¡Son todos distintos!
Lenguajes de programación.
Arquitecturas de MCUs y SoCs
y sus bibliotecas provistas.
En sistemas embebidos:
3
Programar todas las plataformas del proyecto CIAA
utilizando la misma biblioteca.
Necesidad de automatizar tareas repetitivas.
![Page 5: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/5.jpg)
Objetivos
Uso para educación e industrial.
Independiente de la arquitectura y lenguajes de programación.
Implementar en C para las plataformas del Proyecto CIAA.
Definir una API sencilla.
Diseñar e implementar una biblioteca con las siguientes características:
4
![Page 6: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/6.jpg)
NXP
Microcontrolador:
Fcpu: 204 MHz.
NXP LPC4337 JDB144
(Cortex M4F y M0).
SRAM: 136 KB.
Flash: 1 MB.
CIAA-NXP:
Uso industrial.
EDU-CIAA-NXP:
Uso educativo y
prototipado.
5
Plataformas del proyecto CIAA
![Page 7: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/7.jpg)
Plataformas del proyecto CIAA
Microcontrolador:
Flash: 512 KB.
Adquisición y procesamiento en
tiempo real para una SBC.
NXP LPC 54102 J512 BD64
(Cortex M4F y M0+).
picoCIAA:
Fcpu: 100 MHz.
SRAM: 104 KB.
Fcpu: 25 MHz.
Silicon Labs EFM32HG 322F64
QFP48 (Cortex M0+).
Uso educativo y prototipado
(robótica y aplicaciones de bajo
consumo).
Microcontrolador:
Flash: 64 KB.
SRAM: 8 KB.
CIAA-Z3R0:
6
![Page 8: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/8.jpg)
7
Requerimientos:
REQ.2. Diseño de la biblioteca.
Planificación:
REQ.3. Implementación de la biblioteca.
REQ.1. Fecha de finalización: 19/11/2018.
REQ.4. Documentación y difusión.
Requerimientos y planificación
![Page 9: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/9.jpg)
8
2.1. Descripción general.
2.2. Modelo de plataforma de hardware.
2.3. Módulos de biblioteca.
2.4. Implementación de drivers específicos.
2.5. Generador de biblioteca.
2. Diseño e implementación.
![Page 10: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/10.jpg)
Descripción general
9
![Page 11: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/11.jpg)
10
Partes independientes del Hardware
![Page 12: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/12.jpg)
Board, Component, Connection, Terminal, SoC, Connector,
ComponentWithDriver, IpCore, entre otros.
Modelo de plataforma de hardware
Se modelaron:
11
Diagrama de clases de board
![Page 13: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/13.jpg)
Módulos de biblioteca
12
Los módulos de biblioteca definen:
API: modos de uso de bajo y alto nivel.
Manejo de eventos (encuesta e interrupción).
Nombre, descripción, versión, dependencias autor y licencia.
Tipos de datos, constantes y modos de acceso de parámetros
de métodos, propiedades y métodos.
Periféricos: GPIO, ADC, DAC, UART, SPI, I2C, RTC y TIMER.
Ejemplos: init() read[ | ]( [ ] )Sync timeoutAsync . write[ | ]( [ ] )Sync timeoutAsync
![Page 14: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/14.jpg)
13
![Page 15: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/15.jpg)
14
Partes dependientes del Hardware
![Page 16: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/16.jpg)
15
![Page 17: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/17.jpg)
16
Se genera:
Documentación de la
biblioteca en lenguaje
Markdown.
Código de la biblioteca en
lenguaje C.
![Page 18: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/18.jpg)
17
3. Demostración.
![Page 19: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/19.jpg)
18
![Page 20: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/20.jpg)
19
4.1. Verificación del diseño de la biblioteca.
4.2. Verificación de implementación.
4.2.1. Herramientas y servicios utilizados.
4.2.2. Tests automáticos.
4.2.4. Tests en hardware.
4.2.5. Metodología de desarrollo.
4.3. Validación.
4.4. Documentación.
4. Ensayos y Resultados.
![Page 21: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/21.jpg)
Verificación del diseño de la biblioteca
Verificación de REQ.2 mediante revisión por pares.
Realizado de forma iterativa e incremental, con dos revisores
distintos.
Muchas gracias Martín Ribelotta y Alejandro Celery.
20
![Page 22: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/22.jpg)
Herramientas y servicios utilizados
Compilación de C/C++
Make + GNU ARMEmbedded Toolchain
Descarga a la plataformaMake + Open OCD
Tests unitarios en C
MinutMinimal Unit Testing for C
LocalC/C++ JavaScript
versiones de software
Servidor de Integracióncontínua
Servidor de control de
Remoto
IDE para C/C++
MCU
Tests unitarios en JS
Entorno de ejecuciónpara JavaScript
IDE para JavaScript
Visual Studio Code
ST
-LIN
K V
2S
TM
8 &
ST
M32
GN
DG
ND
3.3
V3.3
V
RS
T
SW
IM
5.0
V
SW
CL
K
SW
DIO
5.0
V
2 4 6 108
1 3 5 97
21
Verificación de los requerimientos de implementación
![Page 23: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/23.jpg)
22
Tests automáticos: generador de biblioteca en JavaScript
Verificación de los requerimientos de implementación
![Page 24: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/24.jpg)
23
Tests automáticos: compilación para ejemplos de uso en C
Verificación de los requerimientos de implementación
![Page 25: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/25.jpg)
24
Tests en hardware
Verificación de los requerimientos de implementación
ST
-LIN
K V
2S
TM
8 &
ST
M32
GN
DG
ND
3.3
V3.3
V
RS
T
SW
IM
5.0
V
SW
CL
K
SW
DIO
5.0
V
24610 8
1359 7
![Page 26: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/26.jpg)
25
Verificación de los requerimientos de implementación
Tests en hardware
![Page 27: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/27.jpg)
Se decide utilizar la siguiente metodología de trabajo:
26
Metodología de desarrollo
Verificación de los requerimientos de implementación
OriginFork
ST
-LIN
K V
2S
TM
8 &
ST
M32
GN
DG
ND
3.3
V3.3
V
RS
T
SW
IM
5.0
V
SW
CL
K
SW
DIO
5.0
V
24610 8
1359 7
Repo local
Pull
Pull
Push
Pull request
a develop
F D R M
r1.0.0
![Page 28: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/28.jpg)
Validación y documentación
Ejemplos de uso de la biblioteca diseñados independientes
de la arquitectura.
Utilización por parte de alumnos de CESE/MSE, IACI y CAPSE.
Documentos para usuario final.
Documentos para desarrolladores27
Validación:
Documentación:
![Page 29: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/29.jpg)
28
5. Conclusiones.
5.1. Sobre el trabajo realizado.
5.2. Próximos pasos.
![Page 30: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/30.jpg)
Sobre el trabajo realizado
Implementaciones de la biblioteca en lenguaje C para las
plataformas del proyecto CIAA.
Biblioteca portable.
Herramientas para ayudar a automatizar la implementación.
Ejemplos funcionales independientes del hardware.
Logros:
29
![Page 31: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/31.jpg)
Ensayo de una metodología que permite asegurar la calidad.
Resultados exitosos en el uso de la biblioteca en educación.
Documentación para usuarios y desarrolladores.
30
Sobre el trabajo realizado (continuación)
![Page 32: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/32.jpg)
Sobre el trabajo realizado (continuación)
Demandó la articulación de conocimientos adquiridos a lo largo
de la CESE y MSE.
Los objetivos planteados han sido alcanzados satisfactoriamente.
Se han obtenido conocimientos y experiencia muy importantes
para la formación profesional.
Conocimientos utilizados
Reflexión
31
![Page 33: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/33.jpg)
Próximos pasos
Implementar la biblioteca en otras plataformas.
Continuar afianzando la metodología de trabajo propuesta.
Concluir las implementaciones de sAPI para las plataformas
del proyecto CIAA.
Tareas estratégicas en el marco del proyecto CIAA
32
![Page 34: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/34.jpg)
Próximos pasos (continuación)
Analizar los archivos CMSIS-SVD para generar el modelo de
SoC.
Investigar los archivos de Kicad para generar el modelo
Board.
Tareas de investigación
33
![Page 35: Investigación | FIUBA - FACULTAD DE INGENIERIAlaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final... · 2019-02-16 · sAPI (simpleAPI): diseño e implementación de una biblioteca](https://reader034.vdocumento.com/reader034/viewer/2022042411/5f28b5df055de90230024d70/html5/thumbnails/35.jpg)
¿Preguntas?
?