Share via


Criar aplicações de parceiros

A forma mais fácil de criar um novo par de aplicações de parceiros é criar um diretório de nível superior para conter as aplicações de alto nível e em tempo real e, em seguida, criar as aplicações compatíveis com alto nível e em tempo real por sua vez.

Criar uma aplicação de alto nível

Para criar uma aplicação de alto nível, comece com o modelo HLCore Blank da extensão do Azure Sphere do Visual Studio Code e ajuste a configuração ao seu projeto ao seguir estes passos:

  1. Inicie o Visual Studio Code. Selecione Ver>Paleta de comandos e, em seguida, escreva Azure Sphere: Gerar Novo Projeto.

    Barra de comandos no Visual Studio Code

  2. Selecione HLCore Blank no menu Modelos.

    menu de pop-up com nomes de modelo

  3. Em seguida, o Visual Studio Code apresenta uma janela Explorador de Ficheiros. Navegue para a pasta onde pretende colocar a aplicação em branco (ou selecione Nova Pasta e crie um novo diretório de projeto de parceiro de nível superior) e especifique um nome para o projeto, por exemplo NewHLApp. O Visual Studio Code cria a pasta NewHLApp na sua localização selecionada e gera os ficheiros de compilação para a aplicação em branco. Deverá ver mensagens do CMake.

  4. Abra o ficheiro CMakeLists.txt e especifique a pasta que contém definições para o hardware que está a utilizar. Por predefinição, a aplicação HLCore Blank não contém definições de hardware. Pode encontrar definições de hardware de exemplo no repositório de Exemplos do Azure Sphere ou criar uma, conforme descrito em Definições de hardware.

    O seguinte mostra como adicionar as definições de hardware de exemplo para o Kit de Desenvolvimento Seeed Azure Sphere MT3620:

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

    Esta linha deve ser inserida antes do início do comando azsphere_target_add_image_packagefinal .

Também pode criar uma nova aplicação de alto nível a partir de qualquer um dos exemplos de alto nível do Azure Sphere:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie uma das pastas de aplicação de alto nível e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewHLApp C)

Criar uma RTApp

Para criar uma nova aplicação em tempo real, comece com o modelo RTCore Blank a partir da extensão do Azure Sphere do Visual Studio Code e ajuste a configuração ao seu projeto ao seguir estes passos:

  1. Inicie o Visual Studio Code. Selecione Ver>Paleta de comandos e, em seguida, escreva Azure Sphere: Gerar Novo Projeto.

    Barra de comandos no Visual Studio Code

  2. Selecione RTCore Em Branco no menu Modelos.

    menu de pop-up com nomes de modelo

  3. Em seguida, o Visual Studio Code apresenta uma janela Explorador de Ficheiros. Navegue para a pasta que contém a pasta de aplicação de alto nível e especifique um nome para o projeto, por exemplo NewRTApp. O Visual Studio Code cria a pasta NewRTApp na sua localização selecionada e gera os ficheiros de compilação para a aplicação em branco. Deverá ver mensagens do CMake.

Também pode criar uma nova aplicação com capacidade em tempo real a partir de qualquer um dos exemplos do Azure Sphere em tempo real:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie uma das pastas de aplicação de alto nível e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewRTApp C)

Configurar a área de trabalho para o desenvolvimento de aplicações de parceiros

Para associar eficazmente a sua aplicação de alto nível e uma aplicação com capacidade em tempo real para desenvolvimento, combine as suas duas aplicações numa única área de trabalho com várias raiz da seguinte forma:

  1. Abra a pasta de aplicação de alto nível no Visual Studio Code.

  2. SelecioneAdicionar Pasta a Ficheiros> à Área de Trabalho e, em seguida, selecione a pasta da aplicação em tempo real.

  3. Selecione Guardar Área> deTrabalho como...e, em seguida, guarde o ficheiro na pasta que contém as aplicações em tempo real e de alto nível.

  4. Abra o ficheiro de área de trabalho num editor de texto e adicione as seguintes informações de início imediatamente após a "settings" linha:

    "launch": {
        "configurations": [{
            "name": "Launch Azure Sphere Apps (All Cores)",
            "type": "azurespheredbg",
            "request": "launch",
            "args": [],
            "stopAtEntry": false,
            "environment": [],
            "externalConsole": true,
            "partnerComponents": [],
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }],
        "compounds": []
    }

Veja a documentação do Visual Studio Code para obter mais informações sobre áreas de trabalho de várias raiz.

Criar uma aplicação de alto nível

