Tutorial Executando o Sistema Operacional ORCOS - Inf

Propaganda
Tutorial
Executando o Sistema Operacional ORCOS/DREAMS em
placa de desenvolvimento Virtex II Pro
Introdução
Este documento tem por finalidade apresentar os procedimentos para a instalação do
toolset necessário para a execução do sistema operacional ORCOS/DREAMS em uma
placa de prototipação Xilinx Virtex II Pro utilizando o processador PowerPC. Os passos
que devem ser executados são os seguintes:
1. Instalação completa do toolset;
2. Criação de um projeto para geração da infra-estrutura que permitirá o uso dos
processadores PowerPC da placa;
3. Configuração do sistema operacional ORCOS/DREAMS;
4. Compilação do código fonte;
5. Upload dos arquivos binários na placa Virtex II Pro.
Para seguir este tutorial, você vai precisar de:
– Placa Xilinx Virtex II Pro Development System com memória externa instalada;
– Cabos para comunicação com a Placa (Paralelo e PS2/USB);
– Fonte de alimentação de 5V corrente contínua;
– Cabo de conexão serial RS232;
– Xilinx Platform Studio (XPS) 9.1i;
– Conexão com a Internet para o download dos demais softwares.
Etapa Inicial: Instalação e Configuração da Placa
1. É preciso conectar todos os cabos de comunicação na placa. O usuário tem a
opção de escolher entre os JTAG (figura 2) ou USB (figura 1) para fazer o upload do
bitstream (arquivos *.bit), dos arquivos binários gerados pelo compilador e também para
fazer o debug da aplicação e do sistema operacional.
IMPORTANTE: para a conexão paralela, é preciso conectar o cabo PS2 em uma das duas
entradas Mini Din. Sem essa conexão, os programas não reconhecem a placa por
completo.
Figura 1: cabo USB
Figura 2: Cabo JTAG paralelo e PS2
2. Conecte o cabo de comunicação RS232 na porta serial do computador e da placa
(figura 3).
IMPORTANTE: o cabo RS232 não deve ser invertido. Caso contrário, a comunicação entre
a placa e o computador não irá funciona.
3. Ligue a fonte de 5V na conexão que se situa na parte superior esquerda da placa,
próximo à chave Liga-Desliga (figura 4).
Figura 3: porta de conexão serial
Figura 4: cabo de alimentação
A partir de agora, é possível configurar o sistema e determinar as características que
a placa irá assumir para executar alguma aplicação, por exemplo, o endereçamento da
porta RS232, memória, etc.
Os passos seguintes consistem em escolher o processador, selecionar os dispositivos
que serão utilizados, determinar o tamanho das memórias internas, externas, cache e os
recursos da placa.
IMPORTANTE: os tamanhos das memórias e a quantidade de dispositivos periféricos
dependem da área disponível na FPGA.
Deste ponto em diante, assume-se que o Xilinx Platform Studio (XPS) já está
instalado no computador. O programa vem no pacote Embedded Development Kit (EDK)
do ISE.
As próximas telas demonstram uso do Wizard para geração da configuração da placa
Virtex II Pro no Platform Studio. As telas ensinam como proceder passo-a-passo para
configurar corretamente o projeto.
Selecione a opção Base System Builder wizard:
Figura 5: iniciando o wizard para a criação do projeto
Em “Project file”, selecione uma pasta para salvar o projeto. Selecione a opção ”Set
Project Peripheral Repositories” e selecione a pasta que contém as definições da placa.
Figura 6: destino do projeto
O pacote dos arquivos de definição da placa pode ser obtido no link
http://www.digilentinc.com/Data/Products/XUPV2P/EDK-XUP-V2ProPack.zip
Seguir com a seleção “create a new design”, e após, selecionar a placa que será
utilizada. No nosso caso, selecionar a placa “XUP Virtex II Pro Development System”.
Figura 7: criando o projeto
Figura 8: escolha da placa
Escolher o processador PowerPC. Em seguida, definimos o tamanho da memória
interna para dados e instrução. Selecionar 16 KB e 32 KB respectivamente como mostra a
figura 10.
Figura 9: seleção do processador
Figura 10: seleção de memória interna
Na etapa seguinte, devemos selecionar quais dispositivos o sistema pretende utilizar
na placa. Note que a opção de memória está selecionada por haver um módulo de 512
MB instalado. Desmarque a opção Ethernet_MAC, exige licença para funcionar.
Figuras 11 e 12: seleção de periféricos
Mais periféricos para serem escolhidos.
Figuras 13 e 14: seleção de periféricos
Determinamos a memória do controlador BRAM que interage com outros periféricos
externos para 64 KB. A seguir, o programa oferece aplicações para teste de memória e
periféricos. Desmarcar estas opções e deixar as opções de input, output e memória de
boot padrão como mostra a figura 16.
Figura 15: seleção de memória
para controlador BRAM
Figura 16: seleção para teste de
memória e periféricos
Confirmar todos os periféricos que serão instanciados. Note que nas descrições da
placa (figura 17), a “On Chip Memory” está definida com 112 KB. Isto se deve aos 16 KB
definidos para dados, 32 KB para instrução (figura 10) e 64 KB para o controlador BRAM
(figura 15). A memória interna da placa possui apenas 128 KB. Após, clique em “Generate”
e “Finish” na tela que confirma a criação do projeto.
Figura 17: resumo do
projeto criado
Figura 18: confirmação da
criação do projeto
Ligue a placa e veja se os leds irão acender.
Figuras 19 e 20: leds acesos ao ligar a placa
Após, clicar em “download bitstream” o programa vai operar por alguns minutos
criando e sintetizando os arquivos de identificação e endereçamento dos periféricos.
Figura 21: enviando bitstream para a placa
Se o procedimento for feito sem mensagens de erro na aba “Error”, o programa
concluiu o upload do bitstream (figura 22). Aparece a tela seguinte, e o led “done” se
acende na placa como mostra a figura 23.
Figura 22: upload do bitstream concluído
Figura 23: led indicando o
upload bem sucedido
Clique em “Addresses”. Perceba que nesta janela estão listados todos os periféricos e
os seus respectivos endereços. Você vai precisar destes valores para a correta
configuração do ORCOS posteriormente.
Figura 24: endereços dos periféricos
Segunda etapa: Instalando e Configurado o Toolset
A partir de agora, a placa esta configurada e pronta para trabalhar executando um
sistema operacional embarcado.
Os passos seguintes irão guiar o usuário a preparar o ambiente de trabalho, ou seja,
compilador e IDE para desenvolvimento e debug.
O processo de instalação e configuração do toolset foi inicialmente publicado em
https://orcos.cs.uni-paderborn.de/orcos/wiki/gettingstarted
Você vai precisar fazer o download dos seguintes programas:
– Java Virtual Machine
(http://javadl.sun.com/webapps/download/AutoDL?BundleId=23111)
– Eclipse IDE for C/C++ Developers
(http://download.eclipse.org/technology/epp/downloads/release/ganymede/SR1/eclipsecpp-ganymede-SR1-win32.zip)
– Cygwin 1.5.25xxx
(http://www.cygwin.org/cygwin/setup.exe)
É necessário também baixar o pacote “PowerPC EABI cross compiler”
(https://orcos.cs.uni-paderborn.de/files/powerpc-eabi.zip)
Após instalar o Java VM e o Cygwin com as bibliotecas para C++, o computador está
pronto para executar a IDE Eclipse. O arquivo powerpc-eabi.zip deve ser extraído para a
pasta “\usr\local” localizada dentro do diretório do Cygwin instalado.
Extraia o pacote do Eclipse para o computador e execute o aplicativo. Escolha uma
pasta para manter os projetos que serão criados.
IMPORTANTE: Dê preferência a um nome que não contenha espaços. Como exemplo,
estamos usando o destino “C:\workspace”.
Figura 25: destino do sistema operacional
Primeiramente, é preciso fazer uma atualização no programa, instalando o plugin SVN
para o Eclipse. Clique em “Help” e em “Software Updates...”. Em seguida, selecione a aba
“Available Software” e clique no botão “Add Site...”. Preencha a caixa de diálogo com o
endereço http://subclipse.tigris.org/update_1.4.x como mostra a figura 27.
Figuras 26 e 27: instalando atualizações no eclipse
Ao clicar em OK, o endereço irá aparecer na lista de atualizações. Selecione a opção.
As outras opções relacionadas abaixo serão automaticamente selecionadas como mostra
a figura 28. Clique em “Install...”.
Figura 28: seleção das atualizações
Os itens de atualização aparecerão em uma nova tela para confirmação. Clique em
“Next”. Na próxima janela, aceite os termos do acordo de licença e clique em “Finish”.
Clique em “Yes” para reiniciar o programa para que as atualizações tenham efeito.
Figuras 29, 30 e 31: instalação e confirmação das alterações do programa
Vá em File, New, Project... . Clique na pasta SVN, clique na opção “Checkout Projects
from SVN” (figura 33) e clique em “Next”.
Figuras 32 e 33: criando um projeto
Clique em “Next” na próxima tela (figura 34), e a seguir preencha a caixa de diálogo
com o seguinte endereço https://orcos.cs.uni-paderborn.de/svn/unstable/trunk (figura 35).
Clique em “Next”.
Figura 34
Figura 35
Abrirá uma tela de validação de certificado. Clique em “Accept Permanently” (figura
36). Na próxima tela (figura 37), selecione a pasta ORCOS e clique em “Finish”. Aguarde a
conclusão do download do sistema operacional e feche a tela de boas vindas do Eclipse.
Figuras 36, 37 e 38: download do sistema operacional
Aparecerá a área de trabalho do Eclipse com o ORCOS já disponível. Note que a
pasta “configurations” foi aberta. É nela que contém os arquivos de configuração do
sistema para rodar na placa.
Figura 39: ambiente de trabalho no Eclipse
Precisamos adicionar as definições do sistema para a execução na placa Virtex II Pro,
que estão ausentes. Baixe o arquivo deste link “http://www.inf.ufrgs.br/
~mawehrmeister/ORCOS/virtex2.rar”. Extraia a pasta “VIRTEX2” para o destino do projeto.
No nosso caso, C:\workspace\ORCOS\configurations, e aperte F5.
Figura 40: pasta com configurações para Virtex II Pro adicionada
Terceira etapa: Configurando e Compilado o
ORCOS/DREAMS
O trabalho agora é estritamente relacionado às configurações que o sistema deve
receber para rodar na placa.
Iremos fazer algumas alterações nas linhas de alguns arquivos com a finalidade de
manter a funcionalidade completa do sistema e da compilação.
Na janela “Project Explorer”, acesse a pasta ORCOS\Configurations\VIRTEX2\
realtime01 e dê um duplo clique no arquivo Makefile. Neste arquivo contém todas as
configurações dos caminhos das ferramentas que o compilador utilizará para construir o
sistema operacional.
Cheque a versão do GCC que vem na pasta “powerpc-eabi” que você extraiu no
diretório /usr/local do Cygwin. No diretório bin contém um arquivo com nome “powerpceabi-gcc-‘x.x.x’.exe” os ‘X’ são os números da versão do arquivo. Este número deve ser o
mesmo no arquivo Makefile, conforme mostrado na figura 41.
Figura 41: Makefile aberto e versão do GCC
O arquivo SCLconfig.xml, no mesmo diretório do Makefile, é o arquivo que identifica
os periféricos de que o sistema dispõe. É nele que você vai associar os endereços dos
periféricos que foram instalados com o bitstream criado no XPS (figura 24). O arquivo
SCLdependencies.xml no diretório source mostra todas as configurações válidas.
Figura 42: SCLconfig.xml aberto
Na janela à direita do Makefile, clique na aba “Make Targets”, abra a pasta
ORCOS\configurations\VIRTEX2\realtime01. clique com o botão direito encima da pasta
realtime01 e clique em “Add Make Target” e crie a target “all”. Você deve fazer o mesmo
para as targets “clean” e “xmdlocal” mudando as duas caixas de diálogo com os
respectivos nomes. Estas targets chamam comandos contidos no Makefile.
Figura 43: criação de uma make target
Na mesma pasta do arquivo Makefile, abra o arquivo xmd.ini. Nele você encontra a
configuração do dispositivo de comunicação e quais arquivos devem ser baixados para a
placa. O arquivo deve ser configurado de acordo com o cabo que você estiver
comunicando com a placa. Detalhes da configuração se encontram no capítulo 12 do
documento disponível em http://www.xilinx.com/support/documentation/sw_manuals/
edk91i_est_rm.pdf.
Figura 44: arquivo xmd.ini aberto
Agora estamos prontos para compilar o sistema operacional. Vá na aba “make
targets” novamente e de um duplo clique na target “all”. O programa começa a compilar o
sistema operacional. Ao finalizar, aparece uma mensagem na aba console como
apresentado abaixo na figura 45. Se tudo ocorrer sem problemas, os dados relativos ao
arquivo kernel.elf gerado são mostrados.
Figura 45: compilação do sistema operacional concluída
Abra o arquivo task_main.cc no diretório tasks/FFTTasks. Nele está contido o código
fonte da tarefa que será executada no sistema operacional na placa. O arquivo Makefile do
mesmo diretório contém os parâmetros de compilação para o Eclipse. Confira a versão do
GCC neste arquivo também.
Figura 46: arquivo que contém o código fonte da tarefa a ser executada
Para compilar a tarefa, dê um duplo clique em “xmdlocal” na aba “make target”. Note
que os arquivos gerados, inclusive os já compilados do sistema operacional, são gravados
no destino /cygdrive/c/xmd que corresponde a C:\xmd.
Figura 47: compilação de tarefa e geração de arquivos concluída
Quarta etapa: Depurando o Software
Os próximos passos demonstram como preparar o ambiente de trabalho para o debug
do sistema.
Também vamos verificar a execução da tarefa e o funcionamento de alguns
periféricos da placa.
É necessário configurar na IDE do Eclipse o programa que irá executar o debug do
sistema. Vá em Run, External Tools, External Tools Configurations. Clique em “New
launch configuration”.
Figuras 48 e 49: configurando o xmd para ser executado
Na aba Main, você deve preencher as caixas de diálogo localizando o arquivo
xmd.exe contido na pasta instalada do EDK no computador (ex. C:\Xlx\9.1i\EDK\Bin), e a
pasta para a qual os arquivos compilados são copiados. Alterar a caixa de diálogo Name é
opcional. Clique em “Apply” e “Run”.
IMPORTANTE: Não esqueça de já ter baixado o bitstream do XPS para a placa (figura 22).
Figura 50: localizando a ferramenta e os arquivos gerados
O console deve mostrar uma mensagem de programa carregado, conforme figura 51.
Figura 51: upload dos arquivos para a placa concluído
A seguir, configuramos o debugger. Vá em Run, Debug Configurations. Em “C/C++
Local Aplication” clique em “New launch configuration”
Figura 52: acessando as configurações do depurador
Na aba Main, preencha as caixas de diálogo “Project” e “C/C++ aplication” localizando
o sistema operacional e o arquivo compilado do sistema. O nome é opcional.
Figura 53: localizando a aplicação a ser depurada
A seguir, na aba “Debugger” selecione nas opções de debugger “gdbserver Debugger”.
Na caixa de diálogo “Stop Startup at” preencha com "kernelmain". Abaixo, na caixa de
diálogo GDB debugger na aba Main de “Debugger options”, localize o arquivo “powerpceabi.gdb.exe” que se encontra na pasta do pacote PowerPC EABI Cross Compiler extraído
para a pasta do Cygwin (ex. /usr/local).
Figura 54: configurando as opções de depuração
Na aba Connection, Selecione o tipo TCP em Type e o número da porta 1234 como
mostra a figura abaixo. clique em “Apply” e “Debug”.
Figura 55: configurando a conexão para depuração
Ao iniciar o debug, o eclipse muda de tela. Se for solicitado, localize o arquivo
kernelmain.cc localizado no diretório source/kernel do ORCOS. O Eclipse irá pausar a
execução do sistema operacional nos breakpoints. Breakpoints podem ser criados clicando
duas vezes na barra azul do lado do código fonte, indicando a linha que se quer pausar a
execução do sistema.
Figura 56: depuração do sistema operacional sendo executada
Após a inicialização do sistema operacional na placa, se os leds foram habilitados no
arquivo SCLconfig.xml (figura 42), os leds 4 bits devem se acender indicando que o
periférico foi iniciado.
Figura 57: leds 4 bits inicializados pelo sistema
Para testar a comunicação serial da placa, abra o Hyperterminal e crie uma nova
conexão.
IMPORTANTE: As opções da conexão devem seguir de acordo como o bitstream foi
configurado (figura 11): 9600, 8, Nenhum, 1, Nenhum.
Figuras 58, 59 e 60: criando uma nova conexão para comunicação serial
Vamos compilar uma tarefa que envie um texto pela porta serial. Para isto, abra o
arquivo task_main.cc. Adicione um comando que imprime uma mensagem na porta serial
conforme apresentado na figura 61. Salve e compile o código.
Figura 61: código adicionado à tarefa
Vá em Run, External Tools, 1 XMD para baixar os novos arquivos para a placa. Você
pode digitar o comando “run” no console para iniciar o sistema operacional sem a opção
de debug (ver figura 62).
Figura 62: comando para execução do sistema sem a depuração
O Hyperterminal deve exibir a seguinte mensagem:
Figura 63: mensagem enviada pela placa
A documentação completa de como configurar o sistema operacional ORCOS
encontra-se no link https://orcos.cs.uni-paderborn.de/doxygen/html/.
Autor:
William Menezes Junqueira da Silva
([email protected])
Revisão:
Marco Aurélio Wehrmeister
([email protected])
LSE (Laboratório de Sistemas Embarcados)
Instituto de Informática – UFRGS
Última Atualização: 10/07/2009
Download