/* linker_dsp.cmd */ -stack 0x10000 -heap 0x500 //0x10000 // ============================================================================ // Specify the System Memory Map // ============================================================================ #define IPC_ARM_START 0x80000000 #define IPC_ARM_SIZE 0x10 #define IPC_DSP_START IPC_ARM_START + IPC_ARM_SIZE #define IPC_DSP_SIZE 0x10 #define SHARED_IRAM_START IPC_ARM_START + IPC_ARM_SIZE + IPC_DSP_SIZE #define SHARED_IRAM_SIZE 0x1FFFF - (IPC_ARM_SIZE + IPC_DSP_SIZE) MEMORY { L1P: o = 0x11E00000 l = 0x00008000 L1D: o = 0x11F00000 l = 0x00008000 L2: o = 0x11800000 l = 0x0003F980 DARAM_MATRICE: o = 0x1183F980 l = 0x00000280 DARAM_TTY_DATA: o = 0x1183FC00 l = 0x00000300 DARAM_TTY_COEFF: o = 0x1183FF00 l = 0x00000100 // shared_ROM_DSP: o = 0x80000000 l = 0x00003FFF entry_point: o = 0x80004000 l = 0x00000100 shared_ram_DSP: o = 0x80004100 l = 0x00010F00 DDR2: o = 0xC0000000 l = 0x01000000 IPC_ARM: o = IPC_ARM_START l = IPC_ARM_SIZE /* 16 bytes for ARM */ IPC_DSP: o = IPC_DSP_START l = IPC_DSP_SIZE /* 16 bytes for DSP */ } // ============================================================================ // Specify the Sections Allocation into Memory // ============================================================================ SECTIONS { .cinit > DDR2 // Initialization Tables .pinit > DDR2 // Constructor Tables .init_array > DDR2 // .binit > DDR2 // Boot Tables .const > DDR2 // Constant Data .switch > DDR2 // Jump Tables .text > DDR2 // Executable Code ipc_arm > IPC_ARM ipc_dsp > IPC_DSP // .text:_c_int00: align=1024 > DDR2 // Entrypoint .text:_c_int00 > entry_point GROUP (NEARDP_DATA) // group near data { .neardata .rodata .bss // note: removed fill = 0 }> L2 .far: fill = 0x0, load > DDR2 // Far Global & Static Variables .fardata > DDR2 // Far RW Data .stack > L2 // Software System Stack .sysmem > L2 // Dynamic Memory Allocation Area .cio > DDR2 // C I/O Buffer .vecs > DDR2 // Interrupt Vectors BdtFIR > DARAM_TTY_COEFF DPR { MemoirePartageeUSB.obj } > shared_ram_DSP }