| Electronic Components Datasheet Search |
|
AT697E Datasheet(PDF) 2 Page - ATMEL Corporation |
|
|
|||||||||||||||||||||||||||||
AT697E Datasheet(HTML) 2 Page - ATMEL Corporation |
|
2 / 7 page ![]() Atmel AT697E [ERRATA SHEET] 4409D-AERO-04/12 2 Errata Description 1. Multiplier/Divider Failure on Negative Operands Treatments The embedded multiplier/divider block can generate wrong values when negative operands are used. The bug occurs with negative dividends and positive divisors. As the dividend is 64-bit including the y register, the y-register needs to be initialised to a negative value in order to reproduce this error. In all cases observed, the absolute error is a maximum of 2, but in case of small quotients, this can be a large relative error, for example -2/1 = 0 instead of -2. Since the bug can also cause zero or sign change, the ICC flags can also be wrong. This Multiplier/Divider failure is due to a LEON2 VHDL model error. Workarounds If you want to maintain the hardware multiplier functional, it is sufficient to avoid negative operands or to avoid SDIV operations. If you do not need the multiplier to remain available, you can simply not use the -mv8 flag when compiling the project with LECCS / BCC / RCC compilers. This will disable use of both the divider and the multiplier. 2. Call Return Address Failure with Large Displacement CALL instruction saves the return address in an FPU register rather than in an IU %o7 register when the call address is larger than 64Mbytes (forward) or 8Mbytes(backward). The return address is normally expected by the return operation in %o7 register at the end of a called function. The bug is triggered exactly and only by opcodes matching the following condition:(bit 31 == 0) & (bit 30 == 1) & (bit 24 == 1) & (bit 21 == 0) • Bit 31/30 == “01” indicate the call instruction • Bit 24/21 are part of the relative call address (30 bit word displacement) which is coded in the opcode, corresponding to bits 26/23 of the offset in terms of byte addresses. As a consequence, the failure will only occur if the displacement is >= 64 MByte for forward calls or >= 8 MByte for backward calls. Due to the specific condition however, not all calls above this limit will trigger the failure. The called function is executed normally, but the return fails. This “Call Return Address” failure is due to a LEON2 VHDL model error. Workarounds Use only calls with an address displacement smaller than 64 Mbytes (forward) or 8 Mbytes (backward). If dynamic linking is used, the memory configuration should be constrained to avoid calls beyond the given limits. If the operating system is moved to the upper memory area, all OS calls are forward calls, allowing the use of up to 64 MByte program memory. 3. Byte and Half-word Write to SRAM Failure when Executing from SDRAM If an application is executing in SDRAM, byte- and half-word writes to SRAM can fail if the EDAC or read-modify-write cycles are used. This “SRAM Write access” failure is due to a LEON2 VHDL model error. Workarounds Do not perform byte and half-word write operations to SRAM when executing code from SDRAM (in assembler language, byte/half-word stores are performed by the instructions STB, STH, LDSTUB -- CLRB and CLRH also, they are synthetic instructions for STB and STH -- and their alternate space equivalents, whereas in C-code, they are typically assignments to char and short data types). |
|
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |