Você está na página 1de 7

Universidade Federal de Itajubá Campus Itajubá

Roteiro de laboratório

Laboratório de microcontroladores ELTD13

Prof. Dr. Gustavo Della Colletta

Versão 2021.1
Roteiro 02
Arquitetura ARM e ambiente de
desenvolvimento Keil

Resumo

Gustavo Della Colletta Esse documento apresenta o roteiro de labo-


Grupo de Microeletr^onica ratório 02 que trata da arquitetura ARM e do
ambiente de desenvolvimento Keil. Quanto à ar-
gustavo.colletta@unifei.edu.br
quitetura ARM, são abordados: CPU, registros
internos, mapa de memória e conceitos de pipe-
lining e arquitetura Havard. Quanto ao ambi-
ente Keil se busca a compreensão de sua interface
gráfica.
Roteiro 02
Arquitetura ARM e ambiente de
desenvolvimento Keil

Atividades
Antes de iniciar as atividades, certifique-se de que a ligação entre o dispositivo
ST-LINK e a placa de treinamento bluepill esteja correta. A Figura 1 mostra a
ligação apropriada. Além disso, nunca se deve alimentar a placa bluepill através
da entrada USB e do dispositivo ST-LINK ao mesmo tempo, uma vez que tal
procedimento pode danificar a placa de treinamento.
O objetivo das atividades é familiarizar os alunos com a interface de depuração
(debug) do ambiente de desenvolvimento Keil. Dessa forma, a realização das ativi-
dades deve considerar a observação dos valores determinados através dos elementos
da interface de depuração.

Figura 1: Ligação correta entre o dispositivo ST-LINK e a placa bluepill.

1
Atividade 1
Execute, passo-a-passo, o programa mostrado na Figura 2. Após a execução
de cada linha de código, anote os valores dos registros R1, R6 e das posições
de memória 0x20000092, 0x20000093, 0x20000094, 0x20000095 e 0x2000096 como
comentários no seu código. O conteúdo dos registros pode ser visualizado no painel
superior esquerdo. Já o conteúdo das posições de memória podem ser visualizados
buscando-se cada um dos endereços no painel inferior direito.
Ao final da atividade, não se esqueça de fechar o projeto. É uma boa prática
trabalhar com um projeto aberto por vez, para evitar equı́vocos (Project → Close
project).

Atividade 2
Execute, passo-a-passo, o programa mostrado na Figura 3. Após a execução de
cada linha de código, anote os valores dos registros R2, R3 e R4 e dos indicadores C
e Z. Todos os valores podem ser acompanhados através do painel superior esquerdo.
Ao final da atividade, não se esqueça de fechar o projeto. É uma boa prática
trabalhar com um projeto aberto por vez, para evitar equı́vocos (Project → Close
project).

Atividade 3
Utilizando o código mostrado na Figura 2, insira pontos de parada nas linhas
7, 13, 19, 25 e 31. Em seguida rode o programa até os pontos de parada inseridos.
Como se trata do mesmo código usado na atividade 1, o projeto criado anterior-
mente pode ser utilizado, bastando-se abri-lo através do menu apropriado (Project
→ Open project).
Ao final da atividade, não se esqueça de fechar o projeto. É uma boa prática
trabalhar com um projeto aberto por vez, para evitar equı́vocos (Project → Close
project).

2
1 EXPORT __main
2 AREA exemplo CODE , READONLY
3 __main
4 ; Posicao 0 x20000092
5 LDR R6 ,=0 x20000092 ; R6 =0 x20000092
6 MOV R1 ,#0 x99 ; R1 =0 x99
7 STRB R1 ,[ R6 ] ; Salva R1 na posicao
8 ; apontada por R6
9
10 ; Posicao 0 x20000093
11 ADD R6 , R6 ,#1 ; R6 = R6 +1
12 MOV R1 ,#0 x85 ; R1 =0 x85
13 STRB R1 ,[ R6 ] ; Salva R1 na posicao
14 ; apontada por R6
15
16 ; Posicao 0 x20000094
17 ADD R6 , R6 ,#1 ; R6 = R6 +1
18 MOV R1 ,#0 x3F ; R1 =0 x3F
19 STRB R1 ,[ R6 ] ; Salva R1 na posicao
20 ; apontada por R6
21
22 ; Posicao 0 x20000095
23 ADD R6 , R6 ,#1 ; R6 = R6 +1
24 MOV R1 ,#0 x63 ; R1 =0 x63
25 STRB R1 ,[ R6 ] ; Salva R1 na posicao
26 ; apontada por R6
27
28 ; Posicao 0 x20000096
29 ADD R6 , R6 ,#1 ; R6 = R6 +1
30 MOV R1 ,#0 x12 ; R1 =0 x12
31 STRB R1 ,[ R6 ] ; Salva R1 na posicao
32 ; apontada por R6
33 END

Figura 2: Código para a atividade 1.

3
1 EXPORT __main
2 AREA exemplo CODE , READONLY
3 __main
4 MOV R2 ,#4 ; R2 =4
5 MOV R3 ,#2 ; R3 =2
6 MOV R4 ,#4 ; R4 =4
7 SUBS R5 , R2 , R3 ; R5 = R2 - R3
8 SUBS R5 , R2 , R4 ; R5 = R2 - R4
9 END

Figura 3: Código para a atividade 2.

Tarefas
1. O processador ARM possui -bits.
2. Os registros de uso geral possuem -bits.
3. Qual é o maior valor que pode ser armazenado em um registro de uso geral?
D^e a resposta em representação hexadecimal.
4. Verdadeiro ou falso? Os registros dos periféricos internos estão mapeados no
espaço de memória.
5. Qual é o maior número de bytes que um dispositivo ARM pode acessar?
6. Verdadeiro ou falso? Não se pode carregar um valor diretamente na memória
SRAM.
7. Todo dispositivo Cortex-M é direcionado para o endereço após o reset.

Entrega
Deverá ser entregue através do SIGAA, um arquivo no formato PDF. O docu-
mento deve apresentar a identificação clara do aluno, incluindo nome, número de
matrı́cula, turma e o número do roteiro de refer^encia.
Para esse roteiro, o arquivo deve conter os códigos comentados das atividades
1 e 2 (não é necessário entregar a atividade 3) e as tarefas respondidas.
O arquivo a ser entregue deve ser nomeado seguido o modelo:

NomeDoAluno Turma Matricula.pdf.


GustavoDellaColletta T1 xxxxxx.pdf

4
Não serão aceitos arquivos com conteúdo ou nomenclatura diferentes das
orientações.

Você também pode gostar