Mynewt FAQ - Troubleshooting/Debugging¶
Concurrent debug sessions with two boards¶
Q: Can I run concurrent GDB connections to multiple devices? Is the GDB port hardcoded?
Yes, starting with release 1.5 Mynewt allows “newt debug” to have a session with JLink as well as openocd simultaneously open. And no, the GDB port is not hardcoded. You can specify it with the -port option. For example:
newt debug slinky_nrf52 --extrajtagcmd "-port 5431 -select usb=682148664"
Error: Unsatisfied APIs detected¶
Q: I ran into the following error message:
Error: Unsatisfied APIs detected:
* stats, required by: hw/drivers/sensors/bmp280, hw/drivers/sensors/ms5837, net/oic
How do I resolve this?
A: You may be missing some package dependencies in your pkg.yml
file. In this case, you need to include
sys/stats
(either sys/stats/full
or sys/stats/stub
) to your pkg.yml
file. You can add it to either
your app’s or target’s pkg.yml file, but if you have a custom app it is recommended that you add it to your app’s
pkg.yml
. That way you can have multiple targets for the same app, without having to add it to every target.
Moreover, if you share your app package, others won’t run into the same error when building it.
Greyed out files on iOS 11¶
Q: I’m trying to use the Adafruit Mynewt Manager to upload a custom image over BLE. Uploading one of the provided
bleuartx000.img
works fine and I can boot into them, confirm etc. However, when I try to upload a custom image I
can’t even seem to add it to the app. Images stored in the iCloud drive just appear as disabled icons. Anyone with a
clue as to how to get that working?
A: The new iOS version no longer allows files with unrecognized extensions to be selected. Try renaming the file to
something more compatible (e.g. .txt
).
arm-none-eabi-gcc
Build Error for Project¶
Q: I am having this error when I try to build my project:
Building target targets/stm32l072czy6tr_boot
Error: exec: "arm-none-eabi-gcc": executable file not found in $PATH
How do I add it?
A: First, install the GNU Arm Embedded Toolchain if you haven’t already. Then, depending on your OS, add the link to
your arm-none-eabi-gcc
executable path to your PATH environment variable.
Issues Running Image on Boot¶
Q: I was able to successfully create a BSP for my custom board (using nRF52 MCU), then build and run that image in the debugger. However, it does not run on boot. Any ideas to fix the issue?
A: A good process in general is to do a full flash erase, then flash the bootloader and the running image. Make sure to
dump the contents of flash and see that it actually gets written there as well. If you experience the issue again after a
reboot, you will also want to set MCU_DCDC_ENABLED:0
then redo the process of erase, rebuild, and reload.
Enable Trace in Mynewt¶
Q: I’m trying to use gdb with Trace, but do not know how to enable it. How do I do this in Mynewt?
A: To enable Trace, you can add cflags
to pkg.yml
in your target directory:
~/dev/mynewt $ cat targets/mytarget/pkg.yml
### Package: targets/mytarget
pkg.name: “targets/mytarget”
pkg.type: "target"
pkg.description:
pkg.author:
pkg.homepage:
pkg.cflags:
- -DENABLE_TRACE
Bug With Older Versions of gcc
¶
Q: I got the following error using newt build
. How do I fix it?
Error: repos/apache-mynewt-core/sys/log/modlog/src/modlog.c: In function 'modlog_alloc':
repos/apache-mynewt-core/sys/log/modlog/src/modlog.c:61:23: error: missing braces around initializer [-Werror=missing-braces]
*mm = (struct modlog_mapping) { 0 };
^
repos/apache-mynewt-core/sys/log/modlog/src/modlog.c:61:23: error: (near initialization for '(anonymous).next') [-Werror=missing-braces]
cc1: all warnings being treated as errors
A: That is a bug in older versions of gcc
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119). The recommended gcc
version is 7.x.