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.
- 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.
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]:
- aceleração em HW para java
- acessos desalinhados
- HW para sombreamento dos registradores de contexto na interrupção
- HW para retornar o endereço e o registrador de estado (vão para a pilha)
- instrução SIMD
- instruções do coprocessador
- instrução retj
- instrução incjosp
- instrução popjc
- instrução pushjc
- instrução tlbr
- instrução tlbs
- instrução tlbw
- instrução cache
Instruções [2] implementadas no núcleo AVR32-A do UC3:
- aritmética
- multiplicação
- processador de sinal digita
- lógico
- bit
- deslocamento
- fluxo
- transferência de dados
- carrega/armazena
- múltiplos dados
- sistema/controle
- interface do coprocessador
- 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
Nenhum comentário:
Postar um comentário