Pular para conteúdo

Zephyr Hello World

imagems

Image by Asoy ID from Pixabay

Introdução

Ultimamente venho usando bastante o Zephyr junto com a placa nRF53nrf52840 dk da nordic. Frequentemente, quando quero criar um projeto do zero (para testar alguma coisa específica), acabo me deparando com a dúvida de quais são os arquivos realmente necessários para criar o projeto mais limpo possível. Por isso, resolvi explicar isso nesse post.

Hello World

Nada melhor do que o bom e velho Hello World para mostras esses detalhes.

CMake

Esse é o arquivo que vai linkar os módulos do zephyr com o seu código.

CMakeLists.txt
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0) #Versão mínima suportada do cmake

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) #Busca os módulos do Zephyr
project(hello_world) #Define o nome do projeto

target_sources(app PRIVATE src/main.c) #Define quais são os arquivos do seu código

Código

Aqui você deve colocar a implementação da sua aplicação.

Observe que o nome do arquivo deve ser o mesmo colocaco no CMakeList.txt.

main.c
/*
 * Copyright (c) 2012-2014 Wind River Systems, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <stdio.h>

int main(void)
{
    printf("Hello World! %s\n", CONFIG_BOARD_TARGET);

    return 0;
}

Configurações

O Zephyr utiliza o arquivo prj.conf para habilitar configurações do projeto. Para esse exemplo, não há necessidade de adicionar nada no arquivo.

prj.conf

Árvore dos Arquivos

Para facilitar a organização dos arquivos segue a árvore hierarquica:

hello_world
├── CMakeLists.txt
├── prj.conf
└── src
    └── main.c

1 directory, 3 files

Conclusão

Uma explicação rápida dos arquivos necessários foi mostrada. Existem arquivos que são recomendandos, como o README.rst e o sample.yaml, mas eles não são necessários para buildar o projeto. Dessa forma, somenete os arquivos: CMakeLists.txt, main.c e prj.conf são necessários para compilar o projeto com sucesso.

Comentários