Part Number: TMS320F2800137
Tool/software:
HI expert
i build two different ccs project,in the hex file,i find the value of 0x80000 is different?
why?
what caused?

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.
Part Number: TMS320F2800137
Tool/software:
HI expert
i build two different ccs project,in the hex file,i find the value of 0x80000 is different?
why?
what caused?

Hi Youjun,
This issue may be related to the following thread:
hi
yes,the compiler optimizations ares the same between projects.
What information is stored at this address of 0x80000?
Hi Youjun,
If you're building a project using FLASH configurations, usually the codestart will be at 0x80000. This can be seen from the .map

as well as the linker command file

Best,
Ryan Ma
hello
yes ,i kown the codestart will be at 0x80000
What information or setting is stored at this address of 0x80000 ,0x80001,because different ccs project have different value(ccs setting and cmd are the same),i want to kown the real reasion.

Hi Youjun,
I will need to verify with the compiler team on this to see why there is different values at this location.
Best,
Ryan Ma
Hi Youjun,
Ryan is out of office today, please expect a response back by Monday.
Thank you,
Luke
Hi Youjun,
Apologize but are the contents between the two different CCS projects the same? Is the only difference that they are two projects with different names?
hi
the contents between the two different CCS projects is different ,but the properties of the project and the cmd file are the same .
Hi Youjun,
What version of CCS are you using? What output format of the hex utility are you using? Is it the motorola S hex (-m=3)? I have reached out to another colleague to provide the explanation on why the information you're seeing may be different across the two projects.
Best,
Ryan Ma
Hi Youjun,
Can you perform the following steps to cross check the contents at 0x80000 between your two different projects
1. Run the following command on your .out file for both projects
2. What you'll notice is that both projects will have different address that LB is used with.


In the above screenshots, there is a different address for the LB instruction located at 0x80000 where it'll load from. If the functionality is the same across the two projects, then what is the concern here? The information stored here is the address to load from which will first jump to the instruction to disable the watch dog, then go to c_int00, then jump to your main code. For either project, they should jump to do the same function but the addresses may change due to the content in each respective project.
Best,
Ryan Ma
Hi
ok,my ccs version is 12.4. the motorola S hex (-m=3).
form your screenshots and my screenshots,i see the value of 0x80000 is the same.
What information is stored at this address of 0x80001?this value is different.
Please run the dis2000 utility to view what is located at that address.
Best,
Ryan Ma
Hi Youjun,
dis2000, is a utility that allows you to view the disassembly to view what is located at the address you're wanting to know about.
Best,
Ryan Ma
Hi Youjun,
You can find the utility under the C:\ti\ccs1270\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\bin folder.
Best,
Ryan Ma
hi
i run the dis2000 utility to view what is located at that address.but i still do not kown what information is stored at this address of 0x80001?this value is different from yours.

Hi Youjun,

This is the full op code stored at 0x80000, and 0x80001.
0000_0000_001C_CCCC
CCCC_CCCC_CCCC_CCCC
The upper op code is stored at 0x80000: 0000_0000_0010_1000 = 0x0048. The C's are constants.
The lower portion of the op code is stored at 0x80001: 0xEB6F
This is what is being stored at these addresses. Hope this helps.
Best,
Ryan Ma
hi
What is the basis for calculating this full op code?such as ,0x80000: 0x0048 not 0x38?0x80001: 0xEB6F not 0x80001: 0x1234
Hi Youjun,
The basis for the op code is given here in the CPU user guide.
https://www.tij.co.jp/jp/lit/ug/spru430f/spru430f.pdf
I am not sure what you mean by calculating this full op code. This would be based on the application code itself and where the codestartbranch gets placed in the .map based on the linker command configuration. You can view where the linker command placed the codestart branch in the .map file of the project. This is found in the folder where your finished build is. In the below .text you can see at the f28p65x_codestartbranch is located at 0008330a. which matches what is in the .hex file as another example.

