Exercício – Implantar um aplicativo de sensor de tempo real do Azure RTOS para monitorar o ambiente do recinto

Concluído

Neste exercício, implantaremos um aplicativo de tempo real no Azure Sphere.

Etapa 1: Excluir os aplicativos existentes no Azure Sphere

  1. Haverá reatribuições de periféricos entre o aplicativo de alto nível existente que está sendo executado no Azure Sphere e o novo aplicativo em tempo real que será implantado no Azure Sphere neste exercício. Sendo assim, você precisa excluir os aplicativos existentes no Azure Sphere para evitar conflitos.

    Na linha de comando do PowerShell do Windows ou no Terminal do Linux, exclua o aplicativo existente executando

    azsphere device sideload delete
    
  2. Você precisa reiniciar o dispositivo Azure Sphere para limpar as configurações existentes do firewall de silício. Na linha de comando do PowerShell do Windows ou no Terminal do Linux, execute

    azsphere device restart
    

Etapa 2: Abrir o projeto

  1. Iniciar o Visual Studio Code.

  2. No menu, clique em Arquivo e Abrir Pasta.

  3. Abra a pasta laboratório do Azure-Sphere.

  4. Abra a pasta Lab_6_AzureRTOS_Environment.

  5. Clique em Selecionar Pasta ou no botão OK para abrir o projeto.

Se você instalou a extensão Peacock do Visual Studio Code, ele ficará vermelho. Vamos conectar duas instâncias do Visual Studio Code ao Azure Sphere. A instância em vermelho está conectada ao núcleo de tempo real.

Etapa 3: Definir a configuração da placa de desenvolvimento

Esses laboratórios dão suporte a placas de desenvolvimento da Avnet e da Seeed Studio. Você precisa definir a configuração que corresponde à sua placa de desenvolvimento.

A configuração padrão da placa de desenvolvedor é destinada ao Kit de Início do Azure Sphere da Avnet Revisão 1. Se você tiver essa placa, não precisará realizar nenhuma configuração adicional.

  1. Abra o arquivo CMakeList.txt.

  2. Adicione # ao início da linha set Avnet para desabilitá-la.

  3. Remova a marca de comentário do comando set que corresponde à sua placa de desenvolvimento de dispositivo do Azure Sphere.

    set(AVNET TRUE "AVNET Azure Sphere Starter Kit Revision 1 ")
    # set(AVNET_REV_2 TRUE "AVNET Azure Sphere Starter Kit Revision 2 ")
    # set(SEEED_STUDIO_RDB TRUE "Seeed Studio Azure Sphere MT3620 Development Kit (aka Reference Design Board or rdb)")
    # set(SEEED_STUDIO_MINI TRUE "Seeed Studio Azure Sphere MT3620 Mini Dev Board")
    
  4. Salve o arquivo. Isso vai gerar automaticamente o cache do CMake.

Etapa 4: Implantar o aplicativo do Azure RTOS no Azure Sphere

  1. Selecione CMake: [Depurar]: Pronto na barra de status do Visual Studio Code.

    This illustration shows you how to set the debug build.

  2. No Visual Studio Code, pressione F5 para compilar, implantar, iniciar e anexar o depurador remoto ao aplicativo que está agora executando o dispositivo do Azure Sphere.

Etapa 5: Depurando aplicativos do núcleo de tempo real

Você pode depurar o aplicativo do Azure RTOS em execução no núcleo de tempo real Cortex M4 do Azure Sphere.

  1. No Visual Studio Code, navegue até o diretório demo_threadx e abra o arquivo demo_azure_rtos.c.

  2. Role até a função chamada intercore_thread.

    Observação

    Use Ir para o Símbolo no Editor no Visual Studio Code. Use o atalho de teclado Ctrl + Shift + O e comece a digitar intercore_thread. Frequentemente, você verá um nome de função listado duas vezes no menu suspenso. A primeira é o protótipo da função ou a declaração da assinatura de encaminhamento e a segunda é a implementação da função.

  3. Defina um ponto de interrupção na função intercore_thread, na linha em que se encontra switch (ic_control_block.cmd)

    Observação

    Saiba como definir pontos de interrupção com esse artigo sobre Depuração no Visual Studio Code.

    The illustration shows how to set a breakpoint in Visual Studio Code.

  4. Deixe o Visual Studio Code e o aplicativo em execução com o ponto de interrupção definido. Em seguida, vamos implantar um aplicativo de alto nível no núcleo Cortex A7, que solicitará a telemetria do ambiente do aplicativo em tempo real em execução no núcleo Cortex M4.