SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Bootloader: Teoria de operação e implementação via USB para PIC Slide 1
Bootloader: Teoria de operação e implementação
via USB para PIC
Eng. Daniel Rodrigues de Sousa
Universidade Cruzeiro do Sul - UNICSUL
Bootloader: Teoria de operação e implementação via USB para PIC Slide 2
Sobre o palestrante…
 Daniel Rodrigues de Sousa
Engenheiro eletricista formado pela Universidade Cruzeiro do
Sul - 2001
Autor dos livros Microcontroladores ARM7 – O poder dos 32
bits, Desbravando o PIC24 – Conheça os Microcontroladores de
16 bits, Desbravando o PIC18 – Recursos Avançados,
Desbravando o Desbravando o PIC18 – Ensino Didático, todos
pela Editora Érica
Bootloader: Teoria de operação e implementação via USB para PIC Slide 3
Agenda
Básico sobre Bootloader
Desenvolvimento de Bootloader
Mapeamento da aplicação
Soluções Microchip
Exemplos
Bootloader: Teoria de operação e implementação via USB para PIC Slide 4
Microcontrolador PIC
Bootloader: Teoria de operação e implementação via USB para PIC Slide 5
Por quê bootloader?
Bootloader: Teoria de operação e implementação via USB para PIC Slide 6
Programando sem bootloader
Necessário treinamento de pessoal
Programadores caros
Softwares adicionais
Bootloader: Teoria de operação e implementação via USB para PIC Slide 7
Programando com bootloader
Upgrade de firmware - DIY
Sem hardware adicional
Aplicação host (PC) simplificada
Evita caros recalls
USB/UART/ Ethernet
Bootloader: Teoria de operação e implementação via USB para PIC Slide 8
Exemplos reais
Atualização de firmware em:
MP3 Players
Telefone celular
Setup boxes
Satélites (aplicações espaciais)
No PC, instalação do sistema
operacional usando uma pendrive
ou CD ROM “bootável”
Bootloader: Teoria de operação e implementação via USB para PIC Slide 9
Concepção
Bootloader: Teoria de operação e implementação via USB para PIC Slide 10
Concepção
Aplicação
Memória de programa (Memória Flash)
Bootloader
Reset
Partição
Aplicação rodando
Bootloader: Teoria de operação e implementação via USB para PIC Slide 11
Concepção
Memória de programa (Memória Flash)
Bootloader
Reset
Erase
Bootloader: Teoria de operação e implementação via USB para PIC Slide 12
Concepção
Nova
aplicação
Memória de programa (Memória Flash)
Bootloader
Reset
Programação
Bootloader: Teoria de operação e implementação via USB para PIC Slide 13
Fluxograma
Reset
Modo de atualização de FW
Roda aplicação
Ini. Clocks/Periféricos
Trigger presente? sim
Aplicação válid.?
não
Entra em loop e
executa
comandos do PC
Reset
Comando
Bootloader: Teoria de operação e implementação via USB para PIC Slide 14
Comandos do Bootloader
Bootloader: Teoria de operação e implementação via USB para PIC Slide 15
Comandos do bootloader
Comando de atualização de Firmware
Erase Flash
Program Flash
Verify Flash
Bootloader: Teoria de operação e implementação via USB para PIC Slide 16
Sequência de comandos
PC
Erase (Start Address, End Address)
Program (Hex Record)
Erases
Flash
Programs
Hex
Record
Ack
Ack
Verify (Start Address, End Address)
Calculates
CRC
CRC
Calculates
CRC
Compare
CRCs Verificação OK
se ambos CRC forem iguais
PIC Bootloader
Bootloader: Teoria de operação e implementação via USB para PIC Slide 17
Projetando Bootloader
Bootloader: Teoria de operação e implementação via USB para PIC Slide 18
Desenvolvimento em Embedded Host
 Alternativa: Usar um PC no lugar de um
microcontrolador
 Custo alto e um exagero para sistemas embarcados
 Solução: implementar um Embedded Host
Bootloader: Teoria de operação e implementação via USB para PIC Slide 19
Embedded Host
 Embedded Host conectas com um número fixo de
periféricos USB – Drivers USB fixos no firmware
 Ventagens: Pequeno, firmware embarcado pouco
complexo
 Exemplo: Datalogger remoto de temperatura
 Download dos dados em uma pendrive
 Sem conexão com o PC, mas você pode ler os dados
