Other Parts Discussed in Thread: STRIKE
Hi,
I have a DSP Project based on C6415 target.I am using the CCS Ver 3.1.0 and CGT Ver 5.1.0. I have 2 COFF output files generated by building my project on this environment- One with BIOS Ver.4.90 and other with BIOS ver.5.20.05. Both COFF files runs on my target when loaded through emulator.My requirement is to load the COFF file from a windows application running on the host.The DSP target is interfaced to the host via PCI Interface. The COFF file built using BIOS Ver.4.90 when loaded by host, runs fine on the DSP target and give the desired results.But the COFF file built using BIOS Ver.5.20.05 when loaded by host, doesn't run on the DSP target.
I have compared the section details of the 2 COFF files from the log messages which i got from my COFF file parser function in my windows application. The differences i found are as follows:
1- In COFF built with BIOS Ver.5.20.05,.stack section has section header flag as 0x380(means Section contains uninitialized data and so not written to target memory), but in the COFF built with BIOS Ver.4.90,.stack has section header flag as 0x340(means Section contains initialized data and so written to target memory).
From the auto generated command file of project built with BIOS Ver.4.90
.stack: fill=0xc0ffee {
GBL_stackbeg = .;
*(.stack)
GBL_stackend = GBL_stackbeg + 0x800 - 1;
_HWI_STKBOTTOM = GBL_stackbeg + 0x800 - 4 & ~7;
_HWI_STKTOP = GBL_stackbeg;
} > ISRAM
From the auto generated command file of project built with BIOS Ver.5.20.05
.stack: {
GBL_stackbeg = .;
*(.stack)
GBL_stackend = GBL_stackbeg + 0x800 - 1;
_HWI_STKBOTTOM = GBL_stackbeg + 0x800 - 4 & ~7;
_HWI_STKTOP = GBL_stackbeg;
} > ISRAM
The fill parameter is missing in the 5.20.05 command file
2-In BIOS Ver.5.20.05 COFF file,.printf section has header flag as 0x40 which indicates Section contains initialized data and so it is written to target memory.But in BIOS Ver.4.90 COFF file,.printf section has header flag as 0x4010 which indicates Section requires conditional linking and is a Copy section (relocated, loaded, but not allocated; relocation entries are processed normally)and so it is not written to target memory.
In BIOS Ver.4.90 autogenerated cmd file, i see the following line.
.printf (COPY): {} > ISRAM
But i dont see an entry for .printf in the BIOS Ver 5.20.05 autogenerated cmd file.
3-LOG_system and ScLog are LOG objects under Instrumentation->LOG-Event Log Manager in the BIOS Configuration file.
In BIOS 4.90 autogenerated cmd file, the following entry is found.
/* LOG_system buffer */
.LOG_system$buf: align = 0x100 fill = 0xffffffff {} > ISRAM
/* ScLog buffer */
.ScLog$buf: align = 0x100 fill = 0xffffffff {} > ISRAM
In BIOS 5.20 autogenerated cmd file, the following entry is found.
/* LOG_system buffer */
.LOG_system$buf: align = 0x100 {} > ISRAM
/* ScLog buffer */
.ScLog$buf: align = 0x100 {} > ISRAM
The fill parameter is missing in BIOS 5.20 cmd file.
In the 5.20 COFF file, the section header flags for the above two sections are 0x280 which indicates that Section contains uninitialized data and so its not written to target memory. In the 4.90 COFF file, the section header flags for the above two sections are 0x240 which indicates that Section contains initialized data and so its written to target memory.
4- Since 5.20 BIOS does not support CSL Configuration under the DSP/BIOS configuration in the tcf file, i am told to call cslCfgInit() in my main function.
I am finding the below entry in my BIOS 5.20 project Map file
.text:cslCfgInit
* 0 000dbaa0 00000200
000dbaa0 00000200 rficfg_csl.obj (.text:cslCfgInit)
This section has section header flag as 0x520 which corressponds to Section contains executable code and so is written to target memory.
These are the 4 differences i am finding, in between the BIOS 4.90 COFF file(working) and BIOS 5.20.05 COFF file(non-working).I am emphasizing the fact that both these COFF files used the same build environment except the BIOS versions and both are working when loaded through emulator.But COFF from BIOS Ver.5.20.05 doesnt work when loaded from the host application. Please let me know if something could go wrong by having the above differences, which could cause the COFF from BIOS 5.20.05 from not running when loaded from host application.