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.

LAUNCHXL-F2800137: issues with .hex

Part Number: LAUNCHXL-F2800137
Other Parts Discussed in Thread: C2000WARE, UNIFLASH, SYSCONFIG

Champs,

I am trying to make use of the .hex files generated by the hex utility. I start with a stock c2000ware example (e.g. cputimer), load the project into CCS, enable hex utility in the properties and select Motorola S hex as an output (tried both m=1 and m-3) . Upon build the utility generates a warning as below:

warning: Data is being written to auto-generated file timer_ex1_cputimers.m01

I then try to load the resulting .hex into the LP using Uniflash (latest 8.2 version). and it fails with a checksum error. 

I do see the .m01 file being generated alongside .hex and the explanation here: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/761417/compiler-tms320f28377s-warning-data-is-being-written-to-auto-generated-file 

it isn't helpful though as there is no PAGE directive in the .cmd file or anything else that would explain the purpose of the .m01 file either in the c200ware UG or the Assembly Language tools document (spru513y)

Will greatly appreciate your clarification

Michael

  • Hello,

    enable hex utility in the properties and select Motorola S hex as an output (tried both m=1 and m-3) . Upon build the utility generates a warning as below:

    warning: Data is being written to auto-generated file timer_ex1_cputimers.m01

    Can you provide the full build output from the build console?

    Thanks

    ki

  • here you go:


    **** Clean-only build of configuration CPU1_LAUNCHXL_FLASH for project timer_ex1_cputimers ****

    "C:\\ti\\ccs1220\\ccs\\utils\\bin\\gmake" -k -j 12 clean -O

    DEL /F "syscfg\board.h" "syscfg\board.cmd.genlibs" "syscfg\pinmux.csv" "syscfg\c2000ware_libraries.cmd.genlibs" "syscfg\c2000ware_libraries.h" "syscfg\clocktree.h" "timer_ex1_cputimers.hex" "syscfg\board.c" "syscfg\board.opt" "syscfg\c2000ware_libraries.opt" "syscfg\c2000ware_libraries.c" "timer_ex1_cputimers.out"
    DEL /F "syscfg\board.obj" "syscfg\c2000ware_libraries.obj" "timer_ex1_cputimers.obj" "device\device.obj" "device\f280013x_codestartbranch.obj"
    DEL /F "syscfg\board.d" "syscfg\c2000ware_libraries.d" "timer_ex1_cputimers.d" "device\device.d"
    DEL /F "device\f280013x_codestartbranch.d"
    RMDIR /S/Q "syscfg\"
    Could Not Find C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\device\f280013x_codestartbranch.d
    Finished clean

    **** Build Finished ****

    **** Build of configuration CPU1_LAUNCHXL_FLASH for project timer_ex1_cputimers ****

    "C:\\ti\\ccs1220\\ccs\\utils\\bin\\gmake" -k -j 12 all -O

    Building file: "../c2000.syscfg"
    Invoking: SysConfig
    "C:/ti/ccs1220/ccs/utils/sysconfig_1.15.0/sysconfig_cli.bat" -s "C:/ti/c2000/C2000Ware_4_03_00_00/.metadata/sdk.json" -d "F280013x" --script "C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/c2000.syscfg" -o "syscfg" --package 64PM --part F280013x_64PM --compiler ccs
    Running script...
    Validating...
    Generating Code (c2000.syscfg)...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\board.c...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\board.h...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\board.cmd.genlibs...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\board.opt...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\pinmux.csv...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\c2000ware_libraries.cmd.genlibs...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\c2000ware_libraries.opt...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\c2000ware_libraries.c...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\c2000ware_libraries.h...
    Writing C:\Users\a0389351\workspace_v12\timer_ex1_cputimers\CPU1_LAUNCHXL_FLASH\syscfg\clocktree.h...
    Finished building: "../c2000.syscfg"

    Building file: "syscfg/board.c"
    Invoking: C2000 Compiler
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/device" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib" --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency="syscfg/board.d_raw" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" --obj_directory="syscfg" --cmd_file="syscfg/board.opt" --cmd_file="syscfg/c2000ware_libraries.opt" "syscfg/board.c"
    Finished building: "syscfg/board.c"

    Building file: "syscfg/c2000ware_libraries.c"
    Invoking: C2000 Compiler
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/device" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib" --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency="syscfg/c2000ware_libraries.d_raw" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" --obj_directory="syscfg" --cmd_file="syscfg/board.opt" --cmd_file="syscfg/c2000ware_libraries.opt" "syscfg/c2000ware_libraries.c"
    Finished building: "syscfg/c2000ware_libraries.c"

    Building file: "../device/f280013x_codestartbranch.asm"
    Invoking: C2000 Compiler
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/device" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib" --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency="device/f280013x_codestartbranch.d_raw" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" --obj_directory="device" --cmd_file="syscfg/board.opt" --cmd_file="syscfg/c2000ware_libraries.opt" "../device/f280013x_codestartbranch.asm"
    Finished building: "../device/f280013x_codestartbranch.asm"

    Building file: "../timer_ex1_cputimers.c"
    Invoking: C2000 Compiler
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/device" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib" --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency="timer_ex1_cputimers.d_raw" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" --cmd_file="syscfg/board.opt" --cmd_file="syscfg/c2000ware_libraries.opt" "../timer_ex1_cputimers.c"
    "../timer_ex1_cputimers.c", line 219 (col. 29): advice #2614-D: (Performance) Use --fp_mode=relaxed to enable TMU hardware support for FP division.
    Finished building: "../timer_ex1_cputimers.c"

    Building file: "../device/device.c"
    Invoking: C2000 Compiler
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/device" --include_path="C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib" --include_path="C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --preproc_with_compile --preproc_dependency="device/device.d_raw" --include_path="C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" --obj_directory="device" --cmd_file="syscfg/board.opt" --cmd_file="syscfg/c2000ware_libraries.opt" "../device/device.c"
    Finished building: "../device/device.c"

    Building target: "timer_ex1_cputimers.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 -Ooff --define=DEBUG --define=_FLASH --define=_LAUNCHXL_F2800137 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"timer_ex1_cputimers.map" --heap_size=0x100 --stack_size=0x200 --warn_sections -i"C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_4_03_00_00" -i"C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg" -i"C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="timer_ex1_cputimers_linkInfo.xml" --entry_point=code_start --rom_model -o "timer_ex1_cputimers.out" "./syscfg/board.obj" "./syscfg/c2000ware_libraries.obj" "./timer_ex1_cputimers.obj" "./device/device.obj" "./device/f280013x_codestartbranch.obj" "../280013x_generic_flash_lnk.cmd" "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/f280013x/driverlib/ccs/Debug/driverlib.lib" -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    Finished building target: "timer_ex1_cputimers.out"

    Building secondary target: "timer_ex1_cputimers.hex"
    Invoking: C2000 Hex Utility
    "C:/ti/ccs1220/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/hex2000" --diag_wrap=off --motorola=3 -o "timer_ex1_cputimers.hex" "timer_ex1_cputimers.out"
    Translating to Motorola-S3 format...
    "timer_ex1_cputimers.out" codestart ==> codestart
    "timer_ex1_cputimers.out" .TI.ramfunc ==> .TI.ramfunc
    "timer_ex1_cputimers.out" .cinit ==> .cinit
    "timer_ex1_cputimers.out" .text ==> .text
    "timer_ex1_cputimers.out" .const ==> .const
    Finished building secondary target: "timer_ex1_cputimers.hex"

    if 0 == 1 mkdir "C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/diagrams"
    if 0 == 1 C:/ti/ccs1220/ccs/tools/node/node.exe "C:/ti/c2000/C2000Ware_4_03_00_00/driverlib/.meta/generate_diagrams.js" "C:/ti/c2000/C2000Ware_4_03_00_00" "C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/diagrams" "C:/Users/a0389351/workspace_v12/timer_ex1_cputimers/CPU1_LAUNCHXL_FLASH/syscfg"

    warning: Data is being written to auto-generated file timer_ex1_cputimers.m01

    **** Build Finished ****

  • Champs,

    Any feedback here? it's becoming a blocking issue in customer's development

    thanks

    Michael

  • The likely solution is to add the hex2000 option --romwidth=16.  To understand why, please see this forum post.

    Thanks and regards,

    -George

  • George,

    the --romwidth=16 eliminates the warning and the generation of the m01 file, but the resulting .hex still produces checksum error when I use it with Uniflash. I'll appreciate your guidance

    thanks

    Michael

  • : Can you please take a look what is issue with CRC when using uniflash?

  • Hi Michael,

    What is the checksum error that you got from Uniflash?  Can you copy the console window error message here?  Thank you.

    Regards,
    Vamsi

  • Hi Vamsi,

    It isn't in the console, it is a pop-up:

  • Hi Michael,

    I will ask our Uniflash tool developer to take a look at this checksum error since the error is not from the target flash programming kernel.

    Thanks and regards,

    Vamsi

  • Hi Vamsi,

    While the Uniflash engineer looking at the from his end - is there a way to validate that the .hex itself is valid outside of Uniflash? I don't have access to programming tools other than variations of xds110/xds200 unfortunately.

    thank you

    Michael

  • Hi Michael,

    Could you add -memwidth 16 option as well and see how it goes?

    hex2000 -romwidth 16 -memwidth 16 

    Thanks and regards,

    Vamsi

  • I did, no luck. 

    hex2000 -romwidth 16 

    and

    hex2000 -romwidth 16 -memwidth 16

    produce binary identical .hex

  • Hello,

    I can reproduce the error. It seems specific to Motorola S-Record hex formats (intel hex image worked fine). I will need to follow up with the UniFlash engineers

    Thanks

    ki

  • I filed a bug for this issue. Tracking link: https://sir.ext.ti.com/jira/browse/EXT_EP-11102

    Thanks

    ki

  • Ki,

    the ticket shows it will be fixed in ccs12.4. what is the timeline for it? I have a customer planning ramp to production in July, they need it working beforehand to setup manufacturing. Is there any way to get an earlier access to the fix?

    thanks

    Michael

  • I believe 12.4 will be sometime around end of June. But I assume they are more interested in a fix for UniFlash, correct?

  • yes, that's correct

  • Would it be acceptable to the customer to manually drop in a patch on top of an existing UniFlash installation until it is officially included in a future UniFlash release? Obviously the level of testing would not be as comprehensive for the patch.

  • yes, as long as it works. I'd love to give it a try first though. thanks!

  • We may be able to provide the fix in the upcoming UniFlash 8.3 release (early May). I did a quick test on an engineering build of 8.3 and it seemed to resolve the issue.

  • thanks Ki. Did you try loading the resulting .hex into the Launchpad by any chance? customer's original complain was that the .hex is incomplete, and then we saw the Uniflash issue when tried to load the .hex into the LP to verify functionality.

  • Yes I did loading a motorola hex file and it seemed to flash fine. if you wish to experiment with this early UniFlash 8.3 build, please start a private E2E conversation with me.

    Thanks

    ki 

  • thanks Ki! I tested engineering build and it seems to be in order, the resulting .hex is flashed with no issues and is also functional. I also tried the same on the cloud version available today and it appears that the fix is already there, the same flashing worked there as well.

    thanks a lot for your help!

  • Thanks for trying it and glad it is working for you too. UniFlash 8.3 desktop download is very close to release. Should be available next week... or maybe even today!

  • FYI: UniFlash 8.3 has been released. It has the fix

    http://www.ti.com/tool/download/UNIFLASH