Inicial > brtos, ports, Projetos conjuntos > BRTOS 1.75 + LwIP, a pilha de protocolos TCP/IP mais famosa do código open source

BRTOS 1.75 + LwIP, a pilha de protocolos TCP/IP mais famosa do código open source

     Após um longo período sem grandes novidades temos o prazer de anunciar o porte do BRTOS para o LwIP !!! A muito tempo vinhamos pensando em disponibilizar este porte do BRTOS para um dos mais famosos stacks TCP/IP existentes para sistemas embarcados. Essa idéia saiu do papel quando nosso grande amigo e colaborador, Sérgio Prado do blog http://sergioprado.org/, anunciou um curso de FreeRTOS que, entre outros assuntos, iria abordar o porte do FreeRTOS para o LwIP. Apesar de ser um ótimo curso, o que mais nos chamou a atenção era o kit utilizado no curso, pois possuíamos este kit para testes do BRTOS. Assim, poderíamos testar o porte com os mesmos drivers. Não perdi tempo e contatei o Sérgio pedindo o projeto de demonstração para ter acesso aos drivers e prontamente, como sempre, recebi sua ajuda.

     Com os drivers em mãos iniciamos o porte, encontrando algumas dificuldades no início. O porte exigia recursos ainda não disponíveis no BRTOS, como passar parâmetros na instalação de tarefas e filas com tipos variáveis e, com suporte a desalocação. Surgiu então a versão 1.75 do BRTOS com estas funcionalidades. Após alguns testes o porte pode prosseguir e foi concluído. Mas antes de continuarmos, o que é exatamente o LwIP?

O lwIP é uma implementação mais leve da pilha de protocolos TCP/IP para sistemas embarcados. Foi desenvolvido por Adam Dunkels no laboratório de computação do Instituto Suíço de Ciência da Computação, e hoje é mantido pela comunidade open source. É código aberto, desenvolvido em C e liberado sob a licença BSD, sendo disponibilizado em:

http://savannah.nongnu.org/projects/lwip/

O LwIP consome poucos recursos (em torno de 20K a 40K de RAM (dados) e cerca de 40K de ROM / FLASH (código)). Suas principais funcionalidades são:

  • IP (Internet Protocol) including packet forwarding over multiple network interfaces
  • ICMP (Internet Control Message Protocol) for network maintenance and debugging
  • UDP (User Datagram Protocol) including experimental UDP-lite extensions
  • TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit
  • Specialized raw API for enhanced performance
  • Optional Berkeley-alike socket API
  • DHCP (Dynamic Host Configuration Protocol)
  • PPP (Point-to-Point Protocol)
  • ARP (Address Resolution Protocol) for Ethernet

O LwIP precisa ser portado para a plataforma em que será utilizado. O porte pode ser realizado tanto em projetos com sistema operacional quanto em sistemas sem sistema operacional. Informações de como portar o LwIP estão disponíveis em:

http://lwip.wikia.com/wiki/LwIP_Platform_Developers_Manual

O demo do porte foi desenvolvido para o kit TWR-K60N512-kit da Freescale, no ambiente de desenvolvimento CodeWarrior 10.2.

Este kit conta com um microcontrolador da linha Kinetis da Freescale, um ARM Cortex-M4 rodando a 100MHz (96MHz no demo), com 512K de flash e 128K de SRAM. O demo possui ainda demonstrações da USB emulando uma porta serial com um terminal, acesso a cartão SD com sistema de arquivos FAT32, acelerômetro e botões capacitivos. Tudo isso sendo executado concorrentemente !!!

Faça o download do demo e experimente … 

Tags:, ,
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: