Pular para o conteúdo

Primeiros passos com STM32

Esta é a contraparte embarcada do Início rápido: um exemplo prático completo que leva um projeto embarcado novo a um .ioc STM32 gerado (o arquivo de projeto do CubeMX) commitado no seu repositório. Ele usa a superfície de planejamento de pinos do Subaya (suya arch), que é apoiada por um motor CubeMX headless na nuvem.

Você não precisa do CubeMX instalado localmente — a validação autoritativa e a geração de código rodam no backend do Subaya.

Terminal window
suya project create --name blinky --workspace <workspace-id> --type embedded
suya repo create --installation <installation-id> # back it with Git

Um pin-plan captura o MCU/placa, as atribuições de pinos, as configurações de periféricos e a intenção de árvore de clock. Comece a partir de uma placa de desenvolvimento (o contrato da placa fornece de graça os pinos de LED, botão e porta-COM-virtual) ou a partir de um componente MCU avulso:

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 os planos:

Terminal window
suya arch pin-plan list
suya arch pin-plan show --plan <plan-id>
Terminal window
# Pin a signal to a physical pin
suya arch pin set --plan <plan-id> --pin PA5 --signal GPIO_Output --label LED
# Configure a peripheral (mode + params)
suya arch peripheral configure --plan <plan-id> --peripheral USART2 --mode Asynchronous
# Express clock-tree intent
suya arch clock set --plan <plan-id> ...
# Every assignment has an inverse — use it when a pin moves or was mistyped
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
Terminal window
suya arch validate --plan <plan-id>

Isto executa uma validação estrutural; o motor CubeMX headless no backend é a verificação autoritativa.

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 no seu repositório GitHub, pronto para ser aberto no STM32CubeMX ou para conduzir geração de código adicional.

Renderize o plano em um documento de revisão e passe-o pela revisão como qualquer outro artefato de design:

Terminal window
suya arch pin-plan review-doc --plan <plan-id>
suya review create <document-id>