eTPU support for hybrid vehicle development

| |

Byte Craft has for the last several months been developing new eTPU
support tools. The eTPU C Code Development System will continue to be
supported for use primarily in automotive engine controllers with
continuing support for eTPU2, new releases and updates.

The last few months we have be visiting customers and outlining some
directions we are adding to our support for the eTPU. Byte Craft is in
the release process of a separate eTPU based tool set that focuses on
other eTPU based applications. Essentially we have been looking at


Freescale eTPU Standard Function Libraries and Function Sets.

| | |

The Freescale eTPU standard library and eTPU function sets were developed using Byte Craft tools. Copies of these tools are available as part of Byte Craft eTPU support.


Checking eTPU_C generated code

| |

Byte Craft's eTPU customers generally use several different tools in their eTPU toolchain. The eTPU has a microcoded instruction set that may display the disassembly of the eTPU's instruction in several ways. The following example came from a conversation with a customer about instruction display formats of various tools that support the eTPU.

Byte Craft chose to display the instructions in the listing file as a functional representation of the instructions. In the following example an add with one side of the alu complimented and incremented is displayed as a subtract in our listings which is both functionally correct and a more compact representation.


printf for embedded

| | | | | |

There's only so much debugging information an LED or LCD display can report. What's worse, embedding debugging code in the executable can provoke misuse, while stripping it out can cause heisenbugs.

Your C compiler can help manage debugging information for you in a way that doesn't interfere with your product. Here's how:


Some of my code was placed after a jump. Will it ever be reached?

eTPU_C is a pipelined processor. It can sometimes process instructions out of order. An jump takes time to process, so the following instruction can be loaded and executed before the jump takes place.

                                           erta = 23;
020C 1C5F2FFE   alu erta = #0x17.
0210                                       ertb = 45;
0210 1CBF3FBE   alu ertb = #0x2D.
0214                                       channel.ERWA = 0;
                                           channel.ERWB = 0;
                                           channel.MTD = 0;

Previous What's New - eTPU_C

These notes apply to previous versions of eTPU_C.


eTPU2 Support


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.


eTPU_C for ColdFire

eTPU for ColdFire

Byte Craft Limited welcomes the ColdFire community.


I'm getting the error "OVERWRITING PREVIOUS ADDRESS...Conflict in location of entry table". What's wrong?

There are two main possibilities:

  • An ETPU_function number is duplicated between two ETPU_functions. Check the #pragma ETPU_function declarations in your program.

  • There are more than 8 ETPU_functions and the entry address table has not been moved. See the #pragma entryaddr directive.

Syndicate content