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.

TMS320F2800137: 0X80000

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,

    Are the compiler optimizations the same between projects?

    Best,

    Ryan Ma

  • 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

  • hello

    Ok, I'm waiting for your response.

  • 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 

    • ccs1270\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\bin\dis2000.exe your_out_file.out > some_file.txt
    • This will provide the disassembly

    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

    dis2000 utility is what?

  • 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

    Where can I find this utility ?

  • 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