2014-02-07 6 views
1

"ioremap"을 사용하여 Ti AM3359의 데이터 시트에있는 GPIO 포트의 주소를 매핑합니다. 코드가 제대로 실행 중입니다.가상 주소를 실제 주소에 매핑하는 의미는 무엇입니까?

문제 :

1>, 왜 우리가 물리적 주소로 가상 주소를 매핑해야 하는가하는 문제? 실제 주소는 우리가 액세스하고자하는 하드웨어의 실제 주소이기 때문입니까?

2> 위의 내용이 사실이라면 데이터 시트가 실제 주소를 직접 제공하지 않는 이유는 무엇입니까?

3> "ioremap"에 의해 반환되는 물리적 주소가 RAM의 양이 다른 여러 보드에서 다를 수 있습니까?

답변

1

첫 번째 질문과 같이 ioremap을 사용하는 이유는 커널의 주소 공간이 실제 주소 공간과 일치하지 않기 때문입니다. 물리적 페이지를 가상 주소 공간에 매핑하여 주소를 모두 지정할 수 있어야합니다. 이것은 ioremap입니다.

두 번째 및 세 번째 질문에 대해서는 데이터 시트에서 제공하거나 제공하지 않는 내용을 알지 못합니다. :)

일반적으로 물리적 주소가 발견되거나 버스 특정 메커니즘을 통해 구성되어야하는 경우가 아니면 하드웨어 데이터 시트에서 실제 주소를 제공해야합니다. 당신이 실제로 지정하는 것은 무엇입니까, 그렇지 않다면?

자세한 내용은 this을 읽어보십시오. 커널은 물리적 인 것들에없는 가상 주소에서 작동하기 때문에

+0

우리는에 주어진 주소를 사용 데이터 시트는 ioremap의 입력으로 사용되므로 가상 주소 만 사용해야합니다 (사실 데이터 시트에 지정된 주소는 항상 오프셋입니다). –

+0

아니요, 실제로는 실제 주소입니다. 'ioremap'은 당신에게 가상 주소를줍니다. 왜 그렇게 생각하지 않았 니? – Dolda2000

+0

예, 맞습니다. 또한이 점을 확인했습니다.하지만 하드웨어에 액세스하기 위해 가상 주소가 필요한 이유는 무엇입니까? –

1
  1. 내 데이터 시트에서
  2. ioremap는 가상 주소에 매핑 물리적 주소를 반환 AFAIK 단지 물리적 주소
  3. 이있다
+0

멋진 설명 주셔서 감사합니다 :) –