Partilhar via


Tutorial: Criar um aplicativo de alto nível

Importante

Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (Integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

Um aplicativo de alto nível é executado no sistema operacional Azure Sphere, usa as bibliotecas de aplicativos do Azure Sphere e pode se comunicar com a Internet e com serviços baseados em nuvem. Consulte Visão geral dos aplicativos do Azure Sphere para obter informações básicas sobre aplicativos de alto nível.

Neste tutorial, irá aprender a:

  • Prepare seu dispositivo para desenvolvimento e depuração
  • Compilar, executar e depurar um aplicativo de alto nível

Pré-requisitos

Prepare seu dispositivo para desenvolvimento e depuração

Antes de criar um aplicativo de exemplo em seu dispositivo Azure Sphere ou desenvolver novos aplicativos para ele, você deve habilitar o desenvolvimento e o sideload. Por padrão, os dispositivos do Azure Sphere são "bloqueados"; ou seja, eles não permitem que aplicativos em desenvolvimento sejam carregados de um computador e não permitem a depuração de aplicativos. Preparar o dispositivo para sideload remove essa restrição.

O comando azsphere device enable-development configura o dispositivo para aceitar aplicativos para depuração, carrega o servidor de depuração no dispositivo e atribui o dispositivo a um grupo de dispositivos que não permite atualizações de aplicativos na nuvem. Durante o desenvolvimento e a depuração de aplicativos, você deve deixar o dispositivo nesse grupo para que as atualizações de aplicativos na nuvem não substituam o aplicativo em desenvolvimento.

  1. Certifique-se de que o dispositivo Azure Sphere está ligado ao computador e que o computador está ligado à Internet.

  2. Abra uma interface de linha de comando usando PowerShell, Prompt de Comando do Windows ou shell de comando do Linux.

  3. Introduza o seguinte comando:

    azsphere device enable-development
    

    Deverá ver um resultado semelhante ao seguinte:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

Se o comando azsphere device enable-development falhar, consulte Solucionar problemas do Azure Sphere para obter ajuda.

Crie e execute o aplicativo de alto nível com o Visual Studio Code

Este tutorial usa o modelo Azure Sphere Blink, que faz parte da Extensão do Azure Sphere para Visual Studio Code. O modelo Blink pisca um LED para que você possa verificar se o dispositivo e as ferramentas do Azure Sphere estão instalados e configurados corretamente.

  1. Inicie o Visual Studio Code. Selecione Exibir>paleta de comandos e digite Azure Sphere: Gerar novo projeto.

    Barra de comandos no código do Visual Studio

  2. Escolha Piscar no menu Modelos.

    menu pop-up com nomes de modelos

  3. Em seguida, o Visual Studio Code exibe uma janela do Explorador de Arquivos. Navegue até a pasta onde deseja colocar o aplicativo Blink. O Visual Studio Code cria a pasta Blink no local selecionado e gera os arquivos de compilação para o aplicativo Blink. Deverá ver mensagens do CMake.

  4. Abra o arquivo CMakeLists.txt e altere a configuração TARGET_DIRECTORY para especificar a pasta que contém definições para o hardware que você está usando. Por padrão, o TARGET_DIRECTORY especifica HardwareDefinitions/mt3620_rbd, que corresponde ao Kit de Desenvolvimento Seeed Azure Sphere MT3620:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Várias definições de hardware são fornecidas com o modelo. Por exemplo, se você estiver usando uma SEEED MT3620 Mini Dev Board, especifique HardwareDefinitions/seeed_mt3620_mdb em vez disso.

  5. Pressione F5 para criar e depurar o projeto. Se o projeto não tiver sido criado anteriormente ou se os arquivos tiverem sido alterados e a reconstrução for necessária, o Visual Studio Code criará o projeto antes do início da depuração.

  6. Aguarde alguns segundos para que o Visual Studio Code crie o aplicativo, crie um pacote de imagem, implante-o no quadro e inicie-o no modo de depuração. Você verá atualizações de status no painel Saída ao longo do caminho.

    Primeiro, o CMake determina se o aplicativo precisa ser criado. Em caso afirmativo, o foco muda para o painel de saída, que exibe a saída do CMake/Build.

    Em seguida, o painel de saída mostra a saída do Azure Sphere à medida que implanta o pacote de imagem no dispositivo. Finalmente, o Debug Console recebe foco e mostra a saída gdb.

    Gorjeta

    Anote o local do seu pacote de imagens, pois você precisará dele ao criar uma implantação. Você deve ver uma mensagem como "Build files written to <path>" na janela Output, onde <path> é o caminho completo para a pasta build do seu aplicativo Blink, normalmente terminando em "out\ARM-Debug" ou "out/ARM-Debug".

  7. Após um pequeno atraso, você verá um LED piscar.

  8. Defina um ponto de interrupção algures no passo main.c e passe pela aplicação, para que possa explorar as funcionalidades de depuração do Visual Studio Code para o Azure Sphere.

Crie e execute o aplicativo de alto nível com o Visual Studio

Este tutorial usa o modelo Azure Sphere Blink, que faz parte da Extensão do Azure Sphere para Visual Studio. O modelo Blink pisca um LED para que você possa verificar se o dispositivo e as ferramentas do Azure Sphere estão instalados e configurados corretamente.

  1. Se você é novo no Visual Studio, considere o Guia de início rápido ou Tour guiado para aprender sobre como navegar e usá-lo.

  2. Abra o Visual Studio e selecione Criar um novo projeto. Na caixa Pesquisar, digite 'azure sphere' para obter uma lista de modelos do Azure Sphere. Escolha Azure Sphere Blink na lista.

  3. Insira um nome e um local para o projeto e selecione Criar.

  4. Abra o arquivo CMakeLists.txt e altere a configuração TARGET_DIRECTORY para especificar a pasta que contém definições para o hardware que você está usando. Por padrão, o TARGET_DIRECTORY especifica HardwareDefinitions/mt3620_rbd, que corresponde ao Kit de Desenvolvimento Seeed Azure Sphere MT3620:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Várias definições de hardware são fornecidas com o modelo. Por exemplo, se você estiver usando uma SEEED MT3620 Mini Dev Board, especifique HardwareDefinitions/seeed_mt3620_mdb em vez disso.

  5. No Visual Studio, selecione Exibir>saída para exibir o painel Saída.

  6. Certifique-se de que o dispositivo está ligado ao PC por USB. No menu Definir item de inicialização, selecione Azure Sphere App (HLCore), onde Azure Sphere App é o nome do seu aplicativo de alto nível atual ou pressione F5.

    Botão Depurador GDB remoto

  7. Se você for solicitado a criar o projeto, selecione Sim. O Visual Studio compila o aplicativo, cria um pacote de imagem, faz sideload no quadro e o inicia no modo de depuração. Sideload significa que o aplicativo é entregue diretamente do PC através de uma conexão com fio, em vez de entregue através da nuvem.

    Gorjeta

    Anote o local do seu pacote de imagens, pois você precisará dele ao criar uma implantação. Você deve ver uma mensagem como "O arquivo de saída está em: <caminho>" na saída em View>Output>Show output from: Build, onde <path> é o caminho completo para a pasta build do seu aplicativo Blink, normalmente terminando em "out/ARM-Debug".

  8. Por padrão, o painel Saída mostra a saída da Saída do dispositivo. Para ver as mensagens do depurador, selecione Depurar no menu suspenso Mostrar saída de: . Você também pode inspecionar a desmontagem do programa, registros ou memória através do menu Depurar>Windows.

  9. Quando você executa o programa, você deve ver um LED piscar.

Transferir a aplicação de exemplo

Você pode baixar o aplicativo HelloWorld da seguinte maneira:

  1. Aponte seu navegador para Microsoft Samples Browser.
  2. Digite "Azure Sphere" na caixa Pesquisar.
  3. Selecione Azure Sphere - Hello World nos resultados da pesquisa.
  4. Selecione Baixar ZIP.
  5. Abra o arquivo baixado e extraia para um diretório local.

Criar o exemplo

Para criar os arquivos build e .imagepackage para o aplicativo de exemplo HelloWorld_HighLevelApp, siga estas etapas.

  1. Atualize o exemplo para direcionar seu hardware, se necessário. Por padrão, os exemplos destinam-se a hardware que segue o design da placa de referência MT3620 (RDB), como o MT3620 Development Kit da Seeed Studios. Definições adicionais de hardware de destino para os aplicativos de exemplo estão disponíveis no diretório HardwareDefinitions do repositório Azure Sphere Samples. Por exemplo, os arquivos de definição de hardware para o Avnet MT3620 Starter Kit estão no subdiretório HardwareDefinitions/avnet_mt3620_sk.

    • Abra CMakeLists.txt e atualize o parâmetro TARGET_DIRECTORY na função azure_target_hardware_definition para apontar para o subdiretório do hardware. Por exemplo:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. Abra uma interface de linha de comando usando PowerShell, Prompt de Comando do Windows ou shell de comando do Linux. Navegue até o diretório de compilação do projeto.

  3. No diretório de compilação do projeto, no prompt de comando, execute o CMake com os seguintes parâmetros:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      O nome da predefinição de configuração de compilação conforme definido em CMakePresets.json.

    • --build <cmake-path>

      O diretório binário que contém o cache CMake. Por exemplo, se você executar o CMake em um exemplo do Azure Sphere, o comando build será cmake --build out/ARM-Debug.

    • <source-path>

      O caminho do diretório que contém os arquivos de origem para o aplicativo de exemplo. No exemplo, o repositório de exemplos do Azure Sphere foi baixado para um diretório chamado AzSphere.

      Os parâmetros CMake são separados por espaços. O caractere de continuação de linha (^ para linha de comando do Windows, \ para linha de comando do Linux ou ' para PowerShell) pode ser usado para legibilidade, mas não é necessário.

    Os exemplos a seguir mostram os comandos CMake para o aplicativo de alto nível Hello World:

    Linha de Comandos do Windows

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  4. Execute Ninja para construir o aplicativo e criar o arquivo de pacote de imagem:

    ninja -C out/ARM-Debug
    

    Ninja coloca o aplicativo resultante e os arquivos .imagepackage no diretório especificado.

    Você também pode invocar Ninja através do CMake com o seguinte comando:

    cmake --build out/<binary-dir>
    

    Defina <binary-dir> para o diretório binário que contém o cache CMake. Por exemplo, se você executar o CMake em um exemplo do Azure Sphere, o comando build será cmake --build out/ARM-Debug.

    Ao solucionar problemas, especialmente depois de fazer alterações nos comandos do CMake, exclua toda a compilação e tente novamente.

Executar o exemplo

  1. Se o seu dispositivo já estiver executando um aplicativo, exclua o aplicativo:

    azsphere device sideload delete
    
  2. Mude para o diretório que contém os arquivos build e .imagepackage criados anteriormente.

  3. Carregue o pacote de imagem em seu dispositivo executando o comando azsphere device sideload deploy e especificando o pacote de imagem. Por exemplo:

    azsphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Este comando carrega o pacote de imagem e inicia o aplicativo. Deverá ver um LED a piscar.

    Gorjeta

    Observe o caminho do pacote de imagens. Você usará o pacote de imagem posteriormente no Guia de início rápido de implantação.

Depurar o exemplo

  1. Mude para o diretório que contém os arquivos build e .imagepackage criados anteriormente.

  2. Obtenha o ID do componente se ainda não o tiver:

    azsphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    

  1. Se o aplicativo estiver em execução, pare-o e reinicie-o com a --debug-mode opção:

    azsphere device app stop --component-id <ComponentId>
    
    azsphere device app start --debug-mode --component-id <ComponentId>
    

Deverá ver:

 <ComponentId>
 App state   : debugging
 GDB port    : 2345
 Output port : 2342
 Core        : High-level
  1. Use um cliente de terminal para estabelecer uma conexão Telnet ou TCP bruto para ler o fluxo de saída do processo. Especifique 192.168.35.2 como o endereço IP e 2342 como a porta.

  2. Abra uma interface de linha de comando usando o PowerShell ou um prompt de comando padrão no Windows, ou shell de comando no Linux, e passe o binário do aplicativo .out da sua compilação como um parâmetro. Isso permitirá a depuração completa do código-fonte.

    Linha de Comandos do Windows

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Nota

    O SDK do Azure Sphere é fornecido com várias sysroots para que os aplicativos possam direcionar diferentes conjuntos de APIs, conforme descrito em Versão do tempo de execução do aplicativo, sysroots e APIs Beta. Os sysroots são instalados na pasta de instalação do SDK do Azure Sphere em Sysroots.

  3. Defina o destino de depuração remota para o endereço IP 192.168.35.2 na porta 2345:

    target remote 192.168.35.2:2345

  4. Execute quaisquer outros comandos gdb que escolher. Por exemplo, os comandos a seguir definem um ponto de interrupção na entrada como main() e, em seguida, continuam a execução após o ponto de interrupção, respectivamente.

    break main
    
    c
    

    Para obter mais informações sobre depuração com gdb, consulte GDB: The GNU Project Debugger ou uma das outras fontes numerosas sobre o assunto.

Próximos passos

Você criou um aplicativo de alto nível para ser executado em seu dispositivo Azure Sphere. Você pode querer modificá-lo agora. Definições de hardware descreve como editar um arquivo JSON de definição de hardware e gerar novamente o arquivo de cabeçalho associado.

Em seguida, saiba como implantar seu aplicativo de alto nível a partir da nuvem.

Consulte também

Visite a Galeria do Azure Sphere, uma coleção de scripts, utilitários e funções inspiradores, sem manutenção e reutilizáveis do Azure Sphere.