현재 xhyper255a보드를 사용하고 있습니다. 임베디드리눅스  arm  리눅스

거기에 추가적으로 8255와 8254를 사용하는데 있어 어드레스 할당하고 데이터 버스 8비트(D0-D7)를 각각 두 칩에 연결해 놓았습니다. 임베디드리눅스  arm  리눅스

그런데 부팅시에 CRC ERROR가 뜨면서 부팅이 되질 않습니다.

8254를 소켓에서 제거하여 8255만 있는 상태에서는 보드의 부팅이 잘 이루어지며 반대로 8255를 소켓에서 제거하고 8254만 있는 상태에서도 부팅이 잘 이루어집니다.

유독 두 칩을 같이 소켓에 연결하면 CRC error가 뜨는데 데이터 버스를 사용하는데 있어
잘못된 점이라도 있는지요.


============================================================================================================

일단 주변회로를 붙이게 되면, 데이타나 어드레스 버스가 길어지게 되고, 노이즈가 발생합니

다. 그렇기에 특정 어드레스에 접근하면, 잘못된 어드에스에 접근하거나, 잘못된 데이타를 읽고 쓰게 됩니다.

 

이건 어쩔 수 없는 상황이구요. 특히 쪽보드 형태로 붙이게 되면 이런 현상은 거의 90% 발생하게 됩니다.

 

이를 해결하는 방법은 메모리 세팅을 바꾸어 주시면 됩니다.

 

부트로더에서
src/include/start_xscale.h 파일의
MDREFR_VALUE 값을 0x000BC018 로 주세요.

이 값을 데이타 시트 보고 분리해보면, SDRAM clock를 MEMCLK의 half로 사용하는 세팅입니 다.

 

기본 X-Hyper255A는 MEMCLK의 clock을 사용하지만, 외부에 장치를 붙이거나, 할때는 위의 세팅을 사용합니다.

 

추천 : 임베디드 리눅스

 

=======================



====================ㅇㄴㅇㄹ

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,