Introducción a las herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition

Actualizado el Nov 30, 2021

Ambiente

Software

  • LabVIEW
  • C/C++ Development Tools

Sistema Operativo

  • LabVIEW Real-Time (NI Linux Real-Time)

El contenido de Getting Started se proporciona a continuación y también se instala con el producto en el directorio \ <National Instruments> \ Eclipse \ help . Para ver imágenes más grandes, extraiga los archivos de la carpeta comprimida adjunta a esta página o vea el contenido de Introducción instalado con el producto.

Este tutorial describe cómo crear proyectos C / C ++ usando C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition, construir un ejecutable a partir del código fuente de su proyecto y ejecutar y depurar el ejecutable en su objetivo NI Linux Real-Time.

Instalación

  1. Instale Java (se recomienda Java SE 6 o superior), que puede descargar en http://www.java.com/getjava .
  2. Instalar en pc Herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition.
    Para LabVIEW 2014 a LabVIEW 2016, instale C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition 2014-2016 .
    Para LabVIEW 2017 y LabVIEW 2018, instale C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition 2017-2018 .

Configuración de herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition, para el primer uso

Complete los siguientes pasos para configurar las herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition, para el primer uso:

  1. Inicie las herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition.
  2. Cuando se le solicite, seleccione una carpeta en la que almacenar los proyectos de Eclipse y haga clic en OK.
    PropinaHabilitar Use this as the default and do not ask again si desea guardar una carpeta de proyecto como su espacio de trabajo predeterminado.
  3. En la pantalla de bienvenida de Eclipse, seleccione el icono Workbench en el extremo derecho para abrir la vista Workbench.
  4. Las Herramientas de Desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition, resaltan la perspectiva activa en la barra de perspectivas, como se muestra en la siguiente imagen. La primera vez que usa las herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition, la vista del banco de trabajo se abre en la perspectiva C / C ++.

    En la siguiente sección de este tutorial, creará un nuevo proyecto en la perspectiva C / C ++.


Creación de un proyecto C / C ++

Complete los siguientes pasos para crear un proyecto C o C ++ en C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition:
  1. Cambie a la perspectiva C / C ++.
  2. Seleccione File»New»Project para abrir el Asistente para proyectos nuevos.
  3. Expanda la carpeta C / C ++ y seleccione C Project or C++ Project según el lenguaje de programación que desee utilizar.
  4. Haga clic en Next para abrir la página Project C.
  5. Introduzca un nombre de proyecto en el cuadro de texto Project name.
  6. Seleccione Hello World ANSI Project en la carpeta Executable en el cuadro de lista Project type.
    Nota Este tutorial utiliza el proyecto Hello Word ANSI con fines educativos. Puede seleccionar cualquier tipo de proyecto que se adapte a sus necesidades.
  7. Seleccione Cross GCC en el cuadro de lista Toolchains para habilitar la compilación cruzada, que configura el compilador para crear código ejecutable para sistemas embebidos, como su objetivo NI Linux Real-Time.

  8. Haga clic en Next para abrir la página Basic Settings.
  9. Ingrese las propiedades básicas de su proyecto en los cuadros de texto Author, Copyright notice, Hello world greeting, y Source.
    Nota El cuadro de texto Source especifica el directorio en el disco duro de su computadora de desarrollo donde almacena el código fuente del proyecto.

  10. Haga clic en Next para abrir la página Select Configurations.
  11. Habilite Debug para configurar el proyecto para permitir la depuración de su ejecutable, y / o habilite Release para configurar el proyecto para permitir la construcción de un ejecutable más pequeño y más rápido optimizado para su lanzamiento.
    Nota Para los propósitos de este tutorial, asegúrese de habilitar Debug .
  12. Haga clic en Siguiente para abrir la página de comandos Cross GCC .
  13. En el cuadro de texto Prefijo del compilador cruzado , ingrese uno de los valores de la siguiente lista, incluido el guión (-) al final, para especificar el compilador correcto para su objetivo NI Linux Real-Time:
  • (ARM-based targets, 2013 software stack) arm-none-linux-gnueabi
  • (ARM-based targets, 2014 software stack) arm-nilrt-linux-gnueabi-
  • (ARM-based targets, 2017 software stack) arm-nilrt-linux-gnueabi-
  • (Intel x64-based targets, 2014 software stack) x86_64-nilrt-linux-
  • (Intel x64-based targets, 2017 software stack) x86_64-nilrt-linux-
 
