DocumentosData de envio
Tema: Introdução ao uso do sistema operacional Linux em sistemas embarcados
Durante os últimos anos, estimulado pelo avanço e miniaturização da eletrônica, aumentou-se exponencialmente a quantidade de recursos disponíveis em um dispositivo embarcado. São diferentes portas de comunicação como RS232 e USB, interfaces de memória como pendrives e cartões SD, conexões de rede como Ethernet e Wi-Fi, interfaces multimedia e saída de vídeo HD. Como desenvolver todas as camadas de software para colocar um hardware com este nível de recursos e complexidade no mercado, quando o que temos são apenas alguns meses de desenvolvimento? É aí que entra o uso do sistema operacional Linux. Características como a portabilidade para diferentes arquiteturas, reusabilidade e qualidade do código, custo zero de licença, acesso ao código-fonte, dentre outras, transformam este sistema operacional em um forte candidato para ser usado em um sistema embarcado.
Tópicos:
- Linux em sistemas embarcados
- Alguns mitos e verdade
- Arquitetura de um sistema com Linux Embarcado
- O papel da toolchain
- Entendendo o processo de Boot
- Bootloaders
- Kernel do Linux
- Sistema de arquivos (rootfs)
- Juntando as peças: Build system
- Licenças
Nível:
Iniciante
Requisitos Básicos:
- Conhecimento básico do Linux.
Público alvo:
Estudantes, engenheiros, desenvolvedores e líderes de equipes de desenvolvimento de software para sistemas embarcados.
Tema: Como gerar do zero uma imagem Linux para um dispositivo embarcado usando o Buildroot.
O processo de geração de uma imagem Linux para ser usada em um dispositivo embarcado é bem complicado. Geração do toolchain, compilação do bootloader, configuração e compilação do kernel, criação do rootfs e resolução de dependências entre pacotes e bibliotecas são todas tarefas muito complexas para serem executadas manualmente pelo desenvolvedor. Para facilitar este trabalho existem as ferramentas de build system. Abordaremos nesta palestra o Buildroot, uma das mais populares e utilizadas ferramentas disponíveis de build system para Linux embarcado.
Tópicos:
- Arquitetura de um sistema Linux Embarcado
- O papel do Build system
- O Buildroot
- Configurando o Buildroot
- Gerando uma imagem Linux em minutos
- Hierarquia de diretórios
- O diretório output
- Adicionando um pacote
- Recompilando um pacote
- Configurações avançadas
Nível:
Intermediário
Requisitos Básicos:
Conhecimentos básicos de Linux e Linux embarcado.
Público alvo:
Estudantes, engenheiros, desenvolvedores e líderes de equipes de desenvolvimento de software para sistemas embarcados.
Tema: Utilização de toolkits gráficos
Apresentação do conjunto de bibliotecas que formam a base do Desktop Enlightenment, também conhecido como E17. Conhecidas como EFL, estas bibliotecas proporcionam uma grande flexibilidade no desenvolvimento de aplicações, graças ao seu sistema de temas. E devido ao seu tamanho e desempenho, são uma ótima alternativa no desenvolvimento de aplicações para sistemas embarcados.
Tópicos:
- O que e quais são os principais toolkits para desenvolver interfaces
gráficas (e o que EFL tem de mais em relação à eles).
- Organização da EFL, e descrição de suas bibliotecas básicas (eina,
ecore, evas, eet, edje, embryo).
- A proposta do Edje: separar o desenvolvimento da interface do
desenvolvimento do código.
- Elementary - A biblioteca de widgets da EFL.
- Exemplos de códigos e aplicações feitas em EFL.
- Casos de uso da EFL em aplicações comerciais.
Nível:
Intermediário
Requisitos Básicos:
Conhecimento do desenvolvimento de aplicativos utilizando algum toolkit gráfico (Qt, Gtk, etc).
Público alvo:
Desenvolvedores de aplicativos gráficos.
Tema: Métodos para detectar e corrigir falhas de performance
Essa palestra se propõem a identificar pedaços do seu código que estão demorando mais tempo do que deveriam para ser executado, com exemplos de ferramenta para user space e kernel space e demonstrações práticas
Tópicos:
- O que é profiling?
- Debugging de kernel space
- Debugging de user space
- Outras ferramentas uteis
- Dicas para otimização.
Nível:
Intermediário
Requisitos Básicos:
Programação e compilação de código.
Público alvo:
Desenvolvedores em geral.
Tema: Inicialização de sistemas
Systemd é um novo sistema de init que visa substituir sistemas usados atualmente como SysV, upstart, openrc e outros. Pode ser usado tanto em computadores desktop quanto ser otimizado para sistemas embarcados, substituindo sistemas de init inflexíveis criados especialmente para esse fim. Apesar de possuir mais recursos que outros e ter uma arquitetura mais complexa, ele consegue ser menor e mais rápido, permitindo que o dispositivo tenha um menor tempo de inicialização e desligamento. Entre seus recursos estão: ativação sob demanda (via socket, dbus ou path), paralelismo, agrupamento de processos e seus filhos, gerenciamento de sessão e gerenciamento de arquivos temporários.
Tópicos:
- O De power up ao kernel
- Inicialização do kernel Linux
- Inicialização em user-space
- O novo sistema de init, systemd
- Recursos adicionais presentes no systemd
- Escrevendo arquivos de inicialização: service, path, automount e outros.
- Entendendo o shutdown.
Nível:
Avançado
Requisitos Básicos:
- Familiarização com sistemas de init atuais como SysV e upstart
- Noções de programação em C para Linux
- Conhecimento básico de dbus.
Público alvo:
Desenvolvedores e integradores de sistemas embarcados
Tema: Emuladores/Prototipagem
Nesta palestra introdutória, será demonstrado o QEMU, um emulador Open Source que pode ser utilizado para testes de aplicações e verificação de sistemas, em especial para plataformas embarcadas. Serão mostrados exemplos de uso do qemu para emular uma série de dispositivos e processadores diferentes.
Tópicos:
- Visão geral do emulador QEMU
- Diferenças entre emulação completa/espaço de usuário
- Emulação ARM em X86
- Emulação de diferentes máquinas
- Emulação de diferentes CPUs
- Utilização direta do sistema operacional (sem boot loader)
Nível:
Iniciante/ntermediário
Requisitos Básicos:
- Uso básico de um sistema linux
- Noções básicas sobre as diferenças entre as várias arquiteturas de computadores.
Público alvo:
Desenvolvedores de aplicações embarcadas interessados em verificação de aplicações para plataformas embarcadas.
Tema: Linux de tempo real
Esta palestra irá apresentar uma visão geral do projeto Xenomai, seus objetivos e resultados. Será apresentada a arquitetura do projeto e seu impacto do ponto de vista de desenvolvimento de aplicações de tempo real em Linux. Também será apresentada a experiência obtida a partir da realização de um trabalho de migração do projeto para um processador específico - o processador L-138 da Texas Instruments - e os resultados obtidos.
Tópicos:
Introdução
Sobre o Xenomai
Arquitetura Xenomai
Processador L-138
Procedimento para Migração
Resultados obtidos
Experiência com comunidade
Demonstração
Conclusãois.
Nível:
Intermediário
Requisitos Básicos:
Conhecimentos em linguagem C, conhecimento da arquitetura do Linux
Público alvo:
Interessadas em conhecer características específicas de kernel do Linux.
Tema: Linux de tempo real
Esta palestra apresentará um breve tutorial sobre as principais características de drivers em Linux embarcado. Serão apresentados os principais tipos de drivers em Linux e suas características. Por fim, será a apresentada a implementação de um drivers de caracteres simples e seu processo de construção.
Tópicos:
Introdução
Arquitetura do Sistema Operacional Linux
Device Drivers
Características de um driver de caracteres
Implementação
Resultados
Demonstração
Conclusão.
Nível:
Intermediário
Requisitos Básicos:
Conhecimentos em linguagem C, conhecimento da arquitetura do Linux
Público alvo:
Profissionais nteressados em conhecer o interfaceamento do Linux com dispositivos







