SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
COBEC-SEB 2017
Processadores Cortex M7
Prof. Dr. Marcelo Barros de Almeida
Prof. Dr. Márcio José da Cunha
Instrutores
Prof. Dr. Marcelo Barros
Formado em 1996 pela UNIFEI Itajubá, sempre
atuando na área de desenvolvimento de sistemas
embarcados.
Mestre e doutor pela UFMG.
Atualmente professor na UFU (+3a)
marcelo.barros@ufu.br
(34) 98846-8116
Instrutores
Prof. Dr. Márcio José da Cunha
Formado em 2000 pela UNIP Ribeirão Preto.
Mestre e doutor pela USP/SC.
Professor da FEELT, Controle e automação.
mjcunha@ufu.br
Bibliografia Recomendada
The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4, por
Joseph Yiu (Autor)
Mastering STM32, por Carmine Noviello
Agenda
DuraçãoDuração DescriçãoDescrição
50m
Introdução aos processadores Cortex M e microcontrolador
STM32F7
20m Ecossistema de desenvolvimento da ST Eletronics
30m Hands On: Hello World
20m CMSIS e os componentes RTOS e DSP
30m Coffe break
15m Casos de uso com CMSIS DSP
55m Uso avançado do STM32F7 (DMA, ADC, DAC, Timers)
50m Hands on: Amostragem e processamento de sinais
6
Mercado de
Microcontroladores
http://www.icinsights.com/news/bulletins/Microcontroller-Unit-Shipments-Surge-But-Falling-Prices-Sap-Sales-Growth/
PCs: 260M, 2016 !
ARMs ~25% !
7
Modelo de Negócio da ARM
● A ARM não fabrica chips, somente núcleos de
processadores para licenciamento.
● Outras empresam crias sistemas personalizados
usando esses núcleos.
Processador ou
Microcontrolador ?
9
Profiles ARM Cortex
Cada tipo de núcleo tem um foco específico (profile):
● Cortex A:
– Processador de aplicação, usado em aplicações com display, rede intensa,
elevado processamento. Beaglebone, RPi, Cube, Toradex, smartphones,
tablets, relógios inteligentes, roteadores, servidores…
● Cortex R:
– Foco em aplicações de hard real time, como modems para telefonia, HDD,
SSD. Sendo empregado em modens 5G, por exemplo, e áreas críticas com
redundância (automotiva, aviônica). Suporte a virtualização.
●
Cortex M:
– Aplicações microcontroladas, menos restritivas no quesito real time. Custo
efetivo. Boa parte dos fabricantes do mercado de microcontroladores usam
Cortex M hoje em dia.
● SecureCore:
– Aplicações microcontroladas mas com requisitos de segurança com tamper
detection, ID único, modos de segurança, etc. Smartcards, modems, IoT,
aparelhos fiscais, etc.
10
Evolução dos
processadores ARM
Arquitetura v7E-M: Cortex M7
Arquitetura v8-M: Cortex M23, M33
Arquitetura v8-R: Cortex R52
Arquitetura v8-A: Cortex A32, A53, A57, A72, A73
Diagrama de Blocos de um
Cortex M7
Referência: Apresentação da ARM, “ARM Cortex M7 – Bringing high performance to the Cortex-M processor series
Características do
Cortex M7
● Arquitetura ARMv7E-M (RISC)
● 32 bits de endereçamento (4GB)
● Barramento do tipo Harvard
● Cache de instruções e dados
● Ponto flutuante de dupla precisão
● Divisão e multiplicação por hardware
● Instruções de DSP
● Pipeline de 6 estágios e predição de salto
● Unidade de proteção de memória
Características do
Cortex M7
● NVIC (Nested Vectored Interrupt Controller), com até 240
requisições de interrupção e uma NMI
● Latência fixa de atendimento de interrupções:
– 12 ciclos (sem ponto flutuante)
– 29 ciclos (com ponto flutuante)
– 6 ciclos (quando já interrompido)
● Acesso a bit (áreas de região de memória “bit band”)
● Suporte a O.S. (systick, SP sombreado, PendSV, SVC,
thread mode x handler mode)
● Reuso de código via CMSIS (Cortex Microcontroller
Software Interface Standard)
Compatibilidade da Arquitetura
ARM Cortex M
Conjunto de Instruções do
Cortex M7
Referência: Apresentação da ARM, “ARM Cortex M7 – Bringing high performance to the Cortex-M processor series
16
ARM Cortex M
Comparativo Qualitativo
M0 M0+ M3 M4 M7
Família ARMv6-M ARMv6-M ARMv7-M ARMv7-M ARMv7E-M
Preço ■ ■ ■■■ ■■■■ ■■■■■
Conjunto de
Instruções
■ ■ ■■ ■■■■ ■■■■■
Debug ■ ■ ■■■■ ■■■■ ■■■■■
Tratamento de
Interrupções
■ ■ ■■■ ■■■■ ■■■■■
Desempenho ■ ■ ■■■ ■■■ ■■■■■
Suporte a
RTOS
□ ■ ■■■■ ■■■■ ■■■■
Ponto
Flutuante
□ □ □ ■■■ ■■■■■
DSP ○ ○ ○ ● ●●
DMIPS/MHz 0,84 0,93 1,25 1,25 2,14
Modos de Operação e Estados
● Nem todas as instruções/registros estão
disponíveis em modo não privilegiado (NVIC,
por exemplo)
● Kernel mode x User mode
Registros do processador
Cortex M7
Somente pode ser
usado em thread
mode
SP default, usado
após a inicialização
Program Status Register
Floating point Registers
NVIC (Nested Vectored
Interrupt Controller)● Até 240 entradas de interrupção
● Non-Maskable Interrupt (NMI*)
● Até 16 exceções do processador
● A quantidade de níveis e de interrupções é determinada pelo integrador mas a forma de tratamento é
igual (256 níveis, no máximo, até 128 níveis de preempção). Números mais baixo indicam
interrupções mais prioritárias.
● Exceção x Interrupção x Falha:
– Exceção: evento que altera o fluxo de programa, retornando depois do tratamento
– Uma interrupção é uma exceção (geralmente associado a periférico)
– Falha é uma exceção também (associada ao processador)
* Finalmente !
Exceptions
Inicialização (Reset)
Desempenho dos processadores
Cortex M (EEMBC)
STM
32H743
STM
32F746NG
H6
AM
57xx
C66x
RX231
PIC32M
X795F512L
NXP
K70
STM
32L053
dsPIC33FJ256
M
SP430F5529
ATm
ega2560
0
1
2
3
4
5
6
5,05 5,01
4,72
4,36
3,72
3,4
2,35 2,31
1,11
0,53
CoreMark/MHz
AM
57xx
C66x
STM
32H743
STM
32F746NG
H6
NXP
K70
RX231
PIC32M
X795F512L
dsPIC33FJ256
STM
32L053
M
SP430F5529
ATm
ega2560
0
500
1000
1500
2000
2500
3000
3500
4000 3543,3
2020,6
1082,4
510
139,7 111,7 92,6 75,2 27,7 4,3
CoreMark
AM
57xx
C66x
STM
32H743
STM
32F746NG
H6
NXP
K70
RX231
PIC32M
X795F512L
dsPIC33FJ256
STM
32L053
M
SP430F5529
ATm
ega2560
0
100
200
300
400
500
600
700
800
750
400
216
150
32 30 40 32 25 8
Clock (MHz)
Fonte: http://www.eembc.org/coremark/index.php
STM
32H743
STM
32F746NG
H6
AM
57xx
C66x
RX231
IC32M
X795F512L
NXP
K70
STM
32L053
dsPIC33FJ256
M
SP430F5529
ATm
ega2560
0
10
20
30
40
50
60
24,13
17,07
55,65
8,17
12,42
19,54
4,5
10,25
7,84
12,2
US$
Suporte a Sistema Operacional
● Recursos disponíveis para Sistemas Operacionais de
Tempo Real (RTOS)
– Kernel mode x User mode
● Níveis privilegiados e não privilegiados de acesso
● Stack pointers separados (MSP x PSP)
– SysTick: um temporizador (geralmente de 1ms), usado
como base de tempo para o RTOS
– SVC (Supervisor Call): uma forma de fazer uma chamada
de serviços do sistema (system call), geralmente imediata
– PendSV (Pendable Service Call): outra forma de realizar
uma chamada, mas com baixa prioridade
– Instruções de acesso exclusivo (mutex)

