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.

Problem during switching from original platform to customized platfomr

Hi All,

I am working on CCS 5.2 and device C66xx. I am trying to switch from original platform to user define platform.

Initially i was working on platform ti.platforms.evm6670 defined in XDC tools. The XDC tools version i am using is 3.22.1.21. The new platform which i have created (ti.platforms.evm6670.customize) is having only L2SRAM, L1PSRAM, L1DSRAM defined in it and rest of the memories i am defining in the linker command file. I have written the entire memory map for my project in command file and removed all the configurations regarding memory map from .cfg file. I am working on multicore environment. Initially i had implemented these changes in core 2 and core 1, and everything was working fine. But, when i tried to import all these changes on to core 0, TFTP of the file from ARM processor does not take place and the program enters the error condition.

The size of the file which i am trying to TFTP is 2302 bytes and the buffer in which i am doing TFTP is of size 2500 bytes. During debugging i found that in the old platform after TFTP the file gets transferred completely and i can see the filesize as 2302 bytes, but in the customized platform it shows only 512 bytes gets transferred, due to which it enters the error state.

I am not able to understand why i am facing this problem during the platform switching.

Kindly someone help me out in resolving this issue and explain me the reason for such behavior.

Thanks,

Deepain Nayyar

  • Deepain Nayyar,
    can you compare the map file for the executable that you built with TI platform, and the map file created with your custom platform? I am assuming that the executable built with the TI platform loaded correctly to core 0. The map files can be found in Debug or Release directory of your project. The main difference I would be looking for are sections allocated to different memory objects.

    I don't really know much about TFTP so I can't tell you why would it transfer fewer bytes in a second case. If you can't see any difference in map files, I hope someone who knows more about TFTP will jump in.

     

  • Hi Sasha,

    The sections allocated to different memory objects are exactly the same in both cases. Even I can see that the map files are almost the same, except for little bit changes like the sections allocated for 

    00800000 __ASM__
    108c97d0 __CIOBUF_
    008000a0 __ISA__
    008000c0 __PLAT__
    008000f0 __TARG__ 

    in customized platform is different from that of 

    10800000 __ASM__
    108c97d0 __CIOBUF_
    108000a0 __ISA__
    108000c0 __PLAT__
    108000f0 __TARG__

    in case of original TI platform.

    Also, I can see that the section xdc.meta is going at 

    xdc.meta      0      00800000          00000148         COPY SECTION
    00800000            00000148          core0_pe66.oe66 (xdc.meta) 

    in case of customized platform and 

    xdc.meta      0     10800000           00000148         COPY SECTION
    10800000           00000148           core0_pe66.oe66 (xdc.meta)

    in case of original TI platform.

    Rest everything is same in the map file. If you want i can send you the map files at your personal email id.

    Thanks,

    Deepain Nayyar

  • Deepain Nayyar,
    as I said I don't know much about TFTP and I can't tell if changing the location of those four symbols can make the difference. Let's try making everything the same, and then if you still get the same failure, we'll have to find someone who knows more about TFTP to answer any further questions.

    The section allocation for xdc.meta is defined in the Debug/configPkg/linker.cmd. Is there any difference in xdc.meta allocations between two platforms. For the TI platform, xdc.meta goes to the same memory objects as .const. What does your platform do? I am guessing you just copied whatever was in the TI platform, but somehow xdc.meta ended up on the different address.
    Also, if I remember correctly C66x has a notion of a global and a local address, and 10800000 and 00800000 could be the same physical location, but one is the local and one is the global address. Have you done anything related to such addresses when switching between two platforms?

  • Hi Sasha,

    I have made the map files exactly similar in both the cases, but still in case of old platform the code is working but in my customized platform its not working.

    Can you please transfer the query to someone who knows more about TFTP or regarding the problem.

    Thanks,

    Deepain Nayyar

  • Deepain Nayyar,

    Are you getting any error values returned from your TFTP calls?

    Are you familiar with Wireshark?  Can you try using Wireshark to capture the network traffic for both cases?  In the fail case, you may be able to see some problems or communication issue that's happening between your board and the TFTP server.

    Steve

  • Hello Steve,

    Sorry for the late reply and thanks a lot for your response.

    Actually we have put this activity on hold for 1 week. I'll let you know the response as soon as we start this activity again.

    Thanks,

    Deepain Nayyar