Para criar uma nova aplicação de alto nível, comece com o modelo HLCore Blank da extensão do Visual Studio Azure Sphere e ajuste a configuração ao seu projeto ao seguir estes passos:

  1. Inicie o Visual Studio e selecione Criar um novo projeto.

  2. Escreva Azure Sphere na caixa de pesquisa com o nome Procurar modelos. Selecione Azure Sphere HLCore Blank na lista devolvida e, em seguida, selecione Seguinte.

  3. Especifique um nome de projeto (por exemplo, NewHLApp), uma localização de ficheiro de projeto e um nome de solução (que pode ser o mesmo que o nome do projeto) e, em seguida, selecione Criar. O Visual Studio cria a pasta NewHLpp na sua localização selecionada e gera os ficheiros de compilação da aplicação em branco. Deverá ver mensagens do CMake.

  4. Abra o ficheiro CMakeLists.txt e especifique a pasta que contém definições para o hardware que está a utilizar. Por predefinição, a aplicação HL Blank não contém definições de hardware. Pode encontrar definições de hardware de exemplo no repositório de Exemplos do Azure Sphere ou criar uma, conforme descrito em Definições de hardware.

    O seguinte mostra como adicionar as definições de hardware de exemplo para o Kit de Desenvolvimento Seeed Azure Sphere MT3620:

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

    Esta linha deve ser inserida antes do início do comando azsphere_target_add_image_packagefinal .

Também pode criar uma nova aplicação de alto nível a partir de qualquer um dos exemplos de alto nível do Azure Sphere:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie uma das pastas de aplicação de alto nível e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewHLApp C)

Criar uma RTApp

Para criar uma nova aplicação com capacidade em tempo real, comece com o modelo RTCore Blank a partir da extensão do Visual Studio Azure Sphere e ajuste a configuração ao seu projeto ao seguir estes passos:

  1. Inicie o Visual Studio e selecione Criar um novo projeto.

  2. Escreva Azure Sphere na caixa de pesquisa com o nome Procurar modelos. Selecione Azure Sphere RTCore Blank na lista devolvida e, em seguida, selecione Seguinte.

  3. Especifique um nome de projeto (por exemplo, NewRTApp), uma localização de ficheiro de projeto e o nome da solução que utilizou para a sua aplicação de alto nível e, em seguida, selecione Criar. O Visual Studio cria a pasta NewRTApp na sua localização selecionada e gera os ficheiros de compilação da aplicação em branco. Deverá ver mensagens do CMake.

Também pode criar uma nova aplicação com capacidade em tempo real a partir de qualquer um dos exemplos do Azure Sphere em tempo real:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie uma das pastas da aplicação em tempo real e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewRTApp C)

Criar um ficheiro de início do Visual Studio de nível superior

Para trabalhar com aplicações de parceiros em simultâneo, quer permitir que o Visual Studio depure em múltiplos núcleos. Pode ativar esta opção ao criar um ficheiro launch.vs.json na pasta de nível superior que contém as duas pastas de aplicação de parceiros. Este ficheiro deve ter conteúdos semelhantes aos seguintes:

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "azurespheredbg",
      "name": "Azure Sphere Apps (All Cores)",
      "project": "PartnerAppsHL/CMakeLists.txt",
      "DebugBuildStepBuildAll": "true",
      "workingDirectory": "${workspaceRoot}",
      "applicationPath": "${debugInfo.target}",
      "imagePath": "${debugInfo.targetImage}",
      "targetCore": "AnyCore",
      "partnerComponents": [ "0cc81b35-08dd-4d65-b318-5fa73a4ff6b1", "a9d25f0a-807e-4cb9-80e8-80fee5a1bcb4" ]
    }
  ]
}

A "project" linha deve conter o caminho relativo para o ficheiro de CMakeLists.txt da aplicação de alto nível e a "partnerComponents" linha deve ter os IDs de componente das duas aplicações parceiras.

Depois de criar este ficheiro launch.vs.json de nível superior, pode abrir o Visual Studio na pasta de nível superior e verá a opção Aplicações do Azure Sphere (Todos os Núcleos) no menu Selecionar Item de Arranque .

Criar um ficheiro CMakeWorkspaceSettings.json

Se estiver a utilizar o Visual Studio 2022, versão 17.1 ou posterior, e tiver um projeto com múltiplas raízes, como o exemplo IntercoreComms, terá de adicionar um ficheiro CMakeWorkspaceSettings.json à pasta de nível superior do projeto. O ficheiro tem duas entradas, uma para especificar que a criação CMake está ativada e outra que contém os caminhos para as múltiplas raízes. Por exemplo, para o exemplo IntercoreComms, o CMakeWorkspaceSettings.json tem o seguinte conteúdo:

