| Title: XREF27 utility occasionally generates illegal operation error and exits. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04236 | ANSI Compiler | V1.00 | Fix appears in version v1.10. |
Bug DescriptionThe v1.0 xref27 utility occasionally generates an illegal operation error on Windows 95 and a Dr. Watson error on Windows NT. | |||
| Title: c27xx v.1.00 Problem including library files math.h and float.h simultaneously in C program . | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04490 | ANSI Compiler | V1.00 | Fix appears in version 1.00. |
Bug DescriptionAn instance has been found where, for a short C program, the compiler won't allow both float.h and math.h to be included in the file simultaneously. If math.h is included, float.h produces an error. Without math.h, float.h is included as normal. The error produced is "cannot open include file | |||
| Title: v.1.00 c27x compiler generates an incorrect constant. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04519 | ANSI Compiler | V1.00 | Fix appears in version 1.00. |
Bug Description
The 1.00 c 27x compiler can generate incorrect constants. For
example, the two C instructions
int a= 9999*32768 /10000;
int b= 9999*32767 /10000;
will generate the following constants:
a = 0x7ffc (expected)
b = 0x2 (incorrect --- 0x7ffb is expected)
| |||
| Title: -o option of the compiler causes stack corruption. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04520 | ANSI Compiler | V1.00 | Fix appears in version 1.00. |
Bug Descriptionproblem:-o option of the compiler causes stack corruption. When a file is compiled with command line compiler options "-skg -al". The code runs fine. But when the code is compiled with the -o option: "-skgo -al", a run time stack corruption occurs and a variable is stored incorrectly even though it was calulated correctly in the ACC. | |||
| Title: The compiler will emit the shift instruction 'SFR ACC,0' which is not a legal ankoor instruction | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04537 | ANSI Compiler | V1.00 | Fix appears in version 1.10. |
Bug DescriptionGiven the mod operation 'num % den' and: 1. num is either an int, unsigned int, or long variable 2. den is an immediate value that is exactly 65536 3. optimization is not used The compiler will emit the shift instruction 'SFR ACC,0' which is not a legal ankoor instruction. Workaround ---------- The workaround is that when num is int or unsigned int the mod operation will just return num anyway, so remove the mod operation. Where num is long the workaround would be to change num to unsigned long or use the optimizer. | |||
| Title: compiler is incorrectly calculating offsets for array MSB accesses | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04663 | ANSI Compiler | V1.00 | Fix appears in version 1.30. |
Bug DescriptionThe compiler may incorrectly calculate offsets for array MSB accesses. | |||
| Title: Version 1.00b - C-Compiler does not interlist C and assembly code for some functions. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04815 | ANSI Compiler | V1.00 | Fix scheduled to appear in version 2.0. |
Bug DescriptionThe C-Compiler is working correctly, it is not interlisting the C and assembly code for some functions. The compiler usually interlists assembly and C code for each line of C except when a C label is present when it interlists a block of C code with its assembly code. | |||
| Title: The runtime function strftime could display the year incorrectly for a date past the year 1999. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04869 | ANSI Compiler | V1.00 | Fix appears in version 1.30. |
Bug DescriptionThe runtime function strftime could display the year incorrectly for a date past the year 1999. The year field will contain 3 digits such as 101, instead of 01 for the year 2001. This could occur in calls to strftime(). NOTE: This is same as bug # SDSsq04151. | |||
| Title: compiler fails with internal error when declaring 2-D array of far type | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04735 | ANSI Compiler | V1.10 | Fix appears in version 1.30. |
Bug DescriptionThe compiler fails with the following error if a 2-dimensional array of far type is declared : INTERNAL ERROR: no match for PLUS | |||
| Title: Time and date functions may give erroneous results. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04790 | ANSI Compiler | V1.10 | Fix appears in version 1.30. |
Bug Description
Due to the 16-bit integer implementation, attempts to use the
time and date functions will sometimes give erroneous results.
Affected functions include but are not necessarily limited to:
gmtime()
localtime()
ctime()
| |||
| Title: A valid 'C' code does not compile when -pm option is used (along with -o3 optimization level). | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04895 | ANSI Compiler | V1.10 | Fix appears in version 1.30. |
Bug DescriptionWhen trying to compile a file using the -pm option, the compiler tried to invoke "ilink" and could not find it. There doesn't seem to be such an application with this version (V1.10a) of the codegen tools. The exact command line is: cl27 -pm -o3 -op1 | |||
| Title: High byte of word zeroed out when making low byte of word assignments. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04905 | ANSI Compiler | V1.10 | Fix scheduled to appear in version 2.0. |
Bug DescriptionHigh byte of word is zeroed out when making low byte of word assignments. This only happens when using an assignment from another structure. Immediate values work correctly. Workaround ---------- Reversing order of assignments works properly when using another structure to make assignments. | |||
| Title: -pdf option does not always put errors in error file. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05033 | ANSI Compiler | V1.10b | Fix scheduled to appear in version 3.00. |
Bug DescriptionWhen building a .c file, errors are reported in the DOS shell window (standard error), but not in the | |||
| Title: Add a NOP if the WRITE followed by a READ is to the same Volatile Struct | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05067 | ANSI Compiler | V1.10b | Fix appears in version 1.30. |
Bug DescriptionBUG DESCRIPTION =============== A write followed with a Read to the same memory address on the XINTF will get old data due to the pipeline phases. The proposed fix of having the compiler adding a NOP between the Write Modify Read has to be extended to Volatile structures. If a write to a peripheral register causes changes to other registers in the structure, we will read old data. | |||
| Title: v1.30 does not assemble file which assembled for v1.20 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05135 | ANSI Compiler | V1.10b | Fix appears in version 1.30a. |
Bug Description
BUG DESCRIPTION
===============
The following piece of code gives a "Value of expression has
changed due to jump expansion" error in version 1.30b.
====================================================
Y .set 2
.if Y == 1
X .set 20
.elseif Y == 2
X .set 25
.endif
NOTHING .macro ZN
.eval X+ZN,Z
RPT #Z
|| NOP
.endm
.asg 0,ZONE
.loop 10
NOTHING ZONE
.eval ZONE+1,ZONE
.endloop
==============================================
| |||
| Title: Compiler generates "INTERNAL ERROR: no match for ASG" | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05183 | ANSI Compiler | V1.30 | Fix scheduled to appear in version 3.00. |
Bug Description
BUG DESCRIPTION
===============
The compiler generates an error "INTERNAL ERROR: no match for ASG"
when compiling code using far data pointers.
The compiler is not handling the case of:
func((int far *)(long_constant + var)).
The workaround is to cast the constant to an (int far *) before
involving it in an expression:
func((int far *)(long_constant) + var);
| |||
| Title: CL27 generates internal error when code has elements declared type far. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05190 | ANSI Compiler | V1.30 | Fix scheduled to appear in version 3.00. |
Bug Description
BUG DESCRIPTION
===============
The compiler is not generating an array reference of the type
arr[index], where the array elements are a structure and the
array is far.
Workaround:
-----------
Change the following macro found in sc_defs.h
from:
#define SC_CALC_PTS_LPC(index) { PTSList[index].flags.b.modified = TRUE;
PTSList[index].lpc = ~(PTSList[index].w0.word0 ^ PTSList[index].w1.word1 ^
PTSList[index].threshold ^ PTSList[index].length);}
to:
#define SC_CALC_PTS_LPC(index) { PTS far *temp = &PTSList[index];
temp->flags.b.modified = TRUE; temp->lpc = ~(temp->w0.word0 ^ temp->w1.word1 ^
temp->threshold ^ temp->length);}
| |||
| Title: Inability to handle arrays of dimensions 3 or greater. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05191 | ANSI Compiler | V1.30 | Fix scheduled to appear in version 2.0. |
Bug DescriptionBUG DESCRIPTION =============== CL27.exe generates internal error "INTERNAL ERROR: no match for PLUS" when declaring arrays of 3 dimensions or greater of far type. | |||
| Title: asm27.exe V1.30 does not evaluate expression values correctly. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05193 | ANSI Compiler | V1.30 | Fix scheduled to appear in version 2.0. |
Bug Description
BUG DESCRIPTION
===============
ASM27.exe evaluates the following instruction:
7FFFFFFFh - 07FFFh % 65535
equal 0.
The correct value shuold 've been 7FFF8000h.
Workaround:
-----------
If you mask off the lower 16 bits first then you can achieve the
results 8000h for the following problem.
Example:
mov @address, #((Dummy & 0FFFFh) % 65536)
will produce the correct opcode.
IMPORTANT: This workaround does not work for all cases.
Only if the mod value (65536) is a power of two will this work.
| |||
| Title: compiler generates error messages when optimization is used. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05306 | ANSI Compiler | V1.30 | Will fix in a future release |
Bug DescriptionThe compiler may generate the following error message when optimization is used: "code.c", line 6: INTERNAL ERROR: >>>register allocation failed: Workaround: =========== Remodel the first expression by declaring Multiply1 as a long. | |||
| Title: compiler does not generate .obj file when compiled with -pm option. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05501 | ANSI Compiler | V1.30 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== The compiler fails to generate .obj file when -pm compiler option is used. The ilinker fails to rename its output to the input name. There are no known workarounds for this problem. | |||
| Title: The C compiler produces an undocumented assembly statement. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05564 | ANSI Compiler | V1.30 | Will fix in a future release |
Bug Description
When compiling the following in C:
int a,b,c;
a = ((long)b * (long)c) >> 15;
The compiler produces the following:
SETC SXM
MOV T,*-SP[4] ; |17|
MPY ACC,T,*-SP[3] ; |17|
MOVH *-SP[5],ACC,1 ;
"MOVH *-SP[5],ACC,1" is not a valid syntax. It should be "MOVH *-SP[5],ACC <<
1". The code compiles and runs correctly with both syntaxes, however, the
first one is undocumented and may confuse users.
| |||
| Title: cl27.exe does not initialize the upper word of a far pointer when optimi | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq06012 | ANSI Compiler | V1.30 | Will fix in a future release |
Bug Description
The parser, when handling the cast of an immediate value to a far pointer
treats the value as an int, when it should be treated as a long. This
only affects the handling of immediate values, variables cast to far
pointers are handled correctly.
Example code:
#define MEM_START 0x3F0040L
int TestIt()
{
far int * Ptr = (far int *)MEM_START;
*Ptr = 0;
return *Ptr;
}
Workaround 1
------------
#define MEM_START 0x3F0040L;
int TestIt()
{
long temp = MEM_START;
far int * Ptr = (int far *)temp;
*Ptr = 0;
return *Ptr;
}
When the optimizer is used, there is no code penalty for allocating
local temp. There is overhead if the optimizer is not used.
Workaround 2
------------
Use the linker and not the C program to define hard addresses.
extern far int MEM_START;
int TestIt()
{
far int * Ptr = &MEM_START;
*Ptr = 0;
return *Ptr;
}
Use the linker command file to define the hard address:
_MEM_START = 0x3f0040;
This is probably a better coding practice since it makes the
C program more portable and moves the assigning of addresses
to the linker.
| |||
| Title: Needs to output filename when reporting errors | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04280 | Assembler | V1.00 | Fix appears in version 1.01. |
Bug DescriptionBUG DESCRIPTION =============== Need to output filename when reporting errors | |||
| Title: Linker address checking causes error if negative value used | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04421 | Assembler | V1.00 | Fix appears in version 1.30. |
Bug Description
Linker address checking may generate an error such as
"16-bit relocation out of range" if what appears to be
a 16 bit negative value is used.
For example:
.def start
MY_TABLE .usect "DATA_SECT",60
MY_TABLE .equ (MY_TABLE-1)
.text
start: nop
.word MY_TABLE
will generate an error.
A workaround is to change ".word MY_TABLE" to ".long MY_TABLE"
| |||
| Title: Instructions of the form "mov *xar7, #label" are not allowed | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04667 | Assembler | V1.00 | Fix appears in version 1.40. |
Bug DescriptionInstructions of the form: mov *xar7, #label are not allowed by the assembler but are valid instructions. Not a bug | |||
| Title: Version 1.00b - ABS27.EXE is not always generating absolute listings for all files. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04800 | Assembler | V1.00 | Fix scheduled to appear in version Beta 1.3. |
Bug DescriptionAbsolute Listings are not always generated for all files. The incorrect Listing files do not contain the absolute addresses. | |||
| Title: assembler crashes with Windows error for errant code like : movb AH.#0 | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05000 | Assembler | V1.00 | Fix appears in version 1.30. |
Bug Description
The PC assembler crashes with an Invalid Page Fault error if
the source code has errant code like :
movb AH.#40
instead of
movb AH,#40
| |||
| Title: asm27 -als test.abs produces the following error:"loop defined differently in each pass" | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04806 | Assembler | V1.10 | Fix scheduled to appear in version Beta 1.3. |
Bug Description
The assembler with the -a option is getting confused when it
automatically changes 2 word instructions to 1 word instructions (in this case,
a B to a SB). So the abolute listing can't resolve the absolute address. In
the following code,
start:
b loop1,neq
loop1
if you try to run the absolute lister, the error is displayed:
"loop defined differently in each pass"
| |||
| Title: assembler does not recognize symbols that are used as indirect operands | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04814 | Assembler | V1.10 | Fix appears in version 1.4. |
Bug Description
The assembler does not recognize symbols that are used as
indirect operands. For example, if symbols are equated to
constant values like :
AA .equ 0
MM .set 4
and you have the following instructions in the code:
mov AL, *+XAR6[MM]
mov T, *+XAR6[AA]
The assembler fails with the error :
*** ERROR! E0003: Error parsing indirect operand
| |||
| Title: Unable to generate an absolute listing using ASM27 ALPHA Ver 1.10. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04856 | Assembler | V1.10 | Will fix in a future release |
Bug DescriptionUnable to generate an absolute listing using ASM27 ALPHA Ver 1.10. | |||
| Title: 'Assembler does not flag an error message when invalid instruction is assembled.' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04932 | Assembler | V1.10b | Fix scheduled to appear in version 1.30. |
Bug DescriptionThe following instructions are invalid: MOV XAR7, AL MOV XAR7, ACC However, the assembler does not flag either of these instructions with an error message when assembled. | |||
| Title: 'PUSH ACC', 'POP ACC are not valid instructions. But they are assembled. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05073 | Assembler | V1.10b | Fix appears in version 1.30. |
Bug DescriptionBUG DESCRIPTION =============== PUSH ACC & POP ACC are not supported; however, if typed, they assemble, with bad repercussions. | |||
| Title: The absolute lister still gives a "defined differently in each pass" err | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05274 | Assembler | V1.30 | Fix scheduled to appear in version 1.30. |
Bug DescriptionThis is due to a bug in the assembler while processing the .global directive and has been fixed. The absolute lister gives a "defined differently in each pass" error. | |||
| Title: Errant [W9999] Possible AR/BANZ pipeline conflict warning generated. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05293 | Assembler | V1.30 | Fix scheduled to appear in version 2.0. |
Bug DescriptionThe assembler may generates a warning for a possible AR/BANZ pipeline conflict that does not exist. "code.asm", WARNING! at line 12: [W9999] Possible AR/BANZ pipeline conflict This is a warning and can be ignored if there is not an actual conflict. | |||
| Title: asm27 1.30a generates an incorrect constant value. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05533 | Assembler | V1.30 | Will fix in a future release |
Bug Descriptionasm27 1.30a generates an incorrect constant value Assemble the following and observe the results in the .lst file: CONST1 .equ 6901 CONST2 .equ -(65536*2048)/CONST1 CONST3 .equ (65536*2048)/CONST1 CONST2 and CONST3 will be B408 and 4BF8, resp. But if the same is assembled with 1.10a the results will correctly be B407 and 4BF9, resp. | |||
| Title: Hex converter gives error reading COFF file when hex.cmd file has comments. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04619 | Hex Converter | V1.00 | Fix scheduled to appear in version 1.30beta. |
Bug DescriptionThe hex27 utility will give the error: >> error reading COFF file If the *.cmd file used contains comments in certain places. On the line that reads the out file the comments line exceeds the buffer. SC.OUT /* Input COFF file name. */ This is a bug and will be fixed in next release. The Workaround: To cut some spaces out of the line above For example: SC.OUT /* Input COFF file name. */ Will work | |||
| Title: predefined macro should be _TMS320C27XX and not _TMS320C27xx | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04385 | Documentation | V1.00 | Will fix in a future release |
Bug DescriptionThe predefined macro _TMS320C27xx stated in Pg. 2-19 of the TMS320C27xx Optimizing C Compiler User's Guide ( SPRU212A) is incorrect. It should actually be _TMS320C27XX. | |||
| Title: Hex27 -byte and -order options are not listed in C27xx ALT User's Guide. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04628 | Documentation | V1.00 | Will fix in a future release |
Bug DescriptionThe C27xx Assembly Language Tools User's Guide does not give a description of the hex27 -byte and -order command line options. | |||
| Title: IPORT, OPORT, and IOPORT attributes are not included in C27xx debugger manual. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04635 | Documentation | V1.00 | Will fix in a future release |
Bug DescriptionThe INPORT, OUTPORT, and IOPORT memory types are not documented in the C27xx C Source Debugger Manual SPRU214B but are implemented in the tools. These should be included in the table on p4-13. | |||
| Title: TMS320C27xx C Source Debugger User's Guide causes confusion about emurst | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05017 | Documentation | V1.00 | Will fix in a future release |
Bug DescriptionIn SPRU214B TMS320C27xx C Source Debugger User's Guide Page 2-6 states: "You must reset the emulator before invoking the debugger." The word "must" in this sentence has caused some confusion in the field. Emurst does not need to be run every time you bring up the emulator. Only when you first do, loose power, reboot etc. | |||
| Title: 'LC' instruction is not documented in the manual although it is a valid | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05046 | Documentation | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== Although 'LC' is a valid C27xx instruction, no information is provided in the instruction set manual. | |||
| Title: The instruction LRET (long return) is not documented in the manual. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05101 | Documentation | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== The instruction LRET (long return) is not documented in TMS320C27xx CPU and Instruction Set Reference Guide (SPRU220B) | |||
| Title: IOPORT instruction is not documented. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05106 | Documentation | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== IOPORT instruction is not in the documentation. | |||
| Title: Document the fact that some of the legal instructions should not be chan | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05108 | Documentation | V1.10b | Will fix in a future release |
Bug Description
BUG DESCRIPTION
===============
Document the following in the users guide.
the following syntaxes are legal and should not be
changed:
actual mode short hand
----------- ------------
*-SP[0] == *SP
*+AR0[0] == *AR0
*+AR1[0] == *AR1
.
.
*+XAR7[0] == *XAR7
They are a short hand notation that is commonly used.
| |||
| Title: disassembly of AND IER,#16BitMask and OR IER,#16BitMask is incorrect | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04120 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionThe simulator incorrectly disassembles the AND IER,#16BitMask and OR IER,#16BitMask instructions. Only the disassembly display is incorrect, the instruction is in fact simulated correctly. | |||
| Title: Simulator will not accept an ALIAS command line > 95 characters, returns an error message. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04266 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionIf a line has more than apx 95 characters the simulator, version 1.10, will not execute properly. It returns the following message stating that an "illegal operation has been performed". Immediate workaround is to split the command line up into different segments. | |||
| Title: Disassembly bugs | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04278 | Simulator | V1.00 | Fix scheduled to appear in version 1.10. |
Bug DescriptionBUG DESCRIPTION =============== See Problem Enclosure | |||
| Title: mem command does not work correctly for v1.20 of simulator | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04353 | Simulator | V1.00 | Will fix in a future release |
Bug Description
The mem command does not work correctly for v1.20 of the C27xx
simulator. When you try to change the addresses displayed in
the memory window, the simulator may create a new memory window
rather than adjust the addresses.
example: mem 0x100
mem 0x200
may create two memory windows rather than one.
| |||
| Title: C I/O not "turned on" in v1.0/1.10 simulator. Version+ says it is. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04410 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionThe v1.00/v1.10/1.20 simulator was not built with C I/O, although it says it was when you do the version+ command. | |||
| Title: Branches displayed using offset value, not symbol name. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04412 | Simulator | V1.00 | Will fix in a future release |
Bug Description
The disassembly window shows relative branch instructions with
the offset value rather than resolving that value to a symbol.
This is illustrated by the following code.
.def start
.bss x, 4
.bss a, 4
.bss y, 1
.data
table: .word 1, 2, 3, 4
.word 8, 6, 4, 2, 0
.text
.def _main
_main:
start: MOVL XAR6, #table
MOV AR2, #x
MOV AR3, #8
loop: MOV AL, *XAR6++
MOV *AR2++, AL
BANZ loop, AR3--
sop: SPM 0
MOV AR2, #x
MOV AR3, #a
MOVW DP, #y
MOVP T, *AR2++
MPYS P, T, *AR3++
MOV T, *AR2++
MPYA P, T, *AR3++
MOV T, *AR2++
MPYA P, T, *AR3++
MOV T, *AR2
MPYA P, T, *AR3
ADD ACC, P
MOV @y, AL
LRET
The
BANZ loop, AR3--
instruction is displayed as:
BANZ 0xfffe, AR3--
| |||
| Title: mem window contains a large blank space when created | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04442 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionIf you create a memory window (ex: 'mem 0x60,x,test') the window opens with a large blank space between the address field at the top and the displayed memory. Ifyou resize the window, the extra space disappears. | |||
| Title: Problem with displaying code assembled using the -g option. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04469 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionWhen displaying code assembled with -g option, and the code ends with a branch, the source file window does not allow you to step to last line of code (branch instruction). | |||
| Title: memory window configuration is not always saved | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04522 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionIn the simulator, if you open a second memory window and save the screen configuration, the screen configuration does not get reloaded correctly if the simulator is closed and restarted. The second memory window is not in its saved location. | |||
| Title: Unable to close a command log file under the File Menu, the File/Close option is greyed out. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04545 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionUnder the File menu you can open a command log file as expected. But, when you're finished and want to close the file, the File/Close options are greyed out and do not allow you to close the log file. As a work around, use "DLOG CLOSE" at the command prompt to stop the log file entry process. | |||
| Title: Can not view a long with wa command with indirect (wa *long_var,var_label,x) | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04569 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionYou can not view a long with wa command with indirection, like (wa *long_var,var_label,x). You will only get lower 16 bits. | |||
| Title: Simulator gives error "access outside valid range", when location never accessed | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04621 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionThe simulator could give an "access outside valid range" when no such access occurs. | |||
| Title: Simulator hangs if you try to step thru an IDLE instruction | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05019 | Simulator | V1.00 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== Simulator hangs if you try to step thru an IDLE instruction. | |||
| Title: simulator does not update the memory window correctly. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04739 | Simulator | V1.10 | Will fix in a future release |
Bug DescriptionSimulator does not update the memory window correctly. | |||
| Title: simulator executes invalid assembly instructions | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04933 | Simulator | V1.10b | Will fix in a future release |
Bug DescriptionDisassembler allows disassembly of invalid instructions and executes invalid instructions. MOV XAR7, AL MOV XAR7, ACC are not valid instructions. | |||
| Title: The COFF info doesn't provide sufficient info about the label. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04325 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionCoff information that is provided does not provide enough information about the label to let the debugger know that the code was loaded in data and that it is being run in the program. | |||
| Title: The file command should reload the source file if it has been changed. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04449 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe file command should reload the source file if it has been changed. It currently does not update the source window unless the window is closed before the file command is given. | |||
| Title: v1.20 simulator/1.00 emulator does not display all labels in disassembly window. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04595 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe v1.20 simulator and v1.00 XDS512 emulator does not always display all labels from assembly source code. Only the last label is displayed in certain cases. Breakpoints can still be set to the labels, they just do not show up in the disassembly window. | |||
| Title: Debugger loses track of window sizing after new load. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04596 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe v1.20 simulator and emulator loses track of window sizing in certain cases. When the file window is closed and the code is loaded again, the window will reappear as a different size. | |||
| Title: 'The .bpt file should save the labels, not the addresses of the labels.' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04659 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionIn the c27x debugger, under Configure->Breakpoints, you can specify symbolic addresses to set breakpoints at. You can also save and load lists of breakpoints when necessary. When you save the breakpoints, only the associated addresses are saved, and not the labels. The save option should save the labels, not the addresses of the labels. | |||
| Title: reloading the same file using LOAD command makes watch window disappear | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04673 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionReloading the same filename using LOAD command makes the watch window disappear. | |||
| Title: opening several watch windows makes the window open outside the view | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04674 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionWhen invoking successive watch windows(after they are closed with new load command), the window location moves down and to the right a little everytime. After doing this several times, the watch window opens out of view of the window. | |||
| Title: After the line is highlighted for patch assebmbly, any attempt to move the cursor with the mouse will cause the debugger to crash ha | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04705 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionOn the c27x Debugger, the patch assembly generates a GPF in Windows 95 when you: a) Right click on an instruction and invoke patch assembly b) Try to move the cursor within the line by clicking on it with your mouse. If you don't click on the line with your mouse and just backspace to the appropriate spot, everything seems to work fine. But after the line is highlighted for patch assebmbly, any attempt to move the cursor with the mouse will cause the debugger to crash hard. | |||
| Title: Cannot change values in watch window using realtime mode. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04724 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe debugger does not allow you to change the values in a watch window when using realtime mode. This gives an error similar to: Unable to edit while the target is running. Halt the target before changing values. This should be allowed in the debugger. A workaround to this is to use a command similar to: e *value = 0x2000 at the command line. | |||
| Title: Any label longer than the width of the label field in the disassembly window gets chopped off by the instruction on that line. | <|||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04742 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionAny label longer than the width of the label field in the disassembly window gets chopped off by the instruction on that line: C27x Tool: Debugger SW Version: v1.00b Description: Labels in disassembly window get chopped off if too long. Analysis: Any label longer than the width of the label field in the disassembly window gets chopped off by the instruction on that line. On the c2xx debugger, you could always see the full label, and the instruction was moved over accordingly. | |||
| Title: Version 1.00b -The move command does not work properly in the GUI debugger. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04763 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe move command does not function properly on the Emulator or the Simulator. | |||
| Title: Version 1.00b - Problem with the move command that causes the debugger to crash. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04764 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe move command may cause the simulator/emulator to crash with an invalid page fault error. | |||
| Title: ESC key does not always halt execution of take file. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04852 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionWhen you press the ESC key while running a take file, it does not always halt execution of the file. For example, if ESC is pressed during a load command, the take file will halt execution with the message - Aborted by user. If ESC is pressed during a run command, the next command in the take file is executed. | |||
| Title: When stepping through the code using Debugger version 1.00 there is inconsistency between address shown in disassembly and the PC re | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04881 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionWhen stepping through the code using Debugger version 1.00 there is inconsistency between address shown in disassembly and the PC register. For example: The Program Counter (PC) register contains 0x2E0000, but the instruction pointer in the Disassembly window points to 0x2DFFFF. | |||
| Title: Cannot overwrite files of same name when debugger has that file loaded | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04963 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionWhen the debugger is open with a .out file loaded, you cannot write over that .out file with a file of the same name. If you try to move a file of the same name from another directory over this file, you get a Windows error stating that the file cannot be overwritten. However, copying and pasting the file works. | |||
| Title: when a particular code is compiled without optimization and run on the debugger, then 'resolve ambiguity' dialog box appears. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04978 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionIn some instances a dialog box with the following title: "Resolve Ambiguity" is produced, when code is executed on the debugger. This happens only when the code is compiled without any optimization. The dialog box does not appear when code is compiled with optimization. | |||
| Title: Debugger does not save location and size of add'l memory windows. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05347 | Debugger | V1.00 | Will fix in a future release |
Bug DescriptionThe v1.00b emulator does not save the location and size of additional memory windows (ssave, CTRL-S). If you create a memory window, place it in a certain area, size it, save the screen config, and quit the emulator. When you restart the emulator and reopen the memory window, it will not open in the correct location or with the correct size. | |||
| Title: Format specified by the SETF command is not displaying correctly in the variable window. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04776 | Debugger | V1.10 | Will fix in a future release |
Bug DescriptionTthe variable window in the C27x debugger (emulator v1.00b running on win95) does not display variables according to display formats entered by the user via the SETF command. | |||
| Title: Disassembly window shows the incorrect value for the immediate operand. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04885 | Debugger | V1.10 | Will fix in a future release |
Bug DescriptionThe dissassembly window shows the incorrect value for the immediate operand. For example: Dissassembly window shows MOV XR6, #0x28 the correct value is 0x20008 which is loaded correctly in the XR6 register. The three zeros in the middle appear to me missing. | |||
| Title: 'Patch assembler accepts an illegal opcode.' | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04952 | Debugger | V1.10b | Will fix in a future release |
Bug Description
Patch Assembler allows
MOV XAR7, AL
to be entered as a valid instruction.
The patch assembler should flag this as an illegal opcode.
The silicon identifies this as a bad opcode by
trapping it but the patch assembler accepts it as good
instruction.
| |||
| Title: Debugger/Simulator does not display structures correctly. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05270 | Debugger | V1.30 | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== Debugger/Simulator does not display structures correctly. When loading some code in the c27xx simulator or debugger, the structure called 'array', when pulled up in a watch window, displays the wrong values. The values can only be seen in the memory window correctly. The code functions correctly. This seems to be only a display problem. Workaround: Look at structures in the memory window, don't use watch windows. | |||
| Title: v1.00b XDS-510PP Emulator does not work. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04623 | Emulator | V1.00 | Will fix in a future release |
Bug DescriptionThe v1.00b XDS-510PP emulator does not work. This is due to a name change of the JTAG scan manager DLL from smg510w.dll to smg51095.dll. | |||
| Title: cstepping the code in the emulator results in 'out of range' errors | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04851 | Emulator | V1.00 | Will fix in a future release |
Bug DescriptionWhen cstepping C code using the emulator, 'out of range' errors could appear in some instances. This might happen when the asm instructions that makeup the C statement end in a branch with a negative offset. It appears that the emulator is calculating where to set the breakpoints for the CSTEP based on the offset as if it were not a signed number. | |||
| Title: Request to be able to disable call and variable windows. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04938 | Emulator | V1.00 | Will fix in a future release |
Bug DescriptionRequest to be able to disable call and variable windows. When trying to implement multiple stacks using the stack pointer in the C27x, the debugger gets confused when trying to resolve the function calls in the call window (in C). The error "Corrupt call stack" comes up because the SP has been changed by the user. We need to be able to turn off the Call window (and possibly the Variable window) so the c27x does not try to look for things on the stack that are not there. | |||
| Title: "runaway RPT" instructions affect blocked out range of addresses. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05076 | Emulator | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== If you block out a range of addresses, and there is a "runaway" RPT instruction, those addresses are still affected. For example, the emulation addresses (0x800) and peripheral addresses (0xA00) could be affected by a runaway RPT instruction at block B0. (0x400-0x7ff) | |||
| Title: When trying to set a BP on an instruction, it gets st on the previous in | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05102 | Emulator | V1.10b | Will fix in a future release |
Bug Description
BUG DESCRIPTION
===============
Set a breakpoint on a label on a separate line from an instruction in the
asm source file, and the BP could be set to the previous instruction.
ret ; click on lable_1 to set BP and the breakpoint will
be set on this instruction.
lable_1:
MOV AL,#2
| |||
| Title: Can not write the control register to trigger some event. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05104 | Emulator | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== Can not write the control register to trigger some event. Some registers are the same address for write and read, but do diferent functions. Prime example is the Receive / Transmit register on the 320c203 UART. They are 2 different registers gated by RD or WE. Their location can be written everytime by ?*0 | |||
| Title: The EPC (Emulation Pin Control) dialog box does not program EMU pins cor | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05158 | Emulator | V1.10b | Will fix in a future release |
Bug DescriptionBUG DESCRIPTION =============== The EPC (Emulation Pin Control) dialog box may not program the EMU pins correctly for several option settings. For example, selecting "Setup EMU0: Force low" does not force EMU0 low. Likewise, selecting "Setup EMU0: Force high" does not force EMU0 high. Selecting "Setup EMU0: Drive low when device halts" won't cause it EMU0 to be driven low when the device halts. | |||
| Title: Translator gives illegal operation error and dies when using -w -l switches. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04234 | Translator | V1.00 | Fix appears in version v1.01. |
Bug DescriptionThe v1.0 Translator Assistant will occasionally give an illegal operation error and die when using the -w and -l switches. The workaround is to not use the -l switch. | |||
| Title: ta27 produces error when it sees an undefined macro, and halts translation | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04998 | Translator | V1.00 | Will fix in a future release |
Bug DescriptionWhen the translator encounters a macro that has not been defined, it produces an error, but then prevents the rest of the code from being translated. The translator should instead proceed with translating the remaining code in addition to generating the translation error. | |||
| Title: Translation of SPLK #(Value*35)/100,REG does not assemble. | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq05077 | Translator | V1.10b | Fix scheduled to appear in version 2.0. |
Bug DescriptionBUG DESCRIPTION =============== Translation of : SPLK #(Value*35)/100, REG results in: MOV @REG, #(Value*35)/100 which does not assemble. The temporary fix is to further bracket the immediate value ((Value*35)/100), but the translator should do this. Translation of: SPLK #(Value<<8 + New),*+ results in: MOV *++, #(Value<<8 + new) which does not assemble. The temporary fix is to further bracket the immediate value ((Value<<8) + new) . | |||
| Title: Incorrectly converting ADD to ADDB in some cases | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04281 | Post Link Optimizer | V1.00 | Fix appears in version 1.10b. |
Bug DescriptionBUG DESCRIPTION =============== | |||
| Title: Commented code beginning with ";//" produces an error in plink | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04609 | Post Link Optimizer | V1.00 | Fix appears in version 1.10. |
Bug DescriptionCommented code beginning with ";//" are misread as directives or instructions by plink, and errors result. Workaround: If you have a lot of code with these kinds of commented lines, write a simple program or script that changes the single semi- colon to a double semi-colon (i.e. ";;//") | |||
| Title: In some cases, plink incorrectly removes DP instructions | |||
| Bug # | Tool | Version | Fixed? |
|---|---|---|---|
| SDSsq04725 | Post Link Optimizer | V1.10 | Fix appears in version 1.4. |
Bug DescriptionThe post link optimizer sometimes incorrectly removes DP instructions. If users see DP's that are incorrectly removed from a function, they can work-around it by making that function a .global. | |||