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

Best free toolchain for programming Nordic?

Hello, we've built up quite a bit of experience programming Nordic targets with Keil and nRFgo studio.   We love your products.  However, we are considering moving away from Keil due to licensing costs.  I know you guys support several toolchains, do you (or anyone out there) have a recommendation for which toolchain to go with that is free?

Thanks for any ideas or recommendations!

Parents
  • GCC is the best free toolchain https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm

    GCC + Eclipse, best toolchain IDE combination. To use it with Nordic nRF5x SDK follow this blog https://embeddedsoftdev.blogspot.com/p/ehal-nrf51.html

    Don't follow Nordic blogs about Eclipse, they don't work and will mess you up.  

    Nordic pushes toward Segger SES but that has big compiler limitations, no support for C++ and only work with JLink.

     

  • Nordic pushes toward Segger SES but that has big compiler limitations, no support for C++ and only work with JLink.

    1. What's limitations?

    2. C++ support available, but somehow the issue of stopping compilation at this point has not yet been resolved:

    #if (__FPU_PRESENT == 1U) && (__FPU_USED == 1U)
      /* Empty asm statement works as a scheduling barrier */
      __ASM volatile ("");
      __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc");
      __ASM volatile ("");
    #endif

    3. using a jlink is not exactly a minus. For non-commercial use for educational purposes, even the original is not too expensive (42 euros).

    But it is a universal tool for programming / debugging a large number of microcontrollers. Plus RTT protocol for trace output. plus the OZONE debugger.

  • SES uses GCC but removed most of the C++ headers therefore a lot of stuff will not compile.  I do mainly C++ with the SDK using the complete GCC no problem. SES is a strip down version of CrossWorks. To use full GCC, you need to set it to use external compiler.  This option is available in CrossWorks.

    The use of jlink or other jtag tools are the users choice. You like using jlink is your choice.  There are a bunch of other people using st-link, ulink, and many other devices.  I did not jlnk is bad.  I said SES only supports jlink not other jtag.  That is the limitation compared to other IDE.  This is due to the free license for Nordic. If you want to pay the full license, you'll get support for other jtag.  Then this is not free anymore.  OP asked for the best free tools as I understand it.    

Reply
  • SES uses GCC but removed most of the C++ headers therefore a lot of stuff will not compile.  I do mainly C++ with the SDK using the complete GCC no problem. SES is a strip down version of CrossWorks. To use full GCC, you need to set it to use external compiler.  This option is available in CrossWorks.

    The use of jlink or other jtag tools are the users choice. You like using jlink is your choice.  There are a bunch of other people using st-link, ulink, and many other devices.  I did not jlnk is bad.  I said SES only supports jlink not other jtag.  That is the limitation compared to other IDE.  This is due to the free license for Nordic. If you want to pay the full license, you'll get support for other jtag.  Then this is not free anymore.  OP asked for the best free tools as I understand it.    

Children
No Data
Related