Using ozone v2.56d on Windows 7 x64. I am building code for the nRF51822 using the Nordic dev board 400092 which has a JLink embedded on it.
I use msys2 and arm-gcc to build my source code because the same build environment works on Windows, OSX and Linux. I'm using CFLAGS of -Og -g to build the firmware, and the same Makefile on Linux and OSX produces .elf binaries which Ozone can work with just fine.
However when I build the source in Windows and load the .elf with Ozone, it cannot find any source files. All of the *functions* show up, but double-clicking on a function only jumps to the disassembly of the function.
The documentation for Ozone (UM8025, Jan 30, 2018) indicates that there are commands to specify the source root path as well as adding directories to the search path. These commands are Project.AddSearchPath() and Project.AddRootPath(). There are no useful examples on how to use these commands, and when I guess at it I don't get an error, but I also don't see Ozone try to look for the source. What is provided is a few paragraphs about locating missing source files, but no resolutions. Section 5.14.6.2, for example suggests that I should see a bunch of file icons with exclamation marks in the source window, but instead I see "No source files" instead.
If I use readelf, I can see that this information is in the .elf file, but ozone is perhaps getting confused because the paths are more unix-like than windows-like because of msys:
(my .elf file and .o files are in the _build/ directory off of the project root where all the source code is.)
One complaint I have about Segger's tools in general (JLinkExe, Ozone, JLinkGDBServer, etc.) is the complete lack of *useful* documentation for command line options or, in the case of Ozone, useful documentation on the Console commands. Why isn't there a --help command line option which documents all command line options for these programs, and how does Segger expect people to use the Ozone console without complete documentation on the commands available in the console?
(PS - the code tag should not be swallowing carriage returns; I should be able to paste output from a terminal window or source code without adding double-returns between every line)
I use msys2 and arm-gcc to build my source code because the same build environment works on Windows, OSX and Linux. I'm using CFLAGS of -Og -g to build the firmware, and the same Makefile on Linux and OSX produces .elf binaries which Ozone can work with just fine.
However when I build the source in Windows and load the .elf with Ozone, it cannot find any source files. All of the *functions* show up, but double-clicking on a function only jumps to the disassembly of the function.
The documentation for Ozone (UM8025, Jan 30, 2018) indicates that there are commands to specify the source root path as well as adding directories to the search path. These commands are Project.AddSearchPath() and Project.AddRootPath(). There are no useful examples on how to use these commands, and when I guess at it I don't get an error, but I also don't see Ozone try to look for the source. What is provided is a few paragraphs about locating missing source files, but no resolutions. Section 5.14.6.2, for example suggests that I should see a bunch of file icons with exclamation marks in the source window, but instead I see "No source files" instead.
If I use readelf, I can see that this information is in the .elf file, but ozone is perhaps getting confused because the paths are more unix-like than windows-like because of msys:
Source Code
- $ arm-none-eabi-readelf.exe -a _build/usbhost_blank.elf -W | grep FILE
- 12: 00000000 0 FILE LOCAL DEFAULT ABS _build/startup_nrf51.os
- 25: 00000000 0 FILE LOCAL DEFAULT ABS c:/msys64/home/akohlsmi/arm-gcc/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
- 29: 00000000 0 FILE LOCAL DEFAULT ABS system_nrf51.c
- 33: 00000000 0 FILE LOCAL DEFAULT ABS atcproto.c
- 55: 00000000 0 FILE LOCAL DEFAULT ABS main.c
(my .elf file and .o files are in the _build/ directory off of the project root where all the source code is.)
One complaint I have about Segger's tools in general (JLinkExe, Ozone, JLinkGDBServer, etc.) is the complete lack of *useful* documentation for command line options or, in the case of Ozone, useful documentation on the Console commands. Why isn't there a --help command line option which documents all command line options for these programs, and how does Segger expect people to use the Ozone console without complete documentation on the commands available in the console?
(PS - the code tag should not be swallowing carriage returns; I should be able to paste output from a terminal window or source code without adding double-returns between every line)
The post was edited 3 times, last by akohlsmith ().