Creare applicazioni partnerCreate partner applications

Il modo più semplice per creare una nuova coppia di applicazioni partner consiste nel creare una directory di primo livello che contenga sia le applicazioni in grado di supportare in tempo reale sia quelle in tempo reale, quindi creare a sua volta le app con supporto di alto livello e in tempo reale.The easiest way to create a new pair of partner applications is to create a top-level directory to contain both the high-level and real-time capable applications, and then create the high-level and real-time capable apps in turn.

Creare un'app di alto livelloCreate a high-level app

Per creare un'applicazione di livello elevato, iniziare con il modello vuoto HLCore dall'estensione Visual Studio Code Azure Sphere e modificare la configurazione nel progetto attenendosi alla procedura seguente:To create a high-level application, start with the HLCore Blank template from the Visual Studio Code Azure Sphere extension and adjust the configuration to your project by following these steps:

  1. Avviare Visual Studio Code.Start Visual Studio Code. Selezionare Visualizza > riquadro comandi, quindi digitare Azure Sphere: genera nuovo progetto.Select View > Command palette, and then type Azure Sphere: Generate New Project.

    Barra di comando in Visual Studio Code

  2. Scegliere HLCore vuoto dal menu modelli.Choose HLCore Blank from the Templates menu.

    menu a comparsa con i nomi dei modelli

  3. Visual Studio Code viene visualizzata una finestra Esplora file.Visual Studio Code then displays a File Explorer window. Passare alla cartella in cui si vuole inserire l'applicazione vuota (oppure selezionare nuova cartella e creare una nuova directory di progetto partner di primo livello) e specificare un nome per il progetto, ad esempio NewHLApp.Navigate to the folder where you want to place the blank application (or select New Folder and create a new top-level partner project directory) and specify a name for your project, for example, NewHLApp. Visual Studio Code crea la cartella NewHLApp nel percorso selezionato e genera i file di compilazione per l'applicazione vuota.Visual Studio Code creates the NewHLApp folder in your selected location and generates the build files for the blank application. Verranno visualizzati messaggi da CMake.You should see messages from CMake.

  4. Aprire il file di CMakeLists.txt e specificare la cartella che contiene le definizioni per l'hardware in uso.Open the CMakeLists.txt file and and specify the folder that contains definitions for the hardware you're using. Per impostazione predefinita, l'applicazione HLCore vuota non contiene alcuna definizione di hardware.By default, the HLCore Blank application contains no hardware definitions. È possibile trovare definizioni hardware di esempio nel repository Azure Sphere Samples o crearne una come descritto in definizioni hardware.You can find sample hardware definitions in the Azure Sphere Samples repository or create one as described in Hardware definitions.

    Di seguito viene illustrato come aggiungere le definizioni hardware di esempio per Seeed Azure Sphere MT3620 Development Kit:The following shows how to add the sample hardware definitions for the Seeed Azure Sphere MT3620 Development Kit:

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

    Questa riga deve essere inserita prima del comando finale iniziale azsphere_target_add_image_package .This line should be inserted before the final command beginning azsphere_target_add_image_package.

È anche possibile creare una nuova applicazione di alto livello da uno degli esempi di Azure Sphere di alto livello:You can also create a new high-level application from any of the high-level Azure Sphere samples:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare una delle cartelle dell'applicazione di alto livello e rinominarla per il progetto.Copy one of the high-level application folders and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewHLApp C)

Creare un RTAppCreate an RTApp