gravados na pendrive
Bootloader: Teoria de operação e implementação via USB para PIC Slide 20
Periférico USB Device
 Responde ao Host, não inicializa uma
comunicação
 Requer drivers para ser reconhecido pelo Host
 Hardware/Firmware para responder ao Host
Bootloader: Teoria de operação e implementação via USB para PIC Slide 21
O que devo saber?
 Arquitetura de memória
 Particionando a Flash
 Lidar com interrupções
 Lidar com configurações de
devices (registradores)
 Registradores de controle da Flash
 Básico sobre Linker Script
 Edição de Linker Script
Bootloader: Teoria de operação e implementação via USB para PIC Slide 22
Arquitetura de memória do
PIC18
Bootloader: Teoria de operação e implementação via USB para PIC Slide 23
Memória RAM (Mem. de dados)
Access RAM PIC18Fxxxx
Register File Map
000h
07Fh
256 Bytes
Bank 0 GPR
Bank 1
GPR
Bank 2
GPR
Bank 13
GPR
Bank 14
GPR
Bank 15 GPR
Access SFR
Access RAM
Access SFR
080h
0FFh
100h
1FFh
200h
2FFh
D00h
DFFh
E00h
EFFh
F00h
FFFh
F7Fh
F80h
00h
7Fh
80h
FFh
Access Bank
 Memória de dados
até 4 Kbytes
 Dividido em
bancos de 256
bytes
 Metade do banco
0 e metade do
banco 15 forma
um banco virtual
para acesso
rápido de
registradores
Bootloader: Teoria de operação e implementação via USB para PIC Slide 24
Memória de Flash (Mem. de programa)
On-chip Program Memory
Reset Vector
High Priority Interrupt Vector
Low Priority Interrupt Vector
000000h
000008h
000018h
1FFFFEh
Unimplemented
Program Memory
(Read as ‘0’)
008000h
007FFEh
21-bit Program Counter
31 Level Stack
Stack Level 1
Stack Level 2
Stack Level 30
Stack Level 31
Memória contínua, contador
deprograma capaz de
gerenciar até 2Mbytes
Bootloader: Teoria de operação e implementação via USB para PIC Slide 25
Arquitetura de memória do
dsPIC e PIC24
Bootloader: Teoria de operação e implementação via USB para PIC Slide 26
 Máximo 12 MB
 4M x 24-bit
 23-bit PC (PCH & PCL)
 PC incrementa em
words (LSB sempre ‘0’)
 Reset Vector no end 0
 Duas tabelas de
interrupções
 Espaço de código de
usuário de 200h to
7FFFFEh
000000h
7FFFFEh
FFFFFEh
PC<22:1>0 0
023
ConfigSpaceUserSpace
Unimplemented
Device ID
Config Registers
On-Chip User Flash
Memory
Alternate Vector Table
Flash Config Words
Reset Vector
Interrupt Vector Table
000004h
000104h
000200h
Memória de Flash (Mem. de programa)
Bootloader: Teoria de operação e implementação via USB para PIC Slide 27
Near Data
Memory
8 KB
Unimplemented
Optionally Mapped
into
Program Memory
Using PSV
0x8001
0xFFFF
0x8000
0xFFFE
SRAM Space
X Data Ram
0x0801 0x0800
Y Data Ram 0x1FFE
SFR Space
0x0001 0x0000
0x07FF 0x07FE
2 KB
SFR Space
MS Byte
Address
LS Byte
Address
16-bits
MSB LSB
Dual Port RAMUp to 2 KB
Dual-Port
DMA RAM
Memória RAM (Mem. de dados)
Bootloader: Teoria de operação e implementação via USB para PIC Slide 28
Arquitetura de memória do
PIC32
Bootloader: Teoria de operação e implementação via USB para PIC Slide 29
Arquitetura de memória do PIC32
Mapa de mem.
física
Dev Config Reg
Boot Flash
Reserved
SFRs
Reserved
Program Flash
Reserved
RAM
0x1FC02FFF
0x00000000
Mapa de mem. virtual
Dev Config Reg
Boot Flash
Reserved
SFRs
Reserved
Program Flash
Reserved
RAM
0xBFC02FFF
0xA0000000
KSEG1
Dev Config Reg
Boot Flash
Reserved
Program Flash
Reserved
RAM
0x9FC02FFF
0x80000000
KSEG0
Bootloader: Teoria de operação e implementação via USB para PIC Slide 30
Boot Flash
Aplicação
Flash
Bootloader
Aplicação
Opção 1
Particionando a Flash
Bootloader: Teoria de operação e implementação via USB para PIC Slide 31
Particionando a Flash
Boot Flash
Aplicação
Flash
Opção 2
Bootloader Part-1
Bootloader Part-2
Aplicação
Bootloader: Teoria de operação e implementação via USB para PIC Slide 32
Manipulando os registradores de
configuração
Boot Flash
Aplicação
Flash
101000010
001010111
110111010011101
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Device
Configuration
Register
Settings
Bootloader.hex
101000010
001010111
110111010011101
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Device
Configuration
Register
Settings
Application.hex
Bootloader: Teoria de operação e implementação via USB para PIC Slide 33
Boot Flash
Aplicação
Flash
101000010
001010111
110111010011101
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Device
Configuration
Register
Settings
Bootloader.hex
101000010
001010111
110111010011101
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Device
Configuration
Register
Settings
Application.hex
No Over-
writing
Manipulando os registradores de
configuração
Bootloader: Teoria de operação e implementação via USB para PIC Slide 34
Dicas de desenvolvimento:
 Implementar um “check” no bootloader
