Compartir a través de


Crear aplicaciones de partners

La forma más sencilla de crear un nuevo par de aplicaciones de asociados es crear un directorio de nivel superior para contener las aplicaciones compatibles de alto nivel y en tiempo real y, a continuación, crear las aplicaciones compatibles de alto nivel y en tiempo real a su vez.

Crear una aplicación de alto nivel

Para crear una aplicación de alto nivel, comience con la plantilla HLCore Blank de la extensión Visual Studio Code Azure Sphere y ajuste la configuración al proyecto siguiendo estos pasos:

  1. Inicia Visual Studio Code. Selecciona Ver>paleta de comandos y, a continuación, escribe Azure Sphere: Generate New Project.

    Barra de comandos en Visual Studio Code

  2. Elija HLCore Blank en el menú Plantillas.

    Menú emergente con nombres de plantilla

  3. Visual Studio Code, a continuación, se muestra una ventana Explorador de archivos. Vaya a la carpeta donde desea colocar la aplicación en blanco (o seleccione Nueva carpeta y cree un nuevo directorio de proyectos de partner de nivel superior) y especifique un nombre para el proyecto, por ejemplo, NewHLApp. Visual Studio Code crea la carpeta NewHLApp en la ubicación seleccionada y genera los archivos de compilación para la aplicación en blanco. Debería ver los mensajes de CMake.

  4. Abra el archivo de CMakeLists.txt y especifique la carpeta que contiene las definiciones del hardware que está usando. De forma predeterminada, la aplicación HLCore Blank no contiene definiciones de hardware. Puede encontrar definiciones de hardware de ejemplo en el repositorio de Azure Sphere Samples o crear una como se describe en Definiciones de hardware.

    A continuación se muestra cómo agregar las definiciones de hardware de muestra para el kit de desarrollo Seeed Azure Sphere MT3620:

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

    Esta línea debe insertarse antes de que comience azsphere_target_add_image_packageel comando final .

También puede crear una nueva aplicación de alto nivel desde cualquiera de las muestras de alto nivel de Azure Sphere:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie una de las carpetas de aplicación de alto nivel y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewHLApp C)

Crear una RTApp

Para crear una nueva aplicación en tiempo real, comience con la plantilla RTCore Blank de la extensión Visual Studio Code Azure Sphere y ajuste la configuración a su proyecto siguiendo estos pasos:

  1. Inicia Visual Studio Code. Selecciona Ver>paleta de comandos y, a continuación, escribe Azure Sphere: Generate New Project.

    Barra de comandos en Visual Studio Code

  2. Elija RTCore En blanco en el menú Plantillas.

    Menú emergente con nombres de plantilla

  3. Visual Studio Code, a continuación, se muestra una ventana Explorador de archivos. Vaya a la carpeta que contiene la carpeta de aplicación de alto nivel y especifique un nombre para el proyecto, por ejemplo, NewRTApp. Visual Studio Code crea la carpeta NewRTApp en la ubicación seleccionada y genera los archivos de compilación para la aplicación en blanco. Debería ver los mensajes de CMake.

También puede crear una nueva aplicación compatible con tiempo real desde cualquiera de las muestras de Azure Sphere compatibles en tiempo real:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie una de las carpetas de aplicación de alto nivel y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewRTApp C)

Configurar el área de trabajo para el desarrollo de aplicaciones de partners

Para unirse de forma eficaz a su aplicación de alto nivel y a su aplicación en tiempo real para el desarrollo, combine sus dos aplicaciones en un único área de trabajo multi-raíz de la siguiente manera:

  1. Abra la carpeta de aplicación de alto nivel en Visual Studio Code.

  2. > SeleccionaAgregar carpeta al área de trabajo y, a continuación, selecciona la carpeta de aplicación compatible con el tiempo real.

  3. > SeleccionaGuardar área de trabajo como... y, a continuación, guarda el archivo en la carpeta que contiene tanto las aplicaciones en tiempo real como de alto nivel.

  4. Abra el archivo de área de trabajo en un editor de texto y agregue la siguiente información de inicio inmediatamente después de la "settings" línea:

    "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 la documentación Visual Studio Code para obtener más información sobre áreas de trabajo de varias raíz.

Crear una aplicación de alto nivel

