O que sistemas-embarcados faz?
Use ao desenvolver firmware para microcontroladores, implementar aplicações RTOS ou otimizar consumo de energia. Invocar para STM32, ESP32, FreeRTOS, bare-metal, otimização de energia, sistemas em tempo real, configurar periféricos, escrever manipuladores de interrupção, implementar transferências DMA, depurar problemas de temporização.
Visão Geral
Esta skill fornece orientação especializada para desenvolvimento de sistemas embarcados, cobrindo desde a inicialização de hardware (clock, GPIO, interrupções) até conceitos avançados como DMA, RTOS e gerenciamento de energia. Ela é útil tanto para iniciantes quanto para desenvolvedores experientes que precisam de um assistente para tarefas rotineiras ou depuração de problemas complexos.
Principais Recursos
- Configuração de Periféricos: Auxilia na configuração de temporizadores (PWM, captura de entrada), UART, SPI, I2C, ADC, DAC e outros periféricos comuns.
- Manipuladores de Interrupção (ISRs): Fornece exemplos e boas práticas para escrever ISRs eficientes, evitando bloqueios e minimizando latência.
- Transferências DMA: Explica como configurar e usar DMA para transferir dados sem sobrecarregar a CPU.
- Otimização de Consumo de Energia: Sugere modos de baixo consumo (sleep, deep sleep, standby) e técnicas para reduzir o consumo em projetos com bateria.
- Sistemas em Tempo Real: Ajuda a projetar tarefas com FreeRTOS, gerenciar semáforos, filas e temporizadores, evitando deadlocks e starvation.
- Depuração de Temporização: Identifica problemas como jitter, glitches de clock e violações de timing.
Plataformas Suportadas
- STM32 (série F, G, H, L, etc.)
- ESP32 (ESP-IDF, Arduino core)
- FreeRTOS (qualquer port)
- Bare-metal (sem RTOS)
Como Usar
Para ativar esta skill em seu agente (Claude Code, Cursor, Codex), simplesmente faça perguntas ou solicitações relacionadas ao contexto de sistemas embarcados. Exemplos:
- "Configure um timer para gerar PWM no STM32F103 com frequência de 50 Hz."
- "Como otimizar o consumo de energia no ESP32 durante o modo deep-sleep?"
- "Escreva um handler de interrupção para o botão no FreeRTOS."
- "Explique como implementar DMA para transferência de dados de ADC no STM32."
Dicas e Boas Práticas
- Sempre verifique a folha de dados do microcontrolador para pinagem e registros específicos.
- Use semáforos binários no FreeRTOS para sincronizar ISRs com tarefas.
- Em projetos de baixo consumo, evite polling e prefira interrupções ou DMA.
- Para depuração de timing, utilize um osciloscópio ou analisador lógico para medir sinais reais.
Limitações
- Esta skill não substitui a leitura da documentação oficial do fabricante (ex: RM0008, ESP32 Technical Reference).
- Ela oferece orientações genéricas; ajustes finos podem ser necessários dependendo da versão do hardware ou do SDK.
Contribuição
Reporte issues ou sugestões no repositório jeffallan/embedded-systems.