para evitar sobre escrita ou apagamento
dos registradores de configuração
 Aplicação “reusa” configurações setadas
no bootloader
Manipulando os registradores de
configuração
Bootloader: Teoria de operação e implementação via USB para PIC Slide 35
Mapepando
Aplicação/Bootloader
Bootloader: Teoria de operação e implementação via USB para PIC Slide 36
Por quê falar do Linker?
Aplicação
Memória de programa Flash
Bootloader
Reset
Partição
Bootloader: Teoria de operação e implementação via USB para PIC Slide 37
Fluxograma de compilação
User Input
Bootloader: Teoria de operação e implementação via USB para PIC Slide 38
Juntando os arquivos .hex
1101000010
0010101111
110111010111011
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Bootloader.hex
Application.hex
1101000010
0010101111
110111010111011
110101010101110
101110111101110
110111010101001
110101010101010
101010101010111
001010100011111
111110011111101
Bootloader: Teoria de operação e implementação via USB para PIC Slide 39
 Merge da imagem da Aplicação e
Bootloader para programação em
produção
 Remove as seções sobrepostas
Juntando os arquivos .hex
Existe alguma
ferramenta?
Bootloader: Teoria de operação e implementação via USB para PIC Slide 40
Recursos
 Ferramenta de linha de comando
do compilador HI-TECH C®
 Junta 2 arquivos .hex para
produzir um único arquivo .hex
 Remove todas as seções
sobrepostas automaticamente
HexMate – Merge de .hex
Bootloader: Teoria de operação e implementação via USB para PIC Slide 41
 Uso
 A opção “+” retira seções sobrepostas
do bootloader
HexMate – Merge de .hex
Bootloader: Teoria de operação e implementação via USB para PIC Slide 42
PIC16F1/PIC18F
Small, Low Power, Low Cost
Up to 16 MIPS
14- to 80-Pin Packages
Up to 128KB Flash
Up to 4KB RAM
USB 2.0 Device Support
Migration
Performance
100+ USB PIC MCUs
The industry’s strongest
scalable product, family,
and software migration
path
Microcontrolador PIC USB Portfolio
PIC24F/PIC24E/dsPIC33E
Low Power, GPU, DSP Engine
Up to 70 MIPS
28- to 144-Pin Packages
Up to 512 KB Flash
Up to 96KB RAM
USB 2.0 Device, Embedded Host, OTG
PIC32
High Performance, Pin Compatible to PIC24F
80 MHz, 1.53 DMIPS/MHz
Up to 80 MIPS
28- to 100-Pin Packages
Up to 512 KB Flash
Up to 128 KB RAM
USB 2.0 Device, Embedded Host, OTG
32-bit
8-bit
16-bit
Bootloader: Teoria de operação e implementação via USB para PIC Slide 43
Ôba, código… :D
Bootloader: Teoria de operação e implementação via USB para PIC Slide 44
Obrigado!
http://www.portalmcu.com.br
@PortalMCU
https://www.facebook.com/portalmcu
daniel_rsousa@hotmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisFabio Souza
 
Placa de vídeo, Placa de Som e Placa de Rede
Placa de vídeo, Placa de Som e Placa de RedePlaca de vídeo, Placa de Som e Placa de Rede
Placa de vídeo, Placa de Som e Placa de RedeVictor Nunes
 
