el68e-2015-1 - prova recuperacao rev1 - gabarito

8
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.

Upload: marco-antonio-moreira

Post on 08-Dec-2015

225 views

Category:

Documents


0 download

DESCRIPTION

Prova Rec S.Embarcados

TRANSCRIPT

Page 1: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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.

Page 2: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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;

Page 3: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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?

Page 4: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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

Page 5: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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.

Page 6: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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.

Page 7: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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.

Page 8: EL68E-2015-1 - Prova Recuperacao Rev1 - Gabarito

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,