Para crear una nueva aplicación de alto nivel, comience con la plantilla HLCore Blank de la extensión Azure Sphere de Visual Studio y ajuste la configuración al proyecto siguiendo estos pasos:

  1. Inicia Visual Studio y selecciona Crear un nuevo proyecto.

  2. Escriba Azure Sphere en el cuadro de búsqueda buscar plantillas. Seleccione Azure Sphere HLCore Blank en la lista devuelta y, a continuación, seleccione Siguiente.

  3. Especifique un nombre de proyecto (por ejemplo, NewHLApp), una ubicación de archivo de proyecto y un nombre de solución (que puede ser el mismo que el nombre del proyecto) y, a continuación, seleccione Crear. Visual Studio crea la carpeta NewHLpp en la ubicación seleccionada y genera los archivos de compilación para la aplicación en blanco. Debería ver los mensajes de CMake.

  4. Abra el archivo de CMakeLists.txt y especifique la carpeta que contiene las definiciones del hardware que está usando. De forma predeterminada, la aplicación HL Blank no contiene definiciones de hardware. Puede encontrar definiciones de hardware de ejemplo en el repositorio de Azure Sphere Samples o crear una como se describe en Definiciones de hardware.

    A continuación se muestra cómo agregar las definiciones de hardware de muestra para el kit de desarrollo Seeed Azure Sphere MT3620:

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

    Esta línea debe insertarse antes de que comience azsphere_target_add_image_packageel comando final .

También puede crear una nueva aplicación de alto nivel desde cualquiera de las muestras de alto nivel de Azure Sphere:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie una de las carpetas de aplicación de alto nivel y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewHLApp C)

Crear una RTApp

Para crear una nueva aplicación compatible con tiempo real, comience con la plantilla RTCore Blank de la extensión Azure Sphere de Visual Studio y ajuste la configuración a su proyecto siguiendo estos pasos:

  1. Inicia Visual Studio y selecciona Crear un nuevo proyecto.

  2. Escriba Azure Sphere en el cuadro de búsqueda buscar plantillas. Selecciona Azure Sphere RTCore Blank en la lista devuelta y, a continuación, selecciona Siguiente.

  3. Especifique un nombre de proyecto (por ejemplo, NewRTApp), una ubicación de archivo de proyecto y el nombre de la solución que usó para la aplicación de alto nivel y, a continuación, seleccione Crear. Visual Studio crea la carpeta NewRTApp en la ubicación seleccionada y genera los archivos de compilación para la aplicación en blanco. Debería ver los mensajes de CMake.

También puede crear una nueva aplicación compatible con tiempo real desde cualquiera de las muestras de Azure Sphere compatibles en tiempo real:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie una de las carpetas de aplicación compatibles con tiempo real y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewRTApp C)

Crear un archivo de inicio de Visual Studio de nivel superior

Para trabajar con aplicaciones asociadas simultáneamente, desea permitir que Visual Studio realice depuraciones en varios núcleos. Puede habilitar esto creando un archivo launch.vs.json en la carpeta de nivel superior que contiene las dos carpetas de la aplicación partner. Este archivo debe tener un contenido similar al siguiente:

{
  "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" ]
    }
  ]
}

La "project" línea debe contener la ruta de acceso relativa al archivo de CMakeLists.txt de la aplicación de alto nivel y la "partnerComponents" línea debe tener los id. de componente de las dos aplicaciones asociadas.

Una vez que hayas creado este archivo launch.vs.json de nivel superior, puedes abrir Visual Studio en la carpeta de nivel superior y verás la opción Azure Sphere Apps (All Cores) en el menú Seleccionar elemento de inicio .

Crear un archivo CMakeWorkspaceSettings.json

Si usa Visual Studio 2022, versión 17.1 o posterior, y tiene un proyecto con varias raíces, como el ejemplo de IntercoreComms, tendrá que agregar un archivo CMakeWorkspaceSettings.json a la carpeta de nivel superior del proyecto. El archivo tiene dos entradas, una para especificar que la compilación CMake está habilitada y otra que contiene las rutas a varias raíces. Por ejemplo, para el ejemplo de IntercoreComms, CMakeWorkspaceSettings.json tiene el contenido siguiente:

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

Las rutas de acceso se especifican con respecto a la carpeta que contiene el archivo CMakeWorkspaceSettings.json.

