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)
|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
|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?
|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
|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
|www.toradex.com Toradex® is a registered trademark of Montadex GmbH
O que é um Computador em Módulo
12/16/2016 6
|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 12/16/2016 7
Colibri iMX7S Colibri iMX7D
A7@800MHz
A7@1GHz
M4@200MHz
RAM: 256MB RAM: 512MB
FLASH: 512MB FLASH: 512MB
Colibri iMX6S Colibri iMX6DL
A7@1GHz
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
|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
|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
|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)
|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
|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
|Company Confidentialwww.toradex.com 12/16/2016 13
O Linux
|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
|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
|Company Confidentialwww.toradex.com 12/16/2016 16
Real Time Linux :: RT Patch :: PREEMPT_RT
|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
|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
|Company Confidentialwww.toradex.com 12/16/2016 19
Xenomai
|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
|www.toradex.com Toradex® is a registered trademark of Montadex GmbH
Xenomai APIs
12/16/2016 21
http://xenomai.org/api-reference/
Xenomai
|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
|Company Confidentialwww.toradex.com 12/16/2016 23
HMP :: Heterogeneous Multicore Processing
|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
|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
|www.toradex.com Toradex® is a registered trademark of Montadex GmbH 26
NXP i.MX7 HMP Architecture
i.MX7 HMP
|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
|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
|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
|www.toradex.com Toradex® is a registered trademark of Montadex GmbH
TAQ – Balancing Robot
i.MX7 HMP
30
|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
Top Related