MCU & FPGA RTOS Tutorial Zephyr OS: Como Criar o Primeiro Projeto com example-application, DeviceTree e West

Tutorial Zephyr OS: Como Criar o Primeiro Projeto com example-application, DeviceTree e West


Fluxo recomendado para “virar seu projeto” sem quebrar o template

  1. Faça um build/flash do exemplo como está (pra garantir ambiente ok). O README mostra west build -b $BOARD app e west flash. (GitHub)
  2. Edite :
    • app/src/main.c (coloque seu hello/loop)
    • app/prj.conf (habilite console/log)
    • app/CMakeLists.txt (garanta que está referenciando seu main.c)
  3. Se usar uma board oficial e precisar de ajustes, crie app/boards/<sua_board>.overlay.

west.yml na prática (manifesto do workspace) + zephyr/module.yml (faz o Zephyr “enxergar” seu repo)

Agora vamos no “núcleo” do template: como o repositório vira um workspace application (T2) e, ao mesmo tempo, pode atuar como módulo (para trazer drivers/libs/bindings out-of-tree para dentro do build do Zephyr).

west.yml: o que ele é e por que ele manda em tudo

O west é o gerenciador de múltiplos repositórios do ecossistema Zephyr. O arquivo west.yml é o manifest em YAML que define:

  • remotes: “apelidos” para bases de URL (ex.: GitHub do Zephyr)
  • projects: os repositórios que serão clonados/atualizados
  • defaults: valores padrão (ex.: remote padrão)
  • self: metadados do próprio repositório-manifesto (sua aplicação) (Documentação Zephyr)

No modelo T2 (workspace application / star topology), o seu repositório (a aplicação) é o centro; nele fica o west.yml, e ele puxa zephyr e os módulos necessários. A documentação oficial mostra esse modelo e dá exemplos de west.yml “T2”, inclusive com import: true para importar automaticamente os módulos declarados pelo Zephyr. (Documentação Zephyr)

Exemplo mental (simplificado) do que você verá/terá no seu west.yml

A documentação de workspaces mostra um west.yml típico no estilo T2 assim (vou explicar o significado, não é para copiar “cego”): você declara o remote do Zephyr, adiciona o projeto zephyr com uma revision (tag/branch/SHA) e marca import: true para que os módulos “oficiais” do Zephyr venham junto. (Documentação Zephyr)

Por que isso é melhor do que “git clone zephyr e pronto”?
Porque você passa a ter reprodutibilidade: a versão do Zephyr e dos módulos não fica “na sua cabeça”; fica formalmente no manifesto.

0 0 votos
Classificação do artigo
Inscrever-se
Notificar de
guest
0 Comentários
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários

Related Post

0
Adoraria saber sua opinião, comente.x