Mais conteúdo relacionado

Mais procurados

Sistemas digitais e analógicos
Sistemas digitais e analógicosSistemas digitais e analógicos
Sistemas digitais e analógicosCarlos Pereira
 
Projet Fin D'étude Application Mobile
Projet Fin D'étude Application MobileProjet Fin D'étude Application Mobile
Projet Fin D'étude Application MobileRim ENNOUR
 
AULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptxAULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptxJEANCLEVERSONPRATAS
 
Application de gestion, suivi,et de sécurité des chantiers en temps réels.
Application  de gestion, suivi,et de sécurité des chantiers en temps réels.Application  de gestion, suivi,et de sécurité des chantiers en temps réels.
Application de gestion, suivi,et de sécurité des chantiers en temps réels.Sabri El gharbi El yahmadi
 
Final présention [recovered]
Final présention [recovered]Final présention [recovered]
Final présention [recovered]Ahmed rebai
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Bomber Man
 
Présentation PFE Computer Vision
Présentation PFE Computer VisionPrésentation PFE Computer Vision
Présentation PFE Computer VisionRihab Ben Rhouma
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfWahideArabe
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesHicham Moujahid
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...Sid Ahmed Benkraoua
 
63300 a2-portas logicas
63300 a2-portas logicas63300 a2-portas logicas
63300 a2-portas logicasJordan Miguel
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...SAAD SARHANI
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoinsIsmahen Traya
 
Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)oxygen999
 

