Compartilhe:
Início > FreeRTOS

FreeRTOS

Este treinamento visa capacitar o par­tic­i­pante no desenvolvimento de software embarcado utilizando o FreeRTOS, um dos sistemas operacionais de tempo real (RTOS) de código aberto mais utilizados no mundo.

Através de uma abordagem prática, o treinamento visa introduzir o participante nos conceitos de um sistema operacional de tempo real, cobrindo toda a API do FreeRTOS, incluindo:

  • Introdução a sistemas de tempo real: tipos de sistemas de tempo real, sistemas foreground/background, deficiências do super-loop, o kernel de tempo real, sistemas multitarefa, trocas de contexto, escalonador de tarefas, políticas de escalonamento, vantagens do uso de um RTOS.
  • Hardware e ambiente de desenvolvimento: placas Freedom, kit de desenvolvimento FRDM-KL46Z, ambiente de desenvolvimento, MCUXpresso IDE e SDK, documentação e referências.
  • Introdução ao FreeRTOS: histórico, FreeRTOS e Amazon FreeRTOS, posição no mercado, características, código-fonte e padrão de codificação, convenções, licença, OpenRTOS e SafeRTOS, portando e integrando o FreeRTOS.
  • Gerenciamento de tarefas: o que é uma tarefa, criando e excluindo tarefas, tarefas baseadas em eventos, estados de uma tarefa, prioridades, escalonador de tarefas, modos preemptivo e colaborativo, interrupção do tick, tick interrupt hook, rotinas de delay, tarefa idle, idle task hook, economia de energia e tickless idle mode, co-routines.
  • Comunicação entre tarefas: queues, lendo e escrevendo em queues, stream buffers, message buffers, queue sets.
  • Mecanismos de notificação: semáforos binários, semáforos contadores, gerenciando acesso a recursos com semáforos, task notifications, event groups.
  • Gerenciamento de interrupção: eventos de hardware, introdução ao tratamento de interrupção no ARM Cortex-M, implementando uma rotina de tratamento de interrupção (ISR), top-half e bottom-half, delegando o tratamento de interrupções para tarefas, técnicas de transferência de dados, interrupções utilizadas pelo FreeRTOS e configuração de prioridade.
  • Software timers: introdução a software timers, habilitando e configurando software timers, tipos de software timers, tratando interrupções em timers, daemon task startup hook.
  • Gerenciamento de concorrência: recursos compartilhados e a necessidade de gerenciamento de concorrência, thread-safe e reentrância, seções críticas e exclusão mútua, mutex, mutex recursivo, desabilitando as interrupções, pausando o escalonador, inversão de prioridade, herança de prioridade, deadloks, tarefas gatekeeper.
  • Gerenciamento de memória: vantagens e desvantagens de alocação estática e alocação dinâmica, funções de alocação estática de memória, algoritmos de alocação dinâmica de memória, fragmentação de memória, monitorando o heap, dimensionando e monitorando o uso da pilha, identificando estouro de pilha (stack overflow).
  • Ferramentas de suporte: exibindo informações sobre as tarefas em execução, habilitando Run Time Statistics, tracing, trace hook macros, kernel aware debugging, simuladores e emuladores.
  • Projetando com o FreeRTOS: dividindo o sistema em tarefas, definindo prioridades, técnica RMS (Rate Monotonic Scheduling), dimensionando o stack, alocação de memória, comunicação entre tarefas, tratamento de interrupção, escolhendo o escalonador.
  • Considerações finais: links e recursos adicionais, recomendações de livros, dúvidas e comentários finais, encerramento.

Para mais detal­hes sobre o con­teúdo, você pode consultar a agenda e os slides do treina­mento.

Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.

Público-alvo

Estu­dantes, engen­heiros, desen­volve­dores e líderes de equipes de desen­volvi­mento de soft­ware para sis­temas embar­ca­dos.

Pré-requisitos

Conhecimentos básicos de sistemas embarcados, desenvolvimento de firmware bare-metal para microcontroladores, conhecimentos intermediários de linguagem C.

Equipa­men­tos

Todos os equipa­men­tos necessários são forneci­dos pela Embedded Labworks.

Mate­r­ial de estudo

O mate­r­ial de estudo é com­posto pelos slides das apre­sen­tações, o livro de ativi­dades e exer­cí­cios, os guias de refer­ên­cia e doc­u­men­tos de estudo adi­cionais. Todo o mate­r­ial será fornecido de forma eletrônica no iní­cio do treina­mento.

Kit de desenvolvimento

Neste treinamento será utilizada a plataforma Freedom da freescale (FRDM-KL46Z), composta por um microcontrolador Kinetis KL46 (ARM Cortex-M0+) e diversas interfaces de comunicação e controle. Para mais informações sobre esta plataforma, clique aqui.

Turmas abertas

Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã.

Caso esteja interessado em participar do treinamento e não exista uma turma aberta, faça a pré-inscrição clicando aqui. Entraremos em contato assim que uma nova turma for aberta.

Treinamentos in-company

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa.

Turmas fechadas para treinamento in-company possuem as mesmas características de uma turma aberta. Neste modelo, a empresa é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, datashow e as máquinas de desenvolvimento. Esse modelo também traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor.

Se sua empresa tem uma necessidade especial, podemos estudar um programa que atenda sua necessidade de forma direcionada, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver um conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato.

Treinamentos na sua cidade

Você pode levar os treina­mentos para sua comu­nidade, em qual­quer cidade do Brasil.

Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estu­dos e quer aprender mais sobre determinada tecnologia? Você coor­dena ou par­tic­ipa da coor­de­nação de algum curso na sua uni­ver­si­dade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os ami­gos e pas­sar agradáveis horas apren­dendo sobre sistemas embar­cados?

Mande um e-mail ou uma mensagem para nós. Informe seu curso de interesse e também a sua cidade. Se conseguirmos formar uma turma, poderemos levar o treinamento para a sua cidade!

Clientes que já fizeram o treinamento
Ainda tem dúvidas?

Em caso de dúvidas, críticas ou sugestões, envie um e-mail ou deixe uma mensagem na página de contato.

Entre em contato