Per creare una nuova applicazione in tempo reale, iniziare con il modello vuoto RTCore dall'estensione Visual Studio Code Azure Sphere e modificare la configurazione nel progetto attenendosi alla procedura seguente:To create a new real-time application, start with the RTCore Blank template from the Visual Studio Code Azure Sphere extension and adjust the configuration to your project by following these steps:

  1. Avviare Visual Studio Code.Start Visual Studio Code. Selezionare Visualizza > riquadro comandi, quindi digitare Azure Sphere: genera nuovo progetto.Select View > Command palette, and then type Azure Sphere: Generate New Project.

    Barra di comando in Visual Studio Code

  2. Scegliere RTCore vuoto dal menu modelli.Choose RTCore Blank from the Templates menu.

    menu a comparsa con i nomi dei modelli

  3. Visual Studio Code viene visualizzata una finestra Esplora file.Visual Studio Code then displays a File Explorer window. Passare alla cartella contenente la cartella dell'applicazione di livello superiore e specificare un nome per il progetto, ad esempio NewRTApp.Navigate to the folder containing your high-level application folder and specify a name for your project, for example, NewRTApp. Visual Studio Code crea la cartella NewRTApp nel percorso selezionato e genera i file di compilazione per l'applicazione vuota.Visual Studio Code creates the NewRTApp folder in your selected location and generates the build files for the blank application. Verranno visualizzati messaggi da CMake.You should see messages from CMake.

È anche possibile creare una nuova applicazione con supporto in tempo reale da uno degli esempi di Azure Sphere in grado di supportare in tempo reale:You can also create a new real-time capable application from any of the real-time capable Azure Sphere samples:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare una delle cartelle dell'applicazione di alto livello e rinominarla per il progetto.Copy one of the high-level application folders and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewRTApp C)

Configurare l'area di lavoro per lo sviluppo di app partnerConfigure your workspace for partner app development

