s-matyukevich/raspberry-pi-os

[Lesson 3] rpi-os. A slip of the pen in Exception vectors

zuocaijian opened this issue · 1 comments

Thank you for opening such an excellent project, I learned a lot from it. And I‘d like to confirm with you whether there is a mistake here:
https://github.com/s-matyukevich/raspberry-pi-os/blob/master/docs/lesson03/rpi-os.md#exception-vectors:

In total, we need to define 16 exception handlers (4 exception levels multiplied by 4 execution states) A special structure that holds addresses of all exception handlers is called exception vector table or just vector table.

I think bold text(4 exception levels) should be replaced '4 exception types'.

That's 100% a typo, since it's possible to set different exception vector tables for each of the exception levels (except EL 0, since no exception can be taken to EL 0). And the ARMv8 reference manual section D1.10.2 says :

For exceptions taken to AArch64 state, the vector table provides the following information:

  • Whether the exception is one of the following: Synchronous exception, SError, IRQ, FIQ.
  • Information about the Exception level that the exception came from [...]