Este treinamento visa introduzir o participante no desenvolvimento de aplicações com o sistema operacional de tempo real MQX da NXP.
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 MQX, incluindo:
- Classificação de sistemas de tempo real, sistemas foreground, background e suas deficiências, kernel de tempo real e sistemas multitarefa, troca de contexto, escalonador e outros conceitos de um RTOS.
- Apresentação do kit de desenvolvimento e da ferramenta de desenvolvimento.
- Características do MQX, versões disponíveis, documentação e código-fonte.
- Arquitetura de uma aplicação baseada em tarefas, template de tarefas, iniciando o MQX, criando e finalizando tarefas, definindo prioridades, políticas de escalonamento, tick interrupt, tarefas orientadas à eventos, os estados de uma tarefa, desenvolvendo tarefas periódicas com rotinas de delay, a tarefa Idle.
- Trocas de mensagens entre tarefas, messages e lightweight messages, message pools, private message queues e system message queues.
- Mecanismos de sincronização no MQX, semaphores e lightweight semaphores, event flags e lightweight events, task queues e timers.
- Desenvolvendo uma rotina de tratamento de interrução (ISR), sincronizando rotinas de tratamento de interrupção e tarefas, tratamento de interrupção no MQX, implementando a ISR do usuário, cuidados ao implementar uma ISR, prioridades das interrupções.
- Gerenciando o acesso aos recursos da aplicação, critical sessions e mutual exclusion, desabilitando interrupções, desabilitando a preempção, usando semáforos e trabalhando com mutex, name component, inversão de prioridade e herança de prioridade, deadlock e tarefas gatekeeper.
- Alocação e desalocação de memória no MQX, pools de memória, lightweight memory manager, trabalhando com partitions, lendo o espaço disponível no heap, uso do stack e stack overflow, monitorando o stack de uma tarefa.
- Dicas para integrar bibliotecas externas em um projeto com o MQX, selecionando bibliotecas, MQX I/O, MQX RTCS, MQX USB host/device, MQX MFS, bibliotecas da comunidade, integrando uma biblioteca com o MQX.
- Logs da aplicação, lightweight logs, logs do kernel, run-time testing, watchdog de tarefas, task-aware debugging.
- Como dividir uma aplicação em tarefas e definir as prioridades de cada tarefa, definindo o tamanho do stack de cada tarefa, identificando stack overflow, definindo o tamanho do heap da aplicação, comunicação entre tarefas e entre interrupção e tarefa, trabalhando com interrupções.
- Recursos online, documentação, application notes, livros, comentários e dúvidas finais.
Para mais detalhes sobre o conteúdo, você pode consultar a agenda e os slides do treinamento.
Os slides deste treinamento são liberados sob a licença Creative Commons BY-SA 3.0, e os fontes podem ser baixados aqui.
Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.
Público-alvo
Estudantes, engenheiros, desenvolvedores e líderes de equipes de desenvolvimento de software para sistemas embarcados.
Pré-requisitos
Conhecimentos intermediários de linguagem C e desenvolvimento de firmware para microcontroladores.
Equipamentos
Todos os equipamentos necessários são fornecidos pela Embedded Labworks.
Material de estudo
O material de estudo é composto pelos slides das apresentações, o livro de atividades e exercícios, os guias de referência e documentos de estudo adicionais. Todo o material será fornecido de forma eletrônica no início do treinamento.
Kit de desenvolvimento
Neste treinamento será utilizada a plataforma Freedom da NXP (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 treinamentos para sua comunidade, em qualquer cidade do Brasil.
Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estudos e quer aprender mais sobre determinada tecnologia? Você coordena ou participa da coordenação de algum curso na sua universidade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os amigos e passar agradáveis horas aprendendo sobre sistemas embarcados?
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!
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