eTPU_C
eTPU_C Product News
eTPU | eTPU_CeTPU_C Compiler Update V1.0.7.85
The eTPU C compiler V1.0.7.85 has been released and is available from the customer update depot on Byte Craft's website.
Checking eTPU_C generated code
Submitted by Walter Banks on Wed, 2010-01-27 22:47. assembly | eTPU | eTPU_CTools in your eTPU toolchain may support you by disassembling eTPU_C-generated code. If they report instructions different than eTPU_C's listing file shows, you may be inclined to verify eTPU_C's output by hand.
eTPU machine code is very complex compared to traditional machine language. As a result, we receive support questions from people who have encountered subinstructions they didn't expect.
Some of my code was placed after a jump. Will it ever be reached?
Submitted by Kirk Zurell on Wed, 2009-06-10 15:21. eTPU_CeTPU_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
eTPU_CThese notes apply to previous versions of eTPU_C.
As of 1 September 2005, Byte Craft Limited's corporate address will be:
eTPU2 Support
eTPU2 | eTPU_CByte 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.
I'm getting the error "OVERWRITING PREVIOUS ADDRESS...Conflict in location of entry table". What's wrong?
Submitted by Kirk Zurell on Thu, 2007-11-22 15:32. eTPU_CThere 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.
What registers are available for inline assembly?
Submitted by Kirk Zurell on Thu, 2007-11-22 15:18. eTPU_CThe DIOB, A, P in all of its forms (p31_0, p31_16, and so on) are all available for inline assembly essentially without any issues.
The B register is used as a temporary location in expression processing. It is usually freed by the end of a C statement, allowing inline assembly.
How do I perform a read_mer or read_mer12 operation?
Submitted by Kirk Zurell on Thu, 2007-11-22 15:16. eTPU_CUse the read_match() intrinsic function.



eTPU_C:
C6808: