Hi,
I want to run IVA2.2 (C64x+) in OMAP3530 so it execute a code from IRAM. I managed to generate a correct BIN file, but the problem is that the entry point "_c_int00" is at 0x40206060 address and you can write to IVA2_BOOTADDR only address aligned to 4k page size. How to place the _c_int00 function at the beginning of the BIN file (at the beginning of IRAM - 0x40200000)?
It seems that linker doesn't hold the sections order from linker's script, because it puts stack before text section. I use CCS 4.1.
My linker script:
-c
-heap 0x2000
-stack 0x4000
MEMORY
{
L2ROM : origin = 0x5C7E0000, len = 0x00004000
L2RAM : origin = 0x5C7F8000, len = 0x00008000
//L1PRAM : origin = 0x00E00000, len = 0x00008000
L1PRAM : origin = 0x5CE00000, len = 0x00008000
IRAM : origin = 0x40200000, len = 0x0010000
}
SECTIONS
{
.cinit > IRAM
.text > IRAM
.data > IRAM
.bss > IRAM
.stack > IRAM
.cio > IRAM
.const > IRAM
.switch > IRAM
.sysmem > IRAM
.far > IRAM
.ppdata > IRAM
}
My script for hex6x to convert *.out file to *.bin image:
program.out
-map DSP.map
-b
-memwidth 32
-romwidth 32
-image
ROMS
{
FLASHD : origin = 0x40204000, length = 0x0002400, files = { image.bin }
}
SECTIONS
{
.cinit, .text, .data, .bss, .stack, .cio, .const, .switch, .sysmem, .far, .ppdata:
}
Best regards
Thomas