Toolchain (cross-compiler) of Jetson TX2 on windows

My issue is very like to this guy, the camera company ask me to provide the cross-compiler, I think GCC Tool Chain for 64-bit BSP in the download center can satisfy their required toolchain. But the toolchain has to work on linux host PC, the camera company just family with windows, I want to know if there is any toolchain of tx2 which works on windows host PC?

There are ARM cross compilers which work in Windows (and in fact I know ARM itself has references to such compilers on their web site), but the NVIDIA support is via the Linaro tool chain. Linaro is just a port of Ubuntu mainline Linux gcc for cross compile to the aarch64/arm64/ARMv8-a output. There are no doubt ways a third party compiler could be made to work, but there is also no doubt that this would take some effort and would require a bit of pain to figure it out. There would be some differences in generated code which might occasionally get in the way and it would be up to you to figure those out.

Now if you use a purely Windows environment then you will immediately run into issues with flashing. People working only in user space won’t care about that if the system has the version of L4T/Ubuntu desired, but flash has no possibility of working from Windows without a VM, and a VM is not supported because of numerous issues (you can make a VM work, but this too will have a significant learning curve). Note that in recovery mode the TX2 is a custom USB device, and that the binary executables behind the driver package run only on Linux. Even if this ran on Windows, then you would still need Windows to support Linux file system types and tools, including the ability to loopback mount files.

In terms of user space application development there is probably nothing wrong about using a Linux PC which is a VM running in a Windows host. If the company in question does not work on drivers or the kernel you are in luck, but the VM route would probably be the least effort versus figuring out of a third party compiler works. The reason why other bare metal type builds would be difficult is not due to the ability to generate such code…the reason is instead one of how you are going to get that code to the Jetson (we once again get back to the tools for flash and various updates running only on Linux).

Another issue is that in user space you need cross linkers and user space support. These exist as standard packages under Ubuntu, and this is easily supplemented with a clone from a Jetson for specific needs (clones of course require the ability to loopback mount an ext4 file system before the clone becomes useful for development). Getting the cross linkers which run directly on Windows and output arm64 Linux for user space development is going to complicate the developer’s life if you can’t at least use a VM.