← Início
Tecnologias e plataformas
Linguagens de programação, plataformas de hardware, bus e ferramentas — a escolha segue os requisitos do projeto, não as minhas preferências.
Esta página oferece uma panorâmica compacta das tecnologias com que trabalho. A lista não é exaustiva — nomeia as plataformas, linguagens e ferramentas frequentes nos meus projetos ou que considero particularmente relevantes para o desenvolvimento embedded. Se a sua plataforma específica não aparecer aqui, isso não significa necessariamente falta de experiência; em projetos embedded os conceitos transferem-se com frequência para outras plataformas assim que a tarefa estiver clara.
Linguagens
1. Linguagens de programação e HDL
Escolha de linguagem segundo a tarefa: próximo do hardware e eficiente em recursos em C ou assembler, orientado a objetos em C++, lógica FPGA em VHDL e SystemVerilog, ferramentas e análise em Python.
- C — linguagem principal para firmware de microcontrolador, de bare-metal a FreeRTOS
- C++ — para aplicações embedded mais complexas com estruturas de objeto, conforme MISRA se necessário
- Assembler — sob restrições extremas, para drivers de hardware, código de arranque e engenharia inversa
- VHDL — projetos FPGA com forte clareza estrutural
- SystemVerilog — desenvolvimento FPGA moderno, testbenches, verificação
- Verilog — descrição FPGA clássica
- Python — automação de ensaios, scripts, análise de dados, backends web
- Kotlin — para aplicações Android de acompanhamento a dispositivos embedded
- JavaScript / HTML / CSS — frontends web e interfaces de configuração
MCU
2. Plataformas de microcontrolador
Experiência com todas as plataformas de microcontrolador estabelecidas no mercado embedded — desde o ARM Cortex de alto desempenho até ao chip Atmel otimizado em custo, como microcontrolador puro ou como plataforma de placa tipo Arduino ou BeagleBone.
- ARM Cortex-M — a plataforma-padrão para requisitos médios
- ARM Cortex-A — quando se requer Linux ou mais potência de cálculo
- ESP32 — aplicações embedded com Wi-Fi/Bluetooth
- Atmel / Microchip AVR — p. ex. família ATmega para projetos sensíveis ao preço
- Arduino — prototipagem rápida, ensino e demonstrações
- BeagleBone — plataforma ARM Cortex-A com Linux para aplicações mais exigentes
- Microcontroladores com memória mínima — bare-metal, sem RTOS (projeto Stihl como exemplo, ver referências)
- outras plataformas a pedido
FPGA
3. Plataformas FPGA
Desenvolvimento FPGA da especificação à verificação. Ênfase em produtos Xilinx, familiarizado com as toolchains modernas e os métodos de verificação.
- Xilinx Artix-7 — FPGAs eficientes em custo para tarefas de controlo e processamento de sinal
- Xilinx Zynq — plataforma combinada ARM+FPGA para sistemas complexos
- Vivado — toolchain para síntese, implementação e programação
- Icarus Verilog / Verilator — simuladores open-source para iteração rápida
- Testbenches em SystemVerilog — verificação estruturada de projetos FPGA
Bus
4. Bus e protocolos de comunicação
Experiência com os bus consolidados nos ambientes automóvel, industrial e embedded — desde a implementação próxima do hardware até ao diagnóstico.
- CAN / CAN FD — padrão automóvel e industrial
- MOST — bus de infoentretenimento com experiência do projeto Audi (ver referências)
- Ethernet / EtherCAT — comunicação industrial em tempo real
- SPI / I²C / UART — interfaces-padrão para sensores e periféricos
- UDS (ISO 14229) — protocolo de diagnóstico para unidades de comando
- WebSocket / MQTT — para ligações IoT e nuvem
RTOS
5. Sistemas operativos de tempo real e frameworks
Escolha da arquitetura de software segundo o requisito do projeto — desde bare-metal em microcontroladores limitados até sistemas operativos de tempo real multinúcleo completos.
- Bare-metal — quando memória e determinismo importam
- FreeRTOS — padrão de facto para RTOS em microcontrolador
- Arquiteturas multinúcleo — distribuição de tarefas por vários núcleos
- Linux embedded — em plataformas tipo BeagleBone, quando as aplicações dele beneficiam
Ferramentas
6. Ferramentas, frameworks de ensaio e IDEs
As ferramentas são meios. Trabalho com aquilo que se ajusta ao projeto — e familiarizo-me rapidamente com toolchains desconhecidas se forem relevantes para o projeto.
- Vector CANoe / CAPL — padrão para ensaios automóveis e simulação de bus
- LabView — software de medição e controlo
- Robot Framework — automação de ensaios ponta a ponta
- Bancadas HIL — hardware-in-the-loop para ensaios integrados de sistema
- Pulsonix — ferramenta de esquema e projeto PCB
- Vivado — toolchain FPGA Xilinx
- Git / GitLab — controlo de versões e revisão de código
- Wireshark — análise de rede e bus
Web/App
7. Tecnologias web e de app (software de acompanhamento)
Quando os dispositivos embedded precisam de uma interface de configuração, um painel ou uma aplicação móvel, posso entregar também o software de acompanhamento.
- JavaScript / HTML / CSS — frontends web
- Chart.js — visualização de dados no navegador
- Python / Flask — backends web
- Node.js — componentes de servidor
- Socket.IO / WebSocket / MQTT — transmissão de dados em tempo real
- Kotlin — aplicações Android para dispositivos embedded
- APIs REST — interfaces normalizadas entre embedded e nuvem
O que não consta desta lista
Esta página nomeia as tecnologias frequentemente utilizadas — não é um catálogo completo. Se a sua plataforma, linguagem ou ferramenta não aparece aqui, vale a pena discutir o projeto na mesma. Em desenvolvimento embedded, o que conta no fim não é tanto qual toolchain concreta se conhece, e mais com que rapidez se adota uma nova e com que profundidade se compreendem os conceitos subjacentes.