SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Ponteiros e Arquitetura de Microcontroladores
Prof.MSc.Rodrigo Maximiano Antunes de Almeida
Universidade Federal de Itajub´a
rodrigomax@unifei.edu.br
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 1 / 30
Linguagem C
Opera¸c˜oes com Bits
Revis˜ao
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 2 / 30
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit set
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg | mascara ;
Uma linha 1 arg = arg | (1<<bit )
Com define 1 #define BitSet ( arg , bit ) (( arg ) |= (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 3 / 30
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit clear
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg & ˜mascara ;
Uma linha 1 arg = arg & ˜(1<<bit )
Com define 1 #define BitClr ( arg , bit ) (( arg ) &= ˜(1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 4 / 30
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit flip
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg ˆ mascara ;
Uma linha 1 arg = arg ˆ (1<<bit )
Com define 1 #define BitFlp ( arg , bit ) (( arg ) ˆ= (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 5 / 30
Linguagem C
Opera¸c˜oes com Bits
Opera¸c˜ao Bit test
Passo a Passo
1 char bit = 2;
2 char mascara ;
3 mascara = 1 << bit ;
4 arg = arg & mascara ;
Uma linha 1 i f ( arg & (1<<bit ) ) { }
Com define 1 #define BitTst ( arg , bit ) (( arg ) & (1<<bit ) )
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 6 / 30
Ponteiros e Referˆencia
Ponteiros
s˜ao vari´aveis que guardam um endere¸co (localiza¸c˜ao) de mem´oria
os tipos de valores colocados nos endere¸cos de mem´oria s˜ao definidos
na declara¸c˜ao de um ponteiro
´e esse tipo que indica ao compilador a quantidade de mem´oria
necess´aria para armazenar os valores
uma vari´avel do tipo ponteiro aponta para uma vari´avel de um
determinado tipo (char, int, float, double, . . .)
´e necess´ario na declara¸c˜ao de um ponteiro, especificar para qual tipo
de vari´avel ele ir´a apontar
os ponteiros s˜ao declarados com um * antes do nome da vari´avel
Sintaxe
tipo *nomeVariavel;
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 7 / 30
Ponteiros e Referˆencia
1 i n t ∗aux ;
2 f l o a t ∗temp ;
3 char ∗pont ;
aux, temp e pont s˜ao vari´aveis
que armazenam endere¸cos de
mem´oria e n˜ao valores do tipo
int, float, char
* ´e usado quando deseja-se
acessar o valor que est´a na
posi¸c˜ao de mem´oria e n˜ao ao
endere¸co da mem´oria
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 8 / 30
Linguagem C
Operador & e Operador *
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 9 / 30
Linguagem C
Operador & e Operador *
O operador & e o operador * s˜ao utilizados quando se trabalha com
ponteiros
Operador &
obt´em sempre o endere¸co de uma vari´avel (endere¸co de)
como os ponteiros tamb´em s˜ao vari´aveis eles tamb´em ocupam
mem´oria
pode-se obter o endere¸co do ponteiro e ter ponteiros para ponteiros
(m´ultiplos *)
Operador *
o operador * faz o contr´ario do operador &
dado um ponteiro, o operador * acessa o conte´udo apontado por ele
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 10 / 30
Linguagem C
Operador & e Operador *
Exemplo 01 - Ponteiro que referencia um inteiro
1 #include<stdio . h>
2 i n t main ( i n t argc , char ∗argv [ ] ) {
3 i n t x=10;
4 i n t ∗p1 = &x ; // p o n t e i r o para um i n t e i r o
5
6 printf ( "x = %dnn" , x ) ;
7 ∗p1 = 20; //ou p1 [ 0 ] = 20;
8
9 printf ( "p1 = %un" , p1 ) ;
10 printf ( "x = %dn" , x ) ;
11 printf ( "*p1 = %dn" , ∗p1 ) ;
12 printf ( "p1[0] = %dnn" , p1 [ 0 ] ) ;
13 return 0;
14 } // endMain
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 11 / 30
Arquitetura de Microcontroladores
Arquitetura de Microcontroladores
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 12 / 30
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 13 / 30
Arquitetura de Microcontroladores
Acesso `a mem´oria
Acesso `a mem´oria
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 14 / 30
Arquitetura de Microcontroladores
Acesso `a mem´oria
Total de mem´oria dispon´ıvel depende:
Do tamanho da palavra de dados
Do tamanho do ”apontador”
Total de mem´oria embutida no chip
Total de mem´oria anexada `a placa (modo expandido)
A arquitetura Harvard possui dois barramentos
Mem´oria
Dados
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 15 / 30
Arquitetura de Microcontroladores
Acesso `a mem´oria
Stack 1
Stack 31
Reset
Baixa prioridade
Alta prioridade
Memória EEPROM
Não implementado
...
GPR1
GPR3
GPR4
GPR2
Não implementado
SFR
0x0000
0x0008
0x0018
0x0028
0x7FFF
0X8000
0X1FFFFF
0x000
0x0FF
0x200
0x2FF
0x300
0x3FF
0x100
0x1FF
...
0xF60
0xFFF
Vetorde
Interrupção
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 16 / 30
Arquitetura de Microcontroladores
Acesso `a mem´oria
Algumas posi¸c˜oes podem ser de ”tipos”diferentes
RAM
ROM
EEPROM
Algumas n˜ao funcionam como uma mem´oria tradicional
SFR
Vetor de interrup¸c˜ao
Algumas nem s˜ao mem´orias
Portas de entrada e sa´ıda
Registros de timers
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 17 / 30
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 18 / 30
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Clock e tempo de instru¸c˜ao
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 19 / 30
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Multiplica¸c˜ao de inteiros Multiplica¸c˜ao de fracion´arios
1 A = 123456;
2 B = 34567;
3 C = A x B ;
4 //C = 4267503552
5
6 // 1. M u l t i p l i c a r os ←
n´umeros
7 // 123456
8 // ∗ 34567
9 // 4267503552
1 A = 1.23456 x 10 ˆ 5
2 B = 3.4567 x 10 ˆ 4
3 C = A x B
4 //C = 4.267503552 x 10 ˆ9
5
6 // 1. Converter para o mesmo ←
expoente
7 // 12.3456 x 10 ˆ 4
8 // 3.4567 x 10 ˆ 5
9 // 2. M u l t i p l i c a r as mantissas ←
somar o expoente
10 // 12.3456 x 10 ˆ 4
11 // x 3.4567 x 10 ˆ 4
12 // 42.67503552 x 10 ˆ 8
13 // 3. C o r r i g i r quantidade de ←
casas decimais
14 // 4.267503552 x 10 ˆ 9
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 20 / 30
Arquitetura de Microcontroladores
Clock e tempo de instru¸c˜ao
Opera¸c˜ao com: Quantidade Total de tarefas
1 tarefa 104 104
2 tarefas 63 126
3 tarefas 21 63
4 tarefas 12 48
Total 200 341
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 21 / 30
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
Esquema el´etrico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 22 / 30
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 23 / 30
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
Alimenta¸c˜ao
Depende do modelo
PIC18F4550, entre 2 e 5,5 volts
Clock
Xc Externo
RC Externo
RC Interno
Fonte de clock externa
ICSP
Programa¸c˜ao na pr´opria placa
Permite debug
Utiliza alguns pinos do microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 24 / 30
Arquitetura de Microcontroladores
Multiplexa¸c˜ao nos terminais do microcontrolador
Multiplexa¸c˜ao nos terminais do
microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 25 / 30
Arquitetura de Microcontroladores
Multiplexa¸c˜ao nos terminais do microcontrolador
Ex: o oitavo terminal do PIC18F4550.
Pode ser configurado como terminal:
de entrada ou sa´ıda referente ao primeiro bit da porta E (RE0)
de leitura anal´ogica pertencente ao quinto conversor anal´ogico - digital
(AN5)
utilizado para enviar um clock externo de comunica¸c˜ao paralela
(CK1SPP)
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 26 / 30
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
Registros de configura¸c˜ao do
microcontrolador
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 27 / 30
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
O microcontrolador ´e configurado atrav´es de registros especiais
Existem registros que:
alteram o funcinamento b´asico do microcontrolador
modificam o modo de opera¸c˜ao de um terminal
alteram as caracter´ısticas dos perif´ericos dispon´ıveis
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 28 / 30
Arquitetura de Microcontroladores
Esquema el´etrico e circuitos importantes
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 29 / 30
Arquitetura de Microcontroladores
Registros de configura¸c˜ao do microcontrolador
1 // c o n f i g . h
2 #ifndef CONFIG_H
3 #define CONFIG_H
4 // P l l d e s l i g a d o
5 code char at 0x300000 CONFIG1L = 0x01 ;
6 // O s c i l a d o r c/ c r i s t a l ext erno HS
7 code char at 0x300001 CONFIG1H = 0x0C ;
8 // Watchdog c o n t r o l a d o por s o f t w a r e
9 code char at 0x300003 CONFIG2H = 0x00 ;
10 // Sem programa¸c˜ao em baixa tens˜ao
11 code char at 0x300006 CONFIG4L = 0x00 ;
12 #endif //CONFIG H
ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 30 / 30

Weitere ähnliche Inhalte

Andere mochten auch (19)

55 0123 e contendiendo ardientemente por la fe
55 0123 e contendiendo ardientemente por la fe55 0123 e contendiendo ardientemente por la fe
55 0123 e contendiendo ardientemente por la fe
 
50 0405 expectativa
50 0405 expectativa50 0405 expectativa
50 0405 expectativa
 
Presentacion proyectos 2
Presentacion proyectos 2Presentacion proyectos 2
Presentacion proyectos 2
 
Interior del pc
Interior del pcInterior del pc
Interior del pc
 
Dia dos Namorados - Pares românticos
Dia dos Namorados - Pares românticosDia dos Namorados - Pares românticos
Dia dos Namorados - Pares românticos
 
Presentacion acceso de banda ancha a la internet
Presentacion acceso de banda ancha a la internetPresentacion acceso de banda ancha a la internet
Presentacion acceso de banda ancha a la internet
 
Projeto trânsito
Projeto trânsito Projeto trânsito
Projeto trânsito
 
Antecedentes no 1
Antecedentes no 1Antecedentes no 1
Antecedentes no 1
 
Concurso Literário
Concurso LiterárioConcurso Literário
Concurso Literário
 
55 1006 e el libro de exodo #2 (el poder de
55 1006 e el libro de exodo #2 (el poder de55 1006 e el libro de exodo #2 (el poder de
55 1006 e el libro de exodo #2 (el poder de
 
