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.

Esquema de cores

Idioma