MC404  -  Turmas A/B; C/D e E/F

Organização de Computadores e Linguagem de Montagem



Grupo de discussão da disciplina
Enviar email para o grupo de discussão



Atendimento Avaliação Atividades
Bibliografia Grupo MC404
Calendário Slides Notas

Contatos

Professores:
    Turmas A e B  Paulo Cesar Centoducatte    -  Sala 11 -  IC-1    (conteúdo específico)
    Turmas C e D  Mario Lúcio Côrtes                -  Sala 14 -  IC-1     (conteúdo específico)
    Turmas E e F   Ricardo Pannain                    -  Sala  47 -  IC-1    (conteúdo específico)
PED/PAD:
    Maxiwell Garcia (PED)
    Allan Silva (PAD)
    Túlio Angeiras


OBS.:   Quando enviar um e-mail favor colocar no subject "MC404"


Avisos


Data
Aviso
15/12
 Disponibilizado as notas do exame e média final:  turmas A e B;
12/12
 Disponibilizado as notas do lab03 e médias: turmas A e B;
12/12
 Disponibilizado as notas da segunda prova, a média das provas (MP) e do lab02: turmas A e Bturmas C e D
11/12
 Disponibilizado as notas da segunda prova e a média das provas (MP): turmas A e B;
11/12
  Exame (14/12) - Não esqueça de levar cópia do "Instruction Set and Registers Summary"    (atmega88-regs-instrset.pdf) . Turmas A/B e C/D- Sala 352, IC 3 1/2.
02/12
  Segunda Prova (09/12) - Não esqueça de levar cópia do "Instruction Set and Registers Summary"    (atmega88-regs-instrset.pdf) . Turmas A/B - Sala 361, IC 3 1/2;  Turmas C/D - Sala 362, IC 3  1/2
24/11
 Novas datas para apresentação da atividade 3: turmas A/B e C/D 07/12 e Turmas E/F 09/12
16/11
 Nova data para entrega da atividade 2: turmas A/B 23/11 e Turmas C/D e E/F 25/11
16/11
 Disponibilizado as notas da primeira prova: turmas A e Bturmas C e D
08/11
 Disponibilizado os enunciados das próximas atividades obrigatórias.
22/10
 Prova dia 26/10 - Não esqueça de levar cópia do "Instruction Set and Registers Summary"
       (atmega88-regs-instrset.pdf)  
15/10
  Disponibilizado uma segunda versão da Atividade 1 com algumas simplificações. O grupo pode escolher qual versão implemetar.
15/10
  Primeira Prova dia 26/10:  Turmas A/B - Sala 361, IC 3 1/2;  Turmas C/D - Sala 352, IC 3  1/2
01/10
  Turmas A,B,C,D,E e F: ler o documento sobre interrupções e E/S no AVR e a seção
  "9. Interruption" datasheet (p. 54) (focar nas subseções relativas ao Atmega88) para a
  aula  da  próxima semana.
23/09
 Turmas A e B: códigos vistos como exemplo em aula estão em conteúdo específico
01/09
 Instruction Set Summary" (atmega88-instructionset.pdf, atmega88-regs-instrset.pdf
27/08  Diretivas - assemblerdoc1022.pdf
27/08  Modos de endereçamento e o conjunto de instruções -  instr_setDOC0856.pdf
27/08
 Ler o documento Arquitetura e modos de endereçamento do AVR 
11/08
 Definidas as datas das provas (veja no calendário)
10/08
 A aula de hoje das turmas A e B  será no IC 3 1/2, sala 361
05/08
 A aula de hoje das turmas E e F será no IC 3 1/2, sala 352
04/08
 A aula de 05/08 das turmas A e B será na CB09
02/08
 As aulas de laborátorio das duas primeiras semanas  serão substituídas por aulas teóricas e
 serão no IC 3 1/2
 02/08
 Ler o documento beginner_avr.pdf até a seção "Simulation in the studio" (página 19)



Aulas

Turmas A e B
   Terças:   16:00 - 18:00 -   Salas: 302 (CC02) e 303 (CC03)
   Quintas: 16:00 - 18:00 -    Sala:   CB09
Turmas C e D
  Terças:   16:00 - 18:00 -    Sala:  CB03
  Quintas: 16:00 - 18:00 -    Sala:   302 (CC02) e 303 (CC03)