{
  "enableCMake": true,
  "sourceDirectory": [ "IntercoreComms_HighLevelApp", "IntercoreComms_RTApp_MT3620_BareMetal" ]
}

Os caminhos são especificados em relação à pasta que contém o ficheiro CMakeWorkspaceSettings.json.

Criar uma aplicação de alto nível

Para criar uma nova aplicação de alto nível, comece com qualquer um dos exemplos de alto nível do Azure Sphere:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie uma das pastas de aplicação de alto nível e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewHLApp C)

Criar uma RTApp

A forma mais fácil de criar uma nova aplicação com capacidade em tempo real é começar com o exemplo de HelloWorld_RTApp_MT3620_BareMetal e ajustar a configuração ao seu projeto ao seguir estes passos:

  1. Clone o repositório de exemplos se ainda não o tiver feito. Copie a pasta HelloWorld_RTApp_MT3620_BareMetal e mude o nome para o projeto.

  2. No ficheiro CMakeLists.txt, altere o nome do projeto para o nome da sua nova pasta. Por exemplo:

    PROJECT(NewRTApp C)

Estrutura de ficheiros básica das aplicações do Azure Sphere

Independentemente da forma como criar a sua aplicação, todas as aplicações do Azure Sphere partilham os seguintes ficheiros principais:

  • Código fonte da aplicação num ou mais ficheiros. Atualmente, apenas o código fonte de linguagem C é suportado.
  • Ficheiros de criação CMake. CMakeLists.txt é necessário. O CMake, juntamente com o utilitário ninja lightweight build, é utilizado para controlar o processo de compilação da aplicação do Azure Sphere.
  • Um ficheiro de manifesto de aplicação que descreve as capacidades disponíveis para a aplicação.

Normalmente, as aplicações de alto nível terão pelo menos três outros ficheiros:

  • Um ficheiro applibs-versions.h para especificar os níveis de versão de várias APIs do Azure Sphere
  • Dois ficheiros de definição de hardware (uma versão editável no formato JSON e um ficheiro de linguagem C gerado a partir do mesmo) que fornecem uma forma conveniente de consultar componentes de hardware no seu código. Com um conjunto consistente de ficheiros de definição de hardware, pode escrever código fonte independente de hardware e, em seguida, criar imagens de aplicação para hardware específico ao simplesmente voltar a filtrar o ficheiro de definição de hardware adequado no seu ficheiro de CMakeLists.txt.

As aplicações com capacidade em tempo real adicionam pelo menos um outro ficheiro: um ficheiro linker.ld para especificar com precisão onde devem ser carregados vários componentes da aplicação no núcleo em tempo real.

Escrever o código de aplicação de alto nível

  1. Escreva o código de aplicação de alto nível com os exemplos de aplicação de alto nível do Azure Sphere como guias. Os tópicos seguintes descrevem cenários de implementação específicos:
  2. No ficheiro deCMakeLists.txt:
    • Especificar a revisão das ferramentas do SDK do Azure Sphere
    • Especificar conjunto de API de destino
    • Especificar o hardware de destino
  3. No ficheiro app_manifest.json:
    • Defina Name como o nome do projeto.
    • Adicione quaisquer capacidades específicas da aplicação necessárias ao seu código, tais como recursos de hardware ou ligações. Se a aplicação de alto nível comunicar com uma RTApp, adicione o ID do componente da aplicação de alto nível à AllowedApplicationConnections capacidade.
  1. Se quiser implementar o RTApp juntamente com uma aplicação de parceiro de alto nível, adicione o ID de componente do parceiro ao campo partnerComponents da secção de configurações do ficheiro launch.vs.json (Visual Studio) ou .vscode/launch.json (Visual Studio Code):

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Escrever o código RTApp

  1. Escreva o código RTApp com os exemplos rtApp do Azure Sphere como guias. Os tópicos seguintes descrevem cenários de implementação específicos:
  2. No ficheiro app_manifest.json:
    • Defina Name como o nome do projeto,
    • Definir ApplicationType como "RealTimeCapable"
    • Adicione quaisquer capacidades específicas da aplicação necessárias ao seu código, tais como recursos de hardware ou ligações. Se o RTApp comunicar com uma aplicação de alto nível, adicione o ID do componente da aplicação de alto nível à AllowedApplicationConnections capacidade.
  1. Se quiser implementar o RTApp juntamente com uma aplicação de parceiro de alto nível, adicione o ID de componente do parceiro ao campo partnerComponents da secção de configurações do ficheiro launch.vs.json (Visual Studio) ou .vscode/launch.json (Visual Studio Code):

    "partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Consulte também