How can I use asm in the S32DS?
instead of NOP instruction you can use one of these:
If you want to read/write from/to registers r0-r31, you have to use %.
asm("mtspr 268,%r3 ");
asm("mfspr %r3, 268 ");
Also e_li instruction has to have this format:
asm("e_li %r3,0 ");
Thank you Martion,
Do you have the doc of e200z420? Dose e200z420 have the time base register? Because when I execute "asm("mtspr 284, %%r3 \n\t"::);", it will occur IVOR6 exception.
// Clear Timebase
asm("e_li %%r3, 0 \n\t"::);
asm("mtspr 284, %%r3 \n\t"::);
/* read tbl */
asm("mfspr %%r3, 268 \n\t"::); /* TBL */
e200z420 does not contain time base register. This feature is not implemented in the core. I have e200z420 core reference manual, but I cannot share it here, because it is confidential.
But if you need it, please create case and some responsible person will send you the manual.
If you don't want to add prefix "%" when referring to the core registers you can add the compiler switch -Wa,-mregnames.
Now your inline asm statements like asm("e_li r3,0") should be accepted.
Hope it helps.
Retrieving data ...