Project Settings change C Library Type

Sysprogs forums Forums VisualGDB Project Settings change C Library Type

This topic contains 2 replies, has 2 voices, and was last updated by  support 1 month, 2 weeks ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #30087

    PeterU
    Participant

    VisualGDB 5.6(Beta 1, build 4029)

    Have an old  VisualGDB  project with a startup file using a “startup_efr32mg1p.S” that is located in the project, When I modified the .vgdsettings:

    • Double click settings file in Solution Explorer
    • Select Embedded Project and Click Change settings
    • Select and change C Library Type to include floating point support in printf()
    • Then close then close .vgdbsettings tab

    The C Library Type change seems to work, but there seems to be a side effect(or feature) that a .c source file  is added to the project

    <ClCompile Include=”$(BSP_ROOT)\EFR32MG1P\StartupFiles\startup_efr32mg1p.c”>
    <Filter>Source files\Device-specific files</Filter>
    </ClCompile>

    Just wandering if there is a reason this file is added when the C Library Type is changed as it causes the build to fail?

    #30089

    PeterU
    Participant

    Same project as above while changing the .vgbsettings> Makefie settings > CFLAGS: (added switch -mfloat-abi=softfp) then saved this cause Visual Studio to stop responding and after closing VS. Could not reopen project. Found that two files had been added to the project:

    <None Include="../sdk/platform/Device/SiliconLabs/EFR32MG1P/Source/GCC/efr32mg1p.ld">
    <Filter>Source files</Filter>
    </None>
    <ClCompile Include="$(BSP_ROOT)\EFR32MG1P\StartupFiles\startup_efr32mg1p.c">
    <Filter>Source files\Device-specific files</Filter>
    </ClCompile>

    Deleting the references to both files in Visual Studio .vcxproj and .vcxproj.filter files made it possible for visual studio to reopen the project.

    The efr32mg1p.ld file was already included in the project with its include path with the the \ as directory delimiter as shown below:

    <None Include="..\sdk\platform\Device\SiliconLabs\EFR32MG1P\Source\GCC\efr32mg1p.ld">
    <Filter>Source files</Filter>
    </None>

     

     

     

    #30094

    support
    Keymaster

    Hi,

    VisualGDB would normally regenerate the device-specific part of the project when you change some of the device-level settings (e.g. library type). You can find a detailed explanation of this mechanism for STM32 devices here: https://visualgdb.com/documentation/embedded/stm32/.

    Most likely you have previously manually removed some of the VisualGDB-managed files from the project, and editing the settings via VisualGDB GUI put them back.

    It is hard to say why a project referencing the .ld file twice would not open. If you could reproduce the issue on a cleanly created project and share the steps we could follow on our side, we can gladly look into it. Otherwise, it is likely triggered by a rare incompatible combination of settings that were set at some point.

    You can also try using the new Advanced Embedded CMake Project Subsystem. For this project type VisualGDB has full control over the contents of Solution Explorer, so it can automatically prevent many common errors that happen with VC++-based projects.

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.