Amplificateur opérationnel
Amplificateur opérationnelAmplificateur opérationnel
Amplificateur opérationnelmrabdellah
 
Fully depleted silicon insulator
Fully depleted silicon insulatorFully depleted silicon insulator
Fully depleted silicon insulatorsandeep sandy
 
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI Alliance
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONIAEME Publication
 
Tipos padronizados de cargas
Tipos padronizados de cargasTipos padronizados de cargas
Tipos padronizados de cargasAngelo Hafner
 
Regras e projetos de instalação de quadros elétricos
Regras e projetos de instalação de quadros elétricosRegras e projetos de instalação de quadros elétricos
Regras e projetos de instalação de quadros elétricosClaudio Arkan
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.pptsaidmahfoud2
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Deepak Shankar
 
Chave seccionadora, Sensor indutivo e Relé temporizador
Chave seccionadora, Sensor indutivo e Relé temporizadorChave seccionadora, Sensor indutivo e Relé temporizador
Chave seccionadora, Sensor indutivo e Relé temporizadorJoão Vitor Pereira Mendes
 
OPAL-RT RT13: OP5600 & OP7000 hardware
OPAL-RT RT13: OP5600 & OP7000 hardwareOPAL-RT RT13: OP5600 & OP7000 hardware
OPAL-RT RT13: OP5600 & OP7000 hardwareOPAL-RT TECHNOLOGIES
 

Was ist angesagt? (20)

Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
Placa de vídeo, Placa de Som e Placa de Rede
Placa de vídeo, Placa de Som e Placa de RedePlaca de vídeo, Placa de Som e Placa de Rede
Placa de vídeo, Placa de Som e Placa de Rede
 
Amplificateur opérationnel
Amplificateur opérationnelAmplificateur opérationnel
Amplificateur opérationnel
 
Fully depleted silicon insulator
Fully depleted silicon insulatorFully depleted silicon insulator
Fully depleted silicon insulator
 
Formation stm32
Formation stm32Formation stm32
Formation stm32
 
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard ImplementationsMIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
MIPI DevCon 2016: Testing of MIPI High Speed PHY Standard Implementations
 
UVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATIONUVM ARCHITECTURE FOR VERIFICATION
UVM ARCHITECTURE FOR VERIFICATION
 
Tipos padronizados de cargas
Tipos padronizados de cargasTipos padronizados de cargas
Tipos padronizados de cargas
 
Chap4
Chap4Chap4
Chap4
 
Regras e projetos de instalação de quadros elétricos
Regras e projetos de instalação de quadros elétricosRegras e projetos de instalação de quadros elétricos
Regras e projetos de instalação de quadros elétricos
 
presentation pic 16f84.ppt
presentation pic 16f84.pptpresentation pic 16f84.ppt
presentation pic 16f84.ppt
 
SoC Design
SoC DesignSoC Design
SoC Design
 
Soft ssw05
Soft ssw05Soft ssw05
Soft ssw05
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Processadores
ProcessadoresProcessadores
Processadores
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
 
Chave seccionadora, Sensor indutivo e Relé temporizador
Chave seccionadora, Sensor indutivo e Relé temporizadorChave seccionadora, Sensor indutivo e Relé temporizador
Chave seccionadora, Sensor indutivo e Relé temporizador
 
FPGA
FPGAFPGA
FPGA
 
OPAL-RT RT13: OP5600 & OP7000 hardware
OPAL-RT RT13: OP5600 & OP7000 hardwareOPAL-RT RT13: OP5600 & OP7000 hardware
OPAL-RT RT13: OP5600 & OP7000 hardware
 

Andere mochten auch

Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Daniel Rodrigues de Sousa
 
Tcc controle robótico referenciado por sistema de visão computacional utiliza...
Tcc controle robótico referenciado por sistema de visão computacional utiliza...Tcc controle robótico referenciado por sistema de visão computacional utiliza...
Tcc controle robótico referenciado por sistema de visão computacional utiliza...Hamilton Sena
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Daniel Rodrigues de Sousa
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Daniel Rodrigues de Sousa
 
Arquitetura do pic
Arquitetura do picArquitetura do pic
Arquitetura do picSaddam Lande
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-cjlconrado
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladoresAlyson Cavalcante
 
Sistema De Comunicação Bluetooth Usando Microcontrolador PIC
Sistema De Comunicação Bluetooth Usando Microcontrolador PICSistema De Comunicação Bluetooth Usando Microcontrolador PIC
Sistema De Comunicação Bluetooth Usando Microcontrolador PICDavidson Fellipe
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaDaniel Rodrigues de Sousa
 
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
 
