Update GAP SDK - RISCV-GAP

Hi,

Is there a way to update the GAP SDK toolchain used by Platformio? Latest version of GAP SDK is 3.9.1 while the one used by Platformio for the Gapuino board is 2.0.0.

Best regards,
Miguel

Issue https://github.com/platformio/platform-riscv_gap/issues/4 is open for that the.

Per platform_packages you can also try to specify a custom package source for it, e.g. via

platform_packages =
   framework-gap_sdk@https://github.com/GreenWaves-Technologies/gap_sdk.git#release-v3.9.1

in the platformio.ini. (You must have git installed to pull the version).

After doing that and performing some additional adjustments I was able to compile and upload a program using the new version of GAP-SDK to Gapuino. However, when I try to debug the application, I get the following error:

Which exact adjustments? Does an uploaded firmware work?

The screen looks like it cannot find any debug symbols in the ELF file, which is weird. Can you add

debug_build_flags = -O0 -ggdb3 -g3
build_type = debug

to the platformio.ini and retry debugging?

  1. After adding the following to platformio.ini 'platform_packages = framework-gap_sdk@GitHub - GreenWaves-Technologies/gap_sdk: SDK for Greenwaves Technologies' GAP8 IoT Application Processor, Platformio returned an assertion error:

  2. To solve that, I updated the directory of pulp-os in build-pulp-os.py script:
    FRAMEWORK_DIR = join(SDK_DIR, “rtos/pulp/pulp-os”)

  3. After that, I got another error related with directories. Platformio did not find the file gap_config.h. One more time, I updated build-pulp-os.py script:
    CCFLAGS=[
    …,
    (“-include”, join(SDK_DIR, “tools/pulp_tools/gap_flasher/include”, “gap_config.h”))],

After doing this, the Build task is performed “successfully”. However, it started to return an error, which I think is related to a linker problem:
riscv32-unknown-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 000000001c000000

The debugger returns the error exposed above.

Does debugging work with the normal older SDK version or does it throw the same error?

Yes! With the normal older SDK, everything works fine. I am trying to use this new SDK due to PMSIS.

That’s weird, that usually hints that something in the linker script or linking has gone wrong so that it doesn’t find the _start function autoprovided by GCC, or implemented in some startup assembly file.

The produced firmware also does not run, yes?

I’m not sure why the build does not contain debug symbols. If the -g3 or -g2 flags are in the compiler invocation, they should be there for gdb to find.

I’m not an expert on PulpOS building so I hope the opened issue will be picked up soon and resolved, along with the necessary build script changes at https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/PlatformIO.

The produced firmware also does not run. I think the problem may be in the linking.