57 0922 hebreos capítulo 7 #2
57 0922 hebreos capítulo 7 #257 0922 hebreos capítulo 7 #2
57 0922 hebreos capítulo 7 #2
 
Xadrez
XadrezXadrez
Xadrez
 
53 0608 a demonologia la esfera física
53 0608 a demonologia la esfera física53 0608 a demonologia la esfera física
53 0608 a demonologia la esfera física
 
Presentación Uno
Presentación UnoPresentación Uno
Presentación Uno
 
Poesia 2010[1]
Poesia 2010[1]Poesia 2010[1]
Poesia 2010[1]
 
A Esquerda dos Jovens
A Esquerda dos JovensA Esquerda dos Jovens
A Esquerda dos Jovens
 
CV_Hugues _Pottier
CV_Hugues _PottierCV_Hugues _Pottier
CV_Hugues _Pottier
 
Ditadura ao Lula
Ditadura ao LulaDitadura ao Lula
Ditadura ao Lula
 
Desenho e geometria (todas as partes)
Desenho e geometria (todas as partes)Desenho e geometria (todas as partes)
Desenho e geometria (todas as partes)
 

Ähnlich wie Acesso à memória e registros

Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorRodrigo Almeida
 
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
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...fesaab
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...Marcelo Barros de Almeida
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAntonioCarlos349007
 
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
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
9. IA 1 - Introdução a programação em Python.pdf
9. IA 1 - Introdução a programação em Python.pdf9. IA 1 - Introdução a programação em Python.pdf
9. IA 1 - Introdução a programação em Python.pdfMilvaNnMarluZz
 
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
 
Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialRodrigo Almeida
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores34macchia34
 