14. In the Cross compiler path text box, browse to the location of the correct compiler for your target as specified in the following list:
  • (ARM-based targets, 2013 software stack) \<National Instruments>\Eclipse\toolchain\gcc-4.4-arm\i386\bin
  • (ARM-based targets, 2014 software stack) \<National Instruments>\Eclipse\14.0\arm\sysroots\i686-nilrtsdk-mingw32\usr\bin\armv7a-vfp-neon-nilrt-linux-gnueabi
  • (ARM-based targets, 2017 software stack) C:\build\17.0\arm\sysroots\i686-nilrtsdk-mingw32\usr\bin\arm-nilrt-linux-gnueabi
  • (Intel x64-based targets, 2014 software stack) \<National Instruments>\Eclipse\14.0\x64\sysroots\i686-nilrtsdk-mingw32\usr\bin\x86_64-nilrt-linux
  • (Intel x64-based targets, 2017 software stack) C:\build\17.0\x64\sysroots\i686-nilrtsdk-mingw32\usr\bin\x86_64-nilrt-linux
15. Haga clic en Finish para crear su proyecto y volver a la vista del banco de trabajo.
En la siguiente sección de este tutorial, crea una compilación ejecutable de su proyecto para permitir su ejecución.

Creación de una compilación de un proyecto C / C ++

Antes de que pueda ejecutar su proyecto, debe probar que su código fuente se compila creando una compilación ejecutable de su proyecto. Complete los siguientes pasos para crear una compilación ejecutable de un proyecto C / C ++:
  1. Cambie a la perspectiva C / C ++.
  2. Modifique el código fuente de la plantilla si desea adaptar la plantilla a las necesidades de su aplicación, o ingrese el código C / C ++ si seleccionó un proyecto en blanco. Para los fines de este tutorial, no es necesario realizar cambios en el código fuente del proyecto Hello Word ANSI.

  3. Haga clic con el botón derecho en su proyecto en la pestaña Project Explorer y seleccione Properties.

  4. Seleccione Compilación de C / C ++ en el panel izquierdo del cuadro de diálogo Properties.
  5. Seleccione Internal builder en el menú desplegable Builder type para la configuración de depuración. Al seleccionar el constructor interno, se usan las herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition (en lugar de un archivo de construcción externo) para construir el ejecutable.
    Nota Para los fines de este tutorial, solo trabaja con la configuración de depuración, pero esta sección también se aplica a la configuración de la versión.
  6. Seleccione Settings en C / C ++ Build en el panel izquierdo del cuadro de diálogo Properties.
  7. Seleccione Miscellaneous en Cross GCC Compiler en la pestaña Tool Settings.
  8. (ARM-based targets) Agregue un espacio después del texto existente en el cuadro de texto Other Flags y luego ingrese -mfpu = vfpv3 -mfloat-abi = softfp . Este paso mejora el rendimiento de las operaciones de punto flotante.
  9. (2017 software stack) Complete los siguientes pasos para especificar la ruta al sysroot, que es el directorio raíz lógico para encabezados y bibliotecas. Debe especificar la ruta al sysroot para compilar y vincular correctamente una aplicación.
    1. En el cuadro de texto Other Flags, agregue un espacio después del texto existente y luego ingrese uno de los valores de la siguiente lista:
    • (ARM-based targets, 2017 software stack) --sysroot=C:\build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi
    • (Intel x64-based targets, 2017 software stack) --sysroot=C:\build\17.0\x64\sysroots\core2-64-nilrt-linux
    1. Seleccione Miscellaneous en Cross GCC Linker en la pestaña Tool Settings.
    2. En el cuadro de texto Linker flags, ingrese uno de los valores de la siguiente lista:
    • (ARM-based targets, 2017 software stack) --sysroot=C:\build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi
    • (Intel x64-based targets, 2017 software stack) --sysroot=C:\build\17.0\x64\sysroots\core2-64-nilrt-linux
  10. (2017 software stack) Para eliminar errores semánticos de las clases de encabezado incluidas, es necesario incluir directorios en C/C++ General en Paths and Symbols, GNU C o GNU C++. Para el ejemplo de introducción a C ++, los siguientes directorios deben incluirse en GNU C ++ .
 
  • (ARM-based targets, 2017 software stack)
    • C:\build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi\usr\include\c++\4.9.2\
    • C:\build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi\usr\include\c++\4.9.2\arm-nilrt-linux-gnueabi
    •  C:\build\17.0\arm\sysroots\cortexa9-vfpv3-nilrt-linux-gnueabi\usr\include
  • (Intel x64-based targets, 2017 software stack)
    • C:\build\17.0\x64\sysroots\core2-64-nilrt-linux\usr\include\c++\4.9.2
    • C:\build\17.0\x64\sysroots\core2-64-nilrt-linux\usr\include\c++\4.9.2\x86_64-nilrt-linux
    • C:\build\17.0\x64\sysroots\core2-64-nilrt-linux\usr\include
  1. Haga clic en Apply y luego en OK para cerrar el cuadro de diálogo Properties.
  2. Seleccione Project » Build Project en la vista del entorno de trabajo para crear un ejecutable de su proyecto.
  3. La pestaña Console muestra Build Finished si la compilación se completa correctamente, como se muestra en la siguiente imagen.

    Nota Un error "Programa" g ++ "no encontrado en PATH 'o" Programa "gcc" no encontrado en PATH "puede aparecer en la pestaña Problemas durante la compilación, aunque la compilación sea exitosa. Estos errores pueden ser ignorados y eliminados por Right -Haciendo clic en el error y seleccionando Eliminar .
