desenvolvimento de sistemas de tempo real com linux embarcado · desenvolvimento de sistemas de...

32
Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO Toradex Brasil Agradecimento a: Raul Muñoz, Leonardo Veiga e Brandon Shibley (Todos do time Toradex)

Upload: others

Post on 06-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

Desenvolvimento de Sistemas de Tempo Real

com Linux Embarcado

Guilherme Fernandes

CEO – Toradex Brasil

Agradecimento a: Raul Muñoz, Leonardo Veiga e Brandon Shibley (Todos do time Toradex)

Page 2: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 12/16/2016 2

Toradex Overview

• Fundada em 2003 na Suíça

• Escritórios Globais

• Sistemas em Módulo ARM®

• Indústria, Médica, Agricultura de precisão, IoT

• Linux, Windows Embedded Compact, in-house

• Ferramentas de suporte ao desenvolvimento

• Suporte Gratuito

• Vendas Diretas e Estoque Local

Page 3: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Tendências GlobaisUm mundo conectado e interativo!

12/16/2016 3

Como estas mudanças e evolução de tecnologia desafiam os desenvolvedores de sistemas embarcados?

Page 4: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Aumento da complexidade no desenvolvimento de soluções!

Hardware

• Projetos mais complexos

• Produção mais complexa

• Miniaturização

Software

• Utilização de sistemas operacionais

• Utilização de ferramentas e frameworks prontos

• Abstração

12/16/2016 4

Page 5: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Hardware

• Custo:

12/16/2016 5

Fontes:http://www.nxp.com/https://ciiva.com/part/mk70fn1m0vmj12-3801706http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-processors/i.mx-7-processors/&cof=1&co=Order,p77,status,p259,p257,p805,p190,p191,p812,p53,p817,p825,p80&am=0&tab=Buy_Parametric_Tab

NXP - K70ARM® Cortex®-M4 Core120MHzLCD ControllerUSD 9,65 @1k

NXP – i.MX7ARM® Cortex®-A7 Core – 800MHzARM® Cortex®-M4 Core – 200MHzUSD 8,69 @1k + PMIC + RAM + FLASH

• Projeto:

Webshop

Page 6: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

O que é um Computador em Módulo

12/16/2016 6

Page 7: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 12/16/2016 7

Colibri iMX7S Colibri iMX7D

A7@800MHz

A7@1GHz

[email protected]

M4@200MHz

RAM: 256MB RAM: 512MB

FLASH: 512MB FLASH: 512MB

Colibri iMX6S Colibri iMX6DL

[email protected]

A7@1GHz

[email protected]

RAM: 256MB RAM: 512MB

eMMC: 4GB eMMC: 4GB

GPU Vivante GC880

GPU Vivante GC880

US 80 @ 1US 67 @ 1k

US 75 @ 1US 59 @ 1k

US 60 @ 1US 49 @ 1k

US 65 @ 1US 54 @ 1k

Colibri VF50 Colibri VF61 IT

A5@400MHz

M4@167MHz

A5@500MHz

RAM: 128MB RAM: 256MB

FLASH: 128MB FLASH: 512MB

US 42 @ 1US 33 @ 1k

US 62 @ 1US 47 @ 1k

M4@200MHz

Page 8: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Aumento da complexidade no desenvolvimento de soluções!

Hardware

• Projetos mais complexos

• Produção mais complexa

• Miniaturização

Software

• Utilização de sistemas operacionais

• Utilização de ferramentas e frameworks prontos

• Abstração

12/16/2016 8

Page 9: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Linux Embarcado

12/16/2016 9

https://www.yoctoproject.org/

• Consolidado como o sistema operacional para equipamentos embarcados

– Open Source

– Gratuito?? – Java/Codecs de Video

– Disponibilidade de Ferramentas e Comunidade

https://e-labworks.com/

http://developer.toradex.com/knowledge-base/getting-started-with-toradex-arm-modules

Page 10: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

É possível desenvolver Aplicações RT

com Linux?

12/16/2016 10

• Linux

• RT-Linux

• Xenomai

• Processadores Multicore Heterogêneos (HMP)

Page 11: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 12/16/2016 11

• Latência – Tempo de resposta do sistema a um estímulo

• Jitter – A variação de tempos de latência

• Interrupção – Um gatilho de um evento que pode interromper o sistema

• Mudança de contexto – A mudança do processador de uma tarefa/processo para

outra

• Preempção – O ato de gerar uma mudança de contexto no processador de forma a

permitir a execução de uma tarefa de mais alta prioridade

Real-time Termos e Conceitos

Page 12: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Um simples teste!

12/16/2016 12

400 µS

Jitter

Todos os testes:• Memory Map para acessar o GPIO• Stress/barramento de memória com outras tarefas• Métrica: Medição do Jitter através de um scope

Page 13: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|Company Confidentialwww.toradex.com 12/16/2016 13

O Linux

Page 14: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Linux

12/16/2016 14

• OS Preemptivo

– Esquemas de Preempção

• CONFIG_PREEMPT_NONE: No Forced Preemption (Server)

• CONFIG_PREEMPT_VOLUNTARY: Voluntary Kernel Preemption (Desktop) [DEFAULT]

