Hi
My project is created from CCS typical SYS/BIOS example.
In main function, there is nothing to do, I just added one line source code to write specific value at 0x80000004 before calling BIOS_start function.
--------------main.c---------------------
Void main() {
Task_Handle task;
Error_Block eb;
System_printf("enter main()\n");
Error_init(&eb);
task = Task_create(taskFxn, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}
*(volatile int *)0x80000004 = 0xace0ace; //Here is Test Code
BIOS_start();
/* enable interrupts and start SYS/BIOS */
}
I used default SYS/BIOS configuration to build the project, then loaded the program into slave core, sent IPCGR to slave core, the dsp program works fine (It means I can read the value I expected.)
But when I increase Heap size up to 400000, I found that in slave core the program didn't read the value of boot magic address (the value at 0x87fffc is not 00000000), so the program keep idled untill I write _c_int00 address into Core register Program Counter by CCS, then the program start working.
I think that large heap size cover some address, so that something blocks the program which in slave core jump into _c_int00, evne I send IPCGR to slave core.
Could you explain why ? Thank you very much.
Device: DSPC-8681, EVM6678
Here is the MAP file:
Heap size: 400000
https://drive.google.com/file/d/0B-HUXA_alaLoaFlKVng5eTdkYkk/view?usp=sharing
Backup:3833.chris.zip