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.
If my reply answers your question please mark the thread as answered.
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)
Rest everything is same in the map file. If you want i can send you the map files at your personal email id.
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?
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.
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.