Creare e distribuire applicazioni partner
In questa sezione viene descritto come creare, creare un pacchetto e distribuire applicazioni partner azure sphere.
Queste istruzioni usano come esempio le applicazioni di esempio IntercoreComms .
Prerequisiti
- Connettere il dispositivo Azure Sphere al computer
- Installare Azure Sphere
- Se si usa Visual Studio Code o CLI, installare il toolchain WMO Arm Embedded.
- Configura l'hardware per la visualizzazione dell'output UART dedicato, se non l'hai già fatto
Abilitare lo sviluppo e il debug
Prima di poter creare un'applicazione di esempio nel dispositivo Azure Sphere o sviluppare nuove applicazioni, è necessario abilitare lo sviluppo e il debug. Per impostazione predefinita, i dispositivi Azure Sphere sono "bloccati"; ovvero, non consentono il caricamento di applicazioni in fase di sviluppo da un PC e non consentono il debug delle applicazioni. La preparazione del dispositivo per il debug rimuove questa restrizione e carica il software necessario per il debug e sblocca le funzionalità del dispositivo.
Per eseguire il debug sui core in tempo reale, utilizza il comando di abilitazione-sviluppo del dispositivo az sphere . Questo comando configura il dispositivo in modo da accettare le applicazioni da un PC per il debug e assegna il dispositivo al gruppo di dispositivi di sviluppo, che non consente gli aggiornamenti delle applicazioni cloud. Durante lo sviluppo e il debug delle applicazioni, è consigliabile lasciare il dispositivo in questo gruppo in modo che gli aggiornamenti delle applicazioni cloud non sovrascriva l'applicazione in fase di sviluppo.
In Windows, è necessario aggiungere il --enable-rt-core-debugging
parametro, che carica i server di debug e i driver necessari per ogni tipo di core nel dispositivo.
Se non l'hai già fatto, accedi ad Azure Sphere:
az login
Aprire un'interfaccia della riga di comando usando PowerShell o il prompt dei comandi di Windows con privilegi di amministratore. Il
--enable-rt-core-debugging
parametro richiede privilegi di amministratore perché installa driver USB per il debugger.Immettere il comando seguente:
az sphere device enable-development --enable-rt-core-debugging --catalog <CatalogName> --resource-group <ResourceGroupName>
Chiudere la finestra al termine del comando perché il privilegio di amministratore non è più necessario. Come procedura consigliata, è consigliabile usare sempre il privilegio più basso che può eseguire un'attività.
Se il comando di abilitazione-sviluppo del dispositivo az sphere non riesce, vedi Risolvere i problemi di Azure Sphere per assistenza.
Abilitare lo sviluppo e il debug
Prima di poter creare un'applicazione di esempio nel dispositivo Azure Sphere o sviluppare nuove applicazioni, è necessario abilitare lo sviluppo e il debug. Per impostazione predefinita, i dispositivi Azure Sphere sono "bloccati"; ovvero, non consentono il caricamento di applicazioni in fase di sviluppo da un PC e non consentono il debug delle applicazioni. La preparazione del dispositivo per il debug rimuove questa restrizione e carica il software necessario per il debug e sblocca le funzionalità del dispositivo come descritto in Funzionalità e comunicazione del dispositivo.
Per eseguire il debug sui core in tempo reale, utilizza il comando di abilitazione-sviluppo del dispositivo az sphere . Questo comando configura il dispositivo in modo da accettare le applicazioni da un PC per il debug e assegna il dispositivo al gruppo di dispositivi di sviluppo, che non consente gli aggiornamenti delle applicazioni cloud. Durante lo sviluppo e il debug delle applicazioni, è consigliabile lasciare il dispositivo in questo gruppo in modo che gli aggiornamenti delle applicazioni cloud non sovrascriva l'applicazione in fase di sviluppo.
In Windows, è necessario aggiungere il --enable-rt-core-debugging
parametro, che carica i server di debug e i driver necessari per ogni tipo di core nel dispositivo.
Accedere ad Azure se non è già stato fatto:
az login
Apri un'interfaccia della riga di comando utilizzando PowerShell, il prompt dei comandi di Windows o la shell dei comandi Linux con privilegi di amministratore. Il
--enable-rt-core-debugging
parametro richiede privilegi di amministratore perché installa driver USB per il debugger.Immettere il comando seguente:
az sphere device enable-development --enable-rt-core-debugging
Chiudere la finestra al termine del comando perché il privilegio di amministratore non è più necessario. Come procedura consigliata, è consigliabile usare sempre il privilegio più basso che può eseguire un'attività.
Se il comando di abilitazione-sviluppo del dispositivo az sphere non riesce con il seguente messaggio di errore, vedi Risolvere i problemi di Azure Sphere per assistenza.
error: The device did not accept the device capability configuration. Please check the Azure Sphere OS on your device is up-to-date using 'az sphere device show-deployment-status'.
Creare app partner con Visual Studio
Verifica che il dispositivo sia connesso al PC tramite USB. Nel menu imposta elemento di avvio , seleziona App Azure Sphere (All Cores), dove App Azure Sphere è il nome del tuo progetto di primo livello o premi F5.
Se viene richiesto di creare il progetto, selezionare Sì. Visual Studio compila le applicazioni partner, crea pacchetti di immagini, li sideload sulla bacheca e li avvia in modalità debug. Il sideload significa che le applicazioni vengono fornite direttamente dal PC tramite una connessione cablata, invece che tramite cloud.
Nota i percorsinell'output Mostraoutput>di visualizzazione> da: Output build, che indica la posizione dei pacchetti di immagini di output nel PC. Quando si è pronti per creare una distribuzione, è necessario conoscere i percorsi dei pacchetti di immagini.
Per impostazione predefinita, la finestra Output mostra l'output da Output dispositivo. Per visualizzare i messaggi del debugger, selezionare Debug dal menu a discesa Mostra output da : . Puoi anche esaminare lo smontaggio del programma, i registri o la memoria tramite il menu Debug>Di Windows .
Creare app partner con Visual Studio Code
Aprire la cartella contenente le applicazioni partner. Visual Studio Code rileva il file dell'area di lavoro e chiede se si vuole aprire l'area di lavoro. Seleziona Apri area di lavoro per aprire contemporaneamente l'applicazione in tempo reale e l'applicazione di alto livello.
Fare clic con il pulsante destro del mouse su uno dei due file CMakeLists.txt e scegliere Crea tutti i progetti.
Fare clic sull'icona Esegui nella barra attività di Visual Studio Code.
Nel menu a discesa visualizzato nella parte superiore della finestra sul lato sinistro dello schermo, seleziona Avvia app Azure Sphere (gdb)(area di lavoro).On the pulldown menu that appears at the top of the window on the left side of the screen, select Launch Azure Sphere Apps (gdb)(workspace).
Premere F5 per compilare ed eseguire il debug del progetto. Se il progetto non è stato creato in precedenza o se i file sono stati modificati ed è necessaria la ricostruzione, Visual Studio Code crea il progetto prima dell'inizio del debug.
Attendi alcuni secondi che Visual Studio Code crei le applicazioni, crei i pacchetti di immagini, li distribui alla lavagna e li avvii in modalità debug. Lungo il percorso, nel riquadro Output verranno visualizzati gli aggiornamenti di stato.
Prima di tutto, CMake determina se le applicazioni devono essere compilate. In tal caso, lo stato attivo passa alla finestra di output, che visualizza l'output da CMake/Build.
Successivamente, il riquadro di output mostra l'output durante la distribuzione del pacchetto di immagini nel dispositivo. Infine, la console di debug riceve lo stato attivo e mostra l'output gdb.
Compilare e compilare l'applicazione
Per creare le applicazioni con l'CLI, è necessario trovare nel computer gli strumenti di compilazione, le intestazioni e le librerie corrette, chiamate collettivamente sysroot. Azure Sphere SDK viene fornito con più sysroot in modo che le applicazioni possano essere destinate a set DI API diversi, come descritto nella versione di Runtime dell'applicazione, sysroots e API Beta. I sysroot vengono installati nella cartella di installazione di Azure Sphere SDK in Sysroots.
Durante la compilazione con cli, prima di tutto compilare e distribuire l'applicazione che supporta in tempo reale, quindi compilare e distribuire l'applicazione di alto livello.
Creare e distribuire l'applicazione che supporta il supporto in tempo reale
Passa alla cartella che contiene l'applicazione che supporta il supporto in tempo reale.
Apri il file app_manifest.json e verifica che l'ID componente dell'app di livello elevato sia visualizzato nella funzionalità AllowedApplicationConnections.
Aprire un'interfaccia della riga di comando usando PowerShell, il prompt dei comandi di Windows o la shell dei comandi di Linux. Passare alla directory della build del progetto.
Dalla directory di compilazione del progetto, al prompt dei comandi, eseguire CMake con i parametri seguenti:
cmake --preset <preset-name> <source-path>
--preset <preset-name>
Nome preimpostato per la configurazione della build, come definito in CMakePresets.json.
--build <cmake-path>
Directory binaria che contiene la cache di CMake. Ad esempio, se si esegue CMake su un esempio di Azure Sphere, il comando di compilazione sarà
cmake --build out/ARM-Debug
.<source-path>
Percorso della directory che contiene i file di origine per l'applicazione di esempio. Nell'esempio, il repository di campioni Azure Sphere è stato scaricato in una directory denominata AzSfera.
CMake parametri sono separati da spazi. Il carattere di continuazione riga (^ per la riga di comando di Windows, \ per la riga di comando Linux o ' per PowerShell) può essere utilizzato per la leggibilità, ma non è obbligatorio.
Gli esempi seguenti mostrano i comandi CMake per intercoreComms RTApp:
Prompt dei comandi di Windows
cmake ^ --preset "ARM-Debug" ^ "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
Windows PowerShell
cmake ` --preset "ARM-Debug" ` "C:\AzSphere\azure-sphere-samples\Samples\IntercoreComms\IntercoreComms_RTApp_MT3620_BareMetal"
Dalla directory della build del progetto, al prompt dei comandi, esegui Ninja per creare l'applicazione e creare il file del pacchetto di immagini.
ninja -C out/ARM-Debug
Ninja inserisce l'applicazione risultante e .imagepackage file nella directory specificata.
Puoi anche richiamare Ninja tramite CMake con il comando seguente:
cmake --build out/<binary-dir>
Impostare
<binary-dir>
sulla directory binaria che contiene la cache CMake. Ad esempio, se si esegue CMake su un esempio di Azure Sphere, il comando di compilazione saràcmake --build out/ARM-Debug
.Durante la risoluzione dei problemi, soprattutto dopo aver apportato modifiche ai comandi di CMake, eliminare l'intera build e riprovare.
Eliminare le applicazioni già distribuite nel dispositivo:
az sphere device sideload delete
Dalla directory della build del progetto, al prompt dei comandi, carica il pacchetto di immagini creato da Ninja:
az sphere device sideload deploy --image-package <path-to-imagepackage>
L'applicazione inizierà a essere eseguita subito dopo il caricamento.
Ottenere l'ID componente per l'immagine:
az sphere image-package show --image-package <path-to-imagepackage>
Il comando restituisce tutti i metadati per il pacchetto di immagini. L'ID componente per l'applicazione viene visualizzato nella sezione Identity relativa al tipo di immagine dell'applicazione. Per esempio:
... "Identity": { "ComponentId": "<component-id>", "ImageId": "<image-id>", "ImageType": "Application" }, ...
Creare e distribuire l'applicazione di alto livello
Passare alla cartella che contiene l'applicazione di alto livello.
Aprire il file app_manifest.json e verificare che l'ID componente dell'RTApp sia visualizzato nella funzionalità AllowedApplicationConnections.
Aprire un'interfaccia della riga di comando usando PowerShell, il prompt dei comandi di Windows o la shell dei comandi di Linux. Passare alla directory della build del progetto.
Dalla directory di compilazione del progetto, al prompt dei comandi, eseguire CMake con i parametri seguenti:
cmake --preset <preset-name> <source-path>
--preset <preset-name>
Nome preimpostato per la configurazione della build, come definito in CMakePresets.json.
--build <cmake-path>
Directory binaria che contiene la cache di CMake. Ad esempio, se si esegue CMake su un esempio di Azure Sphere, il comando di compilazione sarà
cmake --build out/ARM-Debug
.<source-path>
Percorso della directory che contiene i file di origine per l'applicazione di esempio. Nell'esempio, il repository di campioni Azure Sphere è stato scaricato in una directory denominata AzSfera.
CMake parametri sono separati da spazi. Il carattere di continuazione riga (^ per la riga di comando di Windows, \ per la riga di comando Linux o ' per PowerShell) può essere utilizzato per la leggibilità, ma non è obbligatorio.
Gli esempi seguenti mostrano i comandi CMake per l'applicazione di alto livello IntercoreComms.
Dalla directory della build del progetto, al prompt dei comandi, esegui Ninja per creare l'applicazione e creare il file del pacchetto di immagini.
ninja -C out/ARM-Debug
Ninja inserisce l'applicazione risultante e .imagepackage file nella directory specificata.
Puoi anche richiamare Ninja tramite CMake con il comando seguente:
cmake --build out/<binary-dir>
Impostare
<binary-dir>
sulla directory binaria che contiene la cache CMake. Ad esempio, se si esegue CMake su un esempio di Azure Sphere, il comando di compilazione saràcmake --build out/ARM-Debug
.Durante la risoluzione dei problemi, soprattutto dopo aver apportato modifiche ai comandi di CMake, eliminare l'intera build e riprovare.
Dalla directory della build del progetto, al prompt dei comandi, carica il pacchetto di immagini creato da Ninja:
az sphere device sideload deploy --image-package <package-name>
L'applicazione inizierà a essere eseguita subito dopo il caricamento.
Ottenere l'ID componente per l'immagine:
az sphere image-package show --image-package <path-to-imagepackage>
Il comando restituisce tutti i metadati per il pacchetto di immagini. L'ID componente per l'applicazione viene visualizzato nella sezione Identity relativa al tipo di immagine dell'applicazione. Per esempio:
"ComponentId": "<component-ID>", ... "Identity": { "ComponentId": "<component-id>", "ImageId": "<image-id>", "ImageType": "Application" }, ...