This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SES no long knows the $(Target), the simulator or the device register maps.

I recently moved my custom board definition from the zephyr board dir to the nrf board dir, to unify my changes into on git repo for internal use.  I think that's when the Segger Embedded Studio stopped knowing the $Target and the JLINK debug interface.  Along with the nrf53 device register groups.  

If I manually set the target and the debugger to jlink, it can debug find, but it loses this when I exec SES.  It also does not know about other register groups such as GPIOTE and all others.

Is there a fix for this?  Where does SES store that infomation?

Parents
  • I've uploaded the two sub-dirs that go under the v1.6.0\nrf directory, that is a test project that shows the same issue.

    https://drive.google.com/file/d/1KBU998V3ivDfhtBd0iV1CmIz0i9tRU78/view?usp=sharing

  • And manually loading the location of the svd file did not work either. 

  • Hi Jordan,

    I've tried to open your project a few times now, unfortunately I have not been able to do so. Are you using the toolchain manager? or some different installation?

  • Toolchain manager.

  • This thread may be relevant: https://devzone.nordicsemi.com/f/nordic-q-a/80029/failed-to-write-memory-when-using-segger-embedded-studio-and-nrf-connect-sdk/331863. You may want to check if the chip variant in your board file matches the one used in the python script I refered to.

  • Can you open the project under?  And it appears that if you run cmake, SES loses all of the device and jlink info.  

    nrf\projects\onedrop_pod\build_onedrop_cpuapp_pod1

    The files:


    CMakeCache.txt Output build.ninja mcuboot onedrop_pod.emSession regions.yml zephyr_modules.txt
    CMakeFiles app cmake_install.cmake modules partitions.yml rules.ninja zephyr_settings.txt
    Kconfig build.emProject hci_rpmsg onedrop_pod.emProject pm.config zephyr

  • I was able to build 'build_onedrop_cpuapp_pod1' after I ran a 'west update'. It appeared to be an issue with the Zephyr repo.

    Anyway. I think I found the issue now: the python script responsible for generating the Segger project assumes the board file will include the SoC devicetree file at the top of the file, but your onedrop_cpuapp_pod1.dts file does not do that. Instead it includes it via your onedrop_cpuapp_base.dts file.

    Here is the part from the script that attempts to parse the include string from the board file:

    To fix this, please use the following includes in onedrop_cpuapp_pod1.dts:

    /dts-v1/;
    #include <nordic/nrf5340_cpuapp_qkaa.dtsi>
    #include "onedrop_cpuapp_base.dts"

    Then remove the SoC include from onedrop_cpuapp_base.dts:

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */


    #include "nrf5340_cpuapp_common.dts"

    / {
        compatible = "OneDrop";
Reply
  • I was able to build 'build_onedrop_cpuapp_pod1' after I ran a 'west update'. It appeared to be an issue with the Zephyr repo.

    Anyway. I think I found the issue now: the python script responsible for generating the Segger project assumes the board file will include the SoC devicetree file at the top of the file, but your onedrop_cpuapp_pod1.dts file does not do that. Instead it includes it via your onedrop_cpuapp_base.dts file.

    Here is the part from the script that attempts to parse the include string from the board file:

    To fix this, please use the following includes in onedrop_cpuapp_pod1.dts:

    /dts-v1/;
    #include <nordic/nrf5340_cpuapp_qkaa.dtsi>
    #include "onedrop_cpuapp_base.dts"

    Then remove the SoC include from onedrop_cpuapp_base.dts:

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */


    #include "nrf5340_cpuapp_common.dts"

    / {
        compatible = "OneDrop";
Children
No Data