안녕하세요. CPU는 Pollux를 사용하고 있습니다.
낸드 플래시는 K9F1208U0C입니다. (64MB 짜리)
낸드 플래시에 이미 main 데이터(512 bytes)와 spare영역(16bytes)에
ECC코드가 저장되어 있는데요,
공개되어 있는 BCH 소스 코드로 ECC를 생성했는데,
낸드 플래시에 들어있는 ECC와 똑같이 나오지 않아서
어디가 잘못되었는지 찾고 있습니다.
아래처럼 도스에서 테스트를 했는데, 어디가 잘못되었는지 감잡기가 힘드네요.
C:> bch_encoder.exe -m 12 -k 4095 -t 4 < data_in.txt > data_out.txt
m은 Galois field이고
k는 비트길이 (512 바이트 이니까 512*8=4096입니다.)
t는 에러정정 가능 비트수
이렇게 설정했습니다.
BCH 알고리즘에 대해 알고계신분은 조언 좀 해주시면 감사하겠습니다.
-----------------------------------------------------
아래와 같이 data_in.txt에
1111222233334444 이렇게 넣고 아래와 같이 테스트 하면
ECC값이 90639C26 로써 제대로 나옵니다. 그런데 위와 같이 512 바이트로 테스트하면
값이 제대로 안나오네요. m, k, t 설정을 잘못한 것인지 조언 부탁드립니다.
C:> bch_encoder.exe -m 8 -k 64 -t 4 < data_in.txt > data_out.txt
테스트 가능하시면 제가 도스에서 테스트하고 있는 소스와
512바이트 데이터를 올려드리겠습니다.
Pollux에서 생성해주는 ECC와 이 소스에서 생성하는 ECC는 동일하다고 생각하는데,
잘 안되네요.
실제로 직접 테스트하는 수 밖에는 없을 듯 하네요....