This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C2000 Program counter(PC) issue

Everyone know PC is byte address whatever this MCU is 8bit,16bit or 32bit. BUT as for c2000,it seems not true.

  • anybody can explain why? 

  • The PC does not always have to correspond to a byte address (although it almost always does), this is architecture choice based on the smallest unit of addressable memory.  For C2000, the smallest addressable unit of memory is 16-bits, so the PC counts words and not bytes.

    The C28x ISA has some special move byte instructions which allow reading of a byte, but a byte address is not generated for these instructions.  The ISA designers could have instead chosen to make addresses that corresponded to bytes, and then required the LSB of all addresses to be 0.