Mais procurados (20)

Sistemas digitais e analógicos
Sistemas digitais e analógicosSistemas digitais e analógicos
Sistemas digitais e analógicos
 
Mobi resto
Mobi restoMobi resto
Mobi resto
 
Projet Fin D'étude Application Mobile
Projet Fin D'étude Application MobileProjet Fin D'étude Application Mobile
Projet Fin D'étude Application Mobile
 
AULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptxAULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptx
 
Application de gestion, suivi,et de sécurité des chantiers en temps réels.
Application  de gestion, suivi,et de sécurité des chantiers en temps réels.Application  de gestion, suivi,et de sécurité des chantiers en temps réels.
Application de gestion, suivi,et de sécurité des chantiers en temps réels.
 
présentation PFE (2)
présentation PFE (2)présentation PFE (2)
présentation PFE (2)
 
Final présention [recovered]
Final présention [recovered]Final présention [recovered]
Final présention [recovered]
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Gcf présentation pfe_final_2
Gcf présentation pfe_final_2Gcf présentation pfe_final_2
Gcf présentation pfe_final_2
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
Présentation PFE Computer Vision
Présentation PFE Computer VisionPrésentation PFE Computer Vision
Présentation PFE Computer Vision
 
Cours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdfCours Système Embarqué et Système d'exploitation mobile.pdf
Cours Système Embarqué et Système d'exploitation mobile.pdf
 
Presentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemesPresentation pfe ingenieur d etat securite reseau et systemes
Presentation pfe ingenieur d etat securite reseau et systemes
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
63300 a2-portas logicas
63300 a2-portas logicas63300 a2-portas logicas
63300 a2-portas logicas
 