En la siguiente sección de este tutorial, se prepara para ejecutar el ejecutable en su objetivo NI Linux Real-Time agregando su objetivo al proyecto.

Configurar un sistema remoto

Antes de que pueda ejecutar el ejecutable que creó en la sección anterior en su objetivo NI Linux Real-Time, necesita agregar su objetivo al proyecto. Complete los siguientes pasos para configurar su objetivo como un sistema remoto en C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition:

Nota Antes de continuar con los pasos de esta sección, asegúrese de que su destino tenga el shell seguro (SSH) habilitado. Puede habilitar SSH en su objetivo utilizando el Explorador de medición y automatización (MAX) o utilizando un interruptor DIP en su objetivo (si está disponible).
  1. Seleccione Window » Open Perspective » Other para abrir el cuadro de diálogo Open Perspective.
  2. Seleccione Remote System Explorer.

  3. Haga clic en OK para agregar la perspectiva del Explorador de sistemas remotos al entorno de trabajo.
  4. Haga clic en el botón Define a connection to remote system, encerrado en un círculo en la siguiente imagen, para abrir el asistente de Nueva conexión.

  5. Seleccione SSH Only en la carpeta General .
    Nota También puede seleccionar Linux como el tipo de sistema remoto, pero dado que la conexión a objetivos NI Linux Real-Time requiere SSH, seleccionar SSH Only acorta el número de pasos de configuración al preseleccionar las opciones SSH.
  6. Haga clic en Next para abrir la página  Remote SSH Only System Connection.
  7. Seleccione un perfil para contener la conexión del sistema remoto en el menú desplegable Parent profile Para obtener información acerca de los perfiles, consulte el tema Perfiles del Explorador de sistemas remotos de las Herramientas de desarrollo C / C ++ para NI Linux Real-Time, Ayuda de la Edición Eclipse , disponible al seleccionar Help » Help Contents en la vista del banco de trabajo.
  8. Ingrese el nombre de host o la dirección IP de su objetivo NI Linux Real-Time en el cuadro de texto Host name.
    Sugerencia Puede utilizar MAX para identificar el nombre de host y la dirección IP de su objetivo.
  9. (Opcional) Ingrese una descripción o cambie el nombre de la conexión en los cuadros de texto Description y Connection name para ayudarlo a identificar su objetivo cuando aparezca en la perspectiva del Explorador de sistema remoto.

  10. Haga clic en Finish.
  11. Su objetivo se muestra en la pestaña Sistemas remotos en la perspectiva del Explorador de sistemas remotos, como se muestra en la siguiente imagen.
  12. Expanda la carpeta Sftp Files debajo de su objetivo para explorar los archivos en su objetivo.
  13. Cuando se le solicite, ingrese el nombre de usuario y la contraseña asignados a su objetivo y haga clic en OK. El nombre de usuario predeterminado es admin y la contraseña predeterminada es una contraseña en blanco.
    Nota NI recomienda que establezca una contraseña para mejorar la seguridad. Para obtener información sobre cómo configurar una contraseña, consulte el tema Iniciar sesión en su sistema de la Ayuda del Explorador de medición y automatización , disponible al seleccionar Ayuda »Ayuda de MAX de MAX.

