
Curso Básico de BSP e C Embarcado
Domine as habilidades que impulsionam produtos embarcados reais — desde C bare-metal e scripts de linker até a arquitetura completa de um BSP. Este curso leva você da configuração da toolchain até drivers orientados a interrupção, comunicação serial e depuração de hardware em microcontroladores reais. Seja para entrar em sistemas embarcados ou elevar suas habilidades em firmware, essa é a base prática que o desenvolvimento profissional de BSP exige.
O que seu time vai dominar:
Configure periféricos GPIO, temporizadores, UART, SPI e I2C no nível de registradores, sem bibliotecas do fornecedor.
Escreva e modifique scripts de linker do GNU para posicionar corretamente código, dados e pilha na memória do microcontrolador.
Construa um BSP estruturado e portável com camadas HAL limpas que compilam em múltiplos alvos de hardware.
Implemente rotinas de serviço de interrupção, drivers com buffer em anel e transferências DMA para uma comunicação embarcada eficiente.
Aplique padrões de codificação alinhados ao MISRA e testes unitários baseados em host para produzir firmware confiável e focado em segurança.
Depure firmware embarcado usando sondas JTAG/SWD, analisadores lógicos e análise post-mortem de registradores de falha.
Como seu time estuda de forma prática Curso Básico de BSP e C Embarcado
Como seu time pratica Curso Básico de BSP e C Embarcado
Profissionais dessas empresas estudam na Dedika