Crear una aplicación de alto nivel

Para crear una nueva aplicación de alto nivel, comience con cualquiera de las muestras de azure Sphere de alto nivel:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie una de las carpetas de aplicación de alto nivel y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewHLApp C)

Crear una RTApp

La forma más sencilla de crear una nueva aplicación compatible con tiempo real es comenzar con la muestra de HelloWorld_RTApp_MT3620_BareMetal y ajustar la configuración al proyecto siguiendo estos pasos:

  1. Clone el repositorio de muestras si aún no lo ha hecho. Copie la carpeta HelloWorld_RTApp_MT3620_BareMetal y cámbiele el nombre al proyecto.

  2. En el archivo CMakeLists.txt, cambie el nombre del proyecto por el nombre de la nueva carpeta. Por ejemplo:

    PROJECT(NewRTApp C)

Estructura de archivos básica de las aplicaciones Azure Sphere

No importa cómo cree su aplicación, todas las aplicaciones de Azure Sphere comparten los siguientes archivos principales:

  • Código fuente de la aplicación en uno o más archivos. Actualmente, solo se admite el código fuente del idioma C.
  • CHaga archivos de compilación. CMakeLists.txt es necesario. CMake, junto con la utilidad de compilación ligera ninja, se usa para controlar el proceso de compilación de la aplicación Azure Sphere.
  • Un archivo de manifiesto de la aplicación que describe las capacidades disponibles para la aplicación.

Las aplicaciones de alto nivel normalmente tendrán al menos otros tres archivos:

  • Un archivo applibs-versions.h para especificar los niveles de versión de varias API de Azure Sphere
  • Dos archivos de definición de hardware (una versión editable en formato JSON y un lenguaje C incluyen archivos generados a partir de él) que proporcionan una forma cómoda de hacer referencia a los componentes de hardware del código. Con un conjunto coherente de archivos de definición de hardware, puede escribir código fuente independiente del hardware y, a continuación, crear imágenes de la aplicación para hardware específico simplemente volver a dirigir el archivo de definición de hardware adecuado en su archivo de CMakeLists.txt.

Las aplicaciones compatibles con tiempo real agregan al menos otro archivo: un archivo linker.ld para especificar con precisión dónde se cargan varios componentes de la aplicación en el núcleo en tiempo real.

Escribir el código de aplicación de alto nivel

  1. Escriba su código de aplicación de alto nivel, utilizando las muestras de aplicación de alto nivel de Azure Sphere como guías. En los temas siguientes se describen escenarios de implementación específicos:
  2. En el archivoCMakeLists.txt:
    • Especificar la revisión de las herramientas del SDK de Azure Sphere
    • Especificar el conjunto de API de destino
    • Especificar el hardware de destino
  3. En el archivo app_manifest.json:
    • Establezca Name el nombre del proyecto.
    • Agregue cualquier funcionalidad específica de la aplicación que su código requiera, como recursos de hardware o conexiones. Si la aplicación de alto nivel se comunica con una RTApp, agregue el id. de componente de la aplicación de alto nivel a la AllowedApplicationConnections funcionalidad.
  1. Si desea implementar su RTApp junto con una aplicación de partner de alto nivel, agregue el id. de componente del partner al campo partnerComponents de la sección de configuraciones del archivo launch.vs.json (Visual Studio) o .vscode/launch.json (Visual Studio Code):

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

Escribir el código RTApp

  1. Escriba su código RTApp, utilizando las muestras de Azure Sphere RTApp como guías. En los temas siguientes se describen escenarios de implementación específicos:
  2. En el archivo app_manifest.json:
    • Establezca Name el nombre del proyecto,
    • Establecer en ApplicationType"RealTimeCapable"
    • Agregue cualquier funcionalidad específica de la aplicación que su código requiera, como recursos de hardware o conexiones. Si la RTApp se comunica con una aplicación de alto nivel, agregue el id. de componente de la aplicación de alto nivel a la AllowedApplicationConnections funcionalidad.
  1. Si desea implementar su RTApp junto con una aplicación de partner de alto nivel, agregue el id. de componente del partner al campo partnerComponents de la sección de configuraciones del archivo launch.vs.json (Visual Studio) o .vscode/launch.json (Visual Studio Code):

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

Consulte también