2013-10-27 3 views
0

CPU가 보호 모드에있을 때 모든 주소가 가상으로 예상됩니다. 커널은 실제 메모리에 있으며 내부 목적으로 실제 주소를 사용합니다. 드라이버 드라이버 프레임 워크 루틴을 개발할 때 특정 물리적 주소 (해당 장치의 메모리 매핑 주소와 관련)가있는 일부 메모리 위치에 액세스해야합니다. 그렇다면 어떤 메커니즘이 보호 모드에서 실제 주소를 사용할 수 있습니까?보호 모드 및 실제 주소

+0

나는 조금씩 물었다. 나는 일부 드라이버 프레임 워크의 특성에 상관없이이 질문의 하드웨어 측면을 의미했습니다. CPU는 보호 모드에서 물리적 주소를 사용할 수 없으므로 DMA 컨트롤러에 명령을 보내 데이터 전송을 수행합니까? DMA가 물리적 주소를 사용하면 DMA의 존재를 승인합니다 (DMA는 RAM 및 포트 액세스를 관리하는 반면 CPU는 일부 계산을 수행 할 수 있습니다). Linux 커널 소스를 제외한 DMA 사용에 관한 문서가 있습니까? – igntec

답변

0

드라이버 프레임 워크 또는 API에서이를 알려줍니다. 나는 PCI 드라이버를 작성하기 위해 방풍 (http://www.jungo.com/)을 사용 해왔다. 이 API를 사용하여 메모리를 할당하면 응용 프로그램에 유효한 가상 주소와 장치에 부여한 실제 주소라는 두 개의 주소가 제공됩니다. 다른 프레임 워크/api는 비슷하게이를 수행합니다.