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!