Turmas E e F
  Terças:   21:00 - 23:00 -    Sala:  CB10
  Quintas: 19:00 - 21:00 -    Sala:   302 (CC02) e 303 (CC03)

Atendimento

Turmas A e B
    Sala 11 do IC 1 - Prof. Paulo C. Centoducatte
               (agendar dia e hora por e-mail)
Turmas C e D
  
Sala 14 do IC 1 - Prof. Mario L. Côrtes
Terças-feiras:  15:00 - 16:00
Quartas-feiras: 15:00 - 16:00
Turmas E e F
  
Sala 40 do IC 1 - Prof. Ricardo Pannain



Avaliação

    Laboratórios de programação: cerca de 2 a 3 atividades obrigatórias feitas em grupos com até 2 alunos; deverão ser demonstrados no laboratório no dia da submissão.

    Duas provas escritas de avaliação de conceitos básicos e práticos.

Seja:
  • Li   - Nota da atividade de laboratório i
  • P1 e P2 - Notas das Provas 1 e 2  respectivamente
  • MP - Média das Provas
  • ML - Média das atividades de Lab.
  • MMC404 :  Média da disciplina MC404
  • F  -  Fator de Proporção
  • NFinal =  Nota Final de MC404
 Onde:
          MP =  (3P1 + 7P2)/10
ML =  Média aritmética das atividades de Lab.

-------------------------------------------------------------------

             MMC404 = F*MP + (1-F)*ML  

   F = 0,8 se  MP   <   5,0
   F = 0,5 se  MP  >=  5,0


------------------------------------------------------------------

NFinal =  MMC404     Se    MMC404  >=  5,0

NFinal =  (M
MC404 + Exame) / 2  Caso Contrário