Conteúdo do curso
8 Capítulos • 40 AulasDuração entre 4 e 360 horas (você decide)
Capítulo 1EsconderEsconder detalhesVer detalhesSistemas Embarcados e Fundamentos de BSP
Sistemas Embarcados e Fundamentos de BSP
Aula 1 • Primeiro Programa Bare-Metal
Escreve e grava um programa C mínimo sem SO ou biblioteca. Demonstra o ciclo completo de compilação-gravação-depuração em hardware real.
Aula 2 • Lendo Documentação de Hardware
Ensina a navegação sistemática de datasheets e manuais de referência. Apoia diretamente a programação em nível de registradores em capítulos posteriores.
Aula 3 • Configuração do Ambiente de Desenvolvimento e Toolchain
Instala e configura um compilador cruzado, depurador e sistema de build. Os alunos produzem um ambiente de build funcional antes de escrever qualquer código.
Aula 4 • O que é um BSP e o que ele Faz
Define o escopo do BSP: código de inicialização, drivers e camadas HAL. Conecta as responsabilidades do BSP às tarefas de bring-up de hardware.
Aula 5 • Anatomia de um Sistema Embarcado
Abrange processadores, memória, periféricos e barramentos como um modelo de hardware unificado. Estabelece o vocabulário usado ao longo do curso.
Capítulo 2EsconderEsconder detalhesVer detalhesFundamentos de Programação C para Embarcados
Fundamentos de Programação C para Embarcados
Aula 1 • Tipos de Largura Fixa e Representação de Dados
Apresenta os tipos stdint.h e seu significado para o hardware. Previne bugs de suposição de tamanho que causam falhas silenciosas no hardware alvo.
Aula 2 • Ponteiros e Padrões de Acesso à Memória
Abrange aritmética de ponteiros, ponteiros para funções e acesso a E/S mapeada em memória. Habilita diretamente a manipulação de registradores em capítulos subsequentes.
Aula 3 • Diretivas de Pré-processador e Compilador
Abrange macros, compilação condicional e atributos de compilador. Permite a seleção portável de código específico de hardware entre alvos de BSP.
Aula 4 • Técnicas de Manipulação de Bits
Ensina mascaramento, definição, limpeza e alternância de bits individuais. Essas operações são o mecanismo principal para configurar registradores de hardware.
Aula 5 • Padrões de Codificação C para Embarcados
Aplica regras estilo MISRA e análise estática ao código C embarcado. Constrói hábitos que reduzem defeitos em código BSP de segurança crítica.
Capítulo 3EsconderEsconder detalhesVer detalhesArquitetura de Memória e Scripts de Linker
Arquitetura de Memória e Scripts de Linker
Aula 1 • Sintaxe do Script de Linker e Seções
Explica MEMORY, SECTIONS e definições de símbolo em scripts GNU LD. Os alunos posicionam .text, .data e .bss nas regiões corretas.
Aula 2 • Configuração de Pilha e Heap
Configura tamanho da pilha, limites do heap e detecção de estouro. Previne as falhas de memória em tempo de execução mais comuns em sistemas embarcados.
Aula 3 • Mapa de Memória do Microcontrolador
Mapeia regiões de Flash, SRAM e periféricos para endereços físicos. Fornece o modelo espacial necessário para a criação de scripts de linker.
Aula 4 • Código de Inicialização e Inicialização do Runtime C
Implementa a sequência de inicialização que copia .data e zera .bss antes da main. Conecta símbolos do linker ao código de inicialização em assembly e C.
Aula 5 • Estratégias de Otimização de Memória
Aplica flags do compilador e do linker para reduzir o tamanho de código e dados. Diretamente relevante ao visar microcontroladores com recursos limitados.
Capítulo 4EsconderEsconder detalhesVer detalhesConfiguração de GPIO e Interrupções
Configuração de GPIO e Interrupções
Aula 1 • Debouncing e Detecção de Borda
Implementa debouncing por software e configura interrupções disparadas por borda. Produz detecção confiável de pressionamento de botão como exercício prático.
Aula 2 • Arquitetura de Registradores GPIO
Abrange registradores de direção, saída, entrada e função alternativa. Estabelece o modelo em nível de registrador aplicado a todos os drivers de periféricos.
Aula 3 • Ativação de Clock e Reset de Periféricos
Explica por que periféricos precisam ter o clock ativado antes do acesso aos registradores. Previne o travamento silencioso causado pelo acesso a periféricos sem clock.
Aula 4 • Escrevendo Rotinas de Serviço de Interrupção
Implementa ISRs com nomenclatura correta, latência mínima e limpeza segura de flags. Introduz riscos de dados compartilhados entre o contexto da ISR e da main.
Aula 5 • Fundamentos do Controlador de Interrupção
Configura o NVIC ou controlador de interrupção equivalente para prioridade e habilitação. Conecta linhas de interrupção de hardware a funções handler em C.
Capítulo 5EsconderEsconder detalhesVer detalhesTemporizadores, PWM e Temporização do Sistema
Temporizadores, PWM e Temporização do Sistema
Aula 1 • Arquitetura de Hardware do Temporizador
Explica prescaler, registrador de recarga automática e modos do contador. Fornece o modelo conceitual para todos os recursos baseados em temporizadores.
Aula 2 • Captura de Entrada e Medição de Frequência
Usa captura de entrada para medir largura de pulso e frequência de sinal. Demonstra o uso bidirecional do mesmo periférico temporizador.
Aula 3 • Geração de Sinal PWM
Configura canais de compare de saída para PWM com ciclo de trabalho ajustável. Habilita controle de motor e dimerização de LED como aplicações práticas.
Aula 4 • Temporizadores Watchdog e Segurança do Sistema
Configura temporizadores watchdog independentes e com janela para recuperação de falhas. Introduz o conceito de monitoramento de vivacidade do sistema no projeto de BSP.
Aula 5 • Gerando Atrasos de Tempo Precisos
Implementa atrasos bloqueantes e não bloqueantes usando interrupções de estouro do temporizador. Substitui atrasos baseados em loops não confiáveis por temporização precisa de hardware.
Capítulo 6EsconderEsconder detalhesVer detalhesDrivers de Comunicação Serial
Drivers de Comunicação Serial
Aula 1 • Implementação do Driver UART
Configura taxa de transmissão, formato do quadro e registradores de transmissão/recepção. Constrói um driver UART por polling como base para atualizações orientadas a interrupção.
Aula 2 • Implementação do Driver SPI
Configura polaridade e fase do clock SPI e controle do chip-select. Implementa transferências full-duplex para um sensor externo ou dispositivo de memória.
Aula 3 • UART Orientada a Interrupção com Buffers Circulares
Atualiza o driver por polling para usar interrupções de TX/RX e buffers circulares. Elimina o bloqueio da CPU durante transferências seriais.
Aula 4 • Implementação do Driver I2C
Implementa sequências de start, endereço, dados e stop do I2C em nível de registrador. Trata corretamente erros de ACK/NACK e arbitragem de barramento.
Aula 5 • Transferências Aceleradas por DMA
Descarrega transferências UART e SPI para o controlador DMA, liberando a CPU. Apresenta configuração de canal DMA e interrupções de transferência concluída.
Capítulo 7EsconderEsconder detalhesVer detalhesArquitetura de BSP e Padrões de Projeto de Drivers
Arquitetura de BSP e Padrões de Projeto de Drivers
Aula 1 • Camadas do BSP e Projeto de API
Define as camadas HAL, driver e aplicação com contratos de interface claros. Permite a reutilização de drivers entre variantes de hardware sem modificar o código da aplicação.
Aula 2 • Inicialização e Ciclo de Vida do Driver
Implementa transições de init, deinit e estado de potência para cada driver. Garante inicialização determinística e desligamento limpo no BSP.
Aula 3 • Arquivos de Cabeçalho de Configuração e Placa
Centraliza atribuições de pinos, frequências de clock e flags de recursos em cabeçalhos de placa. Isola diferenças de hardware em um único arquivo por placa alvo.
Aula 4 • Portando o BSP para um Novo Alvo
Percorre as etapas para portar um BSP existente para um microcontrolador diferente. Valida o projeto de abstração exercitando as costuras específicas de hardware.
Aula 5 • Padrões de Callback e Notificação de Eventos
Implementa callbacks com ponteiros para funções e flags de eventos para eventos assíncronos de drivers. Desacopla os internos do driver da lógica de resposta da aplicação.
Capítulo 8EsconderEsconder detalhesVer detalhesDepuração, Teste e Validação
Depuração, Teste e Validação
Aula 1 • Integração Contínua para Firmware
Automatiza build, análise estática e testes unitários em um pipeline de CI. Garante que os portões de qualidade do BSP sejam executados em cada alteração de código sem esforço manual.
Aula 2 • Tratamento de Falhas e Recuperação de Erros
Implementa handlers de falha grave que capturam quadros de pilha e status da falha. Permite análise post-mortem de travamentos em firmware implantado.
Aula 3 • Teste Unitário de Código C Embarcado
Aplica frameworks de teste unitário baseados em host à lógica de drivers do BSP. Separa o código dependente de hardware da lógica pura testável.
Aula 4 • Técnicas de Depuração com JTAG e SWD
Usa um depurador de hardware para definir breakpoints, inspecionar registradores e percorrer ISRs. Constrói confiança em fluxos de trabalho de depuração ao vivo em hardware.
Aula 5 • Analisadores Lógicos e Osciloscópios
Captura e decodifica sinais UART, SPI e I2C em pinos físicos. Correlaciona o comportamento do software com sinais elétricos para depuração de protocolos.
Seu certificado válido de conclusão
Este curso é para você:
Engenheiros eletricistas prontos para escrever firmware para seus próprios projetos de hardware.
Graduados em ciência da computação assumindo seu primeiro cargo em sistemas embarcados.
Hobbistas de Arduino que querem ir além das bibliotecas e aprender programação real de microcontroladores.
Desenvolvedores de firmware que dependem de HALs do fornecedor e querem entender o que roda por baixo.
Alunos de mecatrônica desenvolvendo projetos de conclusão de curso que exigem controle de hardware em baixo nível.
Profissionais em transição de carreira vindos do desenvolvimento de software e que estão mirando vagas em embarcados ou IoT.
Cursos relacionados
FAQ
Quem é a Dedika?
O certificado é válido no Brasil?
Os cursos são gratuitos?
Qual a carga horária dos cursos?
Como são os cursos?
Como funcionam os cursos?
Qual é o tempo dos cursos?
Qual o valor ou preço dos cursos?
O que é um curso EAD ou online e como ele funciona?
Os cursos possuem PDF?



















