Hello,
I have a question regarding the stack handling of the C28x controller.
In the manual “TMS320C28x CPU and Instruction Set” on page 28 can be found:
When 32-bit operations read or write a 32-bit value, the C28x CPU expects the memory wrapper or peripheral-interface logic to align that read or write to an even address. For example, if the SP contains the odd address “0000 0083”, a 32-bit read operation reads from addresses “0000 0082” and 0000.
What does “memory wrapper or peripheral-interface logic” mean?
During an interrupt context save (chapter 3.4) the SP is automatically incremented by one. What happens if the SP points before to an even address? In this case the SP would contain an odd address before the registers are saved.