Difference between revisions of "Zephyr-sdk-install-and-config"

From Wiki at Neela Nurseries
Jump to: navigation, search
m
(^ Nordic Toolchain Install Closely Follows Zephyr Tools)
 
(4 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
This wiki page intended to capture the various Nordic Semi toolchain elements which support the complete build, flash programming and Segger based debugging of Nordic nRF, Zephyr based applications.  I quick list of tools to install:
 
This wiki page intended to capture the various Nordic Semi toolchain elements which support the complete build, flash programming and Segger based debugging of Nordic nRF, Zephyr based applications.  I quick list of tools to install:
 +
  
 
*  all the Linux, Python, west, and sdk-nrf utilities and code base
 
*  all the Linux, Python, west, and sdk-nrf utilities and code base
*  gnuarmemb toolchain from GNU GCC for ARM downloads page
+
[https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads gnuarmemb toolchain] from GNU GCC for ARM downloads page
 
*  Segger JLink drivers from Segger's web site
 
*  Segger JLink drivers from Segger's web site
  
A key finding on 2021-Sept-27 is that the [gnuarmemb] toolchain is for some reason necessary to call from Segger for compiling nRF Connect SDK projects.  At the command line using `west`, both Zephyr's ARM compiler and the GNU ARM compiler (Zephyr's is GNU but just branded) succeed in building nRF Zephyr based apps.  Attempts to call `/opt/zephyr-sdk-0.13.0/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc` cause a strange build error "offsets.c.obj does not exist".
+
 
 +
A key finding on 2021-Sept-27 is that the [https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads gnuarmemb] toolchain is for some reason necessary to call from Segger for compiling nRF Connect SDK projects.  At the command line using `west`, both Zephyr's ARM compiler and the GNU ARM compiler (Zephyr's is GNU but just branded) succeed in building nRF Zephyr based apps.  Attempts to call `/opt/zephyr-sdk-0.13.0/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc` cause a strange build error "offsets.c.obj does not exist".
  
  
Line 24: Line 26:
 
Back to Nordic, their instructions for installing Segger Embedded Studio for Nordic development:
 
Back to Nordic, their instructions for installing Segger Embedded Studio for Nordic development:
 
*  https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html
 
*  https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html
 +
Anchor point in same page, close to download link that's tabbed for Windows, Linux, Mac OS version of Segger IDE Nordic edition:
 +
*  https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/gs_installing.html#ses-nordic-edition
 +
 +
Alternate information page:
 +
*  https://www.nordicsemi.com/Products/Development-tools/Segger-Embedded-Studio/Download
 +
 +
  
  
Line 31: Line 40:
 
*  https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/getting-started/posts/nrf-connect-sdk-tutorial---part-2-ncs-v1-4-0
 
*  https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/getting-started/posts/nrf-connect-sdk-tutorial---part-2-ncs-v1-4-0
 
*  https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/getting-started/posts/nrf-connect-sdk-tutorial---part-3-ncs-v1-4-0
 
*  https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/getting-started/posts/nrf-connect-sdk-tutorial---part-3-ncs-v1-4-0
 
  
 
== [[#top|^]] gnuarmemb And JLinkARM installation ==
 
== [[#top|^]] gnuarmemb And JLinkARM installation ==
Line 41: Line 49:
 
*  https://www.segger.com/downloads/jlink/?step=1&file=JLink_510d
 
*  https://www.segger.com/downloads/jlink/?step=1&file=JLink_510d
  
 +
 +
A recent version of GNU ARM gcc Ted finds will build nRF Zephyr based applications at the command line via `west`, but not when called from within Segger IDE Nordic version 5.60.  A latest stable pre-compiled ARM gcc from GNU builds both at command line and in Segger:
 +
 +
<i>Table:  ARM gcc cross compiler versions and pass/fail build conditions</i>
 +
<pre>
 +
                                          command line and `west`    Segger Nordic v5.60
 +
arm-zephyr-eabi-gcc (crosstool-NG) 10.2.0          yes                        no
 +
arm-none-eabi-gcc (GNU Arm) 10.3.1                  yes                        yes
 +
</pre>
 +
 +
Full compiler version strings:
 +
 +
*  arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.07) 10.3.1 20210621 (release)
 +
*  arm-zephyr-eabi-gcc (crosstool-NG 1.24.0.212_d7da3a9) 10.2.0
  
 
<!-- comment -->
 
<!-- comment -->

Latest revision as of 17:41, 1 October 2021

Keywords:  Zephyr SDK installation :: Nordic nRF SDK installation :: JLinkARM installations

^ Overview

This wiki page intended to capture the various Nordic Semi toolchain elements which support the complete build, flash programming and Segger based debugging of Nordic nRF, Zephyr based applications. I quick list of tools to install:


  • all the Linux, Python, west, and sdk-nrf utilities and code base
  • gnuarmemb toolchain from GNU GCC for ARM downloads page
  • Segger JLink drivers from Segger's web site


A key finding on 2021-Sept-27 is that the gnuarmemb toolchain is for some reason necessary to call from Segger for compiling nRF Connect SDK projects. At the command line using `west`, both Zephyr's ARM compiler and the GNU ARM compiler (Zephyr's is GNU but just branded) succeed in building nRF Zephyr based apps. Attempts to call `/opt/zephyr-sdk-0.13.0/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc` cause a strange build error "offsets.c.obj does not exist".


^ Nordic Toolchain Install Closely Follows Zephyr Tools

Steps to installing Zephyr SDK and prerequisites in the context of NordicSemi's forked branch of Zephyr, and specifically details on `west init`, `west zephyr-export` and `west update`:

Instructions to install Zephyr SDK 0.13.0, note this is a Zephyr website page:


Back to Nordic, their instructions for installing Segger Embedded Studio for Nordic development:

Anchor point in same page, close to download link that's tabbed for Windows, Linux, Mac OS version of Segger IDE Nordic edition:

Alternate information page:



Nordic Semi Simon's four part nRF tutorial series:

^ gnuarmemb And JLinkARM installation

The following two links go directly to GNU ARM compiler download page, and to a JLink drivers download page at Segger dot com:


A recent version of GNU ARM gcc Ted finds will build nRF Zephyr based applications at the command line via `west`, but not when called from within Segger IDE Nordic version 5.60. A latest stable pre-compiled ARM gcc from GNU builds both at command line and in Segger:

Table: ARM gcc cross compiler versions and pass/fail build conditions

                                           command line and `west`     Segger Nordic v5.60
arm-zephyr-eabi-gcc (crosstool-NG) 10.2.0           yes                         no
arm-none-eabi-gcc (GNU Arm) 10.3.1                  yes                        yes

Full compiler version strings:

  • arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.07) 10.3.1 20210621 (release)
  • arm-zephyr-eabi-gcc (crosstool-NG 1.24.0.212_d7da3a9) 10.2.0