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

Developing for nRF9160 using Segger Embedded Studio on Mac OS Catalina

There are several tickets from users trying to get the combination of Zephyr and Segger Embedded Studio (SES) to work on Mac OS including Catalina, but some are unresolved and others don't help me. Also, some of Nordic's responses are confusing.

My case is as follows. I have for a longer time successfully used Zephyr and SES on PC:s running Windows 10 and on a Mac running Mojave. Note that I have not yet migrated our project to ncs v1.1.0. We are running commit 771be817c9aff6df161118de6c30871bf4d05253 which is based on ncs v1.0.0.

Now I have a new Mac that runs Catalina and I try to set up Zephyr and SES as identically as possible with my working Mojave installation. I follow the latest Getting Started Assistant (GSA) v1.0.5 in the latest nRF Connect v3.3.0. My system contains other software, including XCode 11.3.

One detail is that GSA is not 100% compatible with the tutorial here, that, e.g., ticket 241940 refers to: whereas GSA specifies “pip3 install --user west”, the Zephyr tutorial specifies “pip3 install west”. It would be nice to have a single description or multiple consistent ones.

Another detail is the need for installation of libgit2 which seems vital as documented by several tickets but missing from GSA. This should be fixed.

Then there is the issue with the GNU ARM Embedded toolchain, which according to the latest GSA should be version 8-2019-q3-update whereas for ncs v1.0.0 it seems version 7-2018-q2-update is needed.

Fiunally, I get some probvlems when installing the Python requirements that I try to resolve as best as I can. I force the installation of PyYAML version 4.2b4 since later versions don't seem to work at all despite some compatibility issue with pyocd-0.21.0.

My real problem is that I cannot get SES for ARM version 4.30c for Nordic to work.

I have also installed the nRF command Line Tools version 10.5.0 and building from the terminal works fine (i.e., 1. “source /path-to-ncs/zephyr/zephyr-env.sh” followed by 2. “cmake .. -DBOARD=nrf9160_pca10090ns -DBOARD_ROOT= /path-to-ncs/zephyr/boards/arm/nrf9160_pca10090/ -GNinja” followed by 3. “ninja flash”).

When I run SES “Open nRF Connect SDK Project…”, I get the following error messages:

Zephyr version: 1.14.99
nrf9160_pca10090ns.dts.pre.tmp:265.19-271.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@40000000/clock@5000: duplicate unit-address (also used in node /soc/peripheral@40000000/power@5000)

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:26: warning: attempt to assign the value 'y' to the undefined symbol BSD_LIBRARY

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:27: warning: attempt to assign the value 'n' to the undefined symbol BSD_LIBRARY_TRACE_ENABLED

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:31: warning: attempt to assign the value 'y' to the undefined symbol LTE_LINK_CONTROL

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:32: warning: attempt to assign the value 'y' to the undefined symbol LTE_LINK_CONTROL_LOG_LEVEL_WRN

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:34: warning: attempt to assign the value '100' to the undefined symbol LTE_CONNECT_TIMEOUT

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:36: warning: attempt to assign the value 'n' to the undefined symbol LTE_AUTO_INIT_AND_CONNECT

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:39: warning: attempt to assign the value '"00101010"' to the undefined symbol LTE_PSM_REQ_RPTAU

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:42: warning: attempt to assign the value '"00000000"' to the undefined symbol LTE_PSM_REQ_RAT

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:43: warning: attempt to assign the value 'y' to the undefined symbol LTE_NETWORK_MODE_NBIOT

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:44: warning: attempt to assign the value 'y' to the undefined symbol LTE_LEGACY_PCO_MODE

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:46: warning: attempt to assign the value 'y' to the undefined symbol LTE_LOCK_BANDS

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:48: warning: attempt to assign the value '"10000000000000000000"' to the undefined symbol LTE_LOCK_BAND_MASK

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:51: warning: attempt to assign the value 'y' to the undefined symbol AT_HOST_LIBRARY

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:52: warning: attempt to assign the value 'y' to the undefined symbol AT_CMD_LOG_LEVEL_WRN

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:113: warning: attempt to assign the value 'y' to the undefined symbol DOWNLOAD_CLIENT_LOG_LEVEL_INF

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:116: warning: attempt to assign the value '5000' to the undefined symbol DOWNLOAD_CLIENT_SOCK_TIMEOUT_MS

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:118: warning: attempt to assign the value '2500' to the undefined symbol DOWNLOAD_CLIENT_STACK_SIZE

/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:141: warning: attempt to assign the value '2000' to the undefined symbol AT_CMD_THREAD_STACK_SIZE

Error: Aborting due to non-whitelisted Kconfig warning
'/Volumes/MacData/Nordic/Projects/Chaak/iot/prj.conf:26: warning: attempt to assign the value 'y' to
the undefined symbol BSD_LIBRARY'. Note: If this warning doesn't point to an actual problem, you can
add it to the whitelist at the top of /Volumes/MacData/Nordic/ncs/zephyr/scripts/kconfig/kconfig.py.

