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


Table of Contents

Criando o “primeiro projeto” a partir do example-application (visão geral + clonagem correta)

O repositório example-application foi feito exatamente para ser um “esqueleto” de aplicação Zephyr fora da árvore principal (out-of-tree), mostrando também como organizar workspace, módulos, CI, boards, bindings, drivers e bibliotecas externas. (GitHub)
A ideia central é: você não “compila o Zephyr”; você compila uma aplicação que puxa e configura o Zephyr, e o build gera um único binário final. (docs.zephyrproject.org)

Pré-requisito: trabalhar como workspace application (o “jeito Zephyr”)

O west funciona melhor quando seu app está dentro de um workspace (um diretório que contém .west/, o repositório zephyr/ e os módulos). A própria documentação descreve essa topologia e mostra que, nesse formato, o west.yml fica do lado da aplicação e “puxa” o Zephyr e módulos necessários. (docs.zephyrproject.org)

Isso é importante porque muita gente clona o repositório “solto” e tenta west build ali dentro — e aí aparece erro do tipo “unknown command build; do you need to run this inside a workspace?”. (Isso acontece porque o west não detectou o workspace.)

Criando o workspace já com o exemplo (forma recomendada)

Inicie criando um ambiente virtual do python para uso do Zephyr:

cd workspace
python -m venv venv
souce venv/bin/activate

#  na primeira vez
pip install west

O README do repositório já dá o caminho mais limpo: inicializar um workspace apontando o manifest para o example-application, e depois baixar os módulos. (GitHub)

No Linux (ou WSL), faça assim:

# 1) Crie um workspace usando o example-application como manifest
west init -m https://github.com/zephyrproject-rtos/example-application --mr main my-workspace
cd my-worspace

Baixe Zephyr + módulos definidos pelo manifest

cd my-workspace
west update

Exporte o pacote CMake do Zephyr, isto permite o CMake automaticamente carregar o modelo padrão requerido para construção de aplicações Zephyr

west zephyr-export

Instale as dependências usando:


cd zephir
west packages pip --install

Após isso, você terá uma árvore onde existe uma pasta example-application/ (a sua aplicação) e também zephyr/ e modules/ (dependências do RTOS), seguindo o modelo de workspace. (docs.zephyrproject.org)

Primeiro build (para validar o ambiente)

O próprio README mostra o build apontando para a pasta app dentro do repositório (sim: o “app de verdade” fica em app/). (GitHub)

cd example-application
west build -b <SUA_BOARD> app

E, para rodar rápido sem placa específica, o repo menciona uma board customizada custom_plank, (útil só pra validar estrutura/fluxo). (GitHub)

Adaptando o exemplo para “seu novo projeto” (a primeira mudança certa)

Aqui é onde a maioria faz a adaptação do jeito mais seguro:

  1. Renomeie o repositório/pasta para o nome do seu produto (ex.: my-control-app/).
  2. Mantenha o west.yml como “coração” do workspace, porque ele define que versão do Zephyr e módulos você usa (e isso determina reprodutibilidade). Um doc de workspaces explica esse papel do west.yml e do self: path: no layout. (docs.zephyrproject.org)
  3. Só depois disso você começa a mexer em app/ (código, prj.conf, overlays, CMake etc.).
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

Como Criar Tarefas e Soft Timers no FreeRTOS: Guia Prático e Didático para Sistemas EmbarcadosComo Criar Tarefas e Soft Timers no FreeRTOS: Guia Prático e Didático para Sistemas Embarcados

Este artigo apresenta um guia completo e didático sobre como criar e gerenciar tarefas e soft timers no FreeRTOS, explicando conceitos fundamentais de escalonamento, prioridades, dimensionamento de stack e comunicação

0
Adoraria saber sua opinião, comente.x