Nota Si la ventana emergente de conexión no incluye un campo de ID de usuario , haga clic con el botón derecho en su destino en la pestaña Remote Systems y haga clic en Properties. Puede actualizar la entrada de ID de usuario cambiando la opción Default User ID en la categoría de Host .

Con un inicio de sesión exitoso, establece una conexión SSH a su objetivo y habilita la transferencia de archivos a él. En la siguiente sección de este tutorial, copia y ejecuta un ejecutable C / C ++ en su objetivo.
 

Ejecutando un ejecutable C / C ++ en su NI Linux Real-Time Target

En este punto del tutorial, su proyecto contiene un destino y un ejecutable. Complete los siguientes pasos para ejecutar su ejecutable C / C ++ en su objetivo:

  1. Seleccione Run » Run Configurations para abrir el cuadro de diálogo Ejecutar configuraciones.
  2. Seleccione C/C++ Remote Application en el panel izquierdo.
  3. Haga clic en el botón New launch configuration, encerrado en un círculo en la siguiente imagen, para especificar la configuración para ejecutar un ejecutable en su objetivo.

  4. Seleccione su objetivo en el menú desplegable Connection.
  5. Haga clic en el botón Browse junto al cuadro de texto Remote Absolute File Path for C/C++ Applications para abrir el cuadro de diálogo Select Remote C/C++ Application File.
  6. Haga clic con el botón derecho en el directorio My home en el cuadro de lista y seleccione New » Folder para crear una carpeta en el destino en la que colocar una copia del ejecutable.

  7. Ingrese un nombre para la carpeta que creó en el paso anterior en el cuadro de texto New folder name.

  8. Haga clic en Finish para volver al cuadro de diálogo Run configuration.
  9. Agregue el nombre de su proyecto (o el nombre que desee asignar al ejecutable) a la ruta del archivo que se completa en el cuadro de texto Remote Absolute File Path for C/C++ Applications.
    Nota Este cuadro de texto especifica la ruta del archivo (incluido el nombre del ejecutable) en su destino donde el compilador copia el ejecutable. En este ejemplo, la ruta del archivo dice / home / admin / ProjectFolder / MyProjectName , donde MyProjectName define el nombre del ejecutable, como se muestra en la siguiente imagen.

  10. Haga clic en Apply y luego en Run para copiar y ejecutar el ejecutable en su objetivo.
  11. La ejecución del programa se muestra en la pestaña Console, como se muestra en la siguiente imagen.

En la siguiente sección de este tutorial, explorará la funcionalidad de depuración disponible en C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition.
 

Depurar un proyecto C / C ++

