Part Number: SM320LF2407A-EP
Hello,
I am setting up a DSP with a dual page scheme (2 x 64k) for program space. The build allocates a boot section and constants to two page and the rest of program space to the other page. I am working with CCS3.3 tools for a 2407a DSP.
The build and link compiles the code with sections specified for each page into one .out file. I run hex2000 to convert the section to two binary files, one for each page and combine the two into one file later.
The problem is that when I examine either bin file I find the code origin in the right place ( word * 2 = binary byte addressing), but the length has NOT been multiplied by two so only half of the code shows up in the binary file. Teh code that is there is correct (hi and low bytes are good).
From the .map file; .cinit section starts at 44 with a length of 349.
From the .bin file; .cinit section starts at 88 with a length of 349. The address or origin is correct by the length is half of what it should be for binary in bytes.
This is true for all the sections going into the flash/binaries regardless of which pages it would be on. I am contemplating making each page a project with separate .out files. However I am not confident this will change the outcome.
Calling the hex2000 converter:
if exist .\debug\_STC.out hex2000 STC_DSP2bin_FP0.cmd .\debug\_STC.out
if exist .\debug\_STC.out hex2000 STC_DSP2bin_FP1.cmd .\debug\_STC.out
STC_DSP2bin_FP0.cmd file:
-binary /*binary option*/
--image
-fill 0xFFFF
ROMS
{
PAGE 0:
FLASH0: origin = 00000h , length = 01FC00h, files = {.\debug\_STC_FP0.bin} /*PAGE 0 */
/* NOTE: With "-binary" option "romWidth" is ignored and assumed to the be 8.
In addition the origin and Length are specified in bytes (word length * 2 = byte length)!!! */
}
SECTIONS
{
.vectors .boot .GoToApp .cinit .const
}