This post is a quick tutorial on how to set up a GUI for debugging NRF51 code.
Currently, CLion does not support remote debugging, but they promised to consider it if enough votes were collected - so vote here! I am sure it’s going to be seamless once they implement it, so I’m awaiting eagerly.
Modifying XCode to use ARM tools is a big challenge and support documentation seems to stop at XCode 6. I have it in mind to try to write a plugin to support toolchain switching as well as code templates, so watch this space...
I also tried configuring CodeLite as there were romours that it was possible. Unfortunately it never worked for me (user error, I assume) but I intend to pursue this as I’d like to support this open source effort.
Conscious of my mental well-being, I am avoiding Eclipse and will not refer to it again in this post.
So which shall we use? NetBeans. While not the most modern and the least flexible of above-mentioned IDEs, it actually manages to debug cross-compiled code running on a remote device.
Step 1: Download the C/C++ enabled version of NetBeans from here.
Step 2: Create a new project
Follow the wizard’s path and select to open your project’s root directory.
Step 3: Create a new configuration for the ARM toolchain
Step 4: Set up the toolchain
Enter the path of your ARM toolchain, usually in /usr/local and fill in the rest of the form
You can access this form in the future by clicking on the “Services” tab on the left hand side of the project explorer
Then right click on the configuration name and select “Properties"
This will bring up a similar window as was shown the first time when you configued the toolchain
At this stage, you’ve set up a configuration to use the ARM toolchain.
Step 5: Connect the config to our project.
This is done by selecting “Set Project Configuration” from the Run menu
Step 6: Verify that the project is set to use the ARM config.
This is done by selecting “File/Project Properties” and making sure that “Tool Collection” is set to “ARM"
Step 7: Set up debugging session parameters
You should now be ready!
Let’s build the application by using your makefile
To debug, we must first launch the “jlinkgdbserver” executable, as described in my previous blog.
Unfortunately, I have not found a way to automatically do this from within NetBeans as it does not appear to have a pre-debugging hook where we would have been able to run the server. If anyone is aware of doing so, please alert me and I will update this post.
Open a terminal window and run the following command:
jlinkgdbserver -device nrf51822 -if swd -speed 4000 -noir -port 2331
The result should look something like this:
We can now start our debugger session by selecting “Debug/Attach Debugger” in NetBeans
This will open a dialog that you should fill in as shown here
If everything went well, you should be able to see the code in NetBeans and use their debugger fully!
I hope you found this tutorial helpful! See you next time, hopefully with a solution for CLion and XCode.