Interrupts (Outside the scope of ANSI C but pretty fundamental to a lot of embedded code).....
Really, you need to know C plus a reasonable amount of computer architecture and the common ways the 'implementation defined' bits of the C standard map onto the hardware.
Some understanding of linkers is helpful, as you will surely end up needing to write custom linker scripts.
Have a look at the MISRA standards for automotive C, last time I looked at them they did not all make sense, but they did provide a rough guide as to what you should think twice about doing in an embedded context.
Regards, Dan.