Developing for the DRIVE AGX Platform

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version

Target Operating System

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)

SDK Manager Version

Host Machine Version
native Ubuntu 18.04

I have just been tasked with developing for the DRIVE AGX Xavier so please forgive my very beginner question. (In fact I have enrolled in the Nvidia “Integrating sensors with Nvidia Drive” course so I suppose that I will know the answer by the end of the course but anyway I ll ask)

I have a C++ program that I want to port to the DRIVE platform.
It is still a simple program that uses OpenCV. I was just thinking of copying the code into the linux system in the Drive AGX Xavier and trying to build it. And then I realize, perhaps the correct way to approach this is to crosscompile it in my linux Host system.

So my question is, what is the correct flow to develop a C++ program to run on Drive AGX Xavier? Is there a place where I can read a simple tutorial on this?

Any pointer will be greatly appreciated

Please provide more info of your issue. Thanks

My issue is that I don’t know what is the correct way to develop a C++ program to run on Drive AGX Xavier.

  • Since it is a linux system I simply write the code there and build it normally


  • Should I develop the program in the host and cross-compile it

Hi @aliaga ,
You can refer to the following samples documentation and their path on the host system.

1 Like

Ok Now I have a question.
I have just finished the course Integrating sensors with Nvidia Drive. It was very interesting.
In the building stage, it says that (as development flow) we should build (cross-compile) the plugin in the Host system and then pass it to DRIVE.

I investigated a bit more and the only thing that changes (in the CMakeLists.txt file) when crosscompiling is the compiler that is set to

set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

That of course makes sense.

So now I have these questions:

  • What is the difference between crosscompiling it on host and just compiling it on the Drive Xavier. Both uses the same compiler (specified above), so why is it written that I should crosscompile it on host?

  • What environment should I build on my linux host system to be able to crosscompile an application? I suppose I should install Driveworks on host?

Our Automotive software (DRIVE Software, DRIVE OS) is intended to support only cross compilation.
As you can see in the following document pages, both DriveWorks or DRIVE OS samples are built by cross compiling.