This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: Vector reloaction

Part Number: TDA4VM

Dear expert,

    I have a hardware reset vector rstvectors and an os exeption vector LOW_EXCEPTION_0 as follow, assiged to the SARM and ATCM respectively. Now I sucess to use the rstvectors to start up the system. But I want to use the LOW_EXCEPTION_0  to process exeprions then. How should i do? Thanks.

 

 .sect   ".rstvectors"     

_resetvectors:
.asmfunc
LDR pc, c_int00_addr ; Reset
LDR pc, undefInst_addr ; Undefined Instruction
LDR pc, swi_addr ; Software interrupt
LDR pc, preAbort_addr ; Abort (prefetch)
LDR pc, dataAbort_addr ; Abort (data)
LDR pc, rsvd_addr ; rsvd
LDR pc, irq_addr ; IRQ
LDR pc, fiq_addr ; FIQ
.endasmfunc

static volatile uint32 __attribute__((section(".LOW_EXCEPTION_0")))
Os_ExceptionHandlerFunction_0 [] =
{
    &Os_UndefinedInstructionException,
    &Os_PrefetchAbortException,
    &Os_DataAbortException,
    &Os_IrqException,
    &Os_FiqException,
};

/* Memory Map */
MEMORY
{
    ATCM             (RWX) : origin=0x00000000 length=0x800    /* ATCM R5   */
    BOOT_SPACE       (RWX) : origin=0x70010000 length=0x100    /*256 SRAM*/  
    /**BOOT_SPACE       (RWX) : origin=0x41CE3000 length=0x100**/
    STARTUP_CODE     (RWX) : origin=0x70010100 length=0x1000    /* 4K SRAM   */
    RAM              (RWX) : origin=0x70011100 length=0x200000 /* 2M SRAM   */
    ROM              (RWX) : origin=0x70211100 length=0x200000 /* 2M SRAM   */
    PERIPHERAL_SPACE (RW)  : origin=0x2000000  length=0x10000  /* 64 KB I2C */
}
SECTIONS
{
    /*
     Exception vectors and Startup code will be covered by
     background region with default memory attributes i.e.
     accessible in PL1
    */

    .OS_EXCEPTION_VECTORS : { *(.rstvectors) } palign(4) > BOOT_SPACE
    .OS_EXCEPTIONS        : { *(.LOW_EXCEPTION_0)     } palign(4) > ATCM