Visão geral das possibilidades do Qt Creator 4.11 e QBS 1.15 para programar microcontroladores

Olá, colegas programadores, hardware e todos que simpatizam com eles. Gostaria de continuar analisando os recursos do Qt Creator IDE em conjunto com o sistema de compilação QBS referente à programação de microcontroladores.

Anteriormente, escrevi sobre melhorias nas versões anteriores do QtC 4.10 e QBS 1.14 .

Para quem esse tópico é interessante, bem-vindo ao gato.

Outro dia, silenciosa e imperceptivelmente, foi lançada a versão Qt Creator 4.11 , que adicionou algumas melhorias ao trabalhar com microcontroladores (em pessoas comuns - dispositivos "baremetais"). Esta versão do Qt Creator integra o sistema de compilação QBS 1.15 , que também possui novas melhorias (ainda não foi lançado).

Melhorias no Qt Creator


Todas essas melhorias estão disponíveis apenas quando o plug-in BareMetal está ativado, que é ativado no menu "Ajuda -> Sobre plug-ins -> Suporte a dispositivos -> BareMetal".

  1. Novas arquiteturas foram adicionadas aos compiladores GCC, SDCC e IAR EW, cujos detalhes básicos são dados na tabela abaixo:
    CompiladorArquiteturas Suportadas
    IAR EWSTM8, MSP430
    GccMSP430
    SDCCSTM8

    Agora, esses novos compiladores são detectados automaticamente na guia "Ferramentas -> Opções -> Kits -> Compiladores -> Detectados automaticamente".

    Por exemplo, para mim, fica assim:



    No Windows, a detecção automática do compilador GCC para a arquitetura MSP430 não é implementada, porque Este conjunto é fornecido como um arquivo simples e não como um instalador.

    Mas ninguém se preocupa em adicionar esse compilador GCC (e qualquer outro compatível) manualmente, enquanto o Qt Creator determinará corretamente a ABI do compilador:



    Nota: E é claro, todos os compiladores terão automaticamente diretórios com cabeçalhos, macros predefinidas etc. para o realce correto do código.

  2. A pedido dos trabalhadores , foi adicionado suporte para arquivos SVD para descrever os registros dos periféricos do microcontrolador.

    Nota: Como eu sei, esse recurso está disponível apenas para ARMs (embora eu possa estar errado) e ainda é experimental por natureza.

    Para usar esse recurso, você deve primeiro selecionar o arquivo SVD necessário no campo "Arquivo de descrição periférica" ​​nas configurações do dispositivo "Ferramentas-> Opções-> Dispositivos-> Seu dispositivo", correspondentes ao microcontrolador de destino:



    Nota: Esses arquivos podem ser baixados no site da ARM ou em diretórios com os produtos Keil MDK ou IAR EW instalados.

    Além disso, após iniciar a depuração, selecione “Peripheral Registers” no menu “Window-> Views”. Depois disso, o painel "Registros Periféricos" será aberto (semelhante ao painel "Registros"), no qual, clicando com o botão direito do mouse, é chamado um menu com uma lista de grupos de registros a serem exibidos:



    Selecionamos qualquer grupo (por exemplo, RCC) e obtemos uma lista de todos os registros desse grupo com sua descrição detalhada e valores que podem ser lidos / gravados:



    Nota: No momento, apenas um grupo selecionado de registros é exibido.

Melhorias no QBS


O QBS será parte integrante desta revisão, por isso faz sentido falar sobre suas melhorias:

  1. Adicionado suporte para esses novos compiladores e implementado a capacidade de detectar automaticamente os compiladores instalados e criar perfis.

    A propriedade qbs.architecture possui os seguintes valores:

    Nome da arquiteturaValor da propriedade
    STM8stm8
    MSP430msp430

  2. O suporte ao gerador foi adicionado aos projetos Keil MDK e IAR EW para as seguintes arquiteturas e versões:

    IDEArquiteturaGerador
    KEIL uVision 5.23BRAÇOkeiluv5
    KEIL uVision 5.23MCS51keiluv5
    IAR EW 8.40.1BRAÇOiarew8
    IAR EW 3.11.1STM8iarew3
    IAR EW 10.10.1MCS51iarew10
    IAR EW 7.12.4MSP430iarew7
    IAR EW 7.20.1AVRiarew7

    Nota: A tabela acima mostra as versões dos produtos com os quais o desenvolvimento de geradores estava indo e a operabilidade foi mais ou menos verificada.

    Portanto, agora é possível com esses geradores criar um projeto nativo para o IDE de destino desejado. Ao mesmo tempo, cada gerador converterá todos os sinalizadores, caminhos e dependências específicos do compilador especificados no projeto QBS nas configurações correspondentes do IDE de projeto de destino.

    Se o projeto QBS de origem contiver vários produtos (por exemplo, aplicativos, bibliotecas etc.), o gerador criará um "espaço de trabalho" de destino com subprojetos aninhados "projeto" para cada IDE de destino.

    Nota: direi imediatamente que, como eu sei, os IDEs KEIL ou IAR EW não oferecem suporte ao rastreamento de dependências (se estiver errado, corrija-o). Portanto, por exemplo, se o projeto contiver o aplicativo e a dependência na forma de uma biblioteca, o usuário precisará primeiro criar a biblioteca e depois o próprio aplicativo.

    Para gerar projetos, você já deve ter configurado os perfis QBS com os compiladores apropriados.

    Nota: Até agora, você não pode ficar sem perfis, porque o gerador do perfil recebe a própria arquitetura, o caminho para o compilador pré-instalado (IDE) e muito mais. Esses dados são necessários para a pesquisa correta de scripts do vinculador, caminhos para bibliotecas de tempo de execução e outras coisas específicas (não há lógica simples).

    Por exemplo, para criar um projeto de destino para o microcontrolador IAR EW e ARM, basta executar o seguinte comando:

    qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project/file> profile:<your/qbs/profile/for/arm> 

    Os nomes dos perfis podem ser obtidos usando, por exemplo, o utilitário GUI qbs-config-ui (ou use a versão do console).

    Nota: No momento, os geradores têm status experimental. Talvez em alguns casos (se o projeto original for complexo), eles gerem arquivos de projeto de destino incorretos ou ignorem alguns sinalizadores e muito mais. Não repreenda fortemente, mas crie relatórios de erros no rastreador QBS.

Você pode ver o status atual do suporte ao compilador aqui e o status atual da integração do gerador aqui .

Para ver como tudo funciona, o QBS fornece um conjunto de exemplos simples.

O que vem a seguir


Nas versões futuras, está planejado adicionar arquiteturas e geradores Renesas ao IAR EW para essas arquiteturas (não sei se será bem-sucedido). E também, se você tiver muita sorte, um depurador do Keil uVision será integrado ao Qt Creator.

Nesta nota, encerro minha história, obrigado a todos que prestarem atenção a esta revisão.

Source: https://habr.com/ru/post/pt480132/


All Articles