Zephyr Hello World
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.
# 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.
/*
* 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.
Á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.