.text 0 00080888 00002a9d
00080888 00000c8b board.obj (.text)
00081513 000007bd export_package.obj (.text)
00081cd0 000003f0 device.obj (.text)
000820c0 0000019a transfer_utils.obj (.text)
0008225a 00000126 driverlib.lib : sysctl.obj (.text:SysCtl_setClock)
00082380 00000120 : sysctl.obj (.text:SysCtl_isPLLValid)
000824a0 00000118 : sysctl.obj (.text:SysCtl_setAuxClock)
000825b8 000000cb : dcc.obj (.text:DCC_verifyClockFrequency)
00082683 000000a9 : memcfg.obj (.text:MemCfg_setProtection)
0008272c 00000088 rts2800_fpu64_eabi.lib : fs_div28.asm.obj (.text)
000827b4 00000077 export_log.obj (.text)
0008282b 00000073 driverlib.lib : dcc.obj (.text:DCC_setCounterSeeds)
0008289e 00000073 : sysctl.obj (.text:DCC_setCounterSeeds)
00082911 00000065 : sysctl.obj (.text:SysCtl_getClock)
00082976 00000061 : sysctl.obj (.text:SysCtl_getAuxClock)
000829d7 0000005d export.obj (.text)
00082a34 0000005b driverlib.lib : sysctl.obj (.text:SysCtl_selectOscSourceAuxPLL)
00082a8f 0000005b main.obj (.text)
00082aea 00000052 driverlib.lib : gpio.obj (.text:GPIO_setPadConfig)
00082b3c 00000046 : sysctl.obj (.text:SysCtl_selectXTAL)
00082b82 00000045 : sci.obj (.text:SCI_clearInterruptStatus)
00082bc7 00000045 : sysctl.obj (.text:SysCtl_pollX1Counter)
00082c0c 00000042 : sysctl.obj (.text:SysCtl_selectOscSource)
00082c4e 0000003e : sci.obj (.text:SCI_setConfig)
00082c8c 0000003d : interrupt.obj (.text:Interrupt_initModule)
00082cc9 00000039 : memcfg.obj (.text:MemCfg_setLSRAMControllerSel)
00082d02 00000037 : gpio.obj (.text:GPIO_setPinConfig)
00082d39 00000037 : gpio.obj (.text:GPIO_setQualificationMode)
00082d70 00000036 : sysctl.obj (.text:SysCtl_configureType)
00082da6 00000030 rts2800_fpu64_eabi.lib : copy_decompress_lzss.c.obj (.text:decompress:lzss)
00082dd6 00000030 : cpy_tbl.c.obj (.text)
00082e06 0000002b : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
00082e31 00000029 : exit.c.obj (.text)
00082e5a 00000026 driverlib.lib : memcfg.obj (.text:MemCfg_setGSRAMControllerSel)
00082e80 00000025 : sysctl.obj (.text:SysCtl_selectXTALSingleEnded)
00082ea5 00000024 : dcc.obj (.text:DCC_enableSingleShotMode)
00082ec9 00000024 : sysctl.obj (.text:DCC_enableSingleShotMode)
00082eed 00000021 : sysctl.obj (.text:SysCtl_controlCPU2Reset)
00082f0e 0000001f : flash.obj (.text:Flash_writeTrims)
00082f2d 0000001e : dcc.obj (.text:DCC_setCounter0ClkSource)
00082f4b 0000001e : sysctl.obj (.text:DCC_setCounter0ClkSource)
00082f69 0000001e : dcc.obj (.text:DCC_setCounter1ClkSource)
00082f87 0000001e : sysctl.obj (.text:DCC_setCounter1ClkSource)
00082fa5 0000001e : interrupt.obj (.text:Interrupt_initVectorTable)
00082fc3 0000001d rts2800_fpu64_eabi.lib : memcpy.c.obj (.text)
00082fe0 0000001c driverlib.lib : dcc.obj (.text:DCC_getErrorStatus)
00082ffc 0000001c : dcc.obj (.text:DCC_getSingleShotStatus)
00083018 0000001a : dcc.obj (.text:DCC_isBaseValid)
00083032 0000001a : sysctl.obj (.text:DCC_isBaseValid)
0008304c 0000001a : sysctl.obj (.text:SysCtl_getLowSpeedClock)
00083066 00000019 : sysctl.obj (.text:SysCtl_setPLLSysClk)
0008307f 00000019 rts2800_fpu64_eabi.lib : boot28.asm.obj (.text)
00083098 00000018 driverlib.lib : sci.obj (.text:SCI_disableModule)
000830b0 00000018 : sci.obj (.text:SCI_performSoftwareReset)
000830c8 00000017 : cputimer.obj (.text:CPUTimer_isBaseValid)
000830df 00000017 : sysctl.obj (.text:SysCtl_enablePeripheral)
000830f6 00000016 : dcc.obj (.text:DCC_disableDoneSignal)
0008310c 00000016 : sysctl.obj (.text:DCC_disableDoneSignal)
00083122 00000016 : dcc.obj (.text:DCC_enableDoneSignal)
00083138 00000016 : interrupt.obj (.text:Interrupt_defaultHandler)
0008314e 00000015 : dcc.obj (.text:DCC_clearDoneFlag)
00083163 00000015 : sysctl.obj (.text:DCC_clearDoneFlag)
00083178 00000015 : dcc.obj (.text:DCC_clearErrorFlag)
0008318d 00000015 : sysctl.obj (.text:DCC_clearErrorFlag)
000831a2 00000015 : dcc.obj (.text:DCC_disableErrorSignal)
000831b7 00000015 : sysctl.obj (.text:DCC_disableErrorSignal)
000831cc 00000014 : dcc.obj (.text:DCC_disableModule)
000831e0 00000014 : sysctl.obj (.text:DCC_disableModule)
000831f4 00000014 : dcc.obj (.text:DCC_enableErrorSignal)
00083208 00000014 : dcc.obj (.text:DCC_enableModule)
0008321c 00000014 : sysctl.obj (.text:DCC_enableModule)
00083230 00000014 : gpio.obj (.text:GPIO_isPinValid)
00083244 00000013 : cputimer.obj (.text:CPUTimer_setEmulationMode)
00083257 00000013 : sci.obj (.text:SCI_enableModule)
0008326a 00000013 : sci.obj (.text:SCI_isBaseValid)
0008327d 00000010 : flash.obj (.text:Flash_isCtrlBaseValid)
0008328d 00000010 : flash.obj (.text:Flash_isECCBaseValid)
0008329d 0000000f : ipc.obj (.text:Interrupt_unregister)
000832ac 0000000d : interrupt.obj (.text:Interrupt_disableGlobal)
000832b9 0000000d rts2800_fpu64_eabi.lib : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
000832c6 0000000c : args_main.c.obj (.text)
000832d2 0000000b driverlib.lib : sysctl.obj (.text:SysCtl_isMCDClockFailureDetected)
000832dd 0000000a : interrupt.obj (.text:Interrupt_illegalOperationHandler)
000832e7 0000000a : interrupt.obj (.text:Interrupt_nmiHandler)
000832f1 00000009 rts2800_fpu64_eabi.lib : _lock.c.obj (.text)
000832fa 00000008 : copy_decompress_none.c.obj (.text:decompress:none)
00083302 00000008 device_cmd.obj (.text)
0008330a 00000008 f28p65x_codestartbranch.obj (.text)
00083312 00000008 rts2800_fpu64_eabi.lib : strlen.c.obj (.text)
0008331a 00000007 driverlib.lib : sysctl.obj (.text:SysCtl_resetMCD)
00083321 00000002 rts2800_fpu64_eabi.lib : pre_init.c.obj (.text)
00083323 00000001 c2000ware_libraries.obj (.text)
00083324 00000001 rts2800_fpu64_eabi.lib : startup.c.obj (.text)
Best,
Ryan Ma