Criar aplicativos de parceiros
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) 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).
A maneira mais fácil de criar um novo par de aplicativos parceiros é criar um diretório de nível superior para conter os aplicativos de alto nível e em tempo real e, em seguida, criar os aplicativos de alto nível e em tempo real.
Criar um aplicativo de alto nível
Para criar um aplicativo 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 para seu projeto seguindo estas etapas:
Inicie o Visual Studio Code. Selecione Exibir>paleta de comandos e digite Azure Sphere: Gerar Novo Projeto.
Escolha HLCore Blank no menu Modelos.
Em seguida, o Visual Studio Code exibe uma janela do Explorador de Arquivos. Navegue até a pasta em que deseja colocar o aplicativo 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 seu projeto, por exemplo, NewHLApp. O Visual Studio Code cria a pasta NewHLApp no local selecionado e gera os arquivos de build para o aplicativo em branco. Você deve ver mensagens do CMake.
Abra o arquivo CMakeLists.txt e especifique a pasta que contém as definições do hardware que você está usando. Por padrão, o aplicativo HLCore Blank não contém definições de hardware. Você 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.
Veja a seguir como adicionar as definições de hardware de exemplo para o Kit de Desenvolvimento MT3620 do Azure Sphere Seeed:
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
azsphere_target_add_image_package
do comando final .
Você também pode criar um novo aplicativo de alto nível de qualquer um dos exemplos de alto nível do Azure Sphere:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie uma das pastas de aplicativos de alto nível e renomeie-a para o seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewHLApp C)
Criar um RTApp
Para criar um novo aplicativo em tempo real, comece com o modelo RTCore Blank da extensão do Azure Sphere do Visual Studio Code e ajuste a configuração para seu projeto seguindo estas etapas:
Inicie o Visual Studio Code. Selecione Exibir>paleta de comandos e digite Azure Sphere: Gerar Novo Projeto.
Escolha RTCore Blank no menu Modelos.
Em seguida, o Visual Studio Code exibe uma janela do Explorador de Arquivos. Navegue até a pasta que contém a pasta do aplicativo de alto nível e especifique um nome para o projeto, por exemplo, NewRTApp. O Visual Studio Code cria a pasta NewRTApp no local selecionado e gera os arquivos de build para o aplicativo em branco. Você deve ver mensagens do CMake.
Você também pode criar um novo aplicativo com capacidade para tempo real a partir de qualquer um dos exemplos do Azure Sphere com capacidade para tempo real:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie uma das pastas de aplicativos de alto nível e renomeie-a para o seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewRTApp C)
Configurar seu workspace para o desenvolvimento de aplicativos de parceiros
Para unir efetivamente seu aplicativo de alto nível e um aplicativo com capacidade em tempo real para desenvolvimento, combine seus dois aplicativos em um único espaço de trabalho multi-raiz da seguinte maneira:
Abra a pasta do aplicativo de alto nível no Visual Studio Code.
Selecione Arquivo>Adicionar pasta ao espaço de trabalho e, em seguida, selecione sua pasta de aplicativo compatível em tempo real.
Selecione Espaço de Trabalho Salvar Arquivo>Como... e salve o arquivo na pasta que contém os aplicativos com capacidade para tempo real e de alto nível.
Abra o arquivo de espaço de trabalho em um editor de texto e adicione as seguintes informações de inicialização 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": []
}
Consulte a documentação do Visual Studio Code para obter mais informações sobre workspaces com várias raízes.
Criar um aplicativo de alto nível
Para criar um novo aplicativo de alto nível, comece com o modelo HLCore Blank da extensão do Azure Sphere do Visual Studio e ajuste a configuração para seu projeto seguindo estas etapas:
Inicie o Visual Studio e selecione Criar um projeto.
Digite
Azure Sphere
na caixa de pesquisa rotulada Pesquisar modelos. Selecione Azure Sphere HLCore Blank na lista retornada e, em seguida, selecione Avançar.Especifique um nome de projeto (por exemplo, NewHLApp), um local de arquivo de projeto e um nome de solução (que pode ser o mesmo que o nome do projeto) e selecione Criar. O Visual Studio cria a pasta NewHLpp no local selecionado e gera os arquivos de build para o aplicativo em branco. Você deve ver mensagens do CMake.
Abra o arquivo CMakeLists.txt e especifique a pasta que contém as definições do hardware que você está usando. Por padrão, o aplicativo HL Blank não contém definições de hardware. Você 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.
Veja a seguir como adicionar as definições de hardware de exemplo para o Kit de Desenvolvimento MT3620 do Azure Sphere Seeed:
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
azsphere_target_add_image_package
do comando final .
Você também pode criar um novo aplicativo de alto nível de qualquer um dos exemplos de alto nível do Azure Sphere:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie uma das pastas de aplicativos de alto nível e renomeie-a para o seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewHLApp C)
Criar um RTApp
Para criar um novo aplicativo com capacidade para tempo real, comece com o modelo RTCore Blank da extensão do Azure Sphere do Visual Studio e ajuste a configuração para seu projeto seguindo estas etapas:
Inicie o Visual Studio e selecione Criar um projeto.
Digite
Azure Sphere
na caixa de pesquisa rotulada Pesquisar modelos. Selecione Azure Sphere RTCore em Branco na lista retornada e, em seguida, selecione Avançar.Especifique um nome de projeto (por exemplo, NewRTApp), um local de arquivo de projeto e o nome da solução que você usou para seu aplicativo de alto nível e selecione Criar. O Visual Studio cria a pasta NewRTApp no local selecionado e gera os arquivos de build para o aplicativo em branco. Você deve ver mensagens do CMake.
Você também pode criar um novo aplicativo com capacidade para tempo real a partir de qualquer um dos exemplos do Azure Sphere com capacidade para tempo real:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie uma das pastas de aplicativos com capacidade de tempo real e renomeie-a para o seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewRTApp C)
Criar um arquivo de inicialização do Visual Studio de nível superior
Para trabalhar com aplicativos parceiros simultaneamente, você deseja permitir que o Visual Studio depure em vários núcleos. Você pode habilitar isso criando um arquivo launch.vs.json na pasta de nível superior que contém as duas pastas de aplicativos parceiros. Esse arquivo deve ter conteúdo semelhante ao seguinte:
{
"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 arquivo CMakeLists.txt do aplicativo de alto nível e a "partnerComponents"
linha deve ter as IDs de componente dos dois aplicativos parceiros.
Depois de criar esse arquivo de launch.vs.json de nível superior, você pode abrir o Visual Studio na pasta de nível superior e verá a opção Aplicativos do Azure Sphere (Todos os Núcleos) no menu Selecionar Item de Inicialização.
Criar um arquivo CMakeWorkspaceSettings.json
Se você estiver usando o Visual Studio 2022, versão 17.1 ou posterior, e tiver um projeto com várias raízes, como o exemplo IntercoreComms, precisará adicionar um arquivo CMakeWorkspaceSettings.json à pasta de nível superior do projeto. O arquivo tem duas entradas, uma para especificar que a compilação do CMake está habilitada e outra que contém os caminhos para as várias 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 arquivo CMakeWorkspaceSettings.json.
Criar um aplicativo de alto nível
Para criar um novo aplicativo de alto nível, comece com qualquer um dos exemplos de alto nível do Azure Sphere:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie uma das pastas de aplicativos de alto nível e renomeie-a para o seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewHLApp C)
Criar um RTApp
A maneira mais fácil de criar um novo aplicativo com capacidade para tempo real é começar com o exemplo HelloWorld_RTApp_MT3620_BareMetal e ajustar a configuração conforme seu projeto seguindo estas etapas:
Clone o repositório de amostras se você ainda não tiver feito isso. Copie a pasta HelloWorld_RTApp_MT3620_BareMetal e renomeie-a para seu projeto.
No arquivo CMakeLists.txt, altere o nome do projeto para o nome da nova pasta. Por exemplo:
PROJECT(NewRTApp C)
Estrutura básica de arquivos de aplicativos do Azure Sphere
Não importa como você cria seu aplicativo, todos os aplicativos do Azure Sphere compartilham os seguintes arquivos principais:
- Código-fonte do aplicativo em um ou mais arquivos. Atualmente, apenas o código-fonte da linguagem C é suportado.
- Arquivos de compilação do CMake. CMakeLists.txt é obrigatório. O CMake, juntamente com o utilitário de build leve ninja, é usado para controlar o processo de build do aplicativo do Azure Sphere.
- Um arquivo de manifesto do aplicativo que descreve os recursos disponíveis para o aplicativo.
Os aplicativos de alto nível normalmente terão pelo menos três outros arquivos:
- Um arquivo applibs-versions.h para especificar os níveis de versão de várias APIs do Azure Sphere
- Dois arquivos de definição de hardware (uma versão editável no formato JSON e um arquivo de inclusão em linguagem C gerado a partir dele) que fornecem uma maneira conveniente de se referir a componentes de hardware em seu código. Com um conjunto consistente de arquivos de definição de hardware, você pode escrever código-fonte independente de hardware e, em seguida, criar imagens de aplicativos para hardware específico simplesmente redirecionando o arquivo de definição de hardware apropriado em seu arquivo CMakeLists.txt.
Aplicativos com capacidade de tempo real adicionam pelo menos um outro arquivo: um arquivo linker.ld para especificar precisamente onde vários componentes do aplicativo devem ser carregados no núcleo em tempo real.
Escreva o código do aplicativo de alto nível
- Escreva o código do aplicativo de alto nível, usando os exemplos de aplicativo de alto nível do Azure Sphere como guias. Os tópicos a seguir descrevem cenários de implementação específicos:
- Usar periféricos em um aplicativo de alto nível
- Conectar aos serviços Web
- Use wolfSSL para conexões TLS
- Gerenciar certificados
- Entender o uso da memória
- Adiar atualizações do dispositivo
- Gerencie o tempo e use o relógio em tempo real
- Usar o armazenamento do dispositivo
- Comunicar-se com um aplicativo com capacidade em tempo real
- Gerenciar o estado de desligamento
- Definir perfis de energia
- Executar descoberta de serviço
- No arquivo CMakeLists.txt:
- Especificar a revisão das ferramentas do SDK do Azure Sphere
- Especificar o conjunto de APIs de destino
- Especificar o hardware de destino
- No arquivo app_manifest.json:
- Configure
Name
como o nome de seu projeto. - Adicione quaisquer recursos específicos do aplicativo que seu código exigir, como recursos de hardware ou conexões. Se o aplicativo de alto nível se comunicar com um RTApp, adicione a ID do componente do aplicativo de alto nível à
AllowedApplicationConnections
funcionalidade.
- Configure
Se desejar implantar seu RTApp juntamente com um aplicativo do parceiro de alto nível, adicione a ID do componente do parceiro ao campo partnerComponents da seção configurações do arquivo launch.vs.json (Visual Studio) ou .vscode/launch.json (Visual Studio Code):
"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]
Escreva seu código RTApp
- Escreva seu código RTApp usando os exemplos de RTApp do Azure Sphere como guias. Os tópicos a seguir descrevem cenários de implementação específicos:
- No arquivo app_manifest.json:
- Configure
Name
com o nome do seu projeto. - Defina
ApplicationType
como"RealTimeCapable"
- Adicione quaisquer recursos específicos do aplicativo que seu código exigir, como recursos de hardware ou conexões. Se o RTApp se comunica com um aplicativo de alto nível, adicione a ID de componente do aplicativo de alto nível à funcionalidade
AllowedApplicationConnections
.
- Configure
Se desejar implantar seu RTApp juntamente com um aplicativo do parceiro de alto nível, adicione a ID do componente do parceiro ao campo partnerComponents da seção configurações do arquivo launch.vs.json (Visual Studio) ou .vscode/launch.json (Visual Studio Code):
"partnerComponents": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]