• CONFIG_PREEMPT: Preemptible Kernel (Low-Latency Desktop)

– Escalonadores de tarefa:

• SCHED_OTHER - CFS https://www.ibm.com/developerworks/library/l-completely-fair-scheduler/

• SCHED_FIFO - RT

• SCHED_RR - RT

– Referência: https://e-labworks.com/treinamentos/programacao-linux /

Standard Linux

Page 15: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

92% of samples 2% of samples6% of samples

Wo

rst

Cas

e: 1

5,1

81

Wo

rst

Cas

e: -

0,3

77

Qu

anti

ty o

f sa

mp

les

Standard Linux

Page 16: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|Company Confidentialwww.toradex.com 12/16/2016 16

Real Time Linux :: RT Patch :: PREEMPT_RT

Page 17: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

RT-Linux

• Projeto oficial da Linux Foundation– https://wiki.linuxfoundation.org/realtime/start

• PREEMPT_RT Patch– “The main aim of the PREEMPT_RT patch is to minimize the amount of kernel code

that is non-preemptible” - https://lwn.net/Articles/146861/ (artigo muito legal!)

• Recursos– http://developer.toradex.com/knowledge-base/real-time-linux

• Toradex Real-Time iMX6 kernel recipe:http://git.toradex.com/cgit/meta-toradex-nxp.git/tree/recipes-kernel/linux/linux-toradex-rt_3.14.52.bb

• Codesys – Software PLC– http://developer.toradex.com/knowledge-base/codesys-software-plc-solution

12/16/2016 17

PREEMPT_RT Linux

Page 18: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

99,998% of samples 0,002% of samples

Wo

rst

Cas

e: 0

,10

6

Wo

rst

Cas

e: 0

,04

0

Samples Histogram :: PREEMPT_RT Kernel Configuration

Qu

anti

ty o

f sa

mp

les

PREEMPT_RT Linux

Page 19: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|Company Confidentialwww.toradex.com 12/16/2016 19

Xenomai

Page 20: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Xenomai

• By supplementing Linux with a real-time

co-kernel running side-by-side with it. This

small extension named Cobalt is built into

the Linux kernel, dealing with all time-

critical activities, such as handling

interrupts, and scheduling real-time

threads. The Cobalt core has higher priority

over the native kernel activities. -

http://xenomai.org/start-here/

12/16/2016 20

Xenomai

Page 21: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Xenomai APIs

12/16/2016 21

http://xenomai.org/api-reference/

Xenomai

Page 22: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

100% of samples

12/16/2016 22

Wo

rst

Cas

e: 0

,01

65

Wo

rst

Cas

e: 0

,01

75

Xenomai

Page 23: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|Company Confidentialwww.toradex.com 12/16/2016 23

HMP :: Heterogeneous Multicore Processing

Page 24: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Uma evolução natural!

12/16/2016 24

https://pt.wikipedia.org/wiki/Intel_8085

Intel 8085

•processador•2k bytes de EPROM ou ROM•256 bytes de RAM•1 timer•3 entradas de interrupção•38 linhas de E/S

i.MX7 HMP

Page 25: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

A evolução dos SoCs (Microprocessadores)

12/16/2016 25

Arquitetura ARM em sistemas Embarcados• Custo Reduzido• Consumo Reduzido• Integração com periféricos• HMP

www.nxp.com/ - Tendência

i.MX7 HMP

Page 26: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 26

NXP i.MX7 HMP Architecture

i.MX7 HMP

Page 27: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Processamento Multicore Heterogêneo

12/16/2016 27

• Interface de usuário elaborada & Tarefas críticas de controle.

• Evolução de software legado de µC para novas tecnologias.

• Necessidade de baixo consumo de energia.

Cortex-ACore

Cortex-MCore “...o melhor dos dois mundos”

Único Processador

i.MX7 HMP

Page 28: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

• Linux Kernel

– Linux 4.1.15

– Rpmsg VirtIO-based TTY driver

• FreeRTOS

– FreeRTOS v8.0.0 kernel

– Varios build systems suportados (DS-5, CMake + gcc, IAR)

– Versão modificada do OpenAMP

– Drivers: ADC, GPIO, I2C, UART, WDOG, ECSPI, FlexCAN

• Algum suporte no Mainline (starting with 4.4)

28

NXP i.MX7 Software

i.MX7 HMP

Page 29: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

Recursos

• Webinar iMX7:

– https://www.toradex.com/pt_br/webinars/archived

• Developer Toradex:

– http://developer.toradex.com/knowledge-base/freertos-on-the-cortex-m4-of-a-colibri-imx7

12/16/2016 29

i.MX7 HMP

Page 30: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH

TAQ – Balancing Robot

i.MX7 HMP

30

Page 31: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento

|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 12/16/2016 31

100% of samples

Wo

rst

Cas

e: 0

,00

05

100% of samples (< 0,25% do período)

i.MX7 HMP

Page 32: Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado · Desenvolvimento de Sistemas de Tempo Real com Linux Embarcado Guilherme Fernandes CEO –Toradex Brasil Agradecimento