Forum Replies Created
-
AuthorPosts
-
CurtisHxParticipant
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>
August 17, 2016 at 13:24 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8874CurtisHxParticipantAlso, 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.
August 17, 2016 at 12:58 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8873CurtisHxParticipantI 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.
August 15, 2016 at 15:50 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8859CurtisHxParticipantAlright. 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.
August 11, 2016 at 17:45 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8772CurtisHxParticipantWhere’s the Embedded Tools Manager? It is not under Visual Studio -> Tools menu.
CurtisHxParticipantThis 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.
CurtisHxParticipantIs 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.
August 9, 2016 at 16:34 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8762CurtisHxParticipantAlso, 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.
August 9, 2016 at 16:25 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8761CurtisHxParticipantARM_TOOLCHAIN is not in the available macros.
August 4, 2016 at 20:06 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8747CurtisHxParticipantWe are using the default Visual Studio intellisense.
August 4, 2016 at 15:39 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8741CurtisHxParticipantI 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.
August 4, 2016 at 15:32 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8740CurtisHxParticipantI’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.
August 2, 2016 at 13:31 in reply to: Getting warning about overriding recipe and ignoring old recipe on library proje #8729CurtisHxParticipantFigured 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.
July 28, 2016 at 14:36 in reply to: Installing VisualGDB 5.2 Preview 1 changes a lot of settings #8720CurtisHxParticipantAre there plans to add a migration for the 5.2 release? Having settings get changed out from underneath you is really annoying.
July 25, 2016 at 13:16 in reply to: Getting warning about overriding recipe and ignoring old recipe on library proje #8696CurtisHxParticipantThe 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.
-
AuthorPosts