Per aggiungere efficacemente un'applicazione di alto livello e un'applicazione in grado di supportare in tempo reale per lo sviluppo, combinare le due applicazioni in un'unica area di lavoro multiradice come segue:To effectively join your high-level application and real-time capable application for development, combine your two applications into a single multi-root workspace as follows:

  1. Aprire la cartella dell'applicazione di livello superiore in Visual Studio Code.Open the high-level application folder in Visual Studio Code.

  2. Selezionare file > Aggiungi cartella all'area di lavoro, quindi selezionare la cartella dell'applicazione con supporto in tempo reale.Select File > Add Folder to Workspace, and then select your real-time capable application folder.

  3. Selezionare file > Salva area di lavoro come... e quindi salvare il file nella cartella che contiene le applicazioni in tempo reale e di alto livello.Select File > Save Workspace As..., and then save your file in the folder that contains both the real-time capable and high-level applications.

  4. Aprire il file dell'area di lavoro in un editor di testo e aggiungere le seguenti informazioni di avvio immediatamente dopo la "settings" riga:Open your workspace file in a text editor and add the following launch information immediately after the "settings" line:

    "launch": {
        "configurations": [{
            "name": "Launch for Azure Sphere Applications (gdb)",
            "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": []
    }

Per ulteriori informazioni sulle aree di lavoro multiradice, vedere la documentazione Visual Studio Code .See the Visual Studio Code documentation for more information on multi-root workspaces.

Creare un'app di alto livelloCreate a high-level app

Per creare una nuova applicazione di livello superiore, iniziare con il modello vuoto HLCore dall'estensione Azure Sphere di Visual Studio e modificare la configurazione nel progetto attenendosi alla procedura seguente:To create a new high-level application, start with the HLCore Blank template from the Visual Studio Azure Sphere extension and adjust the configuration to your project by following these steps:

  1. Avviare Visual Studio e selezionare Crea un nuovo progetto.Start Visual Studio and select Create a new project.

  2. Digitare Azure Sphere nella casella di ricerca l'etichetta Cerca modelli.Type Azure Sphere in the search box labeled Search for templates. Selezionare Azure Sphere HLCore nell'elenco restituito, quindi fare clic su Avanti.Select Azure Sphere HLCore Blank from the returned list, then select Next.

  3. Specificare un nome di progetto (ad esempio, NewHLApp), un percorso del file di progetto e un nome di soluzione, che può corrispondere al nome del progetto, quindi selezionare Crea.Specify a project name (for example, NewHLApp), a project file location, and a solution name (which can be the same as the project name), and then select Create. Visual Studio crea la cartella NewHLpp nel percorso selezionato e genera i file di compilazione per l'applicazione vuota.Visual Studio creates the NewHLpp folder in your selected location and generates the build files for the blank application. Verranno visualizzati messaggi da CMake.You should see messages from CMake.

  4. Aprire il file di CMakeLists.txt e specificare la cartella che contiene le definizioni per l'hardware in uso.Open the CMakeLists.txt file and and specify the folder that contains definitions for the hardware you're using. Per impostazione predefinita, l'applicazione HL vuota non contiene alcuna definizione di hardware.By default, the HL Blank application contains no hardware definitions. È possibile trovare definizioni hardware di esempio nel repository Azure Sphere Samples o crearne una come descritto in definizioni hardware.You can find sample hardware definitions in the Azure Sphere Samples repository or create one as described in Hardware definitions.

    Di seguito viene illustrato come aggiungere le definizioni hardware di esempio per Seeed Azure Sphere MT3620 Development Kit:The following shows how to add the sample hardware definitions for the Seeed Azure Sphere MT3620 Development Kit:

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

    Questa riga deve essere inserita prima del comando finale iniziale azsphere_target_add_image_package .This line should be inserted before the final command beginning azsphere_target_add_image_package.

È anche possibile creare una nuova applicazione di alto livello da uno degli esempi di Azure Sphere di alto livello:You can also create a new high-level application from any of the high-level Azure Sphere samples:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare una delle cartelle dell'applicazione di alto livello e rinominarla per il progetto.Copy one of the high-level application folders and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewHLApp C)

Creare un RTAppCreate an RTApp

Per creare una nuova applicazione con supporto in tempo reale, iniziare con il modello vuoto RTCore dall'estensione Azure Sphere di Visual Studio e modificare la configurazione nel progetto attenendosi alla procedura seguente:To create a new real-time capable application, start with the RTCore Blank template from the Visual Studio Azure Sphere extension and adjust the configuration to your project by following these steps:

  1. Avviare Visual Studio e selezionare Crea un nuovo progetto.Start Visual Studio and select Create a new project.

  2. Digitare Azure Sphere nella casella di ricerca l'etichetta Cerca modelli.Type Azure Sphere in the search box labeled Search for templates. Selezionare Azure Sphere RTCore nell'elenco restituito, quindi fare clic su Avanti.Select Azure Sphere RTCore Blank from the returned list, then select Next.

  3. Specificare un nome di progetto (ad esempio, NewRTApp), un percorso del file di progetto e il nome della soluzione usato per l'applicazione di alto livello, quindi selezionare Crea.Specify a project name (for example, NewRTApp), a project file location, and the solution name you used for your high-level application and then select Create. Visual Studio crea la cartella NewRTApp nel percorso selezionato e genera i file di compilazione per l'applicazione vuota.Visual Studio creates the NewRTApp folder in your selected location and generates the build files for the blank application. Verranno visualizzati messaggi da CMake.You should see messages from CMake.

È anche possibile creare una nuova applicazione con supporto in tempo reale da uno degli esempi di Azure Sphere in grado di supportare in tempo reale:You can also create a new real-time capable application from any of the real-time capable Azure Sphere samples:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare una delle cartelle dell'applicazione con supporto in tempo reale e rinominarla per il progetto.Copy one of the real-time capable application folders and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewRTApp C)

Creazione di un file di avvio di Visual Studio di primo livelloCreating a top-level Visual Studio launch file

Per lavorare simultaneamente con le applicazioni partner, è necessario consentire a Visual Studio di eseguire il debug in più core.To work with partner applications simultaneously, you want to allow Visual Studio to debug into multiple cores. Per abilitare questa impostazione, è possibile creare un launch.vs.jsnel file nella cartella di primo livello contenente le due cartelle dell'applicazione partner.You can enable this by creating a launch.vs.json file in the top-level folder containing the two partner application folders. Il contenuto di questo file deve essere simile al seguente:This file should have contents similar to the following:

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

La "project" riga deve contenere il percorso relativo del file di CMakeLists.txt dell'applicazione di alto livello e la "partnerComponents" riga deve avere gli ID del componente delle due applicazioni partner.The "project" line should contain the relative path to the high-level application's CMakeLists.txt file, and the "partnerComponents" line should have the component IDs of the two partner applications.

Dopo aver creato questa launch.vs.jsdi primo livello nel file, è possibile aprire Visual Studio nella cartella di primo livello. verrà visualizzata l'opzione debugger GDB (tutti i core) nel menu Seleziona elemento di avvio .Once you have created this top-level launch.vs.json file, you can open Visual Studio in the top-level folder and you will see the option GDB Debugger (All Cores) in the Select Startup Item menu.

Creare un'app di alto livelloCreate a high-level app

Per creare una nuova applicazione di alto livello, iniziare con gli esempi di Azure Sphere di alto livello:To create a new high-level application, start with any of the high-level Azure Sphere samples:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare una delle cartelle dell'applicazione di alto livello e rinominarla per il progetto.Copy one of the high-level application folders and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewHLApp C)

Creare un RTAppCreate an RTApp

Il modo più semplice per creare una nuova applicazione con funzionalità in tempo reale consiste nell'iniziare con l'esempio HelloWorld_RTApp_MT3620_BareMetal e modificare la configurazione in base al progetto eseguendo questa procedura:The easiest way to create a new real-time capable application is to start with the HelloWorld_RTApp_MT3620_BareMetal sample and adjust the configuration to your project by following these steps:

  1. Se non è già stato fatto, clonare il repository di esempi.Clone the samples repo if you haven't already done so. Copiare la cartella HelloWorld_RTApp_MT3620_BareMetal e rinominarla in base al progetto.Copy the HelloWorld_RTApp_MT3620_BareMetal folder and rename it for your project.

  2. Nel file CMakeLists.txt modificare il nome del progetto in base al nome della nuova cartella.In the CMakeLists.txt file, change the project name to the name of your new folder. Ad esempio:For example:

    PROJECT(NewRTApp C)

Struttura di file di base delle applicazioni Azure SphereBasic file structure of Azure Sphere applications

Indipendentemente dalla modalità di creazione dell'applicazione, tutte le applicazioni Azure Sphere condividono i file principali seguenti:No matter how you create your application, all Azure Sphere applications share the following core files:

  • Codice sorgente dell'applicazione in uno o più file.Application source code in one or more files. Attualmente, è supportato solo il codice sorgente del linguaggio C.Currently, only C language source code is supported.
  • File di compilazione CMake.CMake build files. CMakeLists.txt è obbligatorio.CMakeLists.txt is required. CMake, insieme a Ninja Lightweight Build Utility, viene usato per controllare il processo di compilazione dell'applicazione Azure Sphere.CMake, together with the ninja lightweight build utility, is used to control the Azure Sphere application build process.
  • Un file manifesto dell'app che descrive le funzionalità disponibili per l'applicazione.An app-manifest file describing the capabilities available to the application.

In genere, le applicazioni di livello superiore avranno almeno tre altri file:High-level applications will typically have at least three other files:

  • Un file applibs-Versions. h per specificare i livelli di versione di varie API Azure SphereAn applibs-versions.h file to specify the version levels of various Azure Sphere APIs
  • Due file di definizione dell'hardware, ovvero una versione modificabile in formato JSON e un file di inclusione in linguaggio C generato da esso, che rappresentano un modo pratico per fare riferimento ai componenti hardware nel codice.Two hardware definition files (an editable version in JSON format and a C-language include file generated from it) that provide a convenient way to refer to hardware components in your code. Con un set coerente di file di definizione hardware è possibile scrivere codice sorgente indipendente dall'hardware e quindi creare immagini dell'applicazione per hardware specifico semplicemente ridestinando il file di definizione hardware appropriato nel file di CMakeLists.txt.With a consistent set of hardware definition files, you can write hardware-independent source code and then build application images for specific hardware by simply re-targeting the appropriate hardware definition file in your CMakeLists.txt file.

Le applicazioni con supporto in tempo reale aggiungono almeno un altro file: un file linker. LD per specificare con precisione i vari componenti dell'applicazione da caricare sul core in tempo reale.Real-time capable applications add at least one other file: a linker.ld file to specify precisely where various components of the application are to be loaded on the real-time core.

Scrivere il codice dell'app di alto livelloWrite your high-level app code

  1. Scrivere il codice dell'applicazione di alto livello, usando le Azure Sphere esempi di app di alto livello come guide.Write your high-level application code, using the Azure Sphere high-level app samples as guides. Negli argomenti seguenti sono descritti gli specifici scenari di implementazione:The following topics describe specific implementation scenarios:
  2. Nel file diCMakeLists.txt:In the CMakeLists.txt file:
    • Specificare Azure Sphere revisione degli strumenti SDKSpecify Azure Sphere SDK tools revision
    • Specificare il set di API di destinazioneSpecify target API set
    • Specificare l'hardware di destinazioneSpecify the target hardware
  3. Nel file app_manifest.json:In the app_manifest.json file:
    • Impostare Name sul nome del progetto.Set Name to your project name.
    • Aggiungere eventuali funzionalità specifiche dell'applicazione richieste dal codice, ad esempio risorse hardware o connessioni.Add any application-specific capabilities that your code requires, such as hardware resources or connections. Se l'app di livello superiore comunica con un RTApp, aggiungere l'ID del componente dell'applicazione di alto livello alla AllowedApplicationConnections funzionalità.If the high-level app communicates with an RTApp, add the component ID of the high-level application to the AllowedApplicationConnections capability.
  1. Se si vuole distribuire l'applicazione RTApp insieme a un'app partner di alto livello, aggiungere l'ID componente del partner al campo partnerComponents nella sezione configurations del file launch.vs.json (Visual Studio) o .vscode/launch.json (Visual Studio Code):If you want to deploy your RTApp alongside a high-level partner app, add the component ID of the partner to the partnerComponents field of the configurations section of the launch.vs.json (Visual Studio) or .vscode/launch.json (Visual Studio Code) file :

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

Scrivere il codice RTAppWrite your RTApp code

  1. Scrivere il codice RTApp usando gli esempi di Azure Sphere RTApp come guide.Write your RTApp code, using the Azure Sphere RTApp samples as guides. Negli argomenti seguenti sono descritti gli specifici scenari di implementazione:The following topics describe specific implementation scenarios:
  2. Nel file app_manifest.json:In the app_manifest.json file:
    • Impostare Name sul nome del progettoSet Name to your project name,
    • Impostare ApplicationType su "RealTimeCapable"Set ApplicationType to "RealTimeCapable"
    • Aggiungere eventuali funzionalità specifiche dell'applicazione richieste dal codice, ad esempio risorse hardware o connessioni.Add any application-specific capabilities that your code requires, such as hardware resources or connections. Se l'applicazione RTApp comunica con un'app di alto livello, aggiungere l'ID componente dell'applicazione di alto livello alla funzionalità AllowedApplicationConnections.If the RTApp communicates with a high-level app, add the component ID of the high-level application to the AllowedApplicationConnections capability.
  1. Se si vuole distribuire l'applicazione RTApp insieme a un'app partner di alto livello, aggiungere l'ID componente del partner al campo partnerComponents nella sezione configurations del file launch.vs.json (Visual Studio) o .vscode/launch.json (Visual Studio Code):If you want to deploy your RTApp alongside a high-level partner app, add the component ID of the partner to the partnerComponents field of the configurations section of the launch.vs.json (Visual Studio) or .vscode/launch.json (Visual Studio Code) file :

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

Vedi ancheSee also

Creare applicazioni partner.Build partner applications.

Eseguire il debug delle applicazioni partner.Debug partner applications.