Herramientas de desarrollo C / C ++ para NI Linux Real-Time, Eclipse Edition ofrece funcionalidad para depurar su proyecto. Complete los siguientes pasos para depurar un proyecto C / C ++ en C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition:
  1. Seleccione Ejecutar »Configuraciones de depuración para abrir el cuadro de diálogo Configuraciones de depuración .
  2. Seleccione la pestaña Depurador .
  3. Haga clic en el botón Examinar junto al cuadro de texto del depurador de GDB .
Seleccione el depurador correcto como se especifica en la siguiente lista:
  • (ARM-based targets, 2013 software stack) arm-none-linux-gnueabi-gdb.exe en el directorio <National Instruments> \ Eclipse \ toolchain \ gcc-4.4-arm \ i386 \ bin
  • (ARM-based targets, 2014 software stack) arm-nilrt-linux-gnueabi-gdb.exe en <National Instruments> \ Eclipse \ 14.0 \ arm \ sysroots \ i686-nilrtsdk-mingw32 \ usr \ bin \ armv7a-vfp- directorio neon-nilrt-linux-gnueabi
  • (ARM-based targets, 2017 software stack) arm-nilrt-linux-gnueabi-gdb.exe en c: \ build \ 17.0 \ arm \ sysroots \ i686-nilrtsdk-mingw32 \ usr \ bin \ arm-nilrt-linux- directorio gnueabi
  • (Intel x64-based targets, 2014 software stack) x86_64-nilrt-linux-gdb.exe en <National Instruments> \ Eclipse \ 14.0 \ x64 \ sysroots \ i686-nilrtsdk-mingw32 \ usr \ bin \ x86_64-nilrt-linux directorio
  • (Intel x64-based targets, 2017 software stack) x86_64-nilrt-linux-gdb.exe en el directorio c: \ build \ 17.0 \ x64 \ sysroots \ i686-nilrtsdk-mingw32 \ usr \ bin \ x86_64-nilrt-linux
  1. Haga clic en Open.

  2. Haga clic en Apply y luego en Depurar para comenzar a depurar el proyecto.
  3. Haga clic en Yes cuando C / C ++ Development Tools para NI Linux Real-Time, Eclipse Edition, le pida que cambie de perspectiva.
  4. Explorando la perspectiva de depuración

  5. La pestaña Debug en la parte superior izquierda muestra la pila de llamadas de cada subproceso en ejecución.

  6. La pestaña Variables en la parte superior derecha enumera las variables C / C ++ en su código fuente.

  7. La pestaña del proyecto en el centro a la izquierda muestra el código fuente y resalta las líneas a medida que se ejecutan.
    Sugerencia Puede colocar el cursor sobre el código fuente para mostrar información detallada sobre una función o variable. 

  8. Para agregar un punto de interrupción, resalte una línea de código y seleccione Run » Toggle Breakpoint. Un punto de interrupción suspende la ejecución de un programa en la ubicación donde se establece el punto de interrupción.
  9. Explorando la barra de herramientas de debug

    La barra de herramientas de depuración incluye los siguientes botones:
    Instruction Stepping ModeHabilita el modo de instrucciones paso a paso para examinar un programa a medida que ingresa al código desensamblado.
    Drop to FrameVuelve a ingresar el marco de pila seleccionado en la vista de depuración.
    Use Step FiltersHabilita los filtros de pasos en la vista Depuración.
    Step ReturnContinúa la ejecución hasta el final de la rutina actual, luego sigue la ejecución hasta el llamador de la rutina.
    Step OverEjecuta la línea actual, siguiendo la ejecución dentro de una rutina.
    Step IntoEjecuta la línea actual, incluidas las rutinas, y pasa a la siguiente instrucción.
    ResumeReanuda la ejecución del destino de depuración actualmente suspendido.
    SuspendDetiene la ejecución del subproceso seleccionado actualmente en un destino de depuración.
    TerminateFinaliza la sesión y / o el proceso de depuración seleccionado.
    DisconnectDesconecta el depurador del proceso seleccionado.