1 / 25

Tutorial de Desenvolvimento uClinux

Tutorial de Desenvolvimento uClinux. Jarismar C. Silva PPGEE/PUCRS jarismar@ee.pucrs.br. Conteúdo. Introdução; Ciclo de desenvolvimento; Configuração do HW Excalibur/Nios; Exemplo de desenvolvimento de SW; Conclusões;. Introdução.

alyssa
Download Presentation

Tutorial de Desenvolvimento uClinux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tutorial de Desenvolvimento uClinux Jarismar C. Silva PPGEE/PUCRS jarismar@ee.pucrs.br

  2. Conteúdo • Introdução; • Ciclo de desenvolvimento; • Configuração do HW Excalibur/Nios; • Exemplo de desenvolvimento de SW; • Conclusões;

  3. Introdução • O ambiente uClinux foi portado para a placa Excalibur/Apex pela empresa MICROTRONIX para atender a necessidade de rápido desenvolvimento de aplicações embarcados. • Principais características: • V2.4 do Kernel Linux; • Bibliotecas para cross-compiling baseadas no nios-elf-gcc; • Suporte a Ethernet; • Suporte a NFS e Samba para pontos de montagem a partir do sistema na placa; • Monousuário: apenas root.

  4. Introdução • Placa Excalibur

  5. Introdução • Acessórios para suporte ao uClinux CS8900 – 10 Mbps Ethernet 32 Mb IDE Flash Disk 8 Mb Flash 16 Mb RAM

  6. Introdução • CPU Nios • Processador descrito em VHDL; • 32 bits; • 512 registradores (acessíveis em janelas de 16); • Arquitetura RISC pipeline; • A maioria das instruções requer apenas um ciclo de clock;

  7. Introdução • Periféricos • Suporte a ethernet (CS8900 – 10 Mbps); • Sockets • Telnet • FTP • Http • 2 UARTs (RS 232, ttyS0 e ttyS1); • Memória ROM (flash) e RAM (SRAM); • Timer; • O sistema original pode ser modificado através do SOPC Builder para suportar os demais componentes da placa.

  8. Ciclo de desenvolvimento • Visão geral de um projeto:

  9. Ciclo de desenvolvimento • Modelo do sistema e principais dispositivos:

  10. Ciclo de desenvolvimento • Etapas para alterar o sistema adicionando ou modificando o HW: • Abrir o sistema no Quartus II; • Iniciar o SOPC Builder; • Alterar o mapa de memória, dispositivos, ou adicionar novos dispositivos; • Compilar o sistema no SOPC Builder; • Alterar a pinagem do BDF do sistema; • Compilar o sistema no Quartus II; • Programar o FPGA; • Desenvolver o SW para o novo sistema;

  11. Ciclo de desenvolvimento • Etapas para desenvolver SW • Desenvolver o programa na máquina host; • Compilar e criar arquivo ELF (usar Makefile); • Simular utilizando nios-elg-gdb (c/ restrições); • Baixar para a placa através de ftp ou; • Montar um diretório remoto no sistema rodando na placa; • Logar na placa através de telnet ou nios-run –t; • Executar programa; • Verificar resultados; • Corrigir eventuais erros.

  12. Desenvolvimento de SW • A seguir é apresentado um tutorial passo-a-passo demonstrando como compilar e baixar um programa para ser executado na placa Excalibur. • O programa é um simples helloWord, cujo código é listado abaixo: int main(){ printf(“Hello Word!\n”); return 0; }

  13. Desenvolvimento de SW • Objetivos: • Demonstrar o uso do Microtronix LDK; • Demonstrar os passos necessários para tornar um aplicativo disponível; • Introduzir as principais etapas do ciclo de desenvolvimento de SW.

  14. Configuração passo-a-passo • P1 : Abrir o LDK; • Utilize o ícone do Desktop • P2 : Alterne para o diretório de projetos; • cd niosuserland • Dica: O ldk funciona através de um emulador de linux (cygwin) o shell utilizado é o bash, então é possível utilizar o recurso de auto-completar através da tecla tab. • Tente digitar apenas cd ni e pressionar tab, você verá que o shell completa o comando.

  15. Configuração passo-a-passo • P3: crie um diretório para a aplicação: • mkdir aHello [Enter] • Dica: um diretório chamado hello já existe. • Alterne para o diretório • cd aHello

  16. Configuração passo-a-passo • P3: Escreva o código do aplicativo: • Utilize o vi, xemacs (normalmente presentes) ou • Utilize um editor de texto do windows • P4: Salve o arquivo: • Para editores windows o arquivo deve ser salvo em: • C:\cygwin\opt\uclinux\niosuserland\aHello\hello.c

  17. Configuração passo-a-passo • P5: Escreva o makefile para compilar o arquivo: • Este ítem é necessário pois as bibliotecas estão em vários diretórios pelo disco; • A seguir é apresentado o makefile para essa simples aplicação. • Você pode ainda copiar o arquivo que está no hello original e alterar. • “cp ../hello/Makefile .”

  18. Configuração passo-a-passo • Código do Makefile STACKSIZE = 1024 include ../Rules.mak FTARGET = hello all: hello.abself hello.relocbflt $(FTARGET) Makefile ../Makefile SOURCES = hello.c include $(SOURCES:.c=.d) $(FTARGET): hello.relocbflt cp -a $< $@ chmod 0755 $@ clean: rm -f *.[iods] $(FTARGET)

  19. Configuração passo-a-passo • P6: Compile o projeto • Basta digitar o comando make Arquivo final

  20. Configuração passo-a-passo • P7: Baixar o programa para a placa • Visão da ligação em rede Host x Nios

  21. Configuração passo-a-passo • P7: Baixando SW para a placa • Descubra o IP da placa: • No shell do cygwin digite • Nios-run –t [ENTER] • [ENTER] • A placa deve solicitar o login • Logar como usuário root; • Usar o comando • /bin/ifconfig • O endereço IP aparece no texto de saída do comando no item eth0 e inet addr. • Alterne ainda as configurações de acesso ao diretório /var/tmp (onde o SW ficará) • chmod 0777 /var/tmp

  22. Configuração passo-a-passo

  23. Configuração passo-a-passo • Após obter o endereço IP digite Ctrl+C para fechar o nios-run; • Digite ftp <IP> • Logue como usuário operator; • Alterne o modo da conexao para binário; • Baixe o programa para o diretório tmp; • Feche a conexão;

  24. Configuração passo-a-passo • P8: Executar o SW • Logue na placa, mas agora via telnet; • Utilize o usuário root; • Alterne para o diretório /var/tmp • Mude os atributos do arquivo hello para poder executá-lo • chmod 0777 hello • Finalmente execute o Aplicativo • hello.

  25. Considerações finais • O desenvolvimento de SW para o uClinux exige o domínio de várias tecnologias típicas dos sistemas UNIX; • Atividades futuras incluem • Desenvolvimento de device drivers para disposistivos a serem utilizados na placa; • Desenvolvimento de uma distribuição do sistema operacional uClinux (abandonando a distribuição Microtronix de auto custo); • Para saber mais • http://www.linuxdevices.com/ • http://www.uclinux.org

More Related