보드에서 장치를 추가할때 궁금점
스트롱암의 Chip Select 가 몇개 안되잖아요?
그런데 주변장치가 많아질때 즉, 이러한 Chip Select를
초과하는 장치를 달게 될때 필요한 신호를 어떻게 마련하는지
궁금합니다.
우선 제가 알아본 바로는 어드레스 디코더를 사용해서
어드레스를 주게 되면 CPU가 알아서 해석을 해서 원하는 장치를
선택해준다고 들었습니다.
그러면 프로그램상에서는
1. chip select로 할당된 어드레스를 입력하고
2. 데이터를 보내고
3. 데이터를 받고
4. 프로그램 종료
이런식으로 하라고 들었는데요.
이러한 작업을 리눅스로 할려면 우선은 디바이스 드라이버가
있어야 할것이고, 디바이스 드라이버를 커널에 포함을
시키거나 모듈로 추가를 할시에 이 장치에 할당된 주소를
입력시켜주어서 살려놓고(사용가능하게 해놓고) 응용 어플에서
open, write, read와 같은 함수를 사용해서 접근하는 것이
맞는지요? 그리고 이 장치에 할당된 주소는 가상 메모리로
이미 맵핑이 되어 있어야 하고요?
저는 이렇게 생각하고 있습니다. 만일 위의 것이 맞다면요.
(맞지 않다면 설명좀 부탁드리겠습니다. 그럼 그 이후에
제가 생각한 것이 완전히 틀려진 것이 되거든요 -_-!)
스트롱암에서 주변장치를 추가할때에 이지보드와 같은 경우에는
어드레스 라인중 A23,A24,A25와 같은 선을 사용해서 어드레스
디코더 역할을 하는것 같은데요. 이때는 A23,24,25가 높은
위치에 있는 주소선에 해당하므로 주변장치 역시 이러한
상위영역으로 선택이 되는것이 맞는지요?
즉 다른것을 다 제외하고 단지 A23, A24, A25에 해당하는 비트를 1로
셋팅했을때 나타나는 주소를 사용하면 CPU가 알아서 그 장치를 선택하는
것인지요?
질문이 두서가 없더라도 이해해 주시길 바라겠습니다.
스트롱암의 Chip Select 가 몇개 안되잖아요?
그런데 주변장치가 많아질때 즉, 이러한 Chip Select를
초과하는 장치를 달게 될때 필요한 신호를 어떻게 마련하는지
궁금합니다.
우선 제가 알아본 바로는 어드레스 디코더를 사용해서
어드레스를 주게 되면 CPU가 알아서 해석을 해서 원하는 장치를
선택해준다고 들었습니다.
그러면 프로그램상에서는
1. chip select로 할당된 어드레스를 입력하고
2. 데이터를 보내고
3. 데이터를 받고
4. 프로그램 종료
이런식으로 하라고 들었는데요.
이러한 작업을 리눅스로 할려면 우선은 디바이스 드라이버가
있어야 할것이고, 디바이스 드라이버를 커널에 포함을
시키거나 모듈로 추가를 할시에 이 장치에 할당된 주소를
입력시켜주어서 살려놓고(사용가능하게 해놓고) 응용 어플에서
open, write, read와 같은 함수를 사용해서 접근하는 것이
맞는지요? 그리고 이 장치에 할당된 주소는 가상 메모리로
이미 맵핑이 되어 있어야 하고요?
저는 이렇게 생각하고 있습니다. 만일 위의 것이 맞다면요.
(맞지 않다면 설명좀 부탁드리겠습니다. 그럼 그 이후에
제가 생각한 것이 완전히 틀려진 것이 되거든요 -_-!)
스트롱암에서 주변장치를 추가할때에 이지보드와 같은 경우에는
어드레스 라인중 A23,A24,A25와 같은 선을 사용해서 어드레스
디코더 역할을 하는것 같은데요. 이때는 A23,24,25가 높은
위치에 있는 주소선에 해당하므로 주변장치 역시 이러한
상위영역으로 선택이 되는것이 맞는지요?
즉 다른것을 다 제외하고 단지 A23, A24, A25에 해당하는 비트를 1로
셋팅했을때 나타나는 주소를 사용하면 CPU가 알아서 그 장치를 선택하는
것인지요?
질문이 두서가 없더라도 이해해 주시길 바라겠습니다.
holelee (2003년 03월 18일 오후 09:24)
질문의 요지가 무엇인지 정말 알 수가 없네요. |
[ 이글에 답장 | 본문에 답장 ] |
새내기 (2003년 03월 21일 오전 08:57)
감사합니다. 도움이 많이 되었습니다. |
[ 이글에 답장 | 본문에 답장 ] |
박영화 (2003년 03월 26일 오전 09:18)
디바이스 드라이버는 파일 오퍼레이션에 대한 핸들러 함수로 구성 됩니다. |
'QnA' 카테고리의 다른 글
close-on-exec ?? (0) | 2009.07.06 |
---|---|
[Q/A] volitile 포인터에 대해서 질문입니다. (0) | 2009.06.23 |
[답변] PCI Device의 BASE ADDRESS 처리에 대한 ? (0) | 2009.06.17 |
[답글] PXA255의 Memory Address에 대해서... (0) | 2009.06.17 |
__init(), __initfunc() (0) | 2009.06.09 |
WRITTEN BY
- RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.
,