Modbus TCP/IP implementation in Siemens S7-300 PLC
Modbus TCP/IP implementation in Siemens S7-300 PLC Modbus TCP/IP implementation in Siemens S7-300 PLC
Modbus TCP/IP implementation in Siemens S7-300 PLC ITER-India, IPR
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CMicrocontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CFabio Souza
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
 

Andere mochten auch (20)

Relatório final
Relatório finalRelatório final
Relatório final
 
IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3IEA - I Workshop em pressão intracraniana - Parte 3
IEA - I Workshop em pressão intracraniana - Parte 3
 
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
 
Tcc controle robótico referenciado por sistema de visão computacional utiliza...
Tcc controle robótico referenciado por sistema de visão computacional utiliza...Tcc controle robótico referenciado por sistema de visão computacional utiliza...
Tcc controle robótico referenciado por sistema de visão computacional utiliza...
 
C pic
C picC pic
C pic
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
 
Existe vida após o Arduino?
Existe vida após o Arduino?Existe vida após o Arduino?
Existe vida após o Arduino?
 
Arquitetura do pic
Arquitetura do picArquitetura do pic
Arquitetura do pic
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
 
10 apostila microcontroladores
10  apostila microcontroladores10  apostila microcontroladores
10 apostila microcontroladores
 
Sistema De Comunicação Bluetooth Usando Microcontrolador PIC
Sistema De Comunicação Bluetooth Usando Microcontrolador PICSistema De Comunicação Bluetooth Usando Microcontrolador PIC
Sistema De Comunicação Bluetooth Usando Microcontrolador PIC
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
 
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
 
Modbus TCP/IP implementation in Siemens S7-300 PLC
Modbus TCP/IP implementation in Siemens S7-300 PLC Modbus TCP/IP implementation in Siemens S7-300 PLC
Modbus TCP/IP implementation in Siemens S7-300 PLC
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?
 
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CMicrocontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
 

Ähnlich wie Bootloader: Teoria de operação e implementação via USB para PIC

Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Instalando o MPLab X e o C18
Instalando o MPLab X e o C18Instalando o MPLab X e o C18
Instalando o MPLab X e o C18Fabio Curty
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdf
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdfPRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdf
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdfestudosfaculdade05fa
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
TIA PORTALSitrain blocos de programação
TIA PORTALSitrain  blocos de programaçãoTIA PORTALSitrain  blocos de programação
TIA PORTALSitrain blocos de programaçãoJuremir Almeida
 
06 blocos de_programação
06 blocos de_programação06 blocos de_programação
06 blocos de_programaçãoconfidencial
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Apostiladepic basic-110602153048-phpapp02
Apostiladepic basic-110602153048-phpapp02Apostiladepic basic-110602153048-phpapp02
Apostiladepic basic-110602153048-phpapp02Yury Pontes
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android Atos Silva
 

Ähnlich wie Bootloader: Teoria de operação e implementação via USB para PIC (20)

Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Ref site pic_bom
Ref site  pic_bomRef site  pic_bom
Ref site pic_bom
 
Instalando o MPLab X e o C18
Instalando o MPLab X e o C18Instalando o MPLab X e o C18
Instalando o MPLab X e o C18
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
MIPS Pipeline
MIPS Pipeline MIPS Pipeline
MIPS Pipeline
 
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdf
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdfPRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdf
PRIMEIROS PASSOS COM O KIT PIC - UNINTER.pdf
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
TIA PORTALSitrain blocos de programação
TIA PORTALSitrain  blocos de programaçãoTIA PORTALSitrain  blocos de programação
TIA PORTALSitrain blocos de programação
 
06 blocos de_programação
06 blocos de_programação06 blocos de_programação
06 blocos de_programação
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Apostiladepic basic-110602153048-phpapp02
Apostiladepic basic-110602153048-phpapp02Apostiladepic basic-110602153048-phpapp02
Apostiladepic basic-110602153048-phpapp02
 
Apostila de pic basic
Apostila de pic basicApostila de pic basic
Apostila de pic basic
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Artigousbparte1
Artigousbparte1Artigousbparte1
Artigousbparte1
 
Bt4 H2HC6th
Bt4 H2HC6thBt4 H2HC6th
Bt4 H2HC6th
 
WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android Recuperar arquivos apagados da memória Interna do Android
Recuperar arquivos apagados da memória Interna do Android
 

