This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

CDT Build Output Parser Eclipse + SDK 14.1.0 (ble_app_tt_mtu_throughput)

Hello,

I am currently experimenting with some throughput tests on nRF52832/nRF52840 DKs. Some time ago I worked with some BLE UART examples from SDK 13.0 with the help of Eclipse. Everything worked fine after going through this tutorial. Now I wanted to extend the btt_app_att_mtu_throughput example from SDK 14.1.0 and started by "converting" it to an Eclipse project like before.

  • changed Compiler command pattern under Project Properties -> C/C++ General -> Preprocessor Include Paths -> Providers -> CDT Build Output Parser to (.gcc)|(.[gc]++) and removed tick on Use heuristics to resolve paths
  • replaced ${COMMAND} under CDT ARM Cross GCC Bult-in Compiler Settings with arm-none-eabi-gcc
  • replaced Makefile.common under …/SDK14.1.0/components/toolchain/gcc with the patched one from the tutorial, but removed "/bin/" from toolchain commands ("CC:= '$(GNU_INSTALL_ROOT)$(GNU_PREFIX)-gcc'"), as an error was thrown and changed the calling of "[…]file_list.mk" to "[…]dump.mk"
  • initiated make clean, make all and rebuilt the index

My build output looks something like this (shortened!):

'/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/arm-none-eabi-gcc' -MP -MD -std=c99 -O3 -g3 -D[…] -mcpu=cortex-m4 -mthumb -mabi=aapcs -Wall -Werror -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin -fshort-enums  -I"<SDK_ROOT/x>"   -I"<SDK_ROOT/y>"-I"<SDK_ROOT/z>"[…]

So, I guess it looks fine. Seems to be the same, like in my other projects, but there are no entries for the include files listed under Project Properties -> C/C++ General -> Preprocessor Include Paths -> Entries -> GNU C, except for the Compiler Settings under the same tab. The output parser is working fine in my other older projects.

Additionally, with the modified makefile.common I am running into a warning at the end of the build process:

/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol Reset_Handler; defaulting to 0000000000023000

I am not very "skilled" in writing Makefiles, so maybe there are some issues with the new file I am missing. So, is there anything I haven't thought of?

Thank you very much!

Regards, Björn

Parents
  • At first, I used the makefile from the tutorial I mentioned before. The string "/bin/" was added to SDK 14.x, because it it expects the GNU_INSTALL_ROOT path in Makefile.posix to be something like $(HOME)/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/ instead of $(HOME)/opt/gcc-arm-none-eabi-6-2017-q1-update. Now, the original Makefile.common is also working.

    Except for small errors (which I switched to warning) Eclipse CDT is now working, too. To be honest, I have no clue why exactly, as I have everything set up like before. The CDT engine seems to be very unreliable. The warnings I am getting now are like Field 'NRF_LOG_INFO("Connected as a central.")' could not be resolved, which indicates, that Eclipse is not able to recognize this preprocessor defined function perfectly, as Open Declaration directly leads to nrf_log.h.

    If I have some updates about this problem, I will try to keep this question updated.

    Thanks!

Reply
  • At first, I used the makefile from the tutorial I mentioned before. The string "/bin/" was added to SDK 14.x, because it it expects the GNU_INSTALL_ROOT path in Makefile.posix to be something like $(HOME)/opt/gcc-arm-none-eabi-6-2017-q1-update/bin/ instead of $(HOME)/opt/gcc-arm-none-eabi-6-2017-q1-update. Now, the original Makefile.common is also working.

    Except for small errors (which I switched to warning) Eclipse CDT is now working, too. To be honest, I have no clue why exactly, as I have everything set up like before. The CDT engine seems to be very unreliable. The warnings I am getting now are like Field 'NRF_LOG_INFO("Connected as a central.")' could not be resolved, which indicates, that Eclipse is not able to recognize this preprocessor defined function perfectly, as Open Declaration directly leads to nrf_log.h.

    If I have some updates about this problem, I will try to keep this question updated.

    Thanks!

Children
No Data
Related