| Title: INTERNAL ERROR: Could not schedule any instruction | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04205 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionCompiler sometimes generates an internal error of this kind : INTERNAL ERROR: Could not schedule any instruction This usually occurs at higher optimization levels( -o2 and -o3) and can be worked around by using lower optimization. | |||
| Title: Speculative execution option (-mh) incorrect | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04214 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: Reported live across number reported with the -mw option is incorrect | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04231 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: Compiler removes an instruction from code before a software pipelined loop | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04233 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: array indexing with _ext() intrinsic broken | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04250 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description_ext intrinsic does not always work correctly when used in array index. Actually, any variable used to index into an array of structures has a good chance of not working in release 2.00. | |||
| Title: Using a pointer to access an array of >= 32 with in a structure with optimization 2, results in an error. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04262 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionWhen using a pointer to access an array of >= 32 words within a structure the compiler produces an error when using optimisation level 2. | |||
| Title: Very long cl6x command line mishandles spaces embedded in options | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04308 | Compiler | V2.00 | Fix scheduled to appear in version 2.10. |
Bug DescriptionNew parser reads -d command line options incorrectly when a command file is needed because of the command length. | |||
| Title: assembly optimizer allows memory bank hit | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04312 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe assembly optimizer mistakenly treats all byte memory accesses as if they were short accesses; this can lead to a memory bank hit. | |||
| Title: incorrect delay slots when writing to ICR | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04317 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler ignores the required delay slot between a write to either ISR or ICR and a read from IFR. | |||
| Title: PC and solaris versions of .asm files are different when a 'c' file is compiled on PC and solaris. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04341 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionWhen a 'c' file is compiled on a PC and on solaris using v2.0 compiler, the resulting .asm files (PC and solaris versions) are different. Used the following compiler switches: cl6x -o3 -oi0 -mh -mi -mx -k | |||
| Title: Crashes when included code is compiled on PC | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04357 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: M unit conflict for C67xx | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04374 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler improperly models the interaction of the pipeline behaviors of 16x16 multiplies and float/32x32 multiplies. This is demonstrated by the shorter file ex.sa enclosed. | |||
| Title: PATH not correctly set when installing v2.0 on a PC | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04632 | Compiler | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: _nassert intrinsic does not always pass information to optimizer. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04733 | Compiler | V2.00 | Will fix in a future release |
Bug DescriptionThe _nassert() intrinsic does not always pass the given information to the optimizer. | |||
| Title: Incorrectly uses predication on if block which contains "asm" statements | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04866 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionIf the compiler removes a "if" statement by predicating the instructions contained, any asm() statement inside the "if" will not be predicated, effectively moving it outside the "if". Workaround: do not use asm() statements. | |||
| Title: Use of DATA_SECTION pragma can lead to illegal assembly output | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04867 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug Description | |||
| Title: Sometimes the -mw loop comment block gets deleted | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04877 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionBUG DESCRIPTION =============== | |||
| Title: compiling code with -o3 sometimes results in erroneous use of X unit | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04883 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionWhen using optimization levels of -o2 and -o3, the compiler sometimes generates incorrect assembly code which results in the erroneous use of X unit. | |||
| Title: Compiler does not branch around code that contains an idle instruction. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04884 | Compiler | V2.10 | Will fix in a future release |
Bug Description
When the compiler uses conditional instructions, it will work
fine for all other instructions but IDLE. It will execute the
idle instruction even though you cannot make an idle instruction
conditional on the C6x.
The compiler should always branch around code inside any "if/then"
statement that contains an idle command.
Workaround:
-----------
use a function :
void sleep () {asm("\tidle");}
| |||
| Title: Incorrectly sign extends unsigned short expression | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04982 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThe compiler treats the unsigned short array index expression as though it were an int. This bug can happen if you have an int expression cast to short used to access an array. | |||
| Title: compiler sometimes produces incorrect code when compiled with -o2 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04995 | Compiler | V2.10 | Will fix in a future release |
Bug DescriptionThe compiler sometimes produces incorrect code when compiled with optimization level 2. | |||
| Title: When using -o compiler generates incorrect code for pipelined loops | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05075 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThere is a register live-too-long in the generated loop. The software pipeliner should detect these problems and move on to the next iteration interval, but there is a bug in the representation of the double-precision math instructions for C67x. The live-too-long check does not understand that these instructions read registers in more than one cycle. This problem is restricted to C67x double-precision operations. This bug does exist in the 1.10 and 2.00 compilers, but it was masked by a large recurrence. Now that the compiler is better at aliasing analysis, the bug is exposed. The workaround is to turn off software pipelineing. | |||
| Title: Incorrect code is sometimes produced when using optimization. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05315 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug Description
The compiler will ignore loop-carried memory dependences from a
read to a write (ANTI). This means that any loop which has
code of the following form could be pipelined incorrectly.
This is more likely to show up in short loops. The workaround
is to disable software pipelining with "-mu."
for(...)
{
a[i-1] = ...
... = a[i];
}
| |||
| Title: Compiler produces bad .cinit records (or linker misinterprets them?) | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05615 | Compiler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThe elements in a global array of pointers declared in C are initialized to offset values from the start of $bss rather than physical addresses. | |||
| Title: Core dump occurs when path of a file is greater than or equal to 32. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05800 | Compiler | V2.11 | Will fix in a future release |
Bug DescriptionThe TI C6xtools C cross-compiler hosted on HP-UX core dumps (in the routine 'addfile' according to adb on HP-UX) processing the path of an input C source file. The core dump occurs whenever the total path length of an input file (excluding the root file name) equals or exceeds 32 characters including the leading and trailing slashes. It does not matter how many subdirectories are involved just the total path lenth. This does not happen on the pc and solaris versions. | |||
| Title: The strtod function produces incorrect results. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05817 | Compiler | V2.11 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThe strtod function produces incorrect results. (use this example below showing that "end" contains "mpty" instead of "empty") #include | |||
| Title: In some cases the compiler is not able to parallelize mpysp operations. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05913 | Compiler | V2.11 | Will fix in a future release |
Bug DescriptionIn some cases the compiler is not able to parallelize mpysp operations. This only occurs with -o2 & -o3, works with -o1. Example code: #include | |||
| Title: Incorrect opcode is generated in the .lst file. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq06075 | Compiler | V2.11 | Fix scheduled to appear in version 3.00b. |
Bug DescriptionIncorrect addresses are being generated by the assembler, resulting in the upper bits being lost. MVKH .S1 peri.timer0,A0 ; peri.timer == 0x1800000 Instruction is assembled with peri.timer = 0x800000 | |||
| Title: Conditional array asg has wrong index in software pipeline | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04222 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler is conditionally incrementing the address used to store to lsf. This increment should be unconditional; only the store itself should be conditional. | |||
| Title: Branch removed erroneously - condition reg defined | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04232 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler completely ignored every parallel instruction during branch removal. Typically, parallel instructions rarely reach this stage, except when the user puts parallel instructions directly into the serial assembly code. | |||
| Title: INTERNAL ERROR: register allocation failed | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04247 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler sometimes gives an "INTERNAL ERROR : register allocation failed" message. This happens when a loop counter variable is stored into an array location indexed by the loop counter itself. | |||
| Title: Code generator sometimes generates non-aligned offsets on loads/stores | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04248 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionIn software pipelined loops which mix access sizes to memory, some of the loop transformations performed can cause non- aligned offsets to be generated for address increments. | |||
| Title: INTERNAL ERROR: PACKET ERROR from v2.0 Codegen | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04254 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionDeclaring a static inline function with a static local is illegal. The C parser warning has been changed to a fatal error. | |||
| Title: Incorrect execution of for loop in c6x compiler. Working code in 1.10 may not work in 2.00. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04271 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug Description
Problem: Incorrect for loop execution in version 2.00
Description: Version 2.00 of the C compiler may execute for
loop incorrectly. Code that worked in version 1.10 may not work
in version 2.00.
Workaround:
By changing the loop index variable, it is possible to avoid
this problem.
This code executes incorrectly:
for(k = 0; k <= 79; k+=2)
{
drp[k] = drp[40+k];
drp[k+1] = drp[41+k];
}
This code works:
for(k = 0; k <= 79; k++)
{
drp[k] = drp[40+k];
}
| |||
| Title: Call to function free causes invalid memory access | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04366 | Code Generator | V2.00 | Fix appears in version 2.01. |
Bug Description | |||
| Title: Very large trip counts are treated as signed numbers by software pipelining | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04387 | Code Generator | V2.00 | Will fix in a future release |
Bug Description
Very large trip counts are treated as signed numbers by software
pipelining. The iteration count of a loop will be incorrect. In the
following example the loop trip will be set to -2 rather than
4294967294.
int a[0xfffffffe];
void main()
{
int i;
for (i = 0; i < 0xfffffffe; i++)
a[i] = 0;
}
| |||
| Title: INTERNAL ERROR: Could not schedule any instruction | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04395 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionAs suggested, this is caused by exactly the same bug that is reported in SDSsq04205 (q.v.) | |||
| Title: C6x v.2.00 generates incorrect code that was correct in v.1.10 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04441 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: codegen does not correctly handle CMPxxU instruction and ucst4 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04452 | Code Generator | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe compiler does not correctly handle the CMPxxU instructions with an icon. It generates instructions assuming a 5 bit sign extended immediate value. The assembler then happily assembles it. | |||
| Title: Premature licensing problem with the Free Evaluation tools. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04829 | Code Generator | V2.00 | Will fix in a future release |
Bug DescriptionThere is a problem with premature license expiration in the free C6x evaluation tools. | |||
| Title: Compiler generates data accesses with offset too large | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04927 | Code Generator | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionBUG DESCRIPTION =============== Compiler generates code in the loop with too large an offset from the data page, causing the assembler to fail due to "Offset too large" errors. | |||
| Title: Code generation error in the MnpRcv() function | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04994 | Code Generator | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionUnder certain conditions, the compiler could load a value into a register within a conditional section of the code, and assume that the register is still alive when it leaves that basic block. | |||
| Title: IF stmt will large # of "||" may cause codegen to fail w/stack overflow | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05812 | Code Generator | V2.11 | Fix scheduled to appear in version 3.00. |
Bug DescriptionIf an IF statement contains a large number of OR's ( "||" ) , the code generator may fail with a stack overflow. | |||
| Title: Assembler causes the following error message, Erroneous use of X unit. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05816 | Code Generator | V2.11 | Fix scheduled to appear in version 3.00. |
Bug Description
The following error message is produced by the Assembler:
"test.asm", ERROR! at line 157: [E0800] Erroneous use of X unit
ADDAW .D1 SP,A4,A0 ;|17|
Example of code that produces the error:
int count = 0;
int x(void)
{
return count++;
}
int y(void)
{
return count+=10;
}
main(void)
{
int a[2];
a[x()] += y();
}
| |||
| Title: Very long cl6x command line loses -D directives | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04199 | Assembler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionWhen the shell command line length exceeds 100 characters, including arguments from a command file, any -D arguments could be corrupted. Workaround: keep command lines short, or invoke the assembler separately. | |||
| Title: The assembler swaps the 2 words of a .double in big endian | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04304 | Assembler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe assembler is not swapping the two words of the .double value as it should be for the lddw instruction. The bytes within the words are being swapped correctly, though. | |||
| Title: SUB instruction without functional unit gets inverted. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04389 | Assembler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionWhen the assembler chooses to put a "SUB reg,cst,reg" on the D unit, it will get reversed unless the user put .D as the functional unit spec. The workaround is to always specify the unit on the SUB instruction; the compiler always does this, so it is not an issue for the compiler. | |||
| Title: Complicated macro inside "if 0" block causes false error. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04475 | Assembler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionBUG DESCRIPTION =============== | |||
| Title: ZERO instruction with reversed long register pair crashes assembler | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04477 | Assembler | V2.00 | Fix appears in version 2.10. |
Bug DescriptionWhen ZERO A0:A1 is assembled, the assembler gives an error message about an illegal pair, and then segfaults | |||
| Title: assembler crashes/succeeds based on existence/removal of ; comment | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05051 | Assembler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionBUG DESCRIPTION =============== assembler crashes/succeeds based on existence/removal of ; comment Example: If you remove, add to or shorten the following comment near the top of the file, you can make the assembler succeed or fail. ;; INPUT hello.cdb alkjfdlakjdflakjsfdlkajdfljasdfljasdklfjaldjfalsjdfaljdfkjdflajdflakjdflkajdflkjsdflajdfljasfldjkasdfjalkdfjasdfjsdfj | |||
| Title: Comparing labels can cause the assembler to crash | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05122 | Assembler | V2.10 | Fix scheduled to appear in version 3.00. |
| Title: The -g option doesn't get line numbers right across FP padding NOPS | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05216 | Assembler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionWhen using -g, the line number symbols get inserted incorrectly near fetch patckets that are aligned on the proper boundary using parallel NOPs. | |||
| Title: assembler does not always generate right opcode for 'idle' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05378 | Assembler | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionBUG DESCRIPTION =============== | |||
| Title: .align directive in a .sect will make minimum size of section to align | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05784 | Assembler | V2.11 | Fix scheduled to appear in version 3.00b. |
Bug DescriptionThe .align directive will cause the section size to be a minimum of the specified alignment. | |||
| Title: Idle instruction within .proc section causes codegen phase to die. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04311 | Assembly Optimizer | V2.00 | Fix appears in version 2.10. |
Bug Description
When code containing an idle instruction within a .proc/.endproc
section is passed to the assembly optimizer, it generates the
following error on a PC:
>cl6x code.sa
{code.sa}
TMS320C6x Assembly Preprocessor Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
"code.sa": ==> idle1
TMS320C6x ANSI C Codegen Version 2.00
Copyright (c) 1996-1998 Texas Instruments Incorporated
"code.sa": ==> idle1
| |||
| Title: The asm opt will sometimes ignore that a register is live across a .proc/.endproc region. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04342 | Assembly Optimizer | V2.00 | Fix appears in version 2.10. |
Bug Description
The assembly optimizer will sometimes ignore that a register
is live across a .proc/.endproc region. For example:
fft .proc a6
| |||
| Title: Error when using subsections in AsmOpt: "Cluttered identifier operand encountered" | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04419 | Assembly Optimizer | V2.00 | Fix appears in version 2.10. |
Bug Description
When a subsection is specified within a serial assembly file, as shown,
and the file is passed through the codegen tools, the final assembly
generates the error "E0003: Cluttered identifier operand encountered".
.sect ".text:psa"
myfunc: .cproc value, shift
SHL .S2 value,shift,value
.return value
.endproc
| |||
| Title: ADDAD instruction assembled as ADDAW instruction. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04425 | Assembly Optimizer | V2.00 | Fix appears in version 2.10. |
Bug Description
The ADDAD instruction when used in a linear assembly file is
assembled to a ADDAW instruction. For example:
.global test
test: .cproc
.reg base, ptr, offset
mvk 0x80004300, base
mvkh 0x80004300, base
mvk 0x1, offset
addad base, offset, ptr ; expect ptr = 0x80004308
.return ptr
.endproc
here: b here
nop 5
is assembled to be:
.line 4
MVK .S1 0x80004300,A0 ; |6|
.line 5
MVKH .S1 0x80004300,A0 ; |7|
.line 6
MVK .S1 0x1,A3 ; |8|
.line 7
ADDAW .D1 A0,A3,A4 ; |9|
.line 10
B .S1 L3 ; |12|
NOP 5
| |||
| Title: INTERNAL ERROR: register allocation failed | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04525 | Assembly Optimizer | V2.00 | Fix appears in version 2.10. |
Bug Description | |||
| Title: MPYs treated as 4-cycle instructions instead of 2cycle | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04730 | Assembly Optimizer | V2.00 | Fix scheduled to appear in version 2.10. |
Bug DescriptionBUG DESCRIPTION =============== MPY instructions are being treated as though they take exactly 4 cycles, by the assembly optimizer, and only in C67x mode (-mv6700). This can lead to hardware conflicts and incorrect code. | |||
| Title: SUB incorrectly placed on D unit | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04908 | Assembly Optimizer | V2.10 | Fix scheduled to appear in version 3.00. |
Bug Description
This is related to the fix for SDSsq04389. The assembly
optimizer mistakenly treated SUB scst5,src2,dst as though
it were allowed on the D unit.
Workaround: put functional units on all SUB instructions.
A shorter test case:
fn: .proc A5, A6, A7
SUB 4, A5, A1
SUB 4, A6, A2
SUB 4, A7, A3
.endproc A1, A2, A3
| |||
| Title: request to inline linear assembly functions in C code | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04953 | Assembly Optimizer | V2.10 | Will fix in a future release |
Bug DescriptionEnhancement request for static inlining of linear assembly functions in C code, to avoid function call overhead. | |||
| Title: Incorrect registers setup for complex software pipelined loop | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04985 | Assembly Optimizer | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThe register allocation was incorrect, because of a bug in the software pipeliner. Any time the compiler inserts moves into the kernel (for various reasons), it can generate incorrect code. The workaround is to turn off software pipelining for this loop. | |||
| Title: Assembly Optimizer doesn't handle .loop/.endloop | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05729 | Assembly Optimizer | V2.10 | Will fix in a future release |
Bug Description
The .loop/.endloop in a linear assembly function does not work
correctly. No code is emitted for the function.
Example code to reproduce:
test: .proc A1, A2, A3
.reg Aptr, A, Bptr, B, Cptr, C
mv A1, Aptr
mv A2, Bptr
mv A3, Cptr
.eval 0,x
.loop
ldh *Aptr++, A
ldh *Bptr++, B
add A, B, C
sth C, *Cptr++
.eval x+1, x
.break x=6
.endloop
.endproc
| |||
| Title: The Linker is unable to process file names that have been included. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04878 | Absolute Lister | V2.10 | Fix scheduled to appear in version 2.11. |
Bug Description
The linker is unable to process file names that have been
included, if the filename is in a quoted string,
i.e. "main.obj".
Work around:
------------
Manually remove the double quote characters (") around the .obj
and .lib files within the linker command file and then run lnk500.
Download PC patch
Download Solaris patch
| |||
| Title: When change address in new memory window, original memory window address is changed instead. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04288 | Emulator | V2.00 | Will fix in a future release |
Bug DescriptionIf you create a new memory window (using both the PC and Sparc versions of the emulator) mem 0x1000,,window2 and then try to change the address displayed in window2 using the address field of the window, it will not change the address of window2, but it will change the address of the original memory window. If you close the original window and then change the address in window2, the original window will reappear. This problem also occurs on the simulator. | |||
| Title: Fails to connect to the target DSP just after the target board is powered up. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04294 | Emulator | V2.00 | Fix scheduled to appear in version 2.01. |
Bug Description
The emulator fails to connect with the target DSP right after the target board is powered up.
A dialog box containing the following error message appears.
"Functional Error"
"INT Error -1"
"Cannot initialize target."
"Check I/O."
"Check cabling and target power."
| |||
| Title: cannot load program when using Rev2 C6x board and WinNT | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04309 | Emulator | V2.00 | Will fix in a future release |
Bug Descriptionv2.00 emulator debugger has problems loading files when using a 133 MHz Windows NT machine. The error is usually a "Memory Access Error - Check Memory Map". If the host is a 200 MHz Windows NT machine, this problem is likely to manifest itself more often. | |||
| Title: 'reset' from debugger window does not disable the cache in right order. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04348 | Emulator | V2.00 | Fix appears in version 2.01. |
Bug DescriptionProblem: (v2.0 emulator and rev 2.1 silicon) 'reset' from debugger window does not disable the cache in right order. because of this there will be problems while reloading the code after reset, especially when the cache mode is enabled. | |||
| Title: Reset Failure when breakpoint exists at 0x0 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04450 | Emulator | V2.00 | Fix scheduled to appear in version 2.01. |
Bug DescriptionThe emulator reset command fails when a breakpoint point exists at address 0x0. The command window shows the following error message: "Cannot reset the processor". | |||
| Title: Memory fill command fails with odd start address and word length of 1 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04451 | Emulator | V2.00 | Fix scheduled to appear in version 2.01. |
Bug DescriptionThe emulator debugger hangs when trying to perform a memory fill command with odd start address and length of 1. e.g. fill 0x80000001,1,0x0 | |||
| Title: a user not in the "administrators" group cannot reset emulator in WinNT | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04531 | Emulator | V2.00 | Will fix in a future release |
Bug DescriptionUnder Windows NT, a user who is not in the "administrators" group cannot reset the emulator. They will get the following error : XDS510 RESET FOR WINDOWS NT Version 3.00 Copyright (c) 1995-1997 by Texas Instruments Incorporated XDS510 DRIVER FOR NT IS NOT ACCESSABLE. | |||
| Title: 'debugger watch window does not display variable values correctly.' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04904 | Emulator | V2.00 | Will fix in a future release |
Bug DescriptionThe debugger watch window sometimes displays values of variables incorrectly. | |||
| Title: Error message occurs when using 2.03 of the emulator and 2.11 code gen. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05462 | Emulator | V2.03 | Will fix in a future release |
Bug DescriptionUsing ver 2.03 of the emulator debugger in conjunction with ver 2.11 of the code generation tools, gives memory access errors when loading code. On subsequent loads, it gives the same error but at different addresses. Download PC patch Download the Readme file | |||
| Title: EVM Debugger hangs when sending messages over the PCI bus. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04744 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionEVM Debugger will sometimes hang when sending messages over the PCI bus. | |||
| Title: when attempting to read DRAM by invoking evm6x_hpi_read, the PC hangs. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04779 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionAttempting to read DRAM by invoking evm6x_hpi_read sometimes makes the PC hang. | |||
| Title: Profiling gives Fatal Error: Cannot start target processor. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04958 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionWhen profiling on the C6x EVM Debugger or the C6x XDS-510 Emulator Debugger, the Debugger may give an error similar to: Profiling... Fatal Error: Cannot start target processor Stop Point = 00002684 Func1, at line 152, "code.out" Run Cycles = -243 Profile Cycles = -243 Hits = 99 | |||
| Title: EVM Install Prob. Insert Disk Labelled EVM6x | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05267 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== On using C6x EVM for the first time, if the following message pops up: "The file EVM6x.INF in EVM6X could not be found, Insert EVM6X into drive below, click OK", then follow the following procedure: Insert the EVM into a PCI slot, power up Just inserted board for the first time, booting the computer and PlugNPlay has detected the board. Problem sequence: "New Hardware Found" ... Found TI EVM Driver "Copying Files dialog" "Insert Disk labelled 'EVM6x", <------- Problem beginning hit OK "Copying files.." pops up briefly then "The file EVM6x.INF in EVM6X could not be found, Insert EVM6X into drive below, click OK", the text box which appears has D:\cab5 in it. If this is not replaced by e: (the location of the CDROM) then you can't install the driver. | |||
| Title: Grey OK Button (hit next before inserting CDROM) | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05268 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== Insert the EVM into a PCI slot, power up Just inserted board for the first time, booting the computer and PlugNPlay has detected the board. Insert the card, "New Hardware Found" PCI CoProcessor... Hit Next | |||
| Title: 10 minute delay obtaining incomplete EVM driver info in Device Manager | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05269 | EVM | V1.10 | Will fix in a future release |
Bug Description
BUG DESCRIPTION
===============
In Windows Device Manager (Start->Settings->Control
Panel->System->Device Manager->Other PCI->EVM 6x,
Properties, Driver tab) asking for the driver information
shows
Provider: Not available
Date: 3-31-1998
Version: Not available
Additionally, when you hit the resources tab, it takes
about 10 minutes to come up with the values
(on a Pentium 90). Most users think the system is froze
and there is something wrong with the driver.
| |||
| Title: Running EVM6xrst with CC Studio won't always reset the board | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05303 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== on NT. CCS is running, program will not Debug->go main. try start->texas instruments dsp->Reset EVM. No avail (try 3 times). Go to dos box, hunt endlessly for the directory of evm install, run evm6xrst.exe Error can't reset Jtag. Exit CCS, run evm6xrst.exe, reset OK. Run CCS run evm6xrst, reset OK | |||
| Title: EVM6x drivers don't install (windows can't see the files) | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05478 | EVM | V1.10 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== When installing the EVM6x software, there may be problems installing the necessary drivers. If the EVM6x is installed in a clean machine (only windows 95 osr2 installed), and V1.1 EVM6x CDROM is inserted, Windows might be unable to find the drivers. If you use 'Browse' to find the drivers, the OK button remains greyed out. | |||
| Title: hex6x -order M (MS) and -order L (LS) have no effect on code. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04340 | Hex Converter | V2.00 | Will fix in a future release |
Bug DescriptionThe hex6x -order M (MS) and -order L (LS) switches have no effect on the code generated. Identical files are generated. | |||
| Title: printf format conversion bugs | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04390 | RTS | V2.00 | Fix appears in version 2.10. |
Bug DescriptionThe printf() routine is not zero-padding floating point numbers, such as "%06.2f". Additionally, trying to print the NULL character to a stream does not work (nothing is printed). | |||
| Title: RTS functions readmsg()/writemsg() use 'volatile' incorrectly. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04393 | RTS | V2.00 | Fix appears in version 2.10. |
Bug DescriptionRTS functions readmsg() and writemsg() declare their pointers to the CIOBUF as "register unsigned char * volatile p". This declares the pointers themselves as being volatile, rather than the data being pointed to. The result is inefficient and potentially incorrect code in the heart of the CIO mechanism. (The CIOBUF itself *is* volatile, since the host will be reading it and writing to it independently of the target.) These should be declared as "register volatile unsigned char *p" in writemsg(), or "register const volatile unsigned char *p" in readmsg(). (The CIOBUF is not modified by readmsg, therefore the pointer may be to const data, providing even greater efficiency.) On a side note: The pointer arguments to writemsg(), "unsigned char *parm" and "char *data", may be marked const, since these should never overlap CIOBUF, and writemsg() never writes through these pointers. Marking these as 'const' improves the performance of writemsg() considerably. | |||
| Title: fwrite() calls memchr() on every call regardless of buffering mode | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04394 | RTS | V2.00 | Fix appears in version 2.10. |
Bug DescriptionIn the runtime sources, fwrite() calls memchr() to find a newline in the buffer being written on every fwrite() call, regardless of whether the stream is line-buffered or not. This call wastes a considerable number of cycles on large fwrite()'s. | |||
| Title: In the v. 2.00 rts.src, there is defect involving stack pointer initialization. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04707 | RTS | V2.00 | Will fix in a future release |
Bug DescriptionIn the v. 2.00 rts.src, there is defect involving stack pointer initialization: If a user enters in a value for the stack size that is not divisible by 8, there is not enough bytes between the first stack location and the end of stack to hold a double. This could be pretty dangerous. For example, if one used "-stack 0x4ffc" in the linker command file, the stack will start at address 0x????4ff8 and the variables in .bss begin at 0x????4ffc. So if a doubleword is stored as the first thing on the stack, it will overwrite the start of the variables. | |||
| Title: Need to add #undef _INLINE to ceil.c, ceilf.c, floor.c, floorf.c | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05258 | RTS | V2.10 | Fix scheduled to appear in version 3.00. |
Bug DescriptionBUG DESCRIPTION =============== The files ceil.c, ceilf.c, floor.c, and floorf.c do not have the line "#undef _INLINE" in them. Because of this, when the user tries to use the library build utility "mk6x" to rebuild the RTS library with the -x or -ox options, the compile fails. Anything inlined in "math.h" needs to have the "#undef _INLINE" in the corresponding source files. | |||
| Title: Read() or write() > than 256 chars. overflows CIO's internal comm buffer | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05919 | RTS | V2.11 | Will fix in a future release |
Bug DescriptionThere's a bug in the RTS CIO routines in which a read() or write()larger than 256 characters can overflow CIO's internal communication buffer and crash the program unexpectedly. Note that this bug also causes a problem for "load6x": It reports receiving a "corrupt CIO message": (Note: This bug is the same as SDSsq04392) | |||
| Title: MC command description is incorrect in Debugger User Manual. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04328 | Documentation | V2.00 | Will fix in a future release |
Bug Description
The documentation for the MC command is incorrect on p 12-31
in the C Source Debugger User Manual, SPRU188D. It should say:
Syntax
mc port address, page, length, filename, {READ | WRITE}
The documentation leaves out the {READ | WRITE} parameter.
Also, the MC command is only supported in the simulator, but it
does not appear in either of the simulator *.hlp files. It
only appears (correctly) in the emulator *.hlp file.
| |||
| Title: CPU & Instruction set guide should be more explicit on certain rules | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04486 | Documentation | V2.00 | Will fix in a future release |
Bug DescriptionThe CPU and Instruction Set Reference Guide ( SPRU189C) does not explicitly state that, for certain instructions, if internal program RAM is used as either a source or destination, the operation result is undefined. | |||
| Title: doc does not describe remote entity accessing host port interface | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04487 | Documentation | V2.00 | Will fix in a future release |
Bug DescriptionA remote entity accessing a TMS320C6xxx through the host port interface attempting to read internal program ram will have undefined results. This is not documented in the host port interface description( Pg 5-1 to 5-26) of the TMS320C62x/C67x Peripherals Reference Guide( spru190b ). | |||
| Title: Assembly optimizer is requiring functional units for parallel instructions within a section of code. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04518 | Documentation | V2.00 | Will fix in a future release |
Bug Description
Assembly optimizer is requiring functional units for parallel
instructions within a section of code.
When using parallel instructions, this error is produced:
*** ERROR! line 7: E0800: Illegal parallel instruction
(functional units conflict)
Workaround: Enter at least on of the functional units, the code
will then compile completely.
The documentation needs to be corrected to inform users that parallel
bars are illegal in serial assembly.
| |||
| Title: no info about DCC field in CSR in Peripherals Guide | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04561 | Documentation | V2.00 | Will fix in a future release |
Bug DescriptionThe TMS320C62xx CPU and Instrcution Set (SPRU189B) Guide, page 2-9, documents the CSR's control and status bits. The fields mentioned are EN, PWRD, PCC, and DCC. This Guide refers to the TMS320C62xx Peripherals Reference Guide for more info, but when you reference the Peripherals Guide, SPRU190B, there is info about all fields except the DCC field. | |||
| Title: The relocation types in the Assembly Lang. Tools guide on pg. A-10 are incorrect. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04697 | Documentation | V2.00 | Will fix in a future release |
Bug Description
The table listed on page A-10 of the C6x Assembly Language
Tools Guide is wrong. The last 3 entries are wrong.
They are listed as :
R_C60LO16 0053h
R_C60HI16 0054h
R_C60SECT 0055h
They should be :
R_C60LO16 0054h
R_C60HI16 0055h
R_C60SECT 0056h
| |||
| Title: C Compiler Manual PDF file contains invalid page. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04816 | Documentation | V2.00 | Will fix in a future release |
Bug DescriptionPage 8-27 in the PDF version of the C6x C Compiler Manual SPRU187C should not be included. This page is not in the hardcopy of the manual. | |||
| Title: Documentation error on page 7.22 in the Optimizing 'C' compiler manual. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04894 | Documentation | V2.10 | Will fix in a future release |
Bug Description
In the "Optimizing C Compiler User's Guide", spru187c, there is an
incorrect statement regarding bit fields.
On page 7-22, the documentation states:
"Note that the 'C6x C compiler operates on bit fields defined as
unsigned ints. Signed int bit field definitions are prohibited."
However, the documentation on Page 7-3 specifically states that a "bit
field defined as an integer is signed," which directly conflicts with
the prohibition on page 7-22. Also, the example on page 8-12 shows a
bit-field structure with signed bit fields.
So, it appears that the statement on page 7-22 is both incorrect and
unnecessary.
| |||
| Title: Optimizing C Compiler User's Guide (SPRU187C) contains conflicting descriptions of the stack pointer use. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04983 | Documentation | V2.10 | Will fix in a future release |
Bug DescriptionThe TMS320C6x Optimizing C Compiler User's Guide (SPRU187C) contains conflicting descriptions of the stack pointer. In section 8.1.2 C System Stack, it states "B15 is the stack pointer (SP), which points to the current top of the stack (the lowest address used)." The SP as used by the C compiler points to the next unused location on the stack. The description of SP initialization states "At system initialization, SP is set to a designated address for the top of the stack. This address is the first location past the end of the .stack section." The correct description of SP initialization is that the SP is set to the first 8-byte aligned address BEFORE the end (highest numerical address) of the .stack section. | |||
| Title: The SBSRAM cycles are not being counted the same as when counted on the hardware. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04277 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionThe Simulator, Rls 2.00, is not simulating the SBSRAM cycles the same as the hardware. It seems to double the cycles of a loop and ignore the alignment of fetch packets. | |||
| Title: Changing the sim6x.cfg to boot from DMA, worked in version 1.x Give's Error's. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04318 | Simulator | V2.00 | Will fix in a future release |
Bug Description
Customer using Sim6x version 2.x
When the Sim6x.cfg file is modified to change Bootsrc from
NONE to DMA, it generates the error:
init error -1, Can't Initilize Target, Check Power and I/O
In command window:
Configure error invalid bootsrc DMA
This worked in version 1.x simulator.
| |||
| Title: Simulator allows data to be read from internal program memory | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04319 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionLinking the .cinit section to internal program ram and running it on V 2.00 of the simulator, the simulator will allow you to pull data from the .cinit tables in program ram and load them into .bss. The simulator should not allow data accesses into internal program memory. | |||
| Title: SSHL is shifting by 6 bits of src1. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04349 | Simulator | V2.00 | Will fix in a future release |
Bug Description
Run on version 2.00 sim62x:
MVK 0xd4e1da11,A0
MVKH 0xd4e1da11,A0
MVK 0xdc51b261,A1
MVKH 0xdc51b261,A1
SHL A0,A1,A2
SSHL A0,A1,A3
Expected result for A3 is: 0xa9c3b422, SAT bit not set
sim62x result is: 0x00000000, SAT bit not set
| |||
| Title: External events not recognised correctly by simulator | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04371 | Simulator | V2.00 | Will fix in a future release |
Bug Description
Simulating external interrupts (pins int4-int7), in C62xx
simulator v2.00 does not work:
If the following interrupt timing file is connected to the int4
pin using the pinc command:
300 (+500) rpt EOS;
and C I/O is used, the simulator correctly recognizes the first
interrupt generated, but the interrupts generated after the
first one are not recognized by the simulator.
| |||
| Title: M unit conflict is generated in the simulator. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04380 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionM unit conflict is generated by the simulator when using 2 MPYHSLU instructions in a row with only 1 cycle between them. | |||
| Title: Although execution is correct, the simulator displays an incorrect register value. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04386 | Simulator | V2.00 | Will fix in a future release |
Bug Description
In the 67x simulator disassembly window, the instruction
ADDAD.D1 A4, A3, A0
is executed correctly, but decoded and displayed as
ADDAD.D1 A4, B3, A0
The associated hex value is 0x000c9e40.
The problem is easily reproduced by entering the opcode in a
memory window and disassembling that opcode. At any address in
the memory window, enter 0x000c9e40. Then disassemble this
address and you will see it decoded as
ADDAD.D1 A4, B3, A0 .
This is wrong and can be seen by putting some values in
registers A4, A3, and B3, and executing this instruction. You
will see the addition performed using A4 and A3, not A4 & B3 as
the disassembly says.
If you decode the 0x000c9e40 opcode by hand you will also see
the error.
| |||
| Title: The C6200B01 Compile4 Netmodel does not load correctly into ModelSim (MGC QuickHDL Replacement). | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04528 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionThe C6200B01 Compile4 Netmodel does not load correctly into ModelSim (MGC QuickHDL Replacement). | |||
| Title: simulator locks up when trying to simulate SDRAM timing | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04692 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionThe simulator sometimes locks up when trying to simulate SDRAM timing. | |||
| Title: Simulator gives error when .text and .cinit are in different locations | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04717 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionWhen using EMIF, the simulator gives an error about access to reserved memory, when .text and .cinit sections are placed in different memory locations. | |||
| Title: stand-alone simulator load62x does not interpret ST||LD instruction correctly | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04880 | Simulator | V2.00 | Fix scheduled to appear in version 3.00. |
Bug DescriptionThe stand-alone simulator, load62x does not properly prioritize reads ahead of writes when the two are in parallel. So when you have a STW||LDW instruction, load62x results in an incorrect result. This has been fixed in the 3.00 Alpha simulator | |||
| Title: Problems assigning values to bit fields in a structure. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04897 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionSometimes there are problems assigning values to bit fields in a structure. The structure, which contains several unsigned fields one bit long, does not seem to respond to statements which assign values to it. For example, the statement outgoing_indicator.febe = 0x1 does not assign 1 to the bit field. It remains 0, the initial value. | |||
| Title: bit fields are not displayed correctly in the watch window. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04900 | Simulator | V2.00 | Will fix in a future release |
Bug DescriptionThe simulator watch window sometimes displays values of variables incorrectly. | |||
| Title: 'In the simulator, if you disconnect a pin and reconnect it again, it does not work.' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04644 | Simulator | V2.01 | Will fix in a future release |
Bug Descriptionwhen in the simulator, if you disconnect a pin (using pind command) and reconnect it again (using pinc command), it does not work (no interrupt is generated). | |||
| Title: The SMPY instruction does not work in V2.01 simulator. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05368 | Simulator | V2.01 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== The SMPY instruction of C6x does not work correctly in v2.01 Simulator. The lower 16-bits of the result are correct while the top 16 bits are either 0000 or FFFF. The previous version v2.00 Simulator works correctly for SMPY. | |||
| Title: mpysp and mpydp operations do not work after a call to rand() | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05373 | Simulator | V2.01 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== The simulator does not correctly update the results of mpysp and mpydp operations after a call to the rand() function. | |||
| Title: simulator does not always do DMA transfer correctly | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05547 | Simulator | V2.01 | Will fix in a future release |
Bug DescriptionThe simulator sometimes does not perform DMA transfer from external memory to internal data memory correctly. | |||
| Title: When change address in new memory window, original memory window address is changed instead. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04287 | Debugger | V2.00 | Will fix in a future release |
Bug DescriptionIf you create a new memory window (using both the PC and Sparc versions of sim62x and sim62xfast) mem 0x1000,,window2 and then try to change the address displayed in window2 using the address field of the window, it will not change the address of window2, but it will change the address of the original memory window. If you close the original window and then change the address in window2, the original window will reappear. This problem also occurs on the emulator. | |||
| Title: Simulator or emulator errs when loading files linked with "-cr" linker option | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04305 | Debugger | V2.00 | Will fix in a future release |
Bug DescriptionIf you link C code with the "-cr" linker option, the simulator or emulator will not initialize global variables to the proper values. The alignment of .cinit records changed from 4 bytes in tools revision 1.10 to 8 bytes in tools revision 2.00. This change was accounted for in the compiler boot routine handling of global variable initialization, but the corresponding change was not made in the loader portion of the emulator and simulator. The workaround is to link with "-c" instead of "-cr". | |||
| Title: Problem when 2 or more XDS510WS are connected in a series, the last one does not stay connected. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04355 | Debugger | V2.00 | Will fix in a future release |
Bug DescriptionWhen 2 or more XDS510WS's are linked in a series, the last XDS510WS is not being seen by the workstation. | |||
| Title: The debugger prints out an extra character between calls to HOSTwrite | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04639 | Debugger | V2.00 | Will fix in a future release |
Bug DescriptionI/O does not always work correctly on the debugger simulator. The debugger prints out an extra space between characters that get printed using the HOSTwrite() function. | |||
| Title: Profile mode gives windows error when directory length > 63 characters. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04746 | Debugger | V2.01 | Will fix in a future release |
Bug DescriptionThe PC simulator and emulator (v2.01) as well as the EVM debugger (v1.10) crashes when profiling a file when the directory name is longer than 63 characters (including the drive letter). For example, the directory: V:\directory0\directory1\directory2\directory3\directory4\direc> is fine but the directory: V:\directory0\directory1\directory2\directory3\directory4\direct> dies with a message similar to: sim6x.exe - Application Error The instruction at "0x00450022" referenced memory at "0x00000009". The memory could not be "written". sim6x.exe - Application Error The instruction at "0x6c0031c3" referenced memory at "0x00000008". The memory could not be "read". The file runs correctly when not profiling. This occurs on both the EVAL tools and the full release. | |||
| Title: Debugger does not display long variables in hex format | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05755 | Debugger | V2.01 | Will fix in a future release |
Bug DescriptionThe debugger does not display long variables in hex format correctly. Also long values which are elements of an array are not displayed correctly through a wa or disp command. For example : 1) If you have a long declaration: long w = 15; then it is not possible to display w in hex format. The command 'wa w,,x' results in w = 15. Using the Setup->Watch menu gives the same result. It is also not possible to change the standard display format by "setf long, x". 2) long values which are elements of an array are not displayed correctly through a wa-/disp-instruction: If you have a long-array declaration: long LL[5]; and the array is initialized, then using 'wa LL' or 'wa (long *)LL', does not display the correct values in the simulator. | |||
| Title: Loading code built for the 6701 produces "invalid coff file" error using | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05737 | Debugger | V2.03 | Will fix in a future release |
Bug DescriptionLoading code that is built for the 6701 into the Code Composer Emulator , results in an "invalid coff file" error. This problem only exists under CC EVM/emulator driver version 2.03. It does not exist under TI debugger release 2.03. Download PC patch | |||
| Device: TMS320C6x
Category: TI Tools |
Title: TMS320C6x Tools
Bug List
Source: TI SDS Autogen Errata List GenId: c6xbug |