Over Hamming-code

I

iamczx

Guest
voor een 512 byte, met behulp van Hamming-code om 1 bit vast te stellen, op te sporen 2 beetje fout.
De st Application Note (AN1823 Error Correction Code in Single Level Cell NAND Flash Memories) geven de volgende code, en ik ben de laatste puzzelen judement van
if (i & A0) waarvan ik denk dat moet worden if (i & 0x100).Iedereen die ooit doen deze baan? Mij vertellen wat waar is.Thanks in advance
Code:pseudo-code voor ECC Generation

De volgende code implementeert de pariteit Generation weergegeven in figuur 4.

Voor i = 1 tot 256 (1)

beginnen

if (i & 0x01)

LP1 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP1;

anders

Lp0 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP1;

if (i & 0x02)

LP3 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP3;

anders

LP2 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP2;

if (i & 0x04)

LP5 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP5;

anders

LP4 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP4;

if (i & 0x08)

LP7 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP7;

anders

LP6 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP6;

if (i & 0x10)

LP9 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP9;

anders

LP8 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP8;

if (i & 0x20)

LP11 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP11;

anders

LP10 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP10;

if (i & 0x40)

LP13 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP13;

anders

LP12 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP12;

if (i & 0x80)

LP15 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP15;

anders

LP14 = Bit7 XOR Bit6 xor bit5 xor bit4 xor bit3 xor BIT2 xor bit1 xor bit0 xor LP14;

//************************************************ *************

if (i & A0) / / hier Ik denk dat het moet worden 0x100

//************************************************ *************

LP17 = Bit7 (XOR) Bit6 (XOR) bit5 (XOR) bit4 (XOR) bit3 (XOR) BIT2 (XOR) bit1

(XOR) bit0 (XOR) LP17

anders

LP16 = Bit7 (XOR) Bit6 (XOR) bit5 (XOR) bit4 (XOR) bit3 (XOR) BIT2 (XOR) bit1

(XOR) bit0 (XOR) LP16 (2)

CP0 = Bit6 XOR bit4 xor BIT2 xor bit0 xor CP0;

CP1 = Bit7 XOR bit5 xor bit3 xor bit1 xor CP1;

CP2 = bit5 XOR bit4 xor bit1 xor bit0 xor CP2;

CP3 = Bit7 XOR Bit6 xor bit3 xor BIT2 xor CP3

CP4 = bit3 XOR BIT2 xor bit1 xor bit0 xor CP4

CP5 = Bit7 XOR Bit6 xor bit5 xor bit4 xor CP5

eindigen

Wanneer XOR betekent bitsgewijze XOR operatie.

1.
Voor 512 Byte ingangen van de "i" bereik is 1 tot 512 Bytes.

2.
De laatste controle "if (i & A0)" wordt alleen uitvoeren in het geval van 512 Byte ingangen.
 

Welcome to EDABoard.com

Sponsor

Back
Top