(*)Toda submissão de uma atividade de laboratório deverá ser feita no laboratório, acompanhada da impressão do arquivo .lst gerado pelo montador e no formato paisagem, a fim de não truncar os comentários de linha. Para gerar o arquivo .lst, após abrir o projeto, selecione Project --> Assembler Options e na janela aberta selecione a caixa Create List File.
A qualidade e apresentação do programa serão levadas em conta na nota da atividade (veja sugestões no documento sobre programação estruturada em assembler


                             Atividades de Laboratório

Enunciado dos Laboratórios

As atividades opcionais não entram no cômputo da nota final mas são altamente recomendadas de serem programadas e exibidas nas aulas de laboratório.

Atividades Opcionais:
  1. Trabalhando com números inteiros com e sem sinal -  lab01.pdf
  2. Trabalhando com vetores: geração e armazenamento da sequencia de Fibonacci (com 16 bits) - lab02.html
  3. "Auto-retrato": um programa que transforma suas próprias instruções de binário para ASCII - lab03.html.
  4. Trabalhano com multiplicação: produto escalar de 2 vetores de 8 bits.
  5. Trabalhando com macros - aritmética de 16 bits - lab05.html.
  6. Vários execícios - lab06.html.
  7.  Recursão - lab07.html.
  8.  

Atividades obrigatórias:

  1. Atividade 1:  aqui  --  em grupo de 2 alun*s 
    1. versão 2 do enunciado da Atividade 1
    2. Entrega:   Apresentação na aula de laboratório: turmas A/B - 19/10; turmas C/D e E/F - 21/10 - Todas as turmas enviar por e-mail os arquivos usados (relatorio.pdf, .asm, .xml etc) até as 8:00 de 22/10
    3. Nova data de Entrega: relatorio.pdf, .asm, .xml etc até as 8:00 de 04/11/2010 -- Demosntração: quem quiser faz a demonstração nesta semana ou na primeira aula de laboratório  após o feriado (Turmas C/D e E/F - 04/11/2010;  turmas A/B - 9/11/2010).
  2. Atividade 2:  aqui  --  em grupo de 2 alun*s
    1. Entrega: Apresentação na aula de laboratório: turmas A/B - 23/11; turmas C/D e E/F - 25/11 - Todas as turmas enviar por e-mail os arquivos usados (relatorio.pdf, .asm, .xml etc) até as 8:00 de 26/11  
  3. Atividade 3:  aqui  --  em grupo de 2 alun*s
    1. Entrega: Apresentação na aula de laboratório: turmas A/B e C/D - 07/12; turmas E/F - 09/12 - Todas as turmas enviar por e-mail os arquivos usados (relatorio.pdf, .asm, .xml etc) até as 8:00 de 10/12  







Programa da Disciplina
  • Introdução à arquitetura de computadores digitais: máquinas de Von Neumann x arquiteturas Harvard; arquiteturas RISC; microprocessadores x microcontroladores.
  • Memórias - tipos e hierarquias; componentes básicos de uma CPU: UC, ULA, endereçamento, registradores; dispositivos de E/S; fases da execução de uma instrução; noções de linguagem de máquina.
  • Introdução ao ambiente AVR studio (Windows) de programação em linguagem de montagem (assembly) ; depurador; execução passo a passo.
  • Revisão de números binários e operações aritméticas; notação 1-complementto e 2-complemento; notação hexadecimal; caracteres ASCII; números em ponto flutuante.
  • Introdução à arquitetura do AVR família ATxxx: instruções e modos de endereçamento.
  • Introdução a montadores e macro-montadores; programação em linguagem de montagem do AVR. 
  • E/S no AVR: registradores de E/S; interrupções; temporizadores; watch-dog timer. técnicas para gravação de código no AVR a partir de um PC.
  • Exemplos de programação em linguagem de montagem do AVR: aritmética, E/S, interrupções, temporizadores.
  • Programação em C com microcontroladores: técnicas, cuidados; compilador gcc para o AVR
  • Introdução ao ambiente AVR studio de programação na linguagem C (Windows) ; depurador; execução passo a passo.
  • Biblioteca do gcc para o AVR; exemplos de uso. Exercícios de programação em C com o AVR.
  • Introdução a ligadores: ligação estática e ligação dinâmica.
  • Noções de arquiteturas de microcontroladores de 32 bits: ARM, MIPS.
  • Diretório com manuais e documentação do AVR

Exemplos:
  • Diretório com mais exemplos.
  • Diretório com todos os exemplos .
  • Um bom tutorial com exemplos sobre o assembler do AVR: instruções, diretivas, etc 
  • Exemplo simples de subrotina para multiplicar dois valores de 8 bits. 
  • Exemplo de macro para multiplicar dois valores de 8 bits. Mais eficiente e mais versátil do que a subrotina correspondente vista acima. 
  • Exemplos de macros úteis (extraído do site www.mikrocontroller.net/articles/AVR_Assembler_Makros. 
  • Programação de E/S - EEPROM: datasheet (p. 18-23) 
  • Introdução a interrupções e E/S no AVR
  • Vetores de interrupção do ATmega88 datasheet (p. 56) 
  • Exemplo de E/S com leds: acende e apaga ciclicamente 8 leds 
  • Exemplos de rotinas de interrupção: gravação de byte na e2prom, temporizador TIMER0, e interrupção INT0.

      Hapsim

    Dicas para programação em C (gcc)
  • FAQ do manual da biblioteca avr-libc do gcc para o AVR; contém muitas "dicas" para programação em C.
  • Manual de referência da avr-libc (versão 1.4.6) para programação em C com o AVR. As rotinas de leitura de dados da memória de programa, delay por software e de interrupção.
  • Documento sobre Assembler in line



Bibliografia



Calendário

Agosto
Aula/Dia Matéria
1a./03 T
 Conceitos básicos: bits, bytes e words; litle e big endian: representação de números (pdf    pdf-6)
2a./05 Q
 Conceitos básicos (cont.): operações aritméticas com valores com e sem sinal (overflow), representação  de caractere alfanuméricos, organização básica de um computador.  
3a./10 T
 Conceitos básicos - cont.: org. básica de computador; formato e conjunto de instruções, execução de uma intrução
4a./12 Q
 Conceitos básicos - cont.: ISA, codificação; Introdução à arquitetura do AVR ATmega88 (AVR ATmega 88)
5a./17 T
 Turmas A/B: Conceitos básicos - cont; Turma C/d Modos de endereçamento (pdf pdf-6)
6a./19 Q
 Turmas A/B: Modos de endereçamento (pdf pdf-6); Turmas C/D: Aula no laboratório (lab01.pdf)
7a./24 T
 Turmas A/B: Aula no laboratório (lab01.pdf);   Turmas C/D: diretivas do montador  (pdf  pdf-6  assemblerdoc1022.pdf)
8a./26 Q
 Turmas A/B: conjunto de instruções (instr_setDOC0856.pdf ); Turmas C/D: Aula no laboratório (lab02.html)
9a./31 T
 Turmas A/B: Aula no laboratório (lab02.html);
Setembro
Aula/Dia
10a./01 Q
 Turmas A/B: diretivas do montador  (pdf  pdf-6  assemblerdoc1022.pdf); Turmas C/D: Aula no laboratório (lab02.html); 
11a./07 T
  Não haverá aula
12a./09 Q
 Turmas C/D: Aula no laboratório (lab03.html);   Turmas A/B: pilha e rotinas (pdf  pdf-6); 
13a./14 T
 Turmas A/B: Aula no laboratório (lab03.html);    Turmas C/D: pilha e rotinas (pdf  pdf-6); 
14a./16 Q
 Turmas A/B: ; Turmas C/D:  Aula no laboratório (lab03.html);
15a./21 T   Turmas A/B: Aula no laboratório (lab03.html); 
16a/23 Q
 Turmas A/B-C/D-E/F: aula dedicada a dúvidas. 
17a/28 T  Turmas A/B: Aula no laboratório - exercícios, demonstração do uso do HAPSIM;  Turmas C/D e E/F: Macros, Montagem Condicional de Código e Uso da EEPROM  (pdf  pdf-6)
18a/30 Q
 Turmas A/B: Macros, Montagem Condicional de Código e Uso da EEPROM  (pdf  pdf-6); Turmas C/D e E/F:  Aula no laboratório (lab03.html);
Outubro
Aula/Dia Matéria
19a/05 T
 Turmas A/B: Aula no laboratório - exercícios; Turmas C/D e E/F:  Interrupção, sleep (pdf  pdf-6) ;  
20a/07Q
 Turmas A/B: Interrupção, sleep (pdf  pdf-6); Turmas C/D e E/F:  Aula no laboratório
/12 T
 Não haverá aula
21a/14Q
 Turmas A/B: ; Turmas C/D e E/F:  Aula no laboratório  
22a/19 T
  ; Interrupção, sleep (pdf  pdf-6) ;
23a/21 Q
   Turmas A/B: Aula dedicada a dúvidas; Turmas C/D e E/F:  Aula no laboratório
24a/26 T
  Primeira Prova - Turmas A; B; C; D; E e F
/28 Q
  Não haverá aula
Novembro
Aula/Dia Matéria
/02 T
  Não haverá aula
25a/04 Q
 Turmas A/B: Correção da 1a. prova
26a/09 T
 Turmas A/B: Aula de Laboratório; 
27a/11 Q
 Turmas A/B e C/D: Aula de Laboratório 
28a/16 T
 Turmas A/B e C/D: Aula de Laboratório 
29a/18 Q
 Turmas A/B e C/D: Aula de Laboratório
30a/23 T
 Turmas A/B e C/D: Aula de Laboratório 
31a/25 Q
 Turmas A/B e C/D: Aula de Laboratório 
32a/30 T
 Turmas A/B e C/D: Aula de Laboratório
Dezembro
Aula/Dia
Matéria
33a/02 Q
  Turmas A/B e C/D: Aula de Laboratório
34a/07 T
  Segunda Prova - Turmas E e F; Turmas A/B e C/D: Aula de Laboratório
35a/09 Q
  Segunda Prova - Turmas A, B, C e D. Turmas A/B - Sala 361, IC 3 1/2;  Turmas C/D - Sala 362, IC 3  1/2
10 Q
 Término do período letivo
14 T
 Exame Turmas A/B; C/D



 
Outras Datas Importantes do Calendário Escolar
22 e 23/09   Congresso de Iniciação Científica de 2008
14/10  Avaliação e discussão de cursos
01/10  Último dia para desistência de matrícula
25/10  Último dia para trancamento de matrícula
10/12  Término do período letivo
13 a 18/12  Exames finais
21/12
 Prazo final para entrada de médias e frequencias 

 Feriados
06 e 07/09; 11 e 12/10; 28 a 30/10; 01 e 02/11; 15/11; 20/11