Pular para o conteúdo

Toolchains na nuvem e CubeMX

As ferramentas que normalmente precisam de uma workstation potente e de um emaranhado de licenças rodam no backend da Subaya. Você as controla pela CLI e paga apenas pelos segundos de computação que usa.

Ferramentas pesadas rodam no backend da Subaya, não no seu notebook:

  • Quartus — síntese FPGA Intel/Altera.
  • RyuSim — o simulador SystemVerilog da Subaya.
  • Renode — emulação de sistemas embarcados.
  • BitCrucible — ponte de validação de hardware.
  • CubeMX headless — o mecanismo autoritativo de validação e geração de código por trás da superfície de planejamento de pinos embarcado da Subaya.

Você nunca instala isso localmente — o backend é o ambiente autoritativo. Veja Faturamento e uso para saber como funciona a computação medida.

Para projetos embarcados (ex.: STM32), a Subaya expõe uma superfície de planejamento de pinos apoiada pelo mecanismo CubeMX headless. Um pin-plan captura o MCU/placa, as atribuições de pinos, as configurações de periféricos e a intenção da árvore de clock, e gera um arquivo de projeto .ioc do CubeMX.

Para um exemplo completo passo a passo, veja Primeiros passos com STM32.

Inicie um plano a partir de uma placa de desenvolvimento suportada (o contrato da placa dá a você os pinos de LED, botão e porta COM virtual de graça) ou a partir de uma peça de MCU isolada:

Terminal window
# From a supported dev board
suya arch pin-plan create --board NUCLEO-L433RC-P
# …or from a bare MCU part
suya arch pin-plan create --mcu STM32F407VGTx

Liste e inspecione planos:

Terminal window
suya arch pin-plan list
suya arch pin-plan show --plan <plan-id>

Atribua um sinal a um pino físico:

Terminal window
suya arch pin set --plan <plan-id> --pin PA5 --signal GPIO_Output --label LED

Defina o modo e os parâmetros de um periférico:

Terminal window
suya arch peripheral configure --plan <plan-id> --peripheral USART2 --mode Asynchronous

Expresse a intenção dos nós da árvore de clock:

Terminal window
suya arch clock set --plan <plan-id> ...

Toda atribuição tem sua inversa, para quando um pino muda de lugar ou foi digitado errado:

Terminal window
suya arch pin rm --plan <plan-id> --pin PA5
suya arch peripheral rm --plan <plan-id> --peripheral USART2
suya arch clock rm --plan <plan-id> --node SYSCLK
suya arch pin-plan rm --plan <plan-id> # delete the whole plan

Execute uma validação estrutural. O mecanismo CubeMX headless no backend é a verificação autoritativa:

Terminal window
suya arch validate --plan <plan-id>

Gere o .ioc a partir do plano e depois faça commit dele no repositório conectado:

Terminal window
suya arch generate --plan <plan-id> --wait # run headless CubeMX, print the resolved .ioc
suya arch generate-status --run <run-id> # poll a run started without --wait
suya arch ioc commit # generate + commit the .ioc to the connected repo

Sem --wait, o generate enfileira a execução e devolve um id de run para consultar com generate-status. Verifique o status antes de confiar no resultado: resolved significa que o motor headless do CubeMX realmente rodou; unresolved significa que não — o .ioc é a sua intenção, não um artefato validado pelo motor — e reason diz o porquê, quase sempre que ainda não há imagem do CubeMX compilada para essa família de MCU.

O .ioc chega ao seu repositório no GitHub, pronto para abrir no STM32CubeMX ou para conduzir mais geração de código.