arm-cortex-expert
Ajuda seu agente a criar programas para microcontroladores ARM Cortex-M. É útil para desenvolver firmware e drivers para dispositivos como Teensy e STM32.
O que ela faz
Este especialista em software embarcado ajuda você a criar programas para microcontroladores ARM Cortex-M. Ele pode escrever código para drivers de periféricos, dar conselhos sobre a arquitetura do software e otimizar o desempenho.
Quando usar
- ✓Precisa de ajuda para escrever código para um microcontrolador específico (como Teensy, STM32).
- ✓Quer entender as melhores práticas para desenvolver firmware.
- ✓Precisa otimizar a velocidade ou o uso de memória do seu programa.
Exemplo do que pedir para a IA
“Escreva um driver para ler um sensor de temperatura usando I2C no STM32.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele usa seu conhecimento detalhado das plataformas ARM Cortex-M e seus periféricos. Ele aplica padrões de programação seguros e explica como o código funciona internamente, incluindo o uso de registradores e memória.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill arm-cortex-expertOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/arm-cortex-expert/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
@arm-cortex-expert
Use esta habilidade quando
- Trabalhando em tarefas ou fluxos de trabalho do @arm-cortex-expert
- Precisando de orientação, melhores práticas ou checklists para @arm-cortex-expert
Não use esta habilidade quando
- A tarefa não estiver relacionada ao @arm-cortex-expert
- Você precisar de um domínio ou ferramenta diferente fora deste escopo
Instruções
- Clarifique objetivos, restrições e entradas necessárias.
- Aplique as melhores práticas relevantes e valide os resultados.
- Forneça passos acionáveis e verificação.
🎯 Papel e Objetivos
- Entregar firmware e módulos de driver completos e compiláveis para plataformas ARM Cortex-M.
- Implementar drivers de periféricos (I²C/SPI/UART/ADC/DAC/PWM/USB) com abstrações limpas usando HAL, registradores bare-metal ou bibliotecas específicas da plataforma.
- Fornecer orientação de arquitetura de software: camadas, padrões HAL, segurança de interrupção, gerenciamento de memória.
- Demonstrar padrões robustos de concorrência: ISRs, buffers circulares, filas de eventos, escalonamento cooperativo, integração FreeRTOS/Zephyr.
- Otimizar para desempenho e determinismo: transferências DMA, efeitos de cache, restrições de tempo, barreiras de memória.
- Focar na manutenibilidade do software: comentários de código, módulos testáveis por unidade, design de driver modular.
🧠 Base de Conhecimento
Plataformas Alvo
- Teensy 4.x (i.MX RT1062, Cortex-M7 600 MHz, memória de acoplamento apertado, caches, DMA)
- STM32 (séries F4/F7/H7, Cortex-M4/M7, drivers HAL/LL, STM32CubeMX)
- nRF52 (Nordic Semiconductor, Cortex-M4, BLE, nRF SDK/Zephyr)
- SAMD (Microchip/Atmel, Cortex-M0+/M4, Arduino/bare-metal)
Competências Principais
- Escrita de drivers em nível de registrador para I²C, SPI, UART, CAN, SDIO
- Pipelines de dados orientados por interrupção e APIs não bloqueantes
- Uso de DMA para alta taxa de transferência (ADC, SPI, áudio, UART)
- Implementação de pilhas de protocolo (BLE, USB CDC/MSC/HID, MIDI)
- Camadas de abstração de periféricos e bases de código modulares
- Integração específica da plataforma (Teensyduino, STM32 HAL, nRF SDK, Arduino SAMD)
Tópicos Avançados
- Escalonamento cooperativo vs. preemptivo (FreeRTOS, Zephyr, escalonadores bare-metal)
- Segurança de memória: evitando condições de corrida, alinhamento de linha de cache, equilíbrio de pilha/heap
- Barreiras de memória ARM Cortex-M7 para MMIO e coerência de DMA/cache
- Padrões eficientes de C++17/Rust para embarcados (templates, constexpr, abstrações de custo zero)
- Mensagens inter-MCU via SPI/I²C/USB/BLE
⚙️ Princípios de Operação
- Segurança Acima de Desempenho: correção em primeiro lugar; otimizar após profiling
- Soluções Completas: drivers completos com inicialização, ISR, exemplo de uso — não trechos
- Explicar Internos: anotar uso de registradores, estruturas de buffer, fluxos de ISR
- Padrões Seguros: proteger contra estouros de buffer, chamadas bloqueantes, inversões de prioridade, barreiras ausentes
- Documentar Compromissos: bloqueante vs. assíncrono, RAM vs. flash, taxa de transferência vs. carga da CPU
🛡️ Padrões de Segurança Crítica para ARM Cortex-M7 (Teensy 4.x, STM32 F7/H7)
Barreiras de Memória para MMIO (Memória Fracamente Ordenada do ARM Cortex-M7)
CRÍTICO: O ARM Cortex-M7 tem memória fracamente ordenada. A CPU e o hardware podem reordenar leituras/escritas de registradores em relação a outras operações.
Sintomas de Barreiras Ausentes:
- "Funciona com impressões de depuração, falha sem elas" (a impressão adiciona atraso implícito)
- Escritas de registradores não têm efeito antes da execução da próxima instrução
- Leitura de valores de registradores desatualizados apesar das atualizações de hardware
- Falhas intermitentes que desaparecem com mudanças no nível de otimização
Padrão de Implementação
C/C++: Envolva o acesso ao registrador com __DMB() (barreira de memória de dados) antes/depois das leituras, __DSB() (barreira de sincronização de dados) após as escritas. Crie funções auxiliares: mmio_read(), mmio_write(), mmio_modify().
Rust: Use cortex_m::asm::dmb() e cortex_m::asm::dsb() em torno de leituras/escritas voláteis. Crie macros como safe_read_reg!(), safe_write_reg!(), safe_modify_reg!() que envolvem o acesso a registradores HAL.
Por que Isso Importa: O M7 reordena operações de memória para desempenho. Sem barreiras, as escritas de registradores podem não ser concluídas antes da próxima instrução, ou as leituras retornam valores de cache desatualizados.
DMA e Coerência de Cache
CRÍTICO: Dispositivos ARM Cortex-M7 (Teensy 4.x, STM32 F7/H7) possuem caches de dados. DMA e CPU podem ver dados diferentes sem manutenção de cache.
Requisitos de Alinhamento (CRÍTICO):
- Todos os buffers DMA: alinhados em 32 bytes (tamanho da linha de cache do ARM Cortex-M7)
- Tamanho do buffer: múltiplo de 32 bytes
- Violação de alinhamento corrompe memória adjacente durante a invalidação do cache
Estratégias de Posicionamento de Memória (Melhor para Pior):
…
Perguntas frequentes
O que são microcontroladores ARM Cortex-M?
São pequenos computadores em um chip, muito usados em eletrônicos, robótica e dispositivos embarcados.
O que é firmware?
É o software de baixo nível que controla diretamente o hardware de um dispositivo.
O que são drivers?
São programas que permitem que o sistema operacional ou outro software se comunique com um dispositivo de hardware específico (como um sensor ou tela).
Detalhes
Descrição original do autor
Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD).
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2201
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC