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
Codeseudo-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.
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
Codeseudo-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.