Beginner questions (SPI)

Please forgive my lack of experience, but I’m struggling to find answers online

If I wanted to make some standard GPIO applications (e.g. SPI communication), should I be using the NSight IDE or ‘CUDA’ Libraries to do it?

I came across JetsonHacks GPIO example, but I would like to be able to debug the application (is NSight a suitable environment to do this with?)

I’m struggling to understand what CUDA/NSight actually does, or if it’s relevant to what I’m doing. I just want to be able to do some I/O SPI (for the moment) and find my feet with what the Jetson TX1 has to offer. I have been able to debug some of the CUDA samples from a host machine using NSight but I can’t seem to figure out how to do a simple ‘hello world’ via NSight.

Any beginners guide links would be fantastic, and once again, I’m sorry for having to post this. I’m just struggling to find clear guides.

This is the place to go to ask questions, so don’t be sorry for asking! Everyone has to start somewhere. I myself am not too far past the “Beginner” stage, but I think I can answer one (maybe two) of your questions.

Firstly, from what I understand, CUDA is a package that makes use of GPUs rather than CPUs to do at least some of the computing (feel free to correct me if I’m wrong). In case you don’t know what that means, CPU stands for Computational Processing Unit, which is the part that usually does a lot of the math and regular data manipulation stuff that programs do. It works one instruction at a time. The GPUs (Graphical Processing Units) are specialized for displaying graphics on your screen. One thing the GPUs do really well is executing multiple operations at the same time (called parallel processing). CUDA uses these GPUs to run your program much faster.

I have not even tried to use NSight, so this may be incorrect, but my understanding is that NSight is a development environment modification to either Eclipse or Visual Studio that is specifically designed for working with the Jetson devices. Note that NSight is not ment to be put on the Jetson, but rather on a host computer which the Jetson is connected to. Then, after developing some code on the host computer, the NSight environment (probably) has an easy way to transfer that code over to the Jetson for the device to run.

Hope this was of some help. Sorry I can’t link you to a beginner’s guide as I haven’t found a good one yet. Good luck with your coding!

Just to provide a follow up…

I’ve been successfully able to run/debug GPIO applications (JetsonHacka TX1 GPIO example) on a CUDA runtime
Project using NSight. This biggest challenge I had was to run/debug the application as root (on the Jetson) via the remote machine (running NSight).