디바이스 드라이버2013. 1. 25. 20:36

대충 이런거다 라고 희미하게 알고는 있었지만, 요즘 같아선 제대로 모르면 안될 것 같아서 여기저기 찾아보다가 발견한 설명!
가장 이해하기 쉽게 설명 된것 같다! :)


칩에 정보를 입력할 때, 입력 핀에 5V(High) 혹은, 0V(Low)의 전압을 가한다.

 

하지만, 입력 핀에 5V도 0V도 입력이 안되는 상태가 되면, 칩은 자신의 핀에 1이 입력 되었는지, 0이 입력 되었는지를 모른다. 이런 상태를 플로팅(Floating)되었다고 한다.

이 경우 핀을 사용하지 않는다면 문제가 없지만, 핀을 사용하고 있는 상태라면 문제가 된다.

 

입력이 항상 토글 스위치로만 이루어 지는 것은 아니기 때문에 단락, 개방 동작만 하는 보통의 스위치를 연결해야 할 경우도 있다. 이 때 입력 받는 쪽 핀을 '0'이나 '1'의 값으로 묶어 놓을 필요가 있다. 이 때 사용하는 것이 풀업/다운 저항이다.



풀업저항의 간단한 예시.

저항을 5V에 달고, 아래에 스위치가 병렬로 붙어 있다. 이 때 핀 A에는 항상 5V의 전압이 입력된다.

핀 A는 0V일 때 '1'로 인식하고, 5V일 때 0으로 인식하는 입력 핀이다.

스위치를 닫으면, 그라운드 쪽으로 전류가 흐르고, 스위치를 닫은 직후 전원에서 저항을 통해 들어오는 전류와 핀 A의 전류가 합류하여 그라운드로 흘러 들어가게 된다. 이 때 핀 A의 전압이 0V로 낮아지면서 핀 A에 '1'이 입력된 것으로 인식 되는 것이다.

핀을 높은 저항에 매달아 둔다는 뜻으로 '풀 업 저항'이라 한다.

풀 다운 저항의 예시.

저항의 한쪽은 핀 A에 연결되어 있고, 다른 한쪽은 그라운드와 연결 되어 있다.

핀A는 5V전압을 받으면 '1'로 인식하고, 0V의 전압을 받으면 '0'으로 인식한다.

그라운드에 연결되어 있기 때문에 A 핀의 전압은 낮아져 0V가 된다.

스위치를 닫으면, 소량의 전류가 저항을 통해 그라운드로 흘러 내리기는 하지만, 많은 양의 전류가 A핀으로 흘러 A핀의 전압이 5V가 된다. 따라서 A핀은 '1'이 입력된 것으로 인식한다.

핀을 항상 그라운드에 묶어 둔다는 의미에서 '풀 다운 저항'이라고 한다.

'디바이스 드라이버' 카테고리의 다른 글

LINUX clock tree 확인 방법  (0) 2013.02.25
workqueue를 kernel timer에 등록하기  (0) 2013.02.04
Posted by 세월의돌
3D그래픽2012. 9. 17. 17:36

Adreno Profiler를 다운로드 받아 설치한다.

.Net Framework 4.0 버전이 설치되어 있어야 한다.

ADB의 실행 경로가 system path에 추가되어 있어야 한다.

Adreno Profiler가 ADB 프로세스를 만들어야 제대로 실행이 되므로, 기존의 ADB process는 미리 종료시켜야 한다.

Adreno Profiler를 실행한다.

profiling 하고자 하는 프로그램을 실행한 후, Connect를 실행하면 해당 프로세스가 윈도우에 보여야 한다.

만약 보이지 않는다면 해당 App.에 Internet access 권한을 추가해라.

OpenGL ES 버전에 맞는 Scrubber 모드를 실행한다.

Grapher 모드를 실행한다. 이 모드는 Scrubber 모드가 실행되어 있어야 동작한다.

Grapher 모드에서 데이터의 파일 출력은 업데이트 중에만 가능하다. (Pause 상태에서는 데이터의 파일 출력이 불가)


우선은 여기까지...


당연하겠지만, 간과했던 문제들이 있다.

우선, Adreno Profiler가 어떤 방식으로 profiling을 하는지 잘 모르기 때문이기도 한데,

Profiling 할 항목들을 여러개 켜 놓으면 전체적으로 성능에 영향을 받아서, 결과에도 영향을 끼친다는 것이다.

다시 말해 frames per sec, memory bandwidth, pipeline stall, clock/sec 등 여러개의 항목을 monitoring 하겠다고 설정 해 놓으면, frame per sec 하나만 설정해 놓았을 때 보다, 우리가 주요한 지표라고 생각하는 FPS가 떨어진다.

너무 당연한건데...-0-


그나저나, 출력되는 데이터 가운데 어떤 것들은 너무 들쭉날쭉하다.

안드로이드 시스템 자체가 다양한 변수가 있기 때문이겠지만, 수치의 단위가 달라지는건 뭐지?-_-;

신뢰도가 점점 떨어지고 있음...;;

Posted by 세월의돌