현재 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을 사용하지만, 외부에 장치를 붙이거나, 할때는 위의 세팅을 사용합니다.
추천 : 임베디드 리눅스
임=======================
====================ㅇㄴㅇㄹ
'QnA' 카테고리의 다른 글
sleep하는중에 alarm시그널이 catch되면 (0) | 2009.08.24 |
---|---|
[Q/A] serial driver 중 line_discipline에 관한 질문입니다. (0) | 2009.08.21 |
소켓에 있는 데이터를 비우려면? (0) | 2009.08.07 |
restrict 키워드 (0) | 2009.07.29 |
nohup 와, 백그라운드 작업 (0) | 2009.07.28 |
WRITTEN BY
- RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.
,