Ähnlich wie Acesso à memória e registros (20)

Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Operações com Bits
Operações com BitsOperações com Bits
Operações com Bits
 
Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontrolador
 
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
 
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
Controle de protótipo movimentado por liga de memória de forma (sma) pelo pc,...
 
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
[2/9] Sistemas embarcados de alto desempenho para tratamento e processamento ...
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Roteiro exp9
Roteiro exp9Roteiro exp9
Roteiro exp9
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptx
 
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
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
9. IA 1 - Introdução a programação em Python.pdf
9. IA 1 - Introdução a programação em Python.pdf9. IA 1 - Introdução a programação em Python.pdf
9. IA 1 - Introdução a programação em Python.pdf
 
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
 
Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricial
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
C pic
C picC pic
C pic
 

Mehr von Rodrigo Almeida

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Rodrigo Almeida
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19Rodrigo Almeida
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenhariasRodrigo Almeida
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Rodrigo Almeida
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Rodrigo Almeida
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio LacerdaRodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de driversRodrigo Almeida
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporaisRodrigo Almeida
 
Definição de processos
Definição de processosDefinição de processos
Definição de processosRodrigo Almeida
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersRodrigo Almeida
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusRodrigo Almeida
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCDRodrigo Almeida
 

Mehr von Rodrigo Almeida (20)

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenharias
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio Lacerda
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de drivers
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporais
 
Kernel cooperativo
Kernel cooperativoKernel cooperativo
Kernel cooperativo
 
Definição de processos
Definição de processosDefinição de processos
Definição de processos
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffers
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virus
 
Comunicação serial
Comunicação serialComunicação serial
Comunicação serial
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCD
 

