1 uma breve introduÇÃo ao simulador armsim#attux/armsim_leandro.pdf · 2015-03-10 · iphone 5s...
TRANSCRIPT
UMA BREVE
INTRODUÇÃO AO
SIMULADOR ARMSIM#
EA075 - Introdução ao Projeto de Sistemas Embarcados.
Profª Drª Leticia Rittner
Prof° Dr° Romis Ribeiro de Faissol Attux
Leandro Aparecido Sangalli (PED)
1
O que é um Sistema Embarcado?
Homer: É um sistema com
estrutura interna (processador,
memória, dispositivo de
armazenamento, etc)
semelhante a de um computador
pessoal dedicado a executar de
forma satisfatória determinada
tarefa.
2
Exemplos de sistemas
embarcados
Smartphones MP3 players
PDAs Internet das
coisas
3
Curiosidades
Smartphones
Samsung Galaxy y (ARMv6)
Samsung Galaxy S4 (ARM Cortex A-9 Quad-
Core)
Iphone 3 (ARM Cortex A8)
Outros modelos de Iphones
Iphone 5s (Apple A7 – ARM 64 bits)
Internet das coisas
Conecta aparelhos do nosso dia-a-dia a
a Internet provendo diferentes serviços.
4
Um dos objetivos da disciplina
EA075
Tentar conciliar o conteúdo teórico discutido
em sala com alguns exemplos práticos
desenvolvidos para um tipo de arquitetura.
Neste caso, ARM.
Simulador ARMSim#
OBSERVAÇÃO IMPORTSNTÍSSIMA: Não
vamos aprender tudo sobre arquiteturas ARM.
“Vamos ficar bem longe disso!”
5
Objetivos com o simulador em
EA075
Objetivo geral:
Utilizar o simulador para auxiliar na compreensão dos conteúdos estudados em sala de aula.
Apresentar de forma sucinta a simplicidade e infinidade de aplicações que podem ser desenvolvidas utilizando arquiteturas ARM.
Objetivo específico:
Desenvolver no decorrer da disciplina o projeto de um sistema embarcado utilizando o simulador ARMSim#. Por exemplo: neste caso, funções de uma
calculadora.
6
Simulador ARMSim#
Desenvolvedores:
Dr° Nigel Horspool (University of Victoria)
Dale Lyons (University of Victoria)
Drª Micaela Serra (University of Victoria)
Simulador baseado no ARM7TDMI (≈1998);
http://armsim.cs.uvic.ca/
7
8
Descrição do Simulador
Distribuição gratuita para fins acadêmicos;
Pré-Requisitos (SO)
Windows (a partir do Windows 98) Simples instalação (≈ 3 minutos)
Linux;
Mac OS;
Observação: Os exemplos que serão apresentados se baseiam na versão 1.9.1, utilizando Windows 7.
9
Descrição do Simulador10
Descrição do Simulador (Cont.)
Possui 16 registradores (R0, R1, ..., R15) de 32-bits cada
Onde R10, R11, ... , R15 são registradores de controle. http://armsim.cs.uvic.ca/AttachedFiles/ARMSim_UserGuide4Plus.pdf
Efetua diferentes tipos de operações, como por exemplo: aritméticas, lógicas, de estado, entre outras.
Efetua operações nas bases: decimal (Signed/Unsigned) ou hexadecimal.
11
Descrição do Simulador (Cont.)
Algumas instruções do básicas do ARMSim#
mov Ra, #n: carrega o valor inteiro n no registrador Ra.
add Ra, Rb, Rc: efetua a adição dos valores que estão carregados em Rb e Rc, armazenando o resultado dessa soma em Ra.
sub Ra, Rb, Rc: subtrai o conteúdo carregado em Rc do de Rb, armazenando o resultado em Ra.
12
Primeiro Programa no ARMSim#
João tinha R$25,00 que sobrou da sua
mesada do mês de Fevereiro. Sabendo que
ele ganha R$100,00 por mês, quanto ele terá
para gastar em Março?
Resposta: R$25,00 + R$100,00 = R$125,00.
Mas, João gostaria de comprar o novo FIFA15
que custa R$180,00. Quanto ainda falta para
João efetuar tal aquisição?
Resposta: R$125,00 - R$180,00 = -R$55,00.
13
Primeiro Programa no ARMSim# (Cont.)
Em Python (alto nível)
1. from math import floorimport sys
2. a0 = "" #string vazia
3. b0 = "" #string vazia
4. a = int(raw_input('resta da mesada anterior: '))
5. b = int(raw_input('valor da mesada: '))
6. c = int(raw_input('valor do jogo: '))
7. a0 = a + b
8. print(a0)
9. b0 = a0 – c
10. print(b0)
14
Primeiro Programa no ARMSim# (Cont.)
Em ARM (ARMSim#) (baixo nível)
1. mov R1, #25 @carrega o valor 25 no registrador R1.
2. mov R2, #100 @carrega o valor 100 no registrador R2.
3. add R3, R1, R2 @soma os valores carregados em R1
e R2, armazenando o resultado em R3.
4. mov R4, #180 @carrega o valor 180 no registrador R4.
5. sub R5, R3, R4 @ subtrai o valor de R4 do valor
carregado em R3, armazenando o resultado final em
R5. (ATENÇÃO)
15
Comparação entre linguagens
Quais as principais diferenças dos códigos apresentados para estas soluções? A implementação em Python é muito mais simples,
pois esta se trata de uma linguagem de alto nível Operações aritméticas são utilizadas de forma direta;
(Extra) Em Python é possível efetuar aritmética de múltipla precisão sem preocupação com tamanho da palavra do processador, número de registradores, etc.
Em ARM, é possível ter mais controle sobre as operações envolvidas no código. Por exemplo: Como o Python efetua as adições de
inteiros de 64-bits?
Este tipo de controle sobre as operações, é uma vantagem que só linguagens de mais baixo nível podem proporcionar.
16
Adição de inteiros grandes
Por exemplo: Em linguagens de baixo nível,
uma forma de implementar a adição de
inteiros grandes é:
17
Instruções para utilização do
ARMSim#
Acesse: http://armsim.cs.uvic.ca/ Download
ARMSim# 1.91 1.91 Execute o arquivo baixado.
Primeira execução: abra um documento Bloco de Notas
e copie o programa do slide 15. Salvar este arquivo no
formato .s Por exemplo: teste_arm.s
Abra o simulador ARMSim# File Load
teste_arm.s Play ( ).
Sugestão: faça a leitura da documentação
disponível em: http://armsim.cs.uvic.ca/AttachedFiles/ARMSim_UserGuide4Plus.pdf
18