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.

CCS/F28M35H52C: Uniflash CLI usage help. GUI works, but CLI doesn't.

Part Number: F28M35H52C
Other Parts Discussed in Thread: UNIFLASH

Tool/software: Code Composer Studio

Hi,

I'm trying to automate some programming of my Concerto based device. I am able to successfully program the device consistently using the Uniflash GUI but I can't figure out what I'm doing wrong with the command line tool.

My Uniflash version is 3.4 (4.0 won't work for serial programming Concerto devices) and I am running it on Ubuntu 16.04.

I created a .ccxml and .uniflashsession file (both are attached) through the GUI and am using them in my command line call as below:

/opt/ti/uniflash_3.4/uniflash.sh -log flash.log -verbose 1 -ccxml refbeacon.ccxml -core "C28xx_0" -loadSettings refbeacon.uniflashsession -program /home/mcmdev/software/3.0/channel_programmer/refbeacon3_channelboard_c28xx.out

What I get is the following. I'm not sure why it keeps saying file not found. If I pick the same file from the GUI, it works just fine.

***** Texas Instruments Universal Flash Programmer *****

<START: 19:13:21 GMT-0400 (EDT)>

> Flash Manager is configured for the following part: F28M35H52C1

> Loading settings from the given session file ...

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<PropertyValues>

<property id="VerifyAfterProgramLoad">
<curValue>Full verification</curValue>
</property>

<property id="AutoRunToLabelOnRestart">
<curValue>0</curValue>
</property>

<property id="FlashSerialCOMPort">
<curValue>/dev/ttyUSB1</curValue>
</property>

</PropertyValues>

> Settings loaded.

> Connecting to the target for Flash operations ...

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

> Connected.

> Loading Program: /home/mcmdev/software/3.0/channel_programmer/refbeacon3_channelboard_c28xx.out
C28xx_0: Writing Flash @ Address 0x00100000 of Length 0x00003b7b (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x0010572a of Length 0x00000941 (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x001060a4 of Length 0x0000000a (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x00103b7c of Length 0x00001bae (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x00106086 of Length 0x0000001c (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x0010606c of Length 0x0000001a (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

C28xx_0: Writing Flash @ Address 0x0013fff0 of Length 0x00000002 (page 0)

SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

> Finish Loading.

> Disconnecting from target.

<END: 19:13:23 GMT-0400 (EDT)>

<Operation Time: 0.243s>
<Total Time: 2.694s>

I've tried the same command with the uniflashCLI.sh but that just gives me:

***** Texas Instruments Universal Flash Programmer *****

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.substring(Unknown Source)
at com.ti.uniflash.commandline.CommandLine.parseArgs(Unknown Source)
at com.ti.uniflash.commandline.CommandLine.main(Unknown Source)

Please advise.

Thanks,

Aditya

uniflash-ccxml-and-log.zip

  • Aditya,

    I am not an expert on Uniflash but it seems like the issue is just with finding the file.

    Please try putting the .out in the same folder as the Uniflash tool which would remove the need to specify the path. Just put the file in the same folder as the Uniflash command line script and do not use a path with folder names.

    sal
  • Sal,

    Thanks for the reply. But having the files in the same directory as the uniflash tool makes no difference. Same errors. Somehow, the uniflash command line tool is failing at loading the file when the GUI is doing fine.

    - Aditya

  • Aditya,

    Can you try generating the Debug Server logs? You can enable the logs by going to 'Help -> Logging -> Start Logging'.

    I'm not sure where the "open: No such file or directory" error message is coming from, but I wonder if it is having problems with finding the kernel files.

    Thanks,
    Ricky
  • Ricky,

    The GUI works. Is there a way to start debug server logs through the command line? The command line is what's failing for me.

    Thanks,
    Aditya
  • Aditya,

    Oh right. Can you set the following environment variables in the command prompt before running your UniFlash command?

    set TI_DS_ENABLE_LOGGING=1
    set TI_DS_LOGGING_OUTPUT=c:/path/file.log

    Thanks,
    Ricky
  • I've attached the log. It looks like it's trying to program over "COM1" for whatever reason. I'm loading settings using -loadSettings but it's not taking the correct serial port from the .uniflashsession file (/dev/ttyUSB2). 

    My session file is here: 

    file.log

  • On the COM port issue, can you try setting the COM port property manually via '-setOptions FlashSerialCOMPort=COM2' (or whatever your port is, I couldn't open your session file) instead of using -loadSettings? I'm wondering if there is an issue with load setting, or if there is an issue with writing to properties in general.

    Thanks.
  • Doesn't seem like I have that option on either core. Here is the output for the C28x core. The M3 core gives a similar listing for viewOptions.

    /opt/ti/uniflash_3.4/uniflash.sh -verbose 1 -ccxml refbeacon.ccxml -core "C28xx_0" -viewOptions

    ***** Texas Instruments Universal Flash Programmer *****

    <START: 13:43:32 GMT-0400 (EDT)>

    > Flash Manager is configured for the following part: F28M35H52C1

    > Displaying the available Flash options to configure:
    Numeric Option:
    id: FlashOSCCLK
    name: OSCCLK (MHz)
    value: 20
    range: 2 - 100
    Numeric Option:
    id: FlashSPLLIMULT
    name: System PLLCR Integer Multiplier (SPLLIMULT)
    value: 12
    range: 0 - 127
    Drop-down Menu Option:
    id: FlashSYSDIVSEL
    name: System Clock Divide Select (SYSDIVSEL)
    value: 1 [/2]
    choices:
    0 [/1]
    1 [/2]
    2 [/4]
    3 [/8]
    Boolean Option:
    id: FlashBackupClock
    name: Backup/Restore clock register settings during Flash operations
    value: true
    Radio Button Option:
    id: FlashDownloadSetting
    name:
    value: Erase and Program
    choices:
    Erase and Program
    Program Only
    Load RAM Only
    Verify Only
    Boolean Option:
    id: FlashBlankCheckToggle
    name: Perform Blank Check before loading data to Flash memory
    value: false
    Boolean Option:
    id: FlashVerifySetting
    name: Verify Flash after Program
    value: true
    Boolean Option:
    id: FlashAutoECCSetting
    name: Auto ECC Generation
    value: true
    Radio Button Option:
    id: FlashEraseSelection
    name:
    value: Entire Flash
    choices:
    Entire Flash
    Necessary Sectors Only (for Program Load)
    Selected Sectors Only
    Boolean Option:
    id: FlashC28Bank0Sector13
    name: Sector A (0x13E000 - 0x13FFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector12
    name: Sector B (0x13C000 - 0x13DFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector11
    name: Sector C (0x13A000 - 0x13BFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector10
    name: Sector D (0x138000 - 0x139FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector9
    name: Sector E (0x130000 - 0x137FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector8
    name: Sector F (0x128000 - 0x12FFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector7
    name: Sector G (0x120000 - 0x127FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector6
    name: Sector H (0x118000 - 0x11FFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector5
    name: Sector I (0x110000 - 0x117FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector4
    name: Sector J (0x108000 - 0x10FFFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector3
    name: Sector K (0x106000 - 0x107FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector2
    name: Sector L (0x104000 - 0x105FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector1
    name: Sector M (0x102000 - 0x103FFF)
    value: true
    Boolean Option:
    id: FlashC28Bank0Sector0
    name: Sector N (0x100000 - 0x101FFF)
    value: true
    String Option:
    id: FlashC28Z1CSMKEY0
    name: C28X-Z1-CSMPSWD0/KEY0 (32 bits)(0x13FFF8) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1CSMKEY1
    name: C28X-Z1-CSMPSWD1/KEY1 (32 bits)(0x13FFFA) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1CSMKEY2
    name: C28X-Z1-CSMPSWD2/KEY2 (32 bits)(0x13FFFC) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1CSMKEY3
    name: C28X-Z1-CSMPSWD3/KEY3 (32 bits)(0x13FFFE) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1ECSLKEY0
    name: C28X-Z1-ECSLPSWD0 (32 bits)(0x13FFF4) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1ECSLKEY1
    name: C28X-Z1-ECSLPSWD1 (32 bits)(0x13FFF6) : 0x
    value: FFFFFFFF
    String Option:
    id: FlashC28Z1EXEONLY
    name: C28X-Z1-EXEONLY (16 bits)(0x13FFF2) : 0x
    value: FFFF
    Boolean Option:
    id: FlashVerboseMode
    name: Enable Verbose Output
    value: true
    <END: 13:43:35 GMT-0400 (EDT)>

  • Even though it doesn't list the option, you still should be able to set the setting using the -setOptions option. Can you try that?

    Also, can you attach you session file again, but directly to E2E instead of hastebin? I can seem to access hastebin.

    Thanks,
    Ricky
  • I've tried using the option anyway but it explicitly says that option is not available:

    /opt/ti/uniflash_3.4/uniflash.sh -verbose 1 -ccxml refbeacon.ccxml -core "C28xx_0" -setOptions FlashSerialCOMPort=/dev/ttyUSB2 -program refbeacon3_channelboard_c28xx.out

    ***** Texas Instruments Universal Flash Programmer *****

    <START: 19:26:19 GMT-0400 (EDT)>

    > Flash Manager is configured for the following part: F28M35H52C1

    > Setting up the user Flash Options ...

    > [Warning]: Property FlashSerialCOMPort was not found.

    > Connecting to the target for Flash operations ...

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    > Connected.

    > Loading Program: refbeacon3_channelboard_c28xx.out
    C28xx_0: Writing Flash @ Address 0x00100000 of Length 0x00003b6e (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x0010571c of Length 0x00000945 (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x00106098 of Length 0x0000000a (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x00103b6e of Length 0x00001bae (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x0010607c of Length 0x0000001c (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x00106062 of Length 0x0000001a (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    C28xx_0: Writing Flash @ Address 0x0013fff0 of Length 0x00000002 (page 0)

    SEVERE: C28xx_0: Error occurred during flash operation: open: No such file or directory

    > Finish Loading.

    > Disconnecting from target.

    <END: 19:26:22 GMT-0400 (EDT)>

    <Operation Time: 1.004s>
    <Total Time: 3.57s>

    I've attached the session below.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><PartNumber id=""><Core name="Cortex_M3_0"><DebugProperties>&lt;?xml version="1.0" encoding="UTF-8" standalone="no" ?&gt;
    &lt;PropertyValues&gt;
    
      &lt;property id="VerifyAfterProgramLoad"&gt;
        &lt;curValue&gt;Full verification&lt;/curValue&gt;
      &lt;/property&gt;
    
      &lt;property id="AutoRunToLabelOnRestart"&gt;
        &lt;curValue&gt;0&lt;/curValue&gt;
      &lt;/property&gt;
    
      &lt;property id="FlashSerialCOMPort"&gt;
        &lt;curValue&gt;/dev/ttyUSB2&lt;/curValue&gt;
      &lt;/property&gt;
    
    &lt;/PropertyValues&gt;
    </DebugProperties><FilePaths><File Check="Checked">/home/mcmdev/software/3.0/channel_programmer/refbeacon3_channelboard_arm.out</File></FilePaths></Core><Core name="C28xx_0"><DebugProperties>&lt;?xml version="1.0" encoding="UTF-8" standalone="no" ?&gt;
    &lt;PropertyValues&gt;
    
      &lt;property id="VerifyAfterProgramLoad"&gt;
        &lt;curValue&gt;Full verification&lt;/curValue&gt;
      &lt;/property&gt;
    
      &lt;property id="AutoRunToLabelOnRestart"&gt;
        &lt;curValue&gt;0&lt;/curValue&gt;
      &lt;/property&gt;
    
      &lt;property id="FlashSerialCOMPort"&gt;
        &lt;curValue&gt;/dev/ttyUSB2&lt;/curValue&gt;
      &lt;/property&gt;
    
    &lt;/PropertyValues&gt;
    </DebugProperties><FilePaths><File Check="Checked">/home/mcmdev/software/3.0/channel_programmer/refbeacon3_channelboard_c28xx.out</File></FilePaths></Core></PartNumber>

  • That's weird. It seems that the option is available on Windows but not on Linux.

    As a workaround, can you download the attached F28M35H52C1_FlashProperties.xml and copy to your UniFlash install directory here (\ccs_base\DebugServer\propertyDB\). This manually adds the necessary options to the F28M35H52C1 device.

    <?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>FlashSettingsGroup</child>
    			<child>FlashDownloadSettingGroup</child>
    			<child>FlashEraseGroup</child>
    			<child>FlashBlankCheckGroup</child>
    			<child>FlashChecksumGroup</child>
    			<child>FlashC28SecurityGroup</child>
    			<child>FlashM3Z1SecurityGroup</child>
    			<child>FlashM3Z2SecurityGroup</child>
    			<child>FlashM3OTPGroup</child>
    			<child>FlashSerialCOMPort</child>
    			<child>FlashSerialBaudRate</child>
    		</children>
    	</node>
    
    	<!-- Groups -->
    	<group id="FlashSettingsGroup">
    		<name>Device Settings</name>
    		<children>
    			<child>FlashOSCCLK</child>
    			<child>FlashSPLLIMULT</child>
    			<child>FlashSYSDIVSEL</child>
    			<child>FlashM3SSDIVSEL</child>
    			<child>FlashBackupClock</child>
    		</children>
    	</group>
    	
    	<group id="FlashDownloadSettingGroup">
    		<name>Download Settings</name>
    		<children>
    			<child>FlashDownloadSetting</child>
    			<child>FlashBlankCheckToggle</child>
    			<child>FlashVerifySetting</child>
    			<child>FlashAutoECCSetting</child>
    		</children>
    	</group>
    	
    	<group id="FlashEraseGroup">
    		<name>Erase Settings</name>
    		<children>
    			<child>FlashEraseSelection</child>
    			<child>FlashC28Bank0Sector13</child>
    			<child>FlashC28Bank0Sector12</child>
    			<child>FlashC28Bank0Sector11</child>
    			<child>FlashC28Bank0Sector10</child>
    			<child>FlashC28Bank0Sector9</child>
    			<child>FlashC28Bank0Sector8</child>
    			<child>FlashC28Bank0Sector7</child>
    			<child>FlashC28Bank0Sector6</child>
    			<child>FlashC28Bank0Sector5</child>
    			<child>FlashC28Bank0Sector4</child>
    			<child>FlashC28Bank0Sector3</child>
    			<child>FlashC28Bank0Sector2</child>
    			<child>FlashC28Bank0Sector1</child>
    			<child>FlashC28Bank0Sector0</child>
    			<child>FlashM3Bank0Sector13</child>
    			<child>FlashM3Bank0Sector12</child>
    			<child>FlashM3Bank0Sector11</child>
    			<child>FlashM3Bank0Sector10</child>
    			<child>FlashM3Bank0Sector9</child>
    			<child>FlashM3Bank0Sector8</child>
    			<child>FlashM3Bank0Sector7</child>
    			<child>FlashM3Bank0Sector6</child>
    			<child>FlashM3Bank0Sector5</child>
    			<child>FlashM3Bank0Sector4</child>
    			<child>FlashM3Bank0Sector3</child>
    			<child>FlashM3Bank0Sector2</child>
    			<child>FlashM3Bank0Sector1</child>
    			<child>FlashM3Bank0Sector0</child>
    			<child>FlashEraseButton</child>
    		</children>
    	</group>
    			
    	<group id="FlashChecksumGroup">
    		<name>Checksum</name>
    		<children>
    			<child>FlashChecksum</child>
    			<child>FlashOTPChecksum</child>
    			<child>FlashCalChecksumButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashC28SecurityGroup">
    		<name>Security Settings</name>
    		<children>
    			<child>FlashC28PasswordGroup1</child>
    			<child>FlashC28PasswordGroup2</child>
    			<child>FlashC28PasswordGroup3</child>
    			<child>FlashC28PasswordProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashC28PasswordGroup1">
    		<name>CSM PSWDs/KEYs</name>
    		<children>
    			<child>FlashC28Z1CSMKEY0</child>
    			<child>FlashC28Z1CSMKEY1</child>
    			<child>FlashC28Z1CSMKEY2</child>
    			<child>FlashC28Z1CSMKEY3</child>
    			<child>FlashC28Z1CSMKEYProgramButton</child>
    			<child>FlashC28PasswordLockButton</child>
    			<child>FlashC28PasswordUnlockButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashC28PasswordGroup2">
    		<name>ECSLs</name>
    		<children>
    			<child>FlashC28Z1ECSLKEY0</child>
    			<child>FlashC28Z1ECSLKEY1</child>
    			<child>FlashC28Z1ECSLKEYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashC28PasswordGroup3">
    		<name>EXEONLY</name>
    		<children>
    			<child>FlashC28Z1EXEONLY</child>
    			<child>FlashC28Z1EXEONLYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z1SecurityGroup">
    		<name>Security Settings - Zone 1</name>
    		<children>
    			<child>FlashM3Z1PasswordGroup1</child>
    			<child>FlashM3Z1PasswordGroup2</child>
    			<child>FlashM3Z1PasswordGroup3</child>
    			<child>FlashM3Z1PasswordGroup4</child>
    			<child>FlashM3Z1PasswordProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z2SecurityGroup">
    		<name>Security Settings - Zone 2</name>
    		<children>
    			<child>FlashM3Z2PasswordGroup1</child>
    			<child>FlashM3Z2PasswordGroup2</child>
    			<child>FlashM3Z2PasswordGroup3</child>
    			<child>FlashM3Z2PasswordGroup4</child>
    			<child>FlashM3Z2PasswordProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z1PasswordGroup1">
    		<name>CSM PSWDs/KEYs</name>
    		<children>
    			<child>FlashM3Z1CSMKEY0</child>
    			<child>FlashM3Z1CSMKEY1</child>
    			<child>FlashM3Z1CSMKEY2</child>
    			<child>FlashM3Z1CSMKEY3</child>
    			<child>FlashM3Z1CSMKEYProgramButton</child>
    			<child>FlashM3Z1PasswordLockButton</child>
    			<child>FlashM3Z1PasswordUnlockButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z1PasswordGroup2">
    		<name>ECSLs</name>
    		<children>
    			<child>FlashM3Z1ECSLKEY0</child>
    			<child>FlashM3Z1ECSLKEY1</child>
    			<child>FlashM3Z1ECSLKEYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z1PasswordGroup3">
    		<name>GRABSECT/GRABRAM</name>
    		<children>
    			<child>FlashM3Z1GRABSECT</child>
    			<child>FlashM3Z1GRABRAM</child>
    			<child>FlashM3Z1GRABProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z1PasswordGroup4">
    		<name>EXEONLY</name>
    		<children>
    			<child>FlashM3Z1EXEONLY</child>
    			<child>FlashM3Z1EXEONLYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z2PasswordGroup1">
    		<name>PSWDs/KEYs</name>
    		<children>
    			<child>FlashM3Z2CSMKEY0</child>
    			<child>FlashM3Z2CSMKEY1</child>
    			<child>FlashM3Z2CSMKEY2</child>
    			<child>FlashM3Z2CSMKEY3</child>
    			<child>FlashM3Z2CSMKEYProgramButton</child>
    			<child>FlashM3Z2PasswordLockButton</child>
    			<child>FlashM3Z2PasswordUnlockButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z2PasswordGroup2">
    		<name>ECSLs</name>
    		<children>
    			<child>FlashM3Z2ECSLKEY0</child>
    			<child>FlashM3Z2ECSLKEY1</child>
    			<child>FlashM3Z2ECSLKEYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3Z2PasswordGroup3">
    		<name>GRABSECT/GRABRAM</name>
    		<children>
    			<child>FlashM3Z2GRABSECT</child>
    			<child>FlashM3Z2GRABRAM</child>
    			<child>FlashM3Z2GRABProgramButton</child>
    		</children>
    	</group>
    
    	<group id="FlashM3Z2PasswordGroup4">
    		<name>EXEONLY</name>
    		<children>
    			<child>FlashM3Z2EXEONLY</child>
    			<child>FlashM3Z2EXEONLYProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashM3OTPGroup">
    		<name>OTP Programming</name>
    		<children>
    			<child>FlashM3OTPText</child>
    			<child>FlashM3OTPSECLOCK</child>
    			<child>FlashM3Z2FlashStartAddr</child>
    			<child>FlashM3EMACID1</child>
    			<child>FlashM3EMACID2</child>
    			<child>FlashM3OTPProgramButton</child>
    		</children>
    	</group>
    	
    	<group id="FlashBlankCheckGroup">
    		<name>Blank Check Settings</name>
    		<children>
    			<child>FlashBlankCheckButton</child>
    		</children>
    	</group>
    	
    	<!-- Properties -->
    	<property id="FlashBackupClock">
    		<target>generic</target>
    		<name>Backup/Restore clock register settings during Flash operations</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    	</property>
    	
    	<property id="FlashOSCCLK">
    		<target>generic</target>
    		<name>OSCCLK (MHz)</name>
    		<valueType>Numeric</valueType>
    		<defaultValue>20</defaultValue>
    		<lower>2</lower>
    		<upper>100</upper>
    	</property>
    	
    	<property id="FlashSPLLIMULT">
    		<target>generic</target>
    		<name>System PLLCR Integer Multiplier (SPLLIMULT)</name>
    		<valueType>Numeric</valueType>
    		<defaultValue>12</defaultValue>
    		<lower>0</lower>
    		<upper>127</upper>
    	</property>
    	
    	<property id="FlashSYSDIVSEL">
    		<target>generic</target>
    		<name>System Clock Divide Select (SYSDIVSEL)</name>
    		<valueType>StringList</valueType>
    		<values>
    			<value>0 [/1]</value>
    			<value>1 [/2]</value>
    			<value>2 [/4]</value>
    			<value>3 [/8]</value>
    		</values>
    		<defaultValue>1 [/2]</defaultValue>
    	</property>
    	
    	<property id="FlashM3SSDIVSEL">
    		<target>TMS470REX</target>
    		<name>M3 Sub-System Clock Divide Select (M3SSDIVSEL)</name>
    		<valueType>StringList</valueType>
    		<values>
    			<value>0 [/1]</value>
    			<value>1 [/2]</value>
    			<value>2 [/4]</value>
    		</values>
    		<defaultValue>0 [/1]</defaultValue>
    	</property>
    	
    	<property id="FlashAutoECCSetting">
    		<target>generic</target>
    		<name>Auto ECC Generation</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    	</property>
    	
    	<property id="FlashDownloadSetting">
    		<target>generic</target>
    		<name></name>
    		<valueType>ChoiceList</valueType>
    		<values>
    			<value>Erase and Program</value>
    			<value>Program Only</value>
    			<value>Load RAM Only</value>
    			<value>Verify Only</value>
    		</values>
    		<defaultValue>Erase and Program</defaultValue>
    	</property>
    	
    	<property id="FlashBlankCheckToggle">
    		<target>generic</target>
    		<name>Perform Blank Check before loading data to Flash memory</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>0</defaultValue>
    	</property>
    	
    	<property id="FlashVerifySetting">
    		<target>generic</target>
    		<name>Verify Flash after Program</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    	</property>
    	
    	<property id="FlashEraseSelection">
    		<target>generic</target>
    		<name></name>
    		<valueType>ChoiceList</valueType>
    		<values>
    			<value>Entire Flash</value>
    			<value>Necessary Sectors Only (for Program Load)</value>
    			<value>Selected Sectors Only</value>
    		</values>
    		<defaultValue>Entire Flash</defaultValue>
    	</property>
    	
    	<property id="FlashC28Bank0Sector13">
    		<target>TMS320C28XX</target>
    		<name>Sector A (0x13E000 - 0x13FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector12">
    		<target>TMS320C28XX</target>
    		<name>Sector B (0x13C000 - 0x13DFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector11">
    		<target>TMS320C28XX</target>
    		<name>Sector C (0x13A000 - 0x13BFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector10">
    		<target>TMS320C28XX</target>
    		<name>Sector D (0x138000 - 0x139FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector9">
    		<target>TMS320C28XX</target>
    		<name>Sector E (0x130000 - 0x137FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector8">
    		<target>TMS320C28XX</target>
    		<name>Sector F (0x128000 - 0x12FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector7">
    		<target>TMS320C28XX</target>
    		<name>Sector G (0x120000 - 0x127FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector6">
    		<target>TMS320C28XX</target>
    		<name>Sector H (0x118000 - 0x11FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector5">
    		<target>TMS320C28XX</target>
    		<name>Sector I (0x110000 - 0x117FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector4">
    		<target>TMS320C28XX</target>
    		<name>Sector J (0x108000 - 0x10FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector3">
    		<target>TMS320C28XX</target>
    		<name>Sector K (0x106000 - 0x107FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector2">
    		<target>TMS320C28XX</target>
    		<name>Sector L (0x104000 - 0x105FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector1">
    		<target>TMS320C28XX</target>
    		<name>Sector M (0x102000 - 0x103FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashC28Bank0Sector0">
    		<target>TMS320C28XX</target>
    		<name>Sector N (0x100000 - 0x101FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashEraseButton">
    		<target>generic</target>
    		<name>Erase Flash</name>
    		<valueType>Button</valueType>
    		<disableIf>
    			<property id="FlashEraseSelection">Necessary Sectors Only (for Program Load)</property>
    		</disableIf>
    		<action>DPActiveDebugSession.flash.performOperation("Erase")</action>
    	</property>
    	
    	<!--
    	<property id="FlashChecksum">
    		<target>generic</target>
    		<name>Flash Checksum:</name>
    		<valueType>String</valueType>
    		<defaultValue></defaultValue>
    		<readOnly>1</readOnly>
    	</property>
    	
    	<property id="FlashOTPChecksum">
    		<target>generic</target>
    		<name>OTP Checksum:</name>
    		<valueType>String</valueType>
    		<defaultValue></defaultValue>
    		<readOnly>1</readOnly>
    	</property>
    	
    	<property id="FlashCalChecksumButton">
    		<target>generic</target>
    		<name>Calculate Checksum</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("CalculateChecksum")</action>
    	</property>
    	-->
    	
    	<property id="FlashC28Z1CSMKEY0">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-CSMPSWD0/KEY0 (32 bits)(0x13FFF8) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1CSMKEY1">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-CSMPSWD1/KEY1 (32 bits)(0x13FFFA) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1CSMKEY2">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-CSMPSWD2/KEY2 (32 bits)(0x13FFFC) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1CSMKEY3">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-CSMPSWD3/KEY3 (32 bits)(0x13FFFE) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1CSMKEYProgramButton">
    		<target>TMS320C28XX</target>
    		<name>Program Password</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMProgram")</action>
    	</property>
    	
    	<property id="FlashC28PasswordLockButton">
    		<target>TMS320C28XX</target>
    		<name>Lock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMLock")</action>
    	</property>
    	
    	<property id="FlashC28PasswordUnlockButton">
    		<target>TMS320C28XX</target>
    		<name>Unlock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMUnlock")</action>
    	</property>
    	
    	<property id="FlashC28Z1ECSLKEY0">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-ECSLPSWD0 (32 bits)(0x13FFF4) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1ECSLKEY1">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-ECSLPSWD1 (32 bits)(0x13FFF6) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1ECSLKEYProgramButton">
    		<target>TMS320C28XX</target>
    		<name>Program ECSLs</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1ECSLProgram")</action>
    	</property>
    	
    	<property id="FlashC28Z1EXEONLY">
    		<target>TMS320C28XX</target>
    		<name>C28X-Z1-EXEONLY (16 bits)(0x13FFF2) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFF</defaultValue>
    	</property>
    	
    	<property id="FlashC28Z1EXEONLYProgramButton">
    		<target>TMS320C28XX</target>
    		<name>Program EXEONLY</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1EXEONLYProgram")</action>
    	</property>
    	
    	<property id="FlashC28PasswordProgramButton">
    		<target>TMS320C28XX</target>
    		<name>Program All Security Settings</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1ProgramAll")</action>
    	</property>
    	
    	<property id="FlashM3Bank0Sector13">
    		<target>TMS470REX</target>
    		<name>Sector A (0x27C000 - 0x27FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector12">
    		<target>TMS470REX</target>
    		<name>Sector B (0x278000 - 0x27BFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector11">
    		<target>TMS470REX</target>
    		<name>Sector C (0x274000 - 0x277FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector10">
    		<target>TMS470REX</target>
    		<name>Sector D (0x270000 - 0x273FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector9">
    		<target>TMS470REX</target>
    		<name>Sector E (0x260000 - 0x26FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector8">
    		<target>TMS470REX</target>
    		<name>Sector F (0x250000 - 0x25FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector7">
    		<target>TMS470REX</target>
    		<name>Sector G (0x240000 - 0x24FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector6">
    		<target>TMS470REX</target>
    		<name>Sector H (0x230000 - 0x23FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector5">
    		<target>TMS470REX</target>
    		<name>Sector I (0x220000 - 0x22FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector4">
    		<target>TMS470REX</target>
    		<name>Sector J (0x210000 - 0x21FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector3">
    		<target>TMS470REX</target>
    		<name>Sector K (0x20C000 - 0x20FFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector2">
    		<target>TMS470REX</target>
    		<name>Sector L (0x208000 - 0x20BFFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector1">
    		<target>TMS470REX</target>
    		<name>Sector M (0x204000 - 0x207FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Bank0Sector0">
    		<target>TMS470REX</target>
    		<name>Sector N (0x200000 - 0x203FFF)</name>
    		<valueType>Boolean</valueType>
    		<defaultValue>1</defaultValue>
    		<enableIf>
    			<property id="FlashEraseSelection">Selected Sectors Only</property>
    		</enableIf>
    	</property>
    	
    	<property id="FlashM3Z1CSMKEY0">
    		<target>TMS470REX</target>
    		<name>M3-Z1-CSMPSWD0/KEY0 (32 bits)(0x200000) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1CSMKEY1">
    		<target>TMS470REX</target>
    		<name>M3-Z1-CSMPSWD1/KEY1 (32 bits)(0x200004) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1CSMKEY2">
    		<target>TMS470REX</target>
    		<name>M3-Z1-CSMPSWD2/KEY2 (32 bits)(0x200008) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1CSMKEY3">
    		<target>TMS470REX</target>
    		<name>M3-Z1-CSMPSWD3/KEY3 (32 bits)(0x20000C) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1CSMKEYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program Password</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z1PasswordLockButton">
    		<target>TMS470REX</target>
    		<name>Lock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMLock")</action>
    	</property>
    	
    	<property id="FlashM3Z1PasswordUnlockButton">
    		<target>TMS470REX</target>
    		<name>Unlock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1CSMUnlock")</action>
    	</property>
    	
    	<property id="FlashM3Z1ECSLKEY0">
    		<target>TMS470REX</target>
    		<name>M3-Z1-ECSLPSWD0 (32 bits)(0x200010) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1ECSLKEY1">
    		<target>TMS470REX</target>
    		<name>M3-Z1-ECSLPSWD1 (32 bits)(0x200014) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1ECSLKEYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program ECSLs</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1ECSLProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z1GRABSECT">
    		<target>TMS470REX</target>
    		<name>M3-Z1-GRABSECT (32 bits)(0x200018) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1GRABRAM">
    		<target>TMS470REX</target>
    		<name>M3-Z1-GRABRAM (32 bits)(0x20001C) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1GRABProgramButton">
    		<target>TMS470REX</target>
    		<name>Program GRABSECT/GRABRAM</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1GRABProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z1EXEONLY">
    		<target>TMS470REX</target>
    		<name>M3-Z1-EXEONLY (32 bits)(0x200020) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z1EXEONLYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program EXEONLY</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1EXEONLYProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z1PasswordProgramButton">
    		<target>TMS470REX</target>
    		<name>Program All Zone 1 Settings</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z1ProgramAll")</action>
    	</property>
    	
    	<property id="FlashM3Z2CSMKEY0">
    		<target>TMS470REX</target>
    		<name>M3-Z2-CSMPSWD0/KEY0 (32 bits)(0x27FFF0) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2CSMKEY1">
    		<target>TMS470REX</target>
    		<name>M3-Z2-CSMPSWD1/KEY1 (32 bits)(0x27FFF4) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2CSMKEY2">
    		<target>TMS470REX</target>
    		<name>M3-Z2-CSMPSWD2/KEY2 (32 bits)(0x27FFF8) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2CSMKEY3">
    		<target>TMS470REX</target>
    		<name>M3-Z2-CSMPSWD3/KEY3 (32 bits)(0x27FFFC) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2CSMKEYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program Password</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2CSMProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z2PasswordLockButton">
    		<target>TMS470REX</target>
    		<name>Lock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2CSMLock")</action>
    	</property>
    	
    	<property id="FlashM3Z2PasswordUnlockButton">
    		<target>TMS470REX</target>
    		<name>Unlock</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2CSMUnlock")</action>
    	</property>
    	
    	<property id="FlashM3Z2ECSLKEY0">
    		<target>TMS470REX</target>
    		<name>M3-Z2-ECSLPSWD0 (32 bits)(0x27FFE8) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2ECSLKEY1">
    		<target>TMS470REX</target>
    		<name>M3-Z2-ECSLPSWD1 (32 bits)(0x27FFEC) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2ECSLKEYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program ECSLs</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2ECSLProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z2GRABSECT">
    		<target>TMS470REX</target>
    		<name>M3-Z2-GRABSECT (32 bits)(0x27FFE4) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2GRABRAM">
    		<target>TMS470REX</target>
    		<name>M3-Z2-GRABRAM (32 bits)(0x27FFE0) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2GRABProgramButton">
    		<target>TMS470REX</target>
    		<name>Program GRABSECT/GRABRAM</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2GRABProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z2EXEONLY">
    		<target>TMS470REX</target>
    		<name>M3-Z2-EXEONLY (32 bits)(0x27FFDC) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2EXEONLYProgramButton">
    		<target>TMS470REX</target>
    		<name>Program EXEONLY</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2EXEONLYProgram")</action>
    	</property>
    	
    	<property id="FlashM3Z2PasswordProgramButton">
    		<target>TMS470REX</target>
    		<name>Program All Zone 2 Settigns</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("Z2ProgramAll")</action>
    	</property>
    	
    	<property id="FlashM3OTPText">
    		<target>TMS470REX</target>
    		<name>Enter values for the fields you wish to program and leave any of the fields as default to skip.
    Warning: Programming the OTPSEC field can permanently disable the JTAG.</name>
    		<valueType>Text</valueType>
    	</property>
    	
    	<property id="FlashM3OTPSECLOCK">
    		<target>TMS470REX</target>
    		<name>OTPSECLOCK (32 bits)(0x680800) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3Z2FlashStartAddr">
    		<target>TMS470REX</target>
    		<name>Z2_FLASH_START_ADDR (32 bits)(0x68080C) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3EMACID1">
    		<target>TMS470REX</target>
    		<name>EMACID[31:0] (32 bits)(0x680810) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3EMACID2">
    		<target>TMS470REX</target>
    		<name>EMACID[63:32] (32 bits)(0x680814) : 0x</name>
    		<valueType>String</valueType>
    		<defaultValue>FFFFFFFF</defaultValue>
    	</property>
    	
    	<property id="FlashM3OTPProgramButton">
    		<target>TMS470REX</target>
    		<name>Program</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("OTPProgram")</action>
    	</property>
    	
    	<property id="FlashBlankCheckButton">
    		<target>generic</target>
    		<name>Blank Check</name>
    		<valueType>Button</valueType>
    		<action>DPActiveDebugSession.flash.performOperation("BlankCheck")</action>
    	</property>
    
    	<property id="FlashSerialCOMPort">
    		<target>generic</target>
    		<name>COM Port:  </name>
    		<valueType>String</valueType>
    		<defaultValue></defaultValue>
    	</property>
    	
    	<property id="FlashSerialBaudRate">
    		<target>generic</target>
    		<name>Baud Rate:</name>
    		<valueType>Numeric</valueType>
    		<defaultValue>115200</defaultValue>
    	</property>
    	
    	<!-- fin -->
    </PropertyList>
    

    Thanks,
    Ricky

  • Ricky,

    Thanks! That seems to have done the trick. Like the GUI, the baud rate doesn't get set properly on the serial port in linux, but that I can manage myself manually before running the command.

    For anyone else:

    I copied the file attached to my uniflash installation as Ricky suggested. My command then looked like:

    /opt/ti/uniflash_3.4/uniflash.sh -ccxml <ccxml file> -core "C28xx_0" -setOptions FlashSerialCOMPort=/dev/ttyUSB2 -program <.out file>

    - Aditya

  • Aditya,

    Thanks for the update. Glad to hear it is somewhat working for you now.

    I was wondering if you can try to set the baud rate again using the following command: -setOptions FlashSerialBaudRate=38400

    Thanks,
    Ricky