Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

  • Ozone (for debugging) - download here  (pick V2.62g!!!!!)
  • platform-io 4.0.0+ (for building firmware) - download ($ pip install platformio) or upgrade ($ platformio upgrade
  • Drivers (details here) - I'm actually not sure if these are needed, because we're not uploading through platformio
    • Note: to force JLink installation, run "platformio run -e teensy35_debug --target=upload"

You do not need the programmer, as the JLink probe is capable of programming the board. For the Jlink adapter, the text must be facing the processor. However, you must power the Pyxida, recommended through the programming port.

...

$ platformio run -e teensy35_debug

Image Added

Or, you can build/run the pio_build_debug configuration in CLion. That is equivalent to running make pio_build_debug in the directory in which you created the Makefile with cmake.

Image Added

Note: there are two platformio environments, teensy35 and teensy35_debugOnly the second one will produce DWARF debug information, which is necessary for debugging.

...

Open Ozone and create a new project with the File > New > New Project Wizard.

Image Added

We are using the MK64fx512vll12 microprocessor. In the first step, select the MK64fx512xxx12 chip family, and leave peripherals blank.

Image Added

In the next one, select JTAG, 1MHz, USB, and leave Serial No blank - all of this should be the default anyway.

Image Added

In the third one, browse to find the .elf file you have just compiled.

Image Added

Debugging

Now you are all set to debug like you would any other chip with SEGGER! If all the debug information was compiled with the code, Ozone should be able to open up the correct files. If you want to set a breakpoint in a particular C++ file, just open it in Ozone (Ctrl-O or File > Open).

Image Added

The most important commands are in the top left corner - to upload, pause, resume and restart execution. There, you can also find Step Into/Over/Out while debugging.

Image Added

Ozone also allows you to see Global data, Local data, set watches, see function addresses, raw memory and a lot more - pretty much all you need

...

This section is still fairly empty and will be filled as people report their issues with this.

If you are getting build errors with pio_build_debug due to "multiple TinyGPSPlus" libraries, you can fix this in the platformio.ini file. (Common in windows users)

  • Navigate to "lib_deps = " under "teensy35_debug" in platformio.ini, and change "TinyGPSPlus" to its library ID "1655", and then building should work.
  • There are multiple TinyGPSPlus libraries that are conflicting, so specifying this value will install the correct version for build. If you change the ID back to "TinyGPSPlus" it should still work since you now have the correct library installed for future builds.

 If a file is not found or a file you know is a part of the codebase, does not allow you to set breakpoints, check:

  • There is not a #line macro. Those will mess up debugger references, so don't ever use them.