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.

memory access exception

Other Parts Discussed in Thread: SYSBIOS

Hi,

I'm trying to generate a memory read access exception on my TMDSEVM6678LE by doing this..

int *ptr = (int *)0;

int test = *ptr;

But I'm not getting a bios exception dump, it is just ignoring it. Any ideas?

I can get the bios exception dump when I call a null function...

void (*func)(void);  

func = (void (*)(void))0;  

(*func)();

  • Graham,

    I suspect that there is no explicit memory access protection enabled in your application for address zero and that data reads, writes, and instruction fetches from address 0 are allowed.

    I'm thinking that the exception you get when jumping to zero is probably an invalid instruction exception since there really is no code there.

    Alan

  • Alan, Ahh thanks,

    Any ideas on how to enable that? I've enabled Memory Protection in the xdc tool.

    Graham

  • Alan, here is my dump - it tells me it is an instruction fetch exception rather than an invalid op.

    [C66xx_0] 4=0x77efdf7b B25=0xeb3bfdb5 B26=0xdfff406a B27=0xb9bef7e9 B28=0xfcf7eef9 B29=0x1e7a9bb9 B30=0xffffffff B31=0xffffffff NTSR=0x1000f ITSR=0x0 IRP=0x0 SSR=0x0 AMR=0x0 RILC=0x0 ILC=0x0 Exception at 0x0 EFR=0x2 NRP=0x0 Internal exception: IERR=0x1 Instruction f[C66xx_0] etch exception ti.sysbios.family.c64p.Exception: line 248: E_exceptionMin: pc = 0x00000000, sp = 0x0081e418. To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint =[C66xx_0]  true;' xdc.runtime.Error.raise: terminating execution

     

     

  • Hmmm...

    Can you share the configuration file contents related to the MemoryProtect module settings?

  • I'm thinking that this feature is not supported by the chip.

    just added...

    Bit more research, 7.3.2.1.3 of sprugw0 states that address 0 to 0x07FFFFFF are not decoded by the mpax, so they are not checked. when I changed the fault address to 0x40000000, I get the error.