This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software: Code Composer Studio
Hello,
I'm using Version: 7.4.0.00015, TI Emulators 7.0.100.1.
I have CC1310 Launchpad and I'm trying to force debugger to not erase particular sector in the flash. So I'm using the setting of Code Composer Studio in the title and I'm having the linker configured so this section has atribute NOLOAD (noLoadFlash : type = NOLOAD > FLASH_NV).
It's located at:
#define FLASH_NV_BASE 0x1E000
#define FLASH_NV_SIZE 0x1000
But the debugger always erase this section (based on below and fact that data are always erased after this step):
Cortex_M3_0: Writing Flash @ Address 0x00018400 of Length 0x00007c00
Cortex_M3_0: Chunk 1: addr=0x00018400, length=4096 (using block 1)
Cortex_M3_0: Chunk 2: addr=0x00019400, length=4096 (using block 0)
Cortex_M3_0: Chunk 3: addr=0x0001A400, length=4096 (using block 1)
Cortex_M3_0: Chunk 4: addr=0x0001B400, length=4096 (using block 0)
Cortex_M3_0: Chunk 5: addr=0x0001C400, length=4096 (using block 1)
Cortex_M3_0: Chunk 6: addr=0x0001D400, length=4096 (using block 0)
Cortex_M3_0: Chunk 7: addr=0x0001E400, length=4096 (using block 1)
Cortex_M3_0: Chunk 8: addr=0x0001F400, length=3072 (using block 0)
When I use SmartRF Flash Programmer V2, it works as expected (based on log below - affected sector 30 is unassigned and of course based on fact that data there are not erased):
>Page: 25 verified OK.
>Skip verification of unassigned page: 26.
>Skip verification of unassigned page: 27.
>Skip verification of unassigned page: 28.
>Skip verification of unassigned page: 29.
>Skip verification of unassigned page: 30.
>Page: 31 verified OK.
I suspect that CCS is not taking care about the setting and erase all sectors. Or maybe I'm doing something wrong?
Would it be possible to get the .out and .cmd files? CCS looks like it is writing there later which would explain why it erased the section first. So then the question is if CCS is not supposed to be writing there.
Regards,
John
Hi,
I've tried it again. When I hit the debug button the output below appears in console. One thing I noticed is that it is mentioning "FlashLoaderCC26x0.out" file, not the "sensor_cc1350lp.out" although "sensor_cc1350lp.out" is the actual output from the linker (the firmware works as expected, so it is somehow loaded too).
Cortex_M3_0: GEL Output: Memory Map Initialization Complete.
Cortex_M3_0: Flashloader: Verbose output enabled.
Cortex_M3_0: GEL Output: Board Reset Complete.
Cortex_M3_0: Writing Flash @ Address 0x00000000 of Length 0x00000fc0
Cortex_M3_0: Loading flashloader to target: FlashLoaderCC26x0.out
Cortex_M3_0: Chunk 1: addr=0x00000000, length=4032 (using block 0)
Cortex_M3_0: Writing Flash @ Address 0x00001000 of Length 0x00007c00
Cortex_M3_0: Chunk 1: addr=0x00001000, length=4096 (using block 1)
Cortex_M3_0: Chunk 2: addr=0x00002000, length=4096 (using block 0)
Cortex_M3_0: Chunk 3: addr=0x00003000, length=4096 (using block 1)
Cortex_M3_0: Chunk 4: addr=0x00004000, length=4096 (using block 0)
Cortex_M3_0: Chunk 5: addr=0x00005000, length=4096 (using block 1)
Cortex_M3_0: Chunk 6: addr=0x00006000, length=4096 (using block 0)
Cortex_M3_0: Chunk 7: addr=0x00007000, length=4096 (using block 1)
Cortex_M3_0: Chunk 8: addr=0x00008000, length=3072 (using block 0)
Cortex_M3_0: Writing Flash @ Address 0x00008c00 of Length 0x00007c00
Cortex_M3_0: Chunk 1: addr=0x00008C00, length=4096 (using block 1)
Cortex_M3_0: Chunk 2: addr=0x00009C00, length=4096 (using block 0)
Cortex_M3_0: Chunk 3: addr=0x0000AC00, length=4096 (using block 1)
Cortex_M3_0: Chunk 4: addr=0x0000BC00, length=4096 (using block 0)
Cortex_M3_0: Chunk 5: addr=0x0000CC00, length=4096 (using block 1)
Cortex_M3_0: Chunk 6: addr=0x0000DC00, length=4096 (using block 0)
Cortex_M3_0: Chunk 7: addr=0x0000EC00, length=4096 (using block 1)
Cortex_M3_0: Chunk 8: addr=0x0000FC00, length=3072 (using block 0)
Cortex_M3_0: Writing Flash @ Address 0x00010800 of Length 0x00007c00
Cortex_M3_0: Chunk 1: addr=0x00010800, length=4096 (using block 1)
Cortex_M3_0: Chunk 2: addr=0x00011800, length=4096 (using block 0)
Cortex_M3_0: Chunk 3: addr=0x00012800, length=4096 (using block 1)
Cortex_M3_0: Chunk 4: addr=0x00013800, length=4096 (using block 0)
Cortex_M3_0: Chunk 5: addr=0x00014800, length=4096 (using block 1)
Cortex_M3_0: Chunk 6: addr=0x00015800, length=4096 (using block 0)
Cortex_M3_0: Chunk 7: addr=0x00016800, length=4096 (using block 1)
Cortex_M3_0: Chunk 8: addr=0x00017800, length=3072 (using block 0)
Cortex_M3_0: Writing Flash @ Address 0x00018400 of Length 0x00007c00
Cortex_M3_0: Chunk 1: addr=0x00018400, length=4096 (using block 1)
Cortex_M3_0: Chunk 2: addr=0x00019400, length=4096 (using block 0)
Cortex_M3_0: Chunk 3: addr=0x0001A400, length=4096 (using block 1)
Cortex_M3_0: Chunk 4: addr=0x0001B400, length=4096 (using block 0)
Cortex_M3_0: Chunk 5: addr=0x0001C400, length=4096 (using block 1)
Cortex_M3_0: Chunk 6: addr=0x0001D400, length=4096 (using block 0)
Cortex_M3_0: Chunk 7: addr=0x0001E400, length=4096 (using block 1)
Cortex_M3_0: Chunk 8: addr=0x0001F400, length=3072 (using block 0)
On further investigation, the issue seems to be caused by a feature CCS has to combine close sections together to increase performance. Specifically there is a bug that is causing it to combine 2 sections in your program that shouldn't be combined, and therefore it is over writing the memory at 0x1E000.
As a temporary work around, can you download the attached CC13_FlashProperties.xml and copy it into the following folder?
<installDir>\ccsv7\ccs_base\DebugServer\propertyDB\
<?xml version="1.0" encoding="utf-8"?> <PropertyList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--Nodes--> <node id="FlashProgrammerNode"> <name>Flash Settings</name> <children> <child>ProgramLoadSettingsGroup</child> <child>EraseActionGroup</child> <child>FlashAlignCombineToggle</child> <child>FlashAlignmentSize</child> <child>DeviceInfoGroup</child> <child>DeviceMacAddressGroup</child> </children> </node> <!--Groups --> <group id="ProgramLoadSettingsGroup"> <name>Program Load Settings</name> <children> <child>FlashEraseSetting</child> <child>KeepCcfgSetting</child> </children> </group> <group id="EraseActionGroup"> <name>Erase Actions</name> <children> <child>ChipEraseButton</child> </children> </group> <group id="DeviceInfoGroup"> <name>Device Information</name> <children> <child>DeviceInfoFlashSize</child> <child>DeviceInfoRAMSize</child> <child>DeviceInfoRevision</child> <child>DeviceInfoRevisionTranslation</child> <child>DeviceFlashloaderFile</child> </children> </group> <group id="DeviceMacAddressGroup"> <name>Device MAC Addresses</name> <children> <child>DeviceBlePrimaryGroup</child> <child>DeviceBleSecondaryGroup</child> <child>DeviceIeeePrimaryGroup</child> <child>DeviceIeeeSecondaryGroup</child> </children> </group> <group id="DeviceBlePrimaryGroup"> <name>Primary BLE Address</name> <children> <child>DeviceBlePrimary</child> <child>DeviceBlePrimaryLoc</child> <child>DeviceBlePrimaryReadButton</child> </children> </group> <group id="DeviceBleSecondaryGroup"> <name>Secondary BLE Address</name> <children> <child>DeviceBleSecondary</child> <child>DeviceBleSecondaryLoc</child> <child>DeviceBleSecondaryReadButton</child> <child>DeviceBleSecondaryWriteButton</child> </children> </group> <group id="DeviceIeeePrimaryGroup"> <name>Primary IEEE Address</name> <children> <child>DeviceIeeePrimary</child> <child>DeviceIeeePrimaryLoc</child> <child>DeviceIeeePrimaryReadButton</child> </children> </group> <group id="DeviceIeeeSecondaryGroup"> <name>Secondary IEEE Address</name> <children> <child>DeviceIeeeSecondary</child> <child>DeviceIeeeSecondaryLoc</child> <child>DeviceIeeeSecondaryReadButton</child> <child>DeviceIeeeSecondaryWriteButton</child> </children> </group> <!--Categories --> <categories> <category>Erase</category> <category>Download</category> <category>Primary BLE Address</category> <category>Secondary BLE Address</category> <category>Primary IEEE Address</category> <category>Secondary IEEE Address</category> <category read="true">Device Info</category> </categories> <!--Property Definitions --> <property id="DeviceBlePrimary"> <target>generic</target> <name>Primary BLE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Primary BLE Address</category> </categories> </property> <property id="DeviceBlePrimaryLoc"> <target>generic</target> <name>BLE Factory Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>500012E8:6</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceBlePrimaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadPriBle")</action> <categories> <category>Primary BLE Address</category> </categories> </property> <property id="DeviceBleSecondary"> <target>generic</target> <name>Secondary BLE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceBleSecondaryLoc"> <target>generic</target> <name>Secondary BLE Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>1FFD0:6</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceBleSecondaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadSecBle")</action> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceBleSecondaryWriteButton"> <target>generic</target> <name>Write</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("WriteSecBle")</action> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceIeeePrimary"> <target>generic</target> <name>Primary IEEE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Primary IEEE Address</category> </categories> </property> <property id="DeviceIeeePrimaryLoc"> <target>generic</target> <name>IEEE Factory Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>500012F0:8</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceIeeePrimaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadPriIeee")</action> <categories> <category>Primary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondary"> <target>generic</target> <name>Secondary IEEE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondaryLoc"> <target>generic</target> <name>Secondary IEEE Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>1FFC8:8</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceIeeeSecondaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadSecIeee")</action> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondaryWriteButton"> <target>generic</target> <name>Write</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("WriteSecIeee")</action> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="FlashEraseSetting"> <target>generic</target> <name>Erase Settings</name> <valueType>ChoiceList</valueType> <values> <value>All Unprotected Sectors</value> <value>Necessary Sectors Only</value> <value>Necessary Sectors Only (Retain untouched content within sector)</value> <value>Program Load Only (do not erase sectors)</value> </values> <defaultValue>Necessary Sectors Only (Retain untouched content within sector)</defaultValue> <categories> <category>Erase</category> </categories> </property> <property id="KeepCcfgSetting"> <target>generic</target> <name>Keep CCFG data. The upper N bytes of device CCFG are kept. N is given by CCFG.CCFG_O_SIZE_AND_DIS_FLAGS[31:16] in CCFG. If value is invalid, this option is ignored.</name> <valueType>Boolean</valueType> <defaultValue>0</defaultValue> <categories> <category>Download</category> </categories> </property> <property id="ChipEraseButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Erase Entire Flash</name> <valueType>Button</valueType> <disableIf> <property id="KeepCcfgSetting">1</property> </disableIf> <action>DPActiveDebugSession.expression.evaluate("MassErase()")</action> <categories> <category>Erase</category> </categories> </property> <property id="FlashAlignCombineToggle"> <target>generic</target> <name>Align program segments to 64-bit memory regions (for ECC calculation)</name> <valueType>Boolean</valueType> <defaultValue>1</defaultValue> <hidden /> </property> <property id="FlashAlignmentSize"> <!-- When set, this option combines all sections that is within the given range, resulting in bigger programming chunks and improved speed. Holes are programmed with FF data --> <target>generic</target> <name>Alignment Size: 0x</name> <valueType>String</valueType> <defaultValue>400</defaultValue> <!-- HEX value --> <hidden /> </property> <property id="DeviceInfoFlashSize"> <target>generic</target> <name>Flash Size</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRAMSize"> <target>generic</target> <name>RAM Size</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRevision"> <target>generic</target> <name>Revision</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRevisionTranslation"> <target>generic</target> <name>Revision Translation</name> <valueType>String</valueType> <defaultValue>0:1.0:15:1.0:2:2.0:3:2.1</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceFlashloaderFile"> <target>generic</target> <name>Flashloader File</name> <valueType>String</valueType> <defaultValue>FlashLoaderCC26x0.out</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <!-- fin --> </PropertyList>
This should disable the combine feature.
Please let me know if this fixes your issue. We will be looking into implementing a fix to this issue in CCS as soon as possible.
Thanks,
Ricky
Let's try that again.
<?xml version="1.0" encoding="utf-8"?> <PropertyList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--Nodes--> <node id="FlashProgrammerNode"> <name>Flash Settings</name> <children> <child>ProgramLoadSettingsGroup</child> <child>EraseActionGroup</child> <child>FlashAlignCombineToggle</child> <child>FlashAlignmentSize</child> <child>DeviceInfoGroup</child> <child>DeviceMacAddressGroup</child> </children> </node> <!--Groups --> <group id="ProgramLoadSettingsGroup"> <name>Program Load Settings</name> <children> <child>FlashEraseSetting</child> <child>KeepCcfgSetting</child> </children> </group> <group id="EraseActionGroup"> <name>Erase Actions</name> <children> <child>ChipEraseButton</child> </children> </group> <group id="DeviceInfoGroup"> <name>Device Information</name> <children> <child>DeviceInfoFlashSize</child> <child>DeviceInfoRAMSize</child> <child>DeviceInfoRevision</child> <child>DeviceInfoRevisionTranslation</child> <child>DeviceFlashloaderFile</child> </children> </group> <group id="DeviceMacAddressGroup"> <name>Device MAC Addresses</name> <children> <child>DeviceBlePrimaryGroup</child> <child>DeviceBleSecondaryGroup</child> <child>DeviceIeeePrimaryGroup</child> <child>DeviceIeeeSecondaryGroup</child> </children> </group> <group id="DeviceBlePrimaryGroup"> <name>Primary BLE Address</name> <children> <child>DeviceBlePrimary</child> <child>DeviceBlePrimaryLoc</child> <child>DeviceBlePrimaryReadButton</child> </children> </group> <group id="DeviceBleSecondaryGroup"> <name>Secondary BLE Address</name> <children> <child>DeviceBleSecondary</child> <child>DeviceBleSecondaryLoc</child> <child>DeviceBleSecondaryReadButton</child> <child>DeviceBleSecondaryWriteButton</child> </children> </group> <group id="DeviceIeeePrimaryGroup"> <name>Primary IEEE Address</name> <children> <child>DeviceIeeePrimary</child> <child>DeviceIeeePrimaryLoc</child> <child>DeviceIeeePrimaryReadButton</child> </children> </group> <group id="DeviceIeeeSecondaryGroup"> <name>Secondary IEEE Address</name> <children> <child>DeviceIeeeSecondary</child> <child>DeviceIeeeSecondaryLoc</child> <child>DeviceIeeeSecondaryReadButton</child> <child>DeviceIeeeSecondaryWriteButton</child> </children> </group> <!--Categories --> <categories> <category>Erase</category> <category>Download</category> <category>Primary BLE Address</category> <category>Secondary BLE Address</category> <category>Primary IEEE Address</category> <category>Secondary IEEE Address</category> <category read="true">Device Info</category> </categories> <!--Property Definitions --> <property id="DeviceBlePrimary"> <target>generic</target> <name>Primary BLE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Primary BLE Address</category> </categories> </property> <property id="DeviceBlePrimaryLoc"> <target>generic</target> <name>BLE Factory Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>500012E8:6</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceBlePrimaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadPriBle")</action> <categories> <category>Primary BLE Address</category> </categories> </property> <property id="DeviceBleSecondary"> <target>generic</target> <name>Secondary BLE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceBleSecondaryLoc"> <target>generic</target> <name>Secondary BLE Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>1FFD0:6</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceBleSecondaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadSecBle")</action> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceBleSecondaryWriteButton"> <target>generic</target> <name>Write</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("WriteSecBle")</action> <categories> <category>Secondary BLE Address</category> </categories> </property> <property id="DeviceIeeePrimary"> <target>generic</target> <name>Primary IEEE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Primary IEEE Address</category> </categories> </property> <property id="DeviceIeeePrimaryLoc"> <target>generic</target> <name>IEEE Factory Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>500012F0:8</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceIeeePrimaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadPriIeee")</action> <categories> <category>Primary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondary"> <target>generic</target> <name>Secondary IEEE Address</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondaryLoc"> <target>generic</target> <name>Secondary IEEE Address Location</name> <valueType>String</valueType> <!-- <address in hex>:<length in_bytes> --> <defaultValue>1FFC8:8</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceIeeeSecondaryReadButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Read</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("ReadSecIeee")</action> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="DeviceIeeeSecondaryWriteButton"> <target>generic</target> <name>Write</name> <valueType>Button</valueType> <action>DPActiveDebugSession.flash.performOperation("WriteSecIeee")</action> <categories> <category>Secondary IEEE Address</category> </categories> </property> <property id="FlashEraseSetting"> <target>generic</target> <name>Erase Settings</name> <valueType>ChoiceList</valueType> <values> <value>All Unprotected Sectors</value> <value>Necessary Sectors Only</value> <value>Necessary Sectors Only (Retain untouched content within sector)</value> <value>Program Load Only (do not erase sectors)</value> </values> <defaultValue>Necessary Sectors Only (Retain untouched content within sector)</defaultValue> <categories> <category>Erase</category> </categories> </property> <property id="KeepCcfgSetting"> <target>generic</target> <name>Keep CCFG data. The upper N bytes of device CCFG are kept. N is given by CCFG.CCFG_O_SIZE_AND_DIS_FLAGS[31:16] in CCFG. If value is invalid, this option is ignored.</name> <valueType>Boolean</valueType> <defaultValue>0</defaultValue> <categories> <category>Download</category> </categories> </property> <property id="ChipEraseButton"> <target>generic</target> <!-- ISA name for Cortex-M3/4 --> <name>Erase Entire Flash</name> <valueType>Button</valueType> <disableIf> <property id="KeepCcfgSetting">1</property> </disableIf> <action>DPActiveDebugSession.expression.evaluate("MassErase()")</action> <categories> <category>Erase</category> </categories> </property> <property id="FlashAlignCombineToggle"> <target>generic</target> <name>Align program segments to 64-bit memory regions (for ECC calculation)</name> <valueType>Boolean</valueType> <defaultValue>0</defaultValue> <hidden /> </property> <property id="FlashAlignmentSize"> <!-- When set, this option combines all sections that is within the given range, resulting in bigger programming chunks and improved speed. Holes are programmed with FF data --> <target>generic</target> <name>Alignment Size: 0x</name> <valueType>String</valueType> <defaultValue>400</defaultValue> <!-- HEX value --> <hidden /> </property> <property id="DeviceInfoFlashSize"> <target>generic</target> <name>Flash Size</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRAMSize"> <target>generic</target> <name>RAM Size</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRevision"> <target>generic</target> <name>Revision</name> <valueType>String</valueType> <defaultValue>--</defaultValue> <readOnly>1</readOnly> <categories> <category>Device Info</category> </categories> </property> <property id="DeviceInfoRevisionTranslation"> <target>generic</target> <name>Revision Translation</name> <valueType>String</valueType> <defaultValue>0:1.0:15:1.0:2:2.0:3:2.1</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <property id="DeviceFlashloaderFile"> <target>generic</target> <name>Flashloader File</name> <valueType>String</valueType> <defaultValue>FlashLoaderCC26x0.out</defaultValue> <readOnly>1</readOnly> <hidden /> </property> <!-- fin --> </PropertyList>