Mehr von Daniel Rodrigues de Sousa

Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDaniel Rodrigues de Sousa
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Daniel Rodrigues de Sousa
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Daniel Rodrigues de Sousa
 

Mehr von Daniel Rodrigues de Sousa (6)

IoT arduino
IoT arduinoIoT arduino
IoT arduino
 
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
 
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry PiCriando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
 
Existe vida após o arduino?
Existe vida após o arduino? Existe vida após o arduino?
Existe vida após o arduino?
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
 

Bootloader: Teoria de operação e implementação via USB para PIC

  • 1. Bootloader: Teoria de operação e implementação via USB para PIC Slide 1 Bootloader: Teoria de operação e implementação via USB para PIC Eng. Daniel Rodrigues de Sousa Universidade Cruzeiro do Sul - UNICSUL
  • 2. Bootloader: Teoria de operação e implementação via USB para PIC Slide 2 Sobre o palestrante…  Daniel Rodrigues de Sousa Engenheiro eletricista formado pela Universidade Cruzeiro do Sul - 2001 Autor dos livros Microcontroladores ARM7 – O poder dos 32 bits, Desbravando o PIC24 – Conheça os Microcontroladores de 16 bits, Desbravando o PIC18 – Recursos Avançados, Desbravando o Desbravando o PIC18 – Ensino Didático, todos pela Editora Érica
  • 3. Bootloader: Teoria de operação e implementação via USB para PIC Slide 3 Agenda Básico sobre Bootloader Desenvolvimento de Bootloader Mapeamento da aplicação Soluções Microchip Exemplos
  • 4. Bootloader: Teoria de operação e implementação via USB para PIC Slide 4 Microcontrolador PIC
  • 5. Bootloader: Teoria de operação e implementação via USB para PIC Slide 5 Por quê bootloader?
  • 6. Bootloader: Teoria de operação e implementação via USB para PIC Slide 6 Programando sem bootloader Necessário treinamento de pessoal Programadores caros Softwares adicionais
  • 7. Bootloader: Teoria de operação e implementação via USB para PIC Slide 7 Programando com bootloader Upgrade de firmware - DIY Sem hardware adicional Aplicação host (PC) simplificada Evita caros recalls USB/UART/ Ethernet
  • 8. Bootloader: Teoria de operação e implementação via USB para PIC Slide 8 Exemplos reais Atualização de firmware em: MP3 Players Telefone celular Setup boxes Satélites (aplicações espaciais) No PC, instalação do sistema operacional usando uma pendrive ou CD ROM “bootável”
  • 9. Bootloader: Teoria de operação e implementação via USB para PIC Slide 9 Concepção
  • 10. Bootloader: Teoria de operação e implementação via USB para PIC Slide 10 Concepção Aplicação Memória de programa (Memória Flash) Bootloader Reset Partição Aplicação rodando
  • 11. Bootloader: Teoria de operação e implementação via USB para PIC Slide 11 Concepção Memória de programa (Memória Flash) Bootloader Reset Erase
  • 12. Bootloader: Teoria de operação e implementação via USB para PIC Slide 12 Concepção Nova aplicação Memória de programa (Memória Flash) Bootloader Reset Programação
  • 13. Bootloader: Teoria de operação e implementação via USB para PIC Slide 13 Fluxograma Reset Modo de atualização de FW Roda aplicação Ini. Clocks/Periféricos Trigger presente? sim Aplicação válid.? não Entra em loop e executa comandos do PC Reset Comando
  • 14. Bootloader: Teoria de operação e implementação via USB para PIC Slide 14 Comandos do Bootloader
  • 15. Bootloader: Teoria de operação e implementação via USB para PIC Slide 15 Comandos do bootloader Comando de atualização de Firmware Erase Flash Program Flash Verify Flash
  • 16. Bootloader: Teoria de operação e implementação via USB para PIC Slide 16 Sequência de comandos PC Erase (Start Address, End Address) Program (Hex Record) Erases Flash Programs Hex Record Ack Ack Verify (Start Address, End Address) Calculates CRC CRC Calculates CRC Compare CRCs Verificação OK se ambos CRC forem iguais PIC Bootloader
  • 17. Bootloader: Teoria de operação e implementação via USB para PIC Slide 17 Projetando Bootloader
  • 18. Bootloader: Teoria de operação e implementação via USB para PIC Slide 18 Desenvolvimento em Embedded Host  Alternativa: Usar um PC no lugar de um microcontrolador  Custo alto e um exagero para sistemas embarcados  Solução: implementar um Embedded Host
  • 19. Bootloader: Teoria de operação e implementação via USB para PIC Slide 19 Embedded Host  Embedded Host conectas com um número fixo de periféricos USB – Drivers USB fixos no firmware  Ventagens: Pequeno, firmware embarcado pouco complexo  Exemplo: Datalogger remoto de temperatura  Download dos dados em uma pendrive  Sem conexão com o PC, mas você pode ler os dados gravados na pendrive
  • 20. Bootloader: Teoria de operação e implementação via USB para PIC Slide 20 Periférico USB Device  Responde ao Host, não inicializa uma comunicação  Requer drivers para ser reconhecido pelo Host  Hardware/Firmware para responder ao Host
  • 21. Bootloader: Teoria de operação e implementação via USB para PIC Slide 21 O que devo saber?  Arquitetura de memória  Particionando a Flash  Lidar com interrupções  Lidar com configurações de devices (registradores)  Registradores de controle da Flash  Básico sobre Linker Script  Edição de Linker Script
  • 22. Bootloader: Teoria de operação e implementação via USB para PIC Slide 22 Arquitetura de memória do PIC18
  • 23. Bootloader: Teoria de operação e implementação via USB para PIC Slide 23 Memória RAM (Mem. de dados) Access RAM PIC18Fxxxx Register File Map 000h 07Fh 256 Bytes Bank 0 GPR Bank 1 GPR Bank 2 GPR Bank 13 GPR Bank 14 GPR Bank 15 GPR Access SFR Access RAM Access SFR 080h 0FFh 100h 1FFh 200h 2FFh D00h DFFh E00h EFFh F00h FFFh F7Fh F80h 00h 7Fh 80h FFh Access Bank  Memória de dados até 4 Kbytes  Dividido em bancos de 256 bytes  Metade do banco 0 e metade do banco 15 forma um banco virtual para acesso rápido de registradores
  • 24. Bootloader: Teoria de operação e implementação via USB para PIC Slide 24 Memória de Flash (Mem. de programa) On-chip Program Memory Reset Vector High Priority Interrupt Vector Low Priority Interrupt Vector 000000h 000008h 000018h 1FFFFEh Unimplemented Program Memory (Read as ‘0’) 008000h 007FFEh 21-bit Program Counter 31 Level Stack Stack Level 1 Stack Level 2 Stack Level 30 Stack Level 31 Memória contínua, contador deprograma capaz de gerenciar até 2Mbytes
  • 25. Bootloader: Teoria de operação e implementação via USB para PIC Slide 25 Arquitetura de memória do dsPIC e PIC24
  • 26. Bootloader: Teoria de operação e implementação via USB para PIC Slide 26  Máximo 12 MB  4M x 24-bit  23-bit PC (PCH & PCL)  PC incrementa em words (LSB sempre ‘0’)  Reset Vector no end 0  Duas tabelas de interrupções  Espaço de código de usuário de 200h to 7FFFFEh 000000h 7FFFFEh FFFFFEh PC<22:1>0 0 023 ConfigSpaceUserSpace Unimplemented Device ID Config Registers On-Chip User Flash Memory Alternate Vector Table Flash Config Words Reset Vector Interrupt Vector Table 000004h 000104h 000200h Memória de Flash (Mem. de programa)
  • 27. Bootloader: Teoria de operação e implementação via USB para PIC Slide 27 Near Data Memory 8 KB Unimplemented Optionally Mapped into Program Memory Using PSV 0x8001 0xFFFF 0x8000 0xFFFE SRAM Space X Data Ram 0x0801 0x0800 Y Data Ram 0x1FFE SFR Space 0x0001 0x0000 0x07FF 0x07FE 2 KB SFR Space MS Byte Address LS Byte Address 16-bits MSB LSB Dual Port RAMUp to 2 KB Dual-Port DMA RAM Memória RAM (Mem. de dados)
  • 28. Bootloader: Teoria de operação e implementação via USB para PIC Slide 28 Arquitetura de memória do PIC32
  • 29. Bootloader: Teoria de operação e implementação via USB para PIC Slide 29 Arquitetura de memória do PIC32 Mapa de mem. física Dev Config Reg Boot Flash Reserved SFRs Reserved Program Flash Reserved RAM 0x1FC02FFF 0x00000000 Mapa de mem. virtual Dev Config Reg Boot Flash Reserved SFRs Reserved Program Flash Reserved RAM 0xBFC02FFF 0xA0000000 KSEG1 Dev Config Reg Boot Flash Reserved Program Flash Reserved RAM 0x9FC02FFF 0x80000000 KSEG0
  • 30. Bootloader: Teoria de operação e implementação via USB para PIC Slide 30 Boot Flash Aplicação Flash Bootloader Aplicação Opção 1 Particionando a Flash
  • 31. Bootloader: Teoria de operação e implementação via USB para PIC Slide 31 Particionando a Flash Boot Flash Aplicação Flash Opção 2 Bootloader Part-1 Bootloader Part-2 Aplicação
  • 32. Bootloader: Teoria de operação e implementação via USB para PIC Slide 32 Manipulando os registradores de configuração Boot Flash Aplicação Flash 101000010 001010111 110111010011101 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101 Device Configuration Register Settings Bootloader.hex 101000010 001010111 110111010011101 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101 Device Configuration Register Settings Application.hex
  • 33. Bootloader: Teoria de operação e implementação via USB para PIC Slide 33 Boot Flash Aplicação Flash 101000010 001010111 110111010011101 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101 Device Configuration Register Settings Bootloader.hex 101000010 001010111 110111010011101 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101 Device Configuration Register Settings Application.hex No Over- writing Manipulando os registradores de configuração
  • 34. Bootloader: Teoria de operação e implementação via USB para PIC Slide 34 Dicas de desenvolvimento:  Implementar um “check” no bootloader para evitar sobre escrita ou apagamento dos registradores de configuração  Aplicação “reusa” configurações setadas no bootloader Manipulando os registradores de configuração
  • 35. Bootloader: Teoria de operação e implementação via USB para PIC Slide 35 Mapepando Aplicação/Bootloader
  • 36. Bootloader: Teoria de operação e implementação via USB para PIC Slide 36 Por quê falar do Linker? Aplicação Memória de programa Flash Bootloader Reset Partição
  • 37. Bootloader: Teoria de operação e implementação via USB para PIC Slide 37 Fluxograma de compilação User Input
  • 38. Bootloader: Teoria de operação e implementação via USB para PIC Slide 38 Juntando os arquivos .hex 1101000010 0010101111 110111010111011 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101 Bootloader.hex Application.hex 1101000010 0010101111 110111010111011 110101010101110 101110111101110 110111010101001 110101010101010 101010101010111 001010100011111 111110011111101
  • 39. Bootloader: Teoria de operação e implementação via USB para PIC Slide 39  Merge da imagem da Aplicação e Bootloader para programação em produção  Remove as seções sobrepostas Juntando os arquivos .hex Existe alguma ferramenta?
  • 40. Bootloader: Teoria de operação e implementação via USB para PIC Slide 40 Recursos  Ferramenta de linha de comando do compilador HI-TECH C®  Junta 2 arquivos .hex para produzir um único arquivo .hex  Remove todas as seções sobrepostas automaticamente HexMate – Merge de .hex
  • 41. Bootloader: Teoria de operação e implementação via USB para PIC Slide 41  Uso  A opção “+” retira seções sobrepostas do bootloader HexMate – Merge de .hex
  • 42. Bootloader: Teoria de operação e implementação via USB para PIC Slide 42 PIC16F1/PIC18F Small, Low Power, Low Cost Up to 16 MIPS 14- to 80-Pin Packages Up to 128KB Flash Up to 4KB RAM USB 2.0 Device Support Migration Performance 100+ USB PIC MCUs The industry’s strongest scalable product, family, and software migration path Microcontrolador PIC USB Portfolio PIC24F/PIC24E/dsPIC33E Low Power, GPU, DSP Engine Up to 70 MIPS 28- to 144-Pin Packages Up to 512 KB Flash Up to 96KB RAM USB 2.0 Device, Embedded Host, OTG PIC32 High Performance, Pin Compatible to PIC24F 80 MHz, 1.53 DMIPS/MHz Up to 80 MIPS 28- to 100-Pin Packages Up to 512 KB Flash Up to 128 KB RAM USB 2.0 Device, Embedded Host, OTG 32-bit 8-bit 16-bit
  • 43. Bootloader: Teoria de operação e implementação via USB para PIC Slide 43 Ôba, código… :D
  • 44. Bootloader: Teoria de operação e implementação via USB para PIC Slide 44 Obrigado! http://www.portalmcu.com.br @PortalMCU https://www.facebook.com/portalmcu daniel_rsousa@hotmail.com