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.

Running UCD3138064 tutorials on CCS 6.0

Other Parts Discussed in Thread: UCD3138CC64EVM-030, UCD3138064, UCD3138

Hi all,

I am using a UCD3138CC64EVM-030 micro-controller to control the UCD3138PSFBEVM-027 Hard Switching Full Bridge Converter Evaluation Module. I am trying to follow the tutorials (http://e2e.ti.com/support/power_management/digital_power/f/184/t/292514) however they have been created for CCS 3.3. After converting it to be compatible with CCS 6.0, and modifying the build configurations so that there are no more errors and warnings after building, I have downloaded the firmware using the Device GUI. Following tutorial 1 completely, the code uploads. However, the device cannot be discovered under Program mode, nor is the code actually executing (A_string in memory does not show "Hello World" in hex, like the tutorial shows). 

Here's the steps I took to convert and build the code.

Converting and importing tutorial to CCS 6.0

1) Opened UCD3XXX / UCD9XXX Device GUI -> Utilities -> CCS Conversion 3.3 to 6 (Beta)

2) Browse for the tutorial and save the converted version to a new location (not in workspace)

3) Open CCS, set the workspace

4) Project -> Import CCS Projects -> Select search-directory, and searched for the converted version

5) Unchecked "Automatically import referenced projects found in the same search-directory" and checked "Copy projects into workspace" and clicked Finish

6) Added the Header Files and Linker Files to the project root 

Build options

1) Right click project -> properties, clicked Show advanced settings in lower left corner

2) CCS General:

Variant: UCD3138064, Compiler version: TI v5.2.2, Output format: ELF, Device endianess: bug, Linker command file: <none>, Runtime support library: <automatic>

Linker command file was set to <none> because ARM linker already contains the linker under File Search Path

3) CCS Build -> Steps

There are Post-build steps already configured, however it looks like it is only supported by TI v4.9.1. Because CCS 6.0 only comes with the TI v5.2.2 compiler, these configurations were added in the hex utility (see the 7th step onwards)  

("${CG_TOOL_HEX}.exe" -x "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.x0" -memwidth 8) & (perl ../../build_scripts/checkmem_CCS5.pl cyclone ../"${BuildArtifactFileBaseName}.map" ) & (perl ../../build_scripts/build_CCS5.pl "${BuildArtifactFileBaseName}")

4) CCS Build -> ARM Compiler -> Processor Options

"Designate code state, 16-bit (thumb) or 32-bit (--code_state)" is set to 32

5) C/C++ Build -> Build Variables

ORIGINAL_PROJECT_ROOT Value changed to the location in workspace (C:/Workspace/UCD3138_Lab_01)

6) Configurations saved, and then reopened, to allow TI 5.2.2 compiler to show hex utility

7) CCS Build -> ARM Hex Utility

checked "Enable ARM Hex Utility"

8) CCS Build -> ARM Hex Utility -> General Options

--memwidth = 8

-o = ${BuildArtifactFileBaseName}.x0   instead of   ${BuildArtifactFileBaseName}.hex

9) CCS Build -> ARM Hex Utility -> Output Format Options

Output format = --tektronix

The project now builds with 3 warnings.

Warning 1: removed by modifying the linker file C:\ti\ccsv6\ccs_base\arm\include\cyclone_64.cmd by adding ".data           : {} > RAM" at the end of SECTIONS

Warning 2: removed by adding #include "string.h" to main.c

Warning 3: according to the PDF on converting CCS v3 projects to CCS v5 (slua679a.pdf), this warning is okay.

Project cleaned and rebuilt with only warning 3. When the .x0 file is generated and programmed, Program mode cannot be detected, nor can the memory debugger read the correct values.

Anyone got any suggestions?

Thanks!