eTPU2 Support

eTPU_C |

Byte Craft Limited has supported the eTPU Enhanced Time Processing Unit since its initial release. Our eTPU_C Code Development System offers C language programming support for this high-performance peripheral processor.

The eTPU2 is a true superset of the eTPU. Programs compiled with eTPU_C will run unchanged on eTPU2. The subinstruction field extensions in the eTPU2 use bits marked "reserved" on the eTPU, which are generated with a default value of 1 by the eTPU_C compiler. We've followed the guidelines as defined by the eTPU's original design documents.

eTPU2 has redefined the coding of some of the fields, but in all the cases the same bit patterns have the same functionality.


The TDL subinstruction field causes eTPU to clear the TDL1 and TDL2 flags. In eTPU2 this field is extended in some instruction formats.

Both eTPU and eTPU2 have a single bit (20) to clear the TDL flags in formats B7/C1/C2. This bit is defined as follows: 0 clears TDL1 and TDL2 flags, 1 means don’t change them.

In formats D5 through D8, which have two bit eTPU2 TDL subinstructions, the definitions are different:

Bit 21 Bit 19 Action
0 0 Clear A
0 1 Clear B
1 0 Clear both
1 1 No action

On the eTPU, bit 21 is a reserved bit, always a 1. The eTPU functionality (changing just bit 19) creates 10 ("clear both") and 11 ("no action"). In this way, code written for the eTPU using the TDL will in all cases execute the same on the eTPU2.


Similarly, some eTPU2 instruction formats have an MRLE field with two bits. In all cases, the subinstruction encoding generated by eTPU_C results in the same functionality on the eTPU2 as the eTPU.