CMake Error at /Volumes/MacData/Nordic/ncs/zephyr/cmake/kconfig.cmake:217 (message):
  command failed with return code: 1
Call Stack (most recent call first):
  /Volumes/MacData/Nordic/ncs/zephyr/cmake/app/boilerplate.cmake:533 (include)
  CMakeLists.txt:9 (include)

i.e., a lot of warnings about undefined symbols leading to an abort due to non-whitelisted warning. Since cmake from terminal works fine, something beyond my comprehension must cause the issue.

I would greatly appreciate help resolving this issue. Since my previous installation on Mac OS Mojave has worked fine even after multiple updates, there could be somehing with a fresh install on a fresh Catalina that behaves differently.

Best regards, Per 

Parents
  • Hi!

    Yes, we are aware of the incompatibilities with regard to GAS / NCS and macOS Catalina. The issue has been raised with the team and they are working to fix it. I will update you on the status when I hear something.  

    Regarding your issue in SES:

    First question: have you chosen the correct board, nrf9160_pca10090ns? From line two it looks like you have, I'm just asking to make sure.

    Second question: what is this path Nordic/Projects/Chaak/iot/prj. Your application folder has to be in the ncs path to be able to build.

    Regarding the other issues you mention:

    1. Installing west

    This just looks like an inconsistency. I'll talk to the relevant people about having this fixed. 

    2. The need for libgit2

    Yes, this requirement is new with the release of macOS Catalina. 

    3. GNU Arm Embedded toolchain

    Regarding the toolchain installation GSA, I understand that this is confusing. This guide is written with the assumption that the customer will want to use the newest released version of the SDK. However, I will put in a request for the GSA to be updated to clarify which toolchain version works with which NCS version. 

    4. Installing Python requirements

    This is also new with the release of macOS Catalina. 

    Thank you for the feedback.

    Best regards,

    Heidi

  • Hi Heidi!

    Thanks for your response.

    Regarding your questions, I have done what I always have done and has worked fine under Windows and on my Mojave MAC.

    The board choice is definitely nrf9160_pca10090ns.

    The point about that the "application folder has to be in the ncs path" I probably don't understand. Again I do everything as before. Nordic/Projects/Chaak/iot/prj is not a subfolder of ncs, which is located at Nordic/ncs, but this has never been a problem before as the paths to the project and to zephyr areknown to SES. Also, as I said, things work fine when running from a terminal.

    To clasrify things I have tried to build the mqtt_simple sample located at  /Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/CMakeLists.txt using the board directory /Volumes/MacData/Nordic/ncs/zephyr/boards/arm/nrf9160_pca10090 as you can see here:

    The result is similar as with my own project:

    Zephyr version: 1.14.99
    USING OUT OF TREE BOARD
    nrf9160_pca10090ns.dts.pre.tmp:265.19-271.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@40000000/clock@5000: duplicate unit-address (also used in node /soc/peripheral@40000000/power@5000)
    
    /Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/prj.conf:16: warning: attempt to assign the value 'y' to the undefined symbol LTE_LINK_CONTROL
    
    /Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/prj.conf:17: warning: attempt to assign the value 'n' to the undefined symbol LTE_AUTO_INIT_AND_CONNECT
    
    /Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/prj.conf:20: warning: attempt to assign the value 'y' to the undefined symbol BSD_LIBRARY
    
    /Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/prj.conf:24: warning: attempt to assign the value 'y' to the undefined symbol AT_HOST_LIBRARY
    
    Error: Aborting due to non-whitelisted Kconfig warning
    '/Volumes/MacData/Nordic/ncs/nrf/samples/nrf9160/mqtt_simple/prj.conf:16: warning: attempt to assign
    the value 'y' to the undefined symbol LTE_LINK_CONTROL'. Note: If this warning doesn't point to an
    actual problem, you can add it to the whitelist at the top of
    /Volumes/MacData/Nordic/ncs/zephyr/scripts/kconfig/kconfig.py.
    
    CMake Error at /Volumes/MacData/Nordic/ncs/zephyr/cmake/kconfig.cmake:217 (message):
      command failed with return code: 1
    Call Stack (most recent call first):
      /Volumes/MacData/Nordic/ncs/zephyr/cmake/app/boilerplate.cmake:533 (include)
      CMakeLists.txt:10 (include)
    
    
    

    What else can you suggest?

    Best regards, per

  • Hi again, thanks for trying another sample.

    The error you are getting is something we have reproduced here at the office but have not been able to fix yet. It might be a problem with Segger Embedded Studio.

    I will let you know when we have an update, but for now, I recommend building in the terminal, since this seems to be working fine. 

    Best regards,

    Heidi

Reply Children
Related