Post on 08-Dec-2015
description
1 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
PR
EL68E-2015-1 – Sistemas Embarcados – Prova de Recuperação S11 & S12 Data: 21 de Julho de 2015
Professor: Rafael E. de Góes
Aluno:________________Gabarito__________Turma:_______Matricula:____________________
[Questão 1 :: (3 pts) – Algoritmos e Linguagem Assembly ] Desenvolva uma função em Assemby para CortexM3, que encontre o mínimo valor em módulo de
uma região de memória apontada pelo primeiro parâmetro e preenchida com números inteiros
sinalizados . O número de valores preenchidos é passado pelo segundo parâmetro. A função deve
retornar um ponteiro para o menor valor em módulo.
int * fMinAbs( int * end_vetor , unsigned int size);
1a.) Apresente, um fluxograma para a solução do enunciado.
2 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
1b.) Com o auxílio da tabela de instruções, codifique o algoritmo seguindo o padrão ATPCS.
Label Instrução Operandos Comentário(1)
fMinAbs PUSH {R4,R5} Salva contexto
MOV R12,#0x7FFFFFFF Minimo = 2Giga
Laco CBZ R1, retorno Qtde = 0?
LDR R3,[R0] Lê valor da memória
CMP R3,#0 Valor >0?
BPL Positivo
MOV R4,#-1 Valor = -1 x valor
MUL R3,R3,R4
Positivo CMP R12,R3 Valor < minimo
BGE Atualiza
B Proximo
Atualiza MOV R12,R3
MOV R5,R0 Pos_min = ‘posicao’
Proximo SUB R1,R1,#1 Decrementa qtde
ADD R0,R0,#4 Incrmenta posicao
B Laco
Retorno MOV R0,R5 Retorna pos_min.
POP {R4,R5} Recupera contexto
BX LR
(1) Descrever o propósito da instrução de acordo com o algoritmo;
3 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
[Questão 2 :: (2 pts) – Arquitetura de HW e memórias] Um sistema embarcado de comunicação utiliza um cálculo de CRC (Cyclic Redundancy Check) para
garantir a integridade dos dados recebidos. A função que implementa o cálculo é apresentada abaixo.
2a.) Levando em conta a listagem, o disassembly, o mapa de
memória e o valor dos registradores, em que tipo de memória está
armazenada a tabela de CRC (table)? Em qual etapa do processo de
construção do executável este endereço é definido?
4 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
2a.) Está armazenado na memória FLASH pelo endereço de memória em R3 (0x1A84) e o mapa de
memória mostra que é on-chip flash. Isso é definido na etapa de ligação (linkagem).
2b.) Considerando os diagrama de tempos e larguras de barramentos retirados dos datasheets das
memórias SRAM e FLASH, em que região de memória a váriável table deve ser alocada para garantir
melhor eficiência em relação ao tempo de execução da rotina? Justifque sua resposta e o critério
adotado.
Memória SRAM: tAA = 70 ns, tAOE = 50 ns, tHZ = 30 ns, tOH = 25 ns;
Memória FLASH: tACC = 150 ns, tCE = 120ns, tOFF = 50 ns, tOH = 40ns.
Deve ser mantido o armazenamento na memória flash pois apesar de a RAM ser mais rápida, a largura
do barramento é 4 vezes menor.
SRAM : (TAA+THZ = 100ns )
FLASH (tACC + tOFF = 200 ns)
D7..D0
D31..D0
5 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
[Questão 3 :: (2 pts) – Processo de Desenvolvimento e Modelagem] Aproximando-se da entrega do Controlador de Elevador, além do modo serviço e o subsistema de
aceleração, para atender uma norma de instalação, o cliente necessita a inclusão de um botão de
emergência.
A qualquer momento, um botão de emergência, lido por Polling através do driver de GPIO, pode
interromper a movimentação do motor desacelerando em menos de 1s. Ao ser pressionado
novamente o movimento deve ser reiniciado com mesma curva de aceleração.
3a.) Para o Diagrama de Estados abaixo, referente à thread de controle de aceleração, acrescente o
comportamento do botão de emergência e as transições correspondentes.
6 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
Apenas a história não seria suficiente pois deve haver uma curva de aceleração e a direção do
movimento deve ser mantida. Além disso, se voltar direto para o Descendo ou Subindo, haverá um
tranco. Outra opção é o uso de uma variável para saber se estava subindo ou descendo.
3b.) Em que fase do do ciclo de desenvolvimento esse redesign poderia ser antecipado? Justifique.
Na fase de estudo do dominio do problema em que as normas aplicaveis são levantadas.
7 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
[Questão 4 :: (3 pts) – Programação concorrente e Escalonamento] Considerando o código de um Sistema Embarcado com 3 threads concorrentes e cujos LEDs virtuais
são apresentados no display OLED.
8 / 8 EL68E-2015-1 – Sistemas Embarcados –Prova Recuperação – Turmas S11 & S12
4a.) Elabore um diagrama de objetos para o mesmo.
4b.) Explique o efeito que o uso de um algoritmo de escalonamento com prioridade dinâmica teria
neste caso.
O recurso compartilhado protegido por mutex é o OLED. As threads de menor prioridade (A e B)
poderiam ter sua prioridade aumentada para liberar o recurso o mais rápido possivel de modo a não
atrasar a thread C. ‘e não houvesse, haveria uma influência maior das threads A e B na C,