teoria

Segundo [1] há três tipos de arquiteturas para embarcar o programa básico no µC, todas do tipo hospedeiro/alvo, que são:
  • ligada
  • armazenamento removível
  • autossuficiente

A configuração ligada refere-se a usar o computador pessoal com Linux para gerar o programa básico e transferi-lo para o µC via Ethernet e depuração via RS 232.

O configuração armazenamento removível refere-se a usar o computador pessoal com Linux para gerar o programa básico e transferi-lo para um cartão de memória e então o µC com um programa de inicialização acessar este código ao ser ligado.

O configuração autossuficiente refere-se a usar o próprio sistema eletrônico para gerar o programa básico. Logo, ele deve ser dotado de programas para:
  • iniciar
  • operar
  • desenvolver

Após a transferência do programa básico ao µC é possível e necessário depura-lo. Para tanto, são disponibilizados três maneiras diferentes em termos de meio físico, que são:
  • via Ethernet
  • via RS 232
  • via JTAG

O Linux requer que o sistema mínimo contenha os seguintes itens:
  • UCP de 32 bits
  • gerenciador de memória
  • memória suficiente
  • entradas e saídas
  • criação e manipulação do sistema de arquivos raiz
  • acesso via rede

Figura 1: arquitetura genérica de um sistema Linux.

São duas camadas de programas para deixar a eletrônica acessível ao utilizador através das aplicações.
Atente para o fato de que o grau de abstração empregado nesta figura é elevado.

Temos três componentes que participam :
  • carregar de inicialização
  • núcleo
  • processo inicialização

O carregador de inicialização - bootloader [2], é um programa instalado em uma área pré-definida (parte superior ou inferior) para carregar programas aplicativos logo, tem a funcionalidade de interpretar alguns comandos simples de leitura e gravação na memória de programa. A comunicação do carregador de inicialização com o computador pessoal é realizada por meio de portas de comunicação como CAN, USB, RS 232 ou Ethernet. Após estar finalizada a transferência do aplicativo e realizado um salto para a área de programa e executa o programa aplicativo desenvolvido sem a necessidade de gravador externo. Na figura 2 é mostrado um ambiente físico para utilização do carregador de inicialização idealizado e mostrado no manual da Atmel.
Figura 2: ambiente físico necessário [3].
Na figura 3 é possível ver o mapa da memória do µC AT32UC3A0512 em detalhes evidenciando as áreas relevantes com tons de cores diferenciadas entre si.

Figura 3: mapa da memória do µC AT32UC3A0512 [3].

O arcabouço necessário para o desenvolvimento de sistemas embarcados envolve três programas que são:
  • cadeia de ferramentas
  • IDE
  • plug-ins
O arcabouço que podem ser adquiridos no formado código-fonte ou em binário e tem a finalidade de integrar, testar e depurar as aplicações para o alvo.

A especificação da construção, do hospedeiro e os sistemas de arquivos são através dos arquivos de configuração GNU.

É recomendado ler o manual do Conjunto de instruções do AVR32.


AVR32UC implementa o núcleo AVR32-A que não prove suporte para [2]:
  1. aceleração em HW para java
  2. acessos desalinhados
  3. HW para sombreamento dos registradores de contexto na interrupção
  4. HW para retornar o endereço e o registrador de estado (vão para a pilha)
  5. instrução SIMD
  6. instruções do coprocessador
  7. instrução retj
  8. instrução incjosp
  9. instrução popjc
  10. instrução pushjc
  11. instrução tlbr
  12. instrução tlbs
  13. instrução tlbw
  14. instrução cache

Instruções [2] implementadas no núcleo AVR32-A do UC3:
  1. aritmética
  2. multiplicação
  3. processador de sinal digita
  4. lógico
  5. bit
  6. deslocamento
  7. fluxo
  8. transferência de dados
  9. carrega/armazena
  10. múltiplos dados
  11. sistema/controle
  12. interface do coprocessador
  13. instruções ler-modifica-escrita na memória
As instruções são em quantidade: 20 aritméticas, 8 multiplicação, 23 DSP, 15 lógica, 16 bits, 5 deslocamento, 12 fluxo, 3 transfêrencia de dados, 31 armazenamento/recuperação, 6 múltiplos dados, 20 sistema/controle, 19 coprocessador e 3 leitura-modificação-grava memória.


Instruções ortogonais

O termo instruções ortogonais refere-se ao fato do conjunto de instruções referirem-se ao arquivo de registradores como operandos possibilitando um ganho em termo de tempo de execução.



Referências

1- Livro: Construindo sistemas Linux embarcados, autores: Karim Yaghmour, Jon Masters, Gilad Ben-Yossef e Philippe Gerum, editora: O'reilly, 2. edição, 2009.

2- http://www.motomodd.net/11008-entenda-que-boot-loader-principio-de-funcionamento.html

3- http://www.atmel.com/Images/doc7745.pdf

4- http://www.atmel.com/Images/doc32000.pdf

.

Nenhum comentário:

Postar um comentário