CurtisHx

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 33 total)
  • Author
    Posts
  • in reply to: Cannot change register def file to relative path #8890
    CurtisHx
    Participant

    Alright.  I am having absolutely no luck with this whatsoever.  Here’s my folder structure:

    Nordic
       nRF52
          Project
             MCU.xml
       SDK
         nRF5_SDK_11.0.0
            Device
               nRF52.xml

    How can I force the Peripheral register definition file location in the VisualGDB Project Properties Page to read “..\..\SDK\nRF5\SDK\11.0.0\Device\nRF52.xml”?  Because every time I try to change it, I keep getting an absolute path.  It cannot be an absolute path because other developers locate their sources in different locations.  It must be a relative path.

    Here’s the MCU.xml file.  What do I need to change?

    <?xml version="1.0"?>
    <EmbeddedProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <ToolchainID>com.visualgdb.arm-eabi</ToolchainID>
     <BspID>com.visualgdb.bsp.in-place</BspID>
     <BspVersion>1.0</BspVersion>
     <BSPSubdirectory>..\..\SDK\nRF5_SDK_11.0.0\</BSPSubdirectory>
     <MCUDefinitionFile>\device\nRF52.xml</MCUDefinitionFile>
     <McuID>nRF52832_XXAA</McuID>
     <MCUProperties>
     <Entries />
     </MCUProperties>
     <BSPSourceFolderName>Device-specific files</BSPSourceFolderName>
     <InPlaceMCU>
     <ID>nRF52832_XXAA</ID>
     <UserFriendlyName>nRF52832_XXAA</UserFriendlyName>
     <CompilationFlags>
     <PreprocessorMacros>
     <string>$$com.sysprogs.bspoptions.nrf5x.defmak$$</string>
     <string>nosoftdev</string>
     <string>ARM_MATH_CM4</string>
     </PreprocessorMacros>
     <IncludeDirectories>
     <string>.</string>
     </IncludeDirectories>
     <AdditionalLibraryDirectories>
     <string>$$SYS:BSP_ROOT$$/nRF5x/SoftdeviceLibraries</string>
     </AdditionalLibraryDirectories>
     <AdditionalLibraries>
     <string>compactcpp</string>
     </AdditionalLibraries>
     <CFLAGS />
     <CXXFLAGS />
     <LDFLAGS />
     <ASFLAGS>-mfpu=fpv4-sp-d16</ASFLAGS>
     <LinkerScript>nRF52832_XXAA_nosoftdev.lds</LinkerScript>
     <COMMONFLAGS>-mabi=aapcs $$com.sysprogs.bspoptions.nrf5x.floatsoft$$ -mcpu=cortex-m4 -mthumb -mfloat-abi=hard</COMMONFLAGS>
     <EnableLinkerGroups>true</EnableLinkerGroups>
     </CompilationFlags>
     <AdditionalSourceFiles />
     <AdditionalHeaderFiles />
     <AdditionalSystemVars>
     <SysVarEntry>
     <Key>com.sysprogs.bspoptions.nrf5x.defmak</Key>
     <Value>NRF52</Value>
     </SysVarEntry>
     <SysVarEntry>
     <Key>com.sysprogs.bspoptions.nrf5x.floatsoft</Key>
     <Value />
     </SysVarEntry>
     <SysVarEntry>
     <Key>com.sysprogs.bspoptions.nrf5x.typsf</Key>
     <Value>NRF52</Value>
     </SysVarEntry>
     <SysVarEntry>
     <Key>com.sysprogs.nordic.default_config_suffix</Key>
     <Value>s132_pca10036</Value>
     </SysVarEntry>
     </AdditionalSystemVars>
     <ConfigurableProperties>
     <PropertyGroups>
     <PropertyGroup>
     <Properties>
     <PropertyEntry xsi:type="Boolean">
     <Name>Softdevice firmware is programmed separately</Name>
     <UniqueID>com.sysprogs.bspoptions.nrf5x.softdevice_suffix</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <DefaultValue>false</DefaultValue>
     <ValueForTrue>_reserve</ValueForTrue>
     </PropertyEntry>
     <PropertyEntry xsi:type="Enumerated">
     <Name>Execute from</Name>
     <UniqueID>com.sysprogs.bspoptions.primary_memory</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <SuggestionList>
     <Suggestion>
     <UserFriendlyName>FLASH</UserFriendlyName>
     <InternalValue>flash</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>SRAM</UserFriendlyName>
     <InternalValue>sram</InternalValue>
     </Suggestion>
     </SuggestionList>
     <DefaultEntryIndex>0</DefaultEntryIndex>
     <AllowFreeEntry>false</AllowFreeEntry>
     </PropertyEntry>
     <PropertyEntry xsi:type="Enumerated">
     <Name>Floating point support</Name>
     <UniqueID>com.sysprogs.bspoptions.arm.floatmode</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <SuggestionList>
     <Suggestion>
     <UserFriendlyName>Software</UserFriendlyName>
     <InternalValue>-mfloat-abi=soft</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>Hardware (required when using a softdevice)</UserFriendlyName>
     <InternalValue>-mfloat-abi=hard</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>Unspecified</UserFriendlyName>
     <InternalValue />
     </Suggestion>
     </SuggestionList>
     <DefaultEntryIndex>1</DefaultEntryIndex>
     <AllowFreeEntry>false</AllowFreeEntry>
     </PropertyEntry>
     <PropertyEntry xsi:type="Enumerated">
     <Name>RAM size</Name>
     <UniqueID>com.sysprogs.bspoptions.nrf5x.ramsuffix</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <SuggestionList>
     <Suggestion>
     <UserFriendlyName>32 KB (Preview)</UserFriendlyName>
     <InternalValue>_32k</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>64 KB (Final)</UserFriendlyName>
     <InternalValue>_64k</InternalValue>
     </Suggestion>
     </SuggestionList>
     <DefaultEntryIndex>0</DefaultEntryIndex>
     <AllowFreeEntry>false</AllowFreeEntry>
     </PropertyEntry>
     <PropertyEntry xsi:type="Enumerated">
     <Name>Softdevice</Name>
     <UniqueID>com.sysprogs.bspoptions.nrf5x.softdevice</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <SuggestionList>
     <Suggestion>
     <UserFriendlyName>None</UserFriendlyName>
     <InternalValue>nosoftdev</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>S132 (Bluetooth LE)</UserFriendlyName>
     <InternalValue>S132</InternalValue>
     </Suggestion>
     </SuggestionList>
     <DefaultEntryIndex>1</DefaultEntryIndex>
     <AllowFreeEntry>false</AllowFreeEntry>
     </PropertyEntry>
     <PropertyEntry xsi:type="Enumerated">
     <Name>C Library Type</Name>
     <UniqueID>com.sysprogs.toolchainoptions.arm.libctype</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <SuggestionList>
     <Suggestion>
     <UserFriendlyName>Default</UserFriendlyName>
     <InternalValue />
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>Newlib-nano</UserFriendlyName>
     <InternalValue>--specs=nano.specs</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>Newlib-nano with floating point support in printf()</UserFriendlyName>
     <InternalValue>--specs=nano.specs -u _printf_float</InternalValue>
     </Suggestion>
     <Suggestion>
     <UserFriendlyName>Newlib-nano with floating point support in printf() and scanf()</UserFriendlyName>
     <InternalValue>--specs=nano.specs -u _printf_float -u _scanf_float</InternalValue>
     </Suggestion>
     </SuggestionList>
     <DefaultEntryIndex>0</DefaultEntryIndex>
     <AllowFreeEntry>false</AllowFreeEntry>
     </PropertyEntry>
     <PropertyEntry xsi:type="Boolean">
     <Name>Reduce the size of C++ binaries</Name>
     <UniqueID>com.sysprogs.toolchainoptions.arm.compactcpp</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <DefaultValue>true</DefaultValue>
     <ValueForTrue>compactcpp</ValueForTrue>
     </PropertyEntry>
     <PropertyEntry xsi:type="Boolean">
     <Name>Provide default stubs for system calls</Name>
     <UniqueID>com.sysprogs.toolchainoptions.arm.libnosys</UniqueID>
     <OmitPrefixIfEmpty>false</OmitPrefixIfEmpty>
     <DefaultValue>false</DefaultValue>
     <ValueForTrue>--specs=nosys.specs</ValueForTrue>
     </PropertyEntry>
     </Properties>
     <CollapsedByDefault>false</CollapsedByDefault>
     </PropertyGroup>
     </PropertyGroups>
     </ConfigurableProperties>
     <HierarchicalPath>nRF5x\nRF5Xxxxx</HierarchicalPath>
     <FamilyID>nRF5Xxxxx</FamilyID>
     <FLASHSize>524288</FLASHSize>
     <RAMSize>32768</RAMSize>
     <FLASHBase>0</FLASHBase>
     <RAMBase>536870912</RAMBase>
     <AdditionalSourcesRequiredForTesting>false</AdditionalSourcesRequiredForTesting>
     </InPlaceMCU>
     <MCUMakFile>mcu.mak</MCUMakFile>
     <FrameworkProperties>
     <Entries />
     </FrameworkProperties>
     <TestFrameworkProperties>
     <Entries />
     </TestFrameworkProperties>
    </EmbeddedProfile>
    CurtisHx
    Participant

    Also, VisualGDB will overwrite changes made to the master Makefile other than the source files.  I manually specified the location of a library, and VisualGDB overwrote my changes.

    In my project’s Makefile, I set the EXTERNAL_LIBS variable to ../bin/libDrivers.a.  After building through Visual Studio, it was changed to ../Drivers/$(BINARYDIR)/../../bin/libDrivers.a.  libDrivers.a is the output from another embedded project.

    CurtisHx
    Participant

    I do remember the spaces / tabs setting was not imported correctly.  All of my other languages are configured for 2 spaces and insert spaces.  VisualGDB used 4 spaces and tabs.  Once I changed the setting back, it stayed.

    CurtisHx
    Participant

    Alright.  Found that.

    On another note: Is there a way to force VisualGDB to use the existing C/C++ Code Formatting?  We have solutions that create Windows applications and Embedded apps, and our devs want to be able to format both kinds of projects with the same formating.  Currently, if you make a change in one, you have to manually update the other.

    CurtisHx
    Participant

    Where’s the Embedded Tools Manager?  It is not under Visual Studio -> Tools menu.

    in reply to: Cannot change register def file to relative path #8771
    CurtisHx
    Participant

    This project has been a stand alone project for quite a while.  There are <MCUDefinitionFile> tags in the MCU.xml file, but no <BSPSubdirectory> tags.

    Also, changing the peripheral register definition file will change where Make looks for the compiler.  For example, I changed the file location from “C:\SysGCC\arm-eabi\nRF52.xml” to “C:\SysGCC\arm-eabi\nRF5x\DeviceDefinitions\nRF52.xml”, and Make could no longer find the GCC C++ compiler.

    in reply to: Cannot change register def file to relative path #8763
    CurtisHx
    Participant

    Is there any way to set it relative to the project path?  We have all files checked into source control (TFS), and developers will have different local folders.

    CurtisHx
    Participant

    Also, how can I add “NRF52” to the __VisualGDB_CFG_Release and __VisualGDB_CFG_Debug preprocessor definition?  The include header chain doesn’t work properly without that definition, and VisualGDB keeps overwriting any changes I make to the “Processor Definitions” in the IntelliseSense settings.

    CurtisHx
    Participant

    ARM_TOOLCHAIN is not in the available macros.

    CurtisHx
    Participant

    We are using the default Visual Studio intellisense.

    CurtisHx
    Participant

    I took a closer look at the IntelliSense problem:  It would appear that IntelliSense is not picking up the ARM_TOOLCHAIN_ROOT variable, or any of VisualGDB’s variables for that matter.  I tried changing all of the references to TOOLCHAIN_ROOT with the same results.

    CurtisHx
    Participant

    I’m running across another problem where Visual Studio’s Intellisense is just… not working with the C standard headers.  I have $(ARM_TOOLCHAIN_ROOT)\lib\bcc\arm-eabi\5.3.0\include as one of the directories under IntelliSense Settings.  The full path is valid and contains the standard headers I need (stdint and stdbool), assuming $(ARM_TOOLCHAIN_ROOT) points to C:\SysGCC\arm-eabi.

    Also, VisualGDB keeps overwriting the IntelliSense preprocessor definitions.  I would like that list to include “NRF52” so the header chain for the Nordic NRF52 works correctly with IntelliSense.

    CurtisHx
    Participant

    Figured it out.  I had a linker script specified.  This project was originally an executable that got switched to a static library, and the linker script was still included.  I removed the linker script from the VisualGDB Project Properties -> Embedded Project page and the VisualGDB Project Properties -> Makefile settings page, and those warnings went away.

    CurtisHx
    Participant

    Are there plans to add a migration for the 5.2 release?  Having settings get changed out from underneath you is really annoying.

    CurtisHx
    Participant

    The strange inclusion loop is entirely possible.  I made some significant changes to the project in order to support unit testing (this was before the 5.2 release with Unit Testing support).

    However, it has something to do with the project output being set for Static Library.  I changed it to executable, and those two warnings went away.

Viewing 15 posts - 16 through 30 (of 33 total)