Here's a question for the EmbSysRegisters experts out there:
How does EmbSysReg read peripheral registers? The reason I ask is that there are peripheral registers, such as POPR in the SPI peripheral, that pull a word of data out of a FIFO when they're read. If EmbSysReg reads this register using the same method application code uses, it will "consume" one word of data from the RX FIFO every time it reads the POPR register. That data then disappears from the perspective of the application code.