Acesso à memória e registros

  • 1. Ponteiros e Arquitetura de Microcontroladores Prof.MSc.Rodrigo Maximiano Antunes de Almeida Universidade Federal de Itajub´a rodrigomax@unifei.edu.br ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 1 / 30
  • 2. Linguagem C Opera¸c˜oes com Bits Revis˜ao ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 2 / 30
  • 3. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao Bit set Passo a Passo 1 char bit = 2; 2 char mascara ; 3 mascara = 1 << bit ; 4 arg = arg | mascara ; Uma linha 1 arg = arg | (1<<bit ) Com define 1 #define BitSet ( arg , bit ) (( arg ) |= (1<<bit ) ) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 3 / 30
  • 4. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao Bit clear Passo a Passo 1 char bit = 2; 2 char mascara ; 3 mascara = 1 << bit ; 4 arg = arg & ˜mascara ; Uma linha 1 arg = arg & ˜(1<<bit ) Com define 1 #define BitClr ( arg , bit ) (( arg ) &= ˜(1<<bit ) ) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 4 / 30
  • 5. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao Bit flip Passo a Passo 1 char bit = 2; 2 char mascara ; 3 mascara = 1 << bit ; 4 arg = arg ˆ mascara ; Uma linha 1 arg = arg ˆ (1<<bit ) Com define 1 #define BitFlp ( arg , bit ) (( arg ) ˆ= (1<<bit ) ) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 5 / 30
  • 6. Linguagem C Opera¸c˜oes com Bits Opera¸c˜ao Bit test Passo a Passo 1 char bit = 2; 2 char mascara ; 3 mascara = 1 << bit ; 4 arg = arg & mascara ; Uma linha 1 i f ( arg & (1<<bit ) ) { } Com define 1 #define BitTst ( arg , bit ) (( arg ) & (1<<bit ) ) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 6 / 30
  • 7. Ponteiros e Referˆencia Ponteiros s˜ao vari´aveis que guardam um endere¸co (localiza¸c˜ao) de mem´oria os tipos de valores colocados nos endere¸cos de mem´oria s˜ao definidos na declara¸c˜ao de um ponteiro ´e esse tipo que indica ao compilador a quantidade de mem´oria necess´aria para armazenar os valores uma vari´avel do tipo ponteiro aponta para uma vari´avel de um determinado tipo (char, int, float, double, . . .) ´e necess´ario na declara¸c˜ao de um ponteiro, especificar para qual tipo de vari´avel ele ir´a apontar os ponteiros s˜ao declarados com um * antes do nome da vari´avel Sintaxe tipo *nomeVariavel; ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 7 / 30
  • 8. Ponteiros e Referˆencia 1 i n t ∗aux ; 2 f l o a t ∗temp ; 3 char ∗pont ; aux, temp e pont s˜ao vari´aveis que armazenam endere¸cos de mem´oria e n˜ao valores do tipo int, float, char * ´e usado quando deseja-se acessar o valor que est´a na posi¸c˜ao de mem´oria e n˜ao ao endere¸co da mem´oria ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 8 / 30
  • 9. Linguagem C Operador & e Operador * ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 9 / 30
  • 10. Linguagem C Operador & e Operador * O operador & e o operador * s˜ao utilizados quando se trabalha com ponteiros Operador & obt´em sempre o endere¸co de uma vari´avel (endere¸co de) como os ponteiros tamb´em s˜ao vari´aveis eles tamb´em ocupam mem´oria pode-se obter o endere¸co do ponteiro e ter ponteiros para ponteiros (m´ultiplos *) Operador * o operador * faz o contr´ario do operador & dado um ponteiro, o operador * acessa o conte´udo apontado por ele ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 10 / 30
  • 11. Linguagem C Operador & e Operador * Exemplo 01 - Ponteiro que referencia um inteiro 1 #include<stdio . h> 2 i n t main ( i n t argc , char ∗argv [ ] ) { 3 i n t x=10; 4 i n t ∗p1 = &x ; // p o n t e i r o para um i n t e i r o 5 6 printf ( "x = %dnn" , x ) ; 7 ∗p1 = 20; //ou p1 [ 0 ] = 20; 8 9 printf ( "p1 = %un" , p1 ) ; 10 printf ( "x = %dn" , x ) ; 11 printf ( "*p1 = %dn" , ∗p1 ) ; 12 printf ( "p1[0] = %dnn" , p1 [ 0 ] ) ; 13 return 0; 14 } // endMain ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 11 / 30
  • 12. Arquitetura de Microcontroladores Arquitetura de Microcontroladores ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 12 / 30
  • 13. ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 13 / 30
  • 14. Arquitetura de Microcontroladores Acesso `a mem´oria Acesso `a mem´oria ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 14 / 30
  • 15. Arquitetura de Microcontroladores Acesso `a mem´oria Total de mem´oria dispon´ıvel depende: Do tamanho da palavra de dados Do tamanho do ”apontador” Total de mem´oria embutida no chip Total de mem´oria anexada `a placa (modo expandido) A arquitetura Harvard possui dois barramentos Mem´oria Dados ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 15 / 30
  • 16. Arquitetura de Microcontroladores Acesso `a mem´oria Stack 1 Stack 31 Reset Baixa prioridade Alta prioridade Memória EEPROM Não implementado ... GPR1 GPR3 GPR4 GPR2 Não implementado SFR 0x0000 0x0008 0x0018 0x0028 0x7FFF 0X8000 0X1FFFFF 0x000 0x0FF 0x200 0x2FF 0x300 0x3FF 0x100 0x1FF ... 0xF60 0xFFF Vetorde Interrupção ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 16 / 30
  • 17. Arquitetura de Microcontroladores Acesso `a mem´oria Algumas posi¸c˜oes podem ser de ”tipos”diferentes RAM ROM EEPROM Algumas n˜ao funcionam como uma mem´oria tradicional SFR Vetor de interrup¸c˜ao Algumas nem s˜ao mem´orias Portas de entrada e sa´ıda Registros de timers ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 17 / 30
  • 18. ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 18 / 30
  • 19. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Clock e tempo de instru¸c˜ao ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 19 / 30
  • 20. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Multiplica¸c˜ao de inteiros Multiplica¸c˜ao de fracion´arios 1 A = 123456; 2 B = 34567; 3 C = A x B ; 4 //C = 4267503552 5 6 // 1. M u l t i p l i c a r os ← n´umeros 7 // 123456 8 // ∗ 34567 9 // 4267503552 1 A = 1.23456 x 10 ˆ 5 2 B = 3.4567 x 10 ˆ 4 3 C = A x B 4 //C = 4.267503552 x 10 ˆ9 5 6 // 1. Converter para o mesmo ← expoente 7 // 12.3456 x 10 ˆ 4 8 // 3.4567 x 10 ˆ 5 9 // 2. M u l t i p l i c a r as mantissas ← somar o expoente 10 // 12.3456 x 10 ˆ 4 11 // x 3.4567 x 10 ˆ 4 12 // 42.67503552 x 10 ˆ 8 13 // 3. C o r r i g i r quantidade de ← casas decimais 14 // 4.267503552 x 10 ˆ 9 ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 20 / 30
  • 21. Arquitetura de Microcontroladores Clock e tempo de instru¸c˜ao Opera¸c˜ao com: Quantidade Total de tarefas 1 tarefa 104 104 2 tarefas 63 126 3 tarefas 21 63 4 tarefas 12 48 Total 200 341 ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 21 / 30
  • 22. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 22 / 30
  • 23. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 23 / 30
  • 24. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes Alimenta¸c˜ao Depende do modelo PIC18F4550, entre 2 e 5,5 volts Clock Xc Externo RC Externo RC Interno Fonte de clock externa ICSP Programa¸c˜ao na pr´opria placa Permite debug Utiliza alguns pinos do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 24 / 30
  • 25. Arquitetura de Microcontroladores Multiplexa¸c˜ao nos terminais do microcontrolador Multiplexa¸c˜ao nos terminais do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 25 / 30
  • 26. Arquitetura de Microcontroladores Multiplexa¸c˜ao nos terminais do microcontrolador Ex: o oitavo terminal do PIC18F4550. Pode ser configurado como terminal: de entrada ou sa´ıda referente ao primeiro bit da porta E (RE0) de leitura anal´ogica pertencente ao quinto conversor anal´ogico - digital (AN5) utilizado para enviar um clock externo de comunica¸c˜ao paralela (CK1SPP) ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 26 / 30
  • 27. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador Registros de configura¸c˜ao do microcontrolador ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 27 / 30
  • 28. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador O microcontrolador ´e configurado atrav´es de registros especiais Existem registros que: alteram o funcinamento b´asico do microcontrolador modificam o modo de opera¸c˜ao de um terminal alteram as caracter´ısticas dos perif´ericos dispon´ıveis ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 28 / 30
  • 29. Arquitetura de Microcontroladores Esquema el´etrico e circuitos importantes ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 29 / 30
  • 30. Arquitetura de Microcontroladores Registros de configura¸c˜ao do microcontrolador 1 // c o n f i g . h 2 #ifndef CONFIG_H 3 #define CONFIG_H 4 // P l l d e s l i g a d o 5 code char at 0x300000 CONFIG1L = 0x01 ; 6 // O s c i l a d o r c/ c r i s t a l ext erno HS 7 code char at 0x300001 CONFIG1H = 0x0C ; 8 // Watchdog c o n t r o l a d o por s o f t w a r e 9 code char at 0x300003 CONFIG2H = 0x00 ; 10 // Sem programa¸c˜ao em baixa tens˜ao 11 code char at 0x300006 CONFIG4L = 0x00 ; 12 #endif //CONFIG H ELT024 Ponteiros e Arquitetura de Microcontroladoresrodrigomax@unifei.edu.br 30 / 30