Entendendo o arquivo de configuração sdkconfig

Entendendo o arquivo de configuração sdkconfig

{getToc} $title={Índice}

O que é o arquivo sdkconfig?

O arquivo sdkconfig é o resultante de todas as configurações realizadas no projetos, sejam elas a nível de periféricos (hardware) ou aplicação (protocolo), e contem todas as informações necessárias para a realização da compilação. Ele é gerado antes de cada build do projeto, ou a cada nova modificação nas configurações via menuconfig.

sdkconfig - exemplo de arquivo
sdkconfig - exemplo de arquivo

Tipos de arquivos gerados

  • sdkconfig : Arquivo de configuração gerais utilizado para a compilação.        
  • sdkconfig.ci : Configurações utilizadas ao criar uma aplicação em seu próprio sistema de CI, portanto, por padrão, não farão nada em seu projeto.
  • sdkconfig.old : Uma cópia da ultima modificação realizada, sem ser a atual.
  • sdkconfig.defaults : Define para o sistema as configurações padrão requeridas pela aplicação (projeto).

Criando o arquivo sdkconfig.defaults

Para a demonstração foi utilizado o exemplo hello_world disponível no diretório de exemplos da IDF.

O primeiro passo é identificar a configuração que será inserida no arquivo de configurações padrão, para isso abra o menu utilizando o comando idf.py menuconfig

sdkconfig - menuconfig 1
sdkconfig - menuconfig 1

Após abrir o menu, identifique a configuração a qual deseja salvar, no casso do exemplo faremos uma modificação na configuração Flash size, localizada em "serial flasher config".

sdkconfig - menuconfig 2
sdkconfig - menuconfig 2

Notasse que por padrão esse campo está preenchido com o valor 4 MB, porem para o exemplo queremos que esse valor seja 16 MB por padrão. Para isso pressione a tecla ? em cima do campo que deseja configurar.

sdkconfig - menuconfig 3
sdkconfig - menuconfig 3

A tecla ? fornece as informações da label tais como help, name, prompt ... Para mais informações consulte o tutorial sobre Kconfig.

Entrando no menu de informação foque no campo Choice symbols, ele traz todos os valores que são possíveis para a atribuição a essa configuração.
 
sdkconfig - atributos do menu
sdkconfig - atributos do menu

Após identificar as opções para a configuração devemos cola-la no arquivo sdkconfig.defaults, caso ele não exista em seu diretório do projeto utilize o comando "touch sdkconfig.defaults".

sdkconfig - diretorio
sdkconfig - diretório

Edite o arquivo e cole suas configurações.

sdkconfig - saida
sdkconfig - saída

Podemos notar que:
  • # é o carácter especial para adicionar comentários.
  • Ao colar a configuração temos que adicionar o prefixo CONFIG_
  • y é a atribuição da variável, no caso uma booleana, mas pode conter texto ou valores numéricos, dependendo do type da configuração.
Apos a modificação apague o arquivo sdkconfig e utilize do menu para validar se a configuração foi aplicada.

sdkconfig - comprovando o resultado
sdkconfig - comprovando o resultado


O ideal é que esse arquivo seja gerado através do comando idf.py save-defconfig, porem até o presente momento da criação desse guia, o comando não está disponível nas versões estáveis da IDF.

Referência



Leia também

Bruno Lima

Engenheiro de computação atuando em desenvolvimento de sistemas embarcados (Firmware) com microcontroladores e processadores (Linux Embarcado). Contribuidor de projetos públicos e fóruns de c/c++. linkedin github

Postar um comentário

Deixe seu comentário ou sua sugestão!

Postagem Anterior Próxima Postagem

Formulário de contato