In our SPA document, there is a table to describe general exception,as:
Attachment:
General Exception.png [ 57.19 KiB | Viewed 13583 times ]
For Etype => Trap , If use instruction “trap”, it will occur;
For Etype => Reserved value, if software try to write a reserved cpu register, it will occur;
For Etype => Reserved instruction, if software try to use a reserved instruction, it will occur;
For Etype => Arithmetic, if software use a value to divide 0, it will occur;
For Etype => Precise bus Error, if software try to read an invalid memory, it may occur;
For Etype => Imprecise bus Error, if software try to write an invalid memroy, it may occur;
For Etype => Privileged instruction, if in user mode and use privileged instruction, it will occur;
(For Precise/Impresice bus error, it means bus arbiter or device report Error to CPU. Exclude invalid memory, unaligement is also a reason.)
When a General Exception accurs,user can check ir6 to get the Etype. Then check the IPC (ir9) to get the PC address which CPU jump from. As we get Etype and the instruction which lets AndesCore jump to general exception, it's likely to find out root cause. If not, please contact your Andes techical support window to get more consult.