Modelo em Espiral
Modelo em EspiralModelo em Espiral
Modelo em Espiral
 
Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...Rapport projet conception et la réalisation d'une application web gestion des...
Rapport projet conception et la réalisation d'une application web gestion des...
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)Presentation of summer Internship (présentation stage d\'été)
Presentation of summer Internship (présentation stage d\'été)
 
zaineb pfe 2014
zaineb pfe 2014zaineb pfe 2014
zaineb pfe 2014
 

Semelhante a COBEC-SEB 2017 Processadores Cortex M7

Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core DuoSamuel Bié
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 
Trabalhos dos alunos: Processadores
Trabalhos dos alunos: ProcessadoresTrabalhos dos alunos: Processadores
Trabalhos dos alunos: Processadoresteixeiraafm1
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAAndré Costa Lima
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Apresentacao
ApresentacaoApresentacao
Apresentacaopcassio23
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 

Semelhante a COBEC-SEB 2017 Processadores Cortex M7 (20)

Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Microarquitetura Intel Core Duo
Microarquitetura Intel Core DuoMicroarquitetura Intel Core Duo
Microarquitetura Intel Core Duo
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Processadores
ProcessadoresProcessadores
Processadores
 
Trabalhos dos alunos: Processadores
Trabalhos dos alunos: ProcessadoresTrabalhos dos alunos: Processadores
Trabalhos dos alunos: Processadores
 
Geração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGAGeração Automática de Autómatos Celulares para FPGA
Geração Automática de Autómatos Celulares para FPGA
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[6/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
G20 arm
G20 armG20 arm
G20 arm
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 

Mais de Marcelo Barros de Almeida

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Marcelo Barros de Almeida
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 

Mais de Marcelo Barros de Almeida (20)

[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[9/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[8/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[7/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[5/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[4/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[3/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32Projeto de Hardware com Microcontroladores STM32
Projeto de Hardware com Microcontroladores STM32
 
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
Criando Placas Eletrônicas com KiCAD (Marcelo Barros)
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Administração de Redes Linux - III
Administração de Redes Linux - IIIAdministração de Redes Linux - III
Administração de Redes Linux - III
 
Administração de Redes Linux - II
Administração de Redes Linux - IIAdministração de Redes Linux - II
Administração de Redes Linux - II
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
Treinamento Qt básico - aula III
Treinamento Qt básico - aula IIITreinamento Qt básico - aula III
Treinamento Qt básico - aula III
 
Treinamento Qt básico - aula II
Treinamento Qt básico - aula IITreinamento Qt básico - aula II
Treinamento Qt básico - aula II
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 

COBEC-SEB 2017 Processadores Cortex M7

  • 1. COBEC-SEB 2017 Processadores Cortex M7 Prof. Dr. Marcelo Barros de Almeida Prof. Dr. Márcio José da Cunha
  • 2. Instrutores Prof. Dr. Marcelo Barros Formado em 1996 pela UNIFEI Itajubá, sempre atuando na área de desenvolvimento de sistemas embarcados. Mestre e doutor pela UFMG. Atualmente professor na UFU (+3a) marcelo.barros@ufu.br (34) 98846-8116
  • 3. Instrutores Prof. Dr. Márcio José da Cunha Formado em 2000 pela UNIP Ribeirão Preto. Mestre e doutor pela USP/SC. Professor da FEELT, Controle e automação. mjcunha@ufu.br
  • 4. Bibliografia Recomendada The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4, por Joseph Yiu (Autor) Mastering STM32, por Carmine Noviello
  • 5. Agenda DuraçãoDuração DescriçãoDescrição 50m Introdução aos processadores Cortex M e microcontrolador STM32F7 20m Ecossistema de desenvolvimento da ST Eletronics 30m Hands On: Hello World 20m CMSIS e os componentes RTOS e DSP 30m Coffe break 15m Casos de uso com CMSIS DSP 55m Uso avançado do STM32F7 (DMA, ADC, DAC, Timers) 50m Hands on: Amostragem e processamento de sinais
  • 7. 7 Modelo de Negócio da ARM ● A ARM não fabrica chips, somente núcleos de processadores para licenciamento. ● Outras empresam crias sistemas personalizados usando esses núcleos.
  • 9. 9 Profiles ARM Cortex Cada tipo de núcleo tem um foco específico (profile): ● Cortex A: – Processador de aplicação, usado em aplicações com display, rede intensa, elevado processamento. Beaglebone, RPi, Cube, Toradex, smartphones, tablets, relógios inteligentes, roteadores, servidores… ● Cortex R: – Foco em aplicações de hard real time, como modems para telefonia, HDD, SSD. Sendo empregado em modens 5G, por exemplo, e áreas críticas com redundância (automotiva, aviônica). Suporte a virtualização. ● Cortex M: – Aplicações microcontroladas, menos restritivas no quesito real time. Custo efetivo. Boa parte dos fabricantes do mercado de microcontroladores usam Cortex M hoje em dia. ● SecureCore: – Aplicações microcontroladas mas com requisitos de segurança com tamper detection, ID único, modos de segurança, etc. Smartcards, modems, IoT, aparelhos fiscais, etc.
  • 10. 10 Evolução dos processadores ARM Arquitetura v7E-M: Cortex M7 Arquitetura v8-M: Cortex M23, M33 Arquitetura v8-R: Cortex R52 Arquitetura v8-A: Cortex A32, A53, A57, A72, A73
  • 11. Diagrama de Blocos de um Cortex M7 Referência: Apresentação da ARM, “ARM Cortex M7 – Bringing high performance to the Cortex-M processor series
  • 12. Características do Cortex M7 ● Arquitetura ARMv7E-M (RISC) ● 32 bits de endereçamento (4GB) ● Barramento do tipo Harvard ● Cache de instruções e dados ● Ponto flutuante de dupla precisão ● Divisão e multiplicação por hardware ● Instruções de DSP ● Pipeline de 6 estágios e predição de salto ● Unidade de proteção de memória
  • 13. Características do Cortex M7 ● NVIC (Nested Vectored Interrupt Controller), com até 240 requisições de interrupção e uma NMI ● Latência fixa de atendimento de interrupções: – 12 ciclos (sem ponto flutuante) – 29 ciclos (com ponto flutuante) – 6 ciclos (quando já interrompido) ● Acesso a bit (áreas de região de memória “bit band”) ● Suporte a O.S. (systick, SP sombreado, PendSV, SVC, thread mode x handler mode) ● Reuso de código via CMSIS (Cortex Microcontroller Software Interface Standard)
  • 15. Conjunto de Instruções do Cortex M7 Referência: Apresentação da ARM, “ARM Cortex M7 – Bringing high performance to the Cortex-M processor series
  • 16. 16 ARM Cortex M Comparativo Qualitativo M0 M0+ M3 M4 M7 Família ARMv6-M ARMv6-M ARMv7-M ARMv7-M ARMv7E-M Preço ■ ■ ■■■ ■■■■ ■■■■■ Conjunto de Instruções ■ ■ ■■ ■■■■ ■■■■■ Debug ■ ■ ■■■■ ■■■■ ■■■■■ Tratamento de Interrupções ■ ■ ■■■ ■■■■ ■■■■■ Desempenho ■ ■ ■■■ ■■■ ■■■■■ Suporte a RTOS □ ■ ■■■■ ■■■■ ■■■■ Ponto Flutuante □ □ □ ■■■ ■■■■■ DSP ○ ○ ○ ● ●● DMIPS/MHz 0,84 0,93 1,25 1,25 2,14
  • 17. Modos de Operação e Estados ● Nem todas as instruções/registros estão disponíveis em modo não privilegiado (NVIC, por exemplo) ● Kernel mode x User mode
  • 18. Registros do processador Cortex M7 Somente pode ser usado em thread mode SP default, usado após a inicialização
  • 21. NVIC (Nested Vectored Interrupt Controller)● Até 240 entradas de interrupção ● Non-Maskable Interrupt (NMI*) ● Até 16 exceções do processador ● A quantidade de níveis e de interrupções é determinada pelo integrador mas a forma de tratamento é igual (256 níveis, no máximo, até 128 níveis de preempção). Números mais baixo indicam interrupções mais prioritárias. ● Exceção x Interrupção x Falha: – Exceção: evento que altera o fluxo de programa, retornando depois do tratamento – Uma interrupção é uma exceção (geralmente associado a periférico) – Falha é uma exceção também (associada ao processador) * Finalmente !
  • 24. Desempenho dos processadores Cortex M (EEMBC) STM 32H743 STM 32F746NG H6 AM 57xx C66x RX231 PIC32M X795F512L NXP K70 STM 32L053 dsPIC33FJ256 M SP430F5529 ATm ega2560 0 1 2 3 4 5 6 5,05 5,01 4,72 4,36 3,72 3,4 2,35 2,31 1,11 0,53 CoreMark/MHz AM 57xx C66x STM 32H743 STM 32F746NG H6 NXP K70 RX231 PIC32M X795F512L dsPIC33FJ256 STM 32L053 M SP430F5529 ATm ega2560 0 500 1000 1500 2000 2500 3000 3500 4000 3543,3 2020,6 1082,4 510 139,7 111,7 92,6 75,2 27,7 4,3 CoreMark AM 57xx C66x STM 32H743 STM 32F746NG H6 NXP K70 RX231 PIC32M X795F512L dsPIC33FJ256 STM 32L053 M SP430F5529 ATm ega2560 0 100 200 300 400 500 600 700 800 750 400 216 150 32 30 40 32 25 8 Clock (MHz) Fonte: http://www.eembc.org/coremark/index.php STM 32H743 STM 32F746NG H6 AM 57xx C66x RX231 IC32M X795F512L NXP K70 STM 32L053 dsPIC33FJ256 M SP430F5529 ATm ega2560 0 10 20 30 40 50 60 24,13 17,07 55,65 8,17 12,42 19,54 4,5 10,25 7,84 12,2 US$
  • 25. Suporte a Sistema Operacional ● Recursos disponíveis para Sistemas Operacionais de Tempo Real (RTOS) – Kernel mode x User mode ● Níveis privilegiados e não privilegiados de acesso ● Stack pointers separados (MSP x PSP) – SysTick: um temporizador (geralmente de 1ms), usado como base de tempo para o RTOS – SVC (Supervisor Call): uma forma de fazer uma chamada de serviços do sistema (system call), geralmente imediata – PendSV (Pendable Service Call): outra forma de realizar uma chamada, mas com baixa prioridade – Instruções de acesso exclusivo (mutex)