블로그 이미지
kalstein

여러가지 프로그래밍 관련이나...신변잡기적인 글들을 남기는 블로그입니다. 지식은 나누는만큼 강력해집니다 ^^

Rss feed Tistory
잡동사니 2011. 4. 30. 12:05

iPhone 3Gs GPS 문제발생...

배터리가 요새 좀 수명이 다된거 같아서...집에서 DIY 했다...
근데 ㅡ,.ㅡ;; GPS가 안잡히는 문제가 발생 ㅠㅠㅠㅠ
다시 분해조립 해봤지만...여전히 안잡힘...

이게 완전히 안잡히는건 아니고, 대충 3G 기지국 GPS 정보까지는 받아오는데,
정확한 실제 위치가 안잡혔다.
(아이폰 기본 맵어플에서는 위치 정확히 잡은 후에 깜박거린다.
그 전까지는 그냥 고정 원 모양만 나오고 원 크기도 제법 크다.)

그래서 1차로 SW reset.
http://forums.macrumors.com/showthread.php?t=517227
일단 이거보고 따라해봄...
안해봤던 탈옥까지 해서 다 따라해봤으나... 결국 실패.

결국은 내가 조립을 잘못했다는 결과에 이르렀다.
범위를 좁혀보자...라고 생각하고 대체 뭐가 어떤 부품인지 살펴봤다.

http://www.ifixit.com 를 살펴보니... 각 번호별로 어떤것을 담당하는지 알수있었다.

이 사진은 iPhone 3G 모델인거 같은데, 7번이 빠져있다. 3Gs에서 7번은 왼쪽 하단의 노란색 부분에 있다.
각 부분 설명을하자면...

1,2 -> 오른쪽 하단에 보이는 3개의 단자중 끼우는 방식인데 상판패널과 연결되어있다. LCD및 터치와 연관된다.
3 -> 1,2번 사이에 있는 녀석인데, 조도,근접 센서와 연관된다.
4 -> 아이폰 하단의 스피커,마이크 부분과 연관된다.
5 -> WiFi & GPS 안테나
6 -> WiFi & GPS & 이어폰 단자의 각종 센서 및 정보 관련 (일듯으로 추정됨)
7 -> 3G 안테나

WiFi & GPS 의 안테나는 USIM 뒤쪽에, 3G 안테나는 정확히는 모르겠으나, 3Gs의 외부에 나와있는 은테...가 그 역할을 하고있는게 아닌가로 추정되었다.
일단 나의 경우는 GPS가 제대로 동작하지않으니 ,5,6번이 문제라고 볼수있다.

세밀히 살펴보니 5번이 정확하게 들어가지않은것을 확인할 수 있었다. OTL
어설프게 끼워져있었던것. 어설프게 끼워져있어도, GPS를 제외하고는 정상동작하였으니 쩝;;;
여튼 안테나 주변의 먼지도 제거해주고, 깔끔히 재조립 후 테스트해보니...

굿!! 아주 잘된다!! ㅎㅎㅎ



결론 : DIY할땐 조립 잘하자 =_=;;


ps : 전화하는데 이상하게 암것도 안들려서 보니까... 근접센서 제대로 연결안됐나보다...ㅠㅠ 얼굴로 화면이 터치가 되어서 '소리끔'이 켜졌다 -.-;; 집에가서 3번 다시 연결해봐야할듯하다.

ps2 : 3번 재연결 후 근접센서 잘 동작함... 휴. 핀셋으로 잡아서 확실히 넣어주니 잘 동작한다. 다행!! 이제 전화도 아무 문제없이 사용!!

ps3 : 조도 센서는...고장났나? 제대로 동작안하는거 같은데 -.-;; 뭐 근데 사실 잘 안쓰니까 상관없긴함.
,
잡동사니 2011. 3. 16. 13:07

SKT 펨토셀에 관해서...

요즘 SKT에서 펨토셀로 2배가 빨라지니 뭐...이런 광고가 나온다.
그에 대한 진실이랄까... 여튼 썰을 풀어본다 ^^

사실 펨토셀을 도입하던 말던 WCDMA 3G의 데이터양은 정해져있다.
HSDPA의 경우 최대 21Mbps (Rel7 HSPA+ 기준. 갤럭시S2 부터 지원하는걸로 알고있다. 일반적으로는 7.2 or 좀 최신모델들은 14.4Mbps까지 지원하는 단말이 대부분이다) 라고 되어있지만... 저건 그냥 이상적인 값일 뿐이고. 보통 최신 스마트폰 유저들은 잘 해봐야 5~6  Mbps 정도일 것이다.

왜냐면... 무선자원을 공유하니까. HSDPA는 2ms 단위로 무선자원을 공유한다. 즉 HSPA+를 지원하는 단말기를 가지고있고, 해당 기지국을 혼자서 사용한다면 21Mbps의 속도를 즐길수있다. 2명이 붙으면? 10.5Mbps인셈. (그나마도 신호의 세기가 100%일때를 가정한거고... 좀 거리가 멀어지거나 하면 쭉쭉 떨어진다)

그럼 왜 펨토셀을 데이터속도가 2배 빨라진다고 광고하는걸까?
이유는 별거없다.  http://www.computertimes.co.kr/news/articleView.html?idxno=30793 를 참조해보면...
"콘텔라가 제조한 판도라-1C-PP는 최대 8명의 사용자"  라는점.

즉, 펨토셀이 설치되어있는 커피숍에 들어갔을 경우, 그곳에는 8명까지만 같이 무선자원을 공유한다는 소리다. 강남같이 사람들이 많은 곳이라면, 한 기지국에는 수십~수백명이 같은 기지국을 사용하게된다. 그렇게 열악한 상황에 비한다면 펨토셀의 환경은 거의 천국에 가깝다 ㅎㅎㅎ 그래서 데이터트래픽 속도가 많이 오를수 있다는것.



뭐...사실;;;  이런 기술적인 얘기들을 광고에 넣기도 힘들고, 이해도 안가니 그냥 속도 두배! 라고 광고하는것... 어찌보면 과대광고긴하지만, 어쩔수없달까 ^^
,
Programming 2011. 2. 23. 15:39

Valgrind 사용법

캐쉬만 사용하니까 그것만 언급함. (hit/miss 만 볼것이므로)

valgrind --tool=cachegrind [실행파일]

끝!
,
Programming 2011. 2. 17. 17:25

Oprofile 사용법

gcc는 실제사용 할때와 동일하게 컴파일. (-g 옵션을 하면 opannotate 를 사용할 수 있다.)

   – $ opcontrol --reset
   – $ opcontrol --event=[추가할이벤트]   (디폴트는 CPU cycle)
   – $ opcontrol --start (--no-vmlinux)
   – 여기에서 실제 벤치마킹 수행
   – $ opcontrol --dump
   – $ opcontrol -h
   – $ opreport -l  [실행파일]
   – $ opannotate --source [실행파일]   ===> c 소스파일에 각 라인별 counter가 나온다.


각 CPU 별로 추가할 event는 http://oprofile.sourceforge.net/docs/ 참조.
,
Programming 2011. 2. 17. 13:50

gcov 사용방법

gcov는 gcc와 함께 사용되는 code coverage 툴이다.
사용방법을 기재해둔다.

1. 연관된 gcc 옵션 : compile : -g --coverage  / link : -fprofile-arcs
2. 1번의 옵션으로 컴파일 후 실행.
3. gcov -b [소스파일]
4. 소스파일.gov 를 본다.


,
Programming 2011. 2. 16. 15:39

Code coverage with Visual C++ (track-back)

VC++에서 코드커버리지 하는거... 발견한것 링크~


,
잡동사니 2010. 12. 3. 09:18

SW개발부서의 부서장이 SW개발자가 아니라면...

개고생한다. -_-;;;;

다음 제품에 대한 큰그림을 그리고 있는듯한데...
H/W accelator를 넣고 싶나보다. (별로 필요없을꺼같은데;;; 흠;;;)
뭐 그래서...현재 구조의 sw에서 어떤부분이 cycle이 많이 먹는가?를 궁금해하는듯.

그런데... 임베디드 시스템이다보니, PC와는 다르게 메모리가 정해져있다.
PC는 메모리 위치가 L2인지 DDR인지 구분하지않지만,
이쪽은 M2, M3, DDR 이렇게 3단계로 구분되어있다. (당연히 크기는 M2<M3<DDR)

그러다보니...cycle 측정해놓은 결과가 메모리에 너무 dependency를 가진다.
별거없는 함수인 주제에 M3나 DDR을 썼을경우 엄청난 cycle을 먹고있는것.
그래서 위에서 내려온 일이 뭐냐면....두둥!!!


'C코드를 보고 사이클 측정하기'


이건 뭐...;;;;; 아우 Tq qt
상황따라 loop도는거, banch 되는거...다 다른데 뭘 어케 측정하라는거냐;;;
특히나 optimizer 돌아가면 안드로메다로 차이날텐데.
다른 부서에서 그런용도로 사이클 측정한게 있던데.... 문서를 보니 이건 병림픽 가관이다.
CA(Computer Architecture)에서 항상 cycle을 많이 먹는 load/store가 1 cycle...로 가정.
하긴 뭐, ALU에 들어가는것도 C코드를 보고 눈으로 측정한거니...ㅋㅋㅋㅋ

함수별로 일일히 코드보고 하기는 겁나 귀찮고...해서 asm으로 분석하기로 했다 ㅋㅋㅋ
optimize 따위 꺼버리고, 대애~~충 asm 종류별로 분류해서...
아 정말 무의미한 짓을 왜하는지 모르겠네 -_-
O(n) 과 O(n log n) 의 각각 다른 알고리즘이 있을때, 그냥 생각하면 O(n log n)이 나빠보이지만....
실제 사이클은 또 다를수가 있는법인데;;;
(구현레벨의 차이라던가, 루프내부의 하는일이 많이 차이난다던가)
,
Programming 2010. 11. 12. 16:42

C++ RValue Reference... 꽤 괜찮겠네

기존의 C++에서는 복사생성자 및 대입연산자에서는 무조건 deep copy를 해야했다.
예륻 들어 vector<> 같은 녀석이 있었고 그게 사이즈가 크다면 모조리 다 copy부터 했다는뜻.
그러나... RValue Reference의 경우는 Shallow copy만 해도 된다!
(간단히 말해 포인터만 옮겨간다...라고 생각하믄 될듯)

궁금한건...복사생성자,대입연산자는 C++이 기본으로 만들어주는게 있는데,
RValue Reference를 사용하는 move 연산자들은... 자동으루 해주나? ㅡ.ㅡ;;
그건 잘 모르겠네 흠.

뭐 VS 2010 부터 지원된다고 하니 (gcc는 4.0 이상의...뭐 마이너 버젼이 있나본데 자세히는 잘...)
꽤 많은 유저들이 은연중에 사용할듯.
STL 만 해도 그냥 기존처럼 써도 많은 부분이 성능향상이 있으니.
,
잡동사니 2010. 11. 12. 08:28

좋은 상사가 되려면...

트위터에서 시골의사님의 좋은 글귀를 보고는...잊지않도록 기록해둔다.

'칭찬은 모든사람이 모인자리에서.
질타는 개인적으로 불러서.'

그 반대로 행해지거나 칭찬은 전혀없는 윗사람이 너무나 많다.
아직 난 뭐...그다지 상사라는 위치랑은 멀지만...
그래도 언젠가는 내 밑으로 쭉 많은 사람들이 생길것이고
(이건...'그래도 안생겨요' 가 통하지않는다 ㅋㅋㅋ)
실행하도록 해야겠다. ^^
,
잡동사니 2010. 11. 11. 20:36

임베디드 시장도 x86이 점령중?

회사에서 뭔가 커~~다랗고 삐까번쩍한 구리 히트싱크가 2개나 달린...
무지막지한 보드들로 이루어진 기기가 있어서 저게 뭔가 알아봤더니...

엄훠나~

인텔제온이랜다 -_-;;; ㄷㄷㄷ
6코어짜리 2개 ㄷㄷㄷㄷ (네할렘인듯)
이전에 예전 버젼은 PPC CPU 1코어짜리 였다고한다.
그걸 최강 CPU 네할렘 듀얼로 업글이라니 ㅋㅋㅋ
아마 CPU 계산량만 따지면 거의...100배는 차이나지않을까 싶다 ㅡ.ㅡ;;;
(90년대 초중반 1core CPU vs 2010 최강 12core CPU)

문제는 ....
기존코드의 사용.
더불어 멀티코어의 사용에 전혀 익숙치않은 개발자들.
^^;;;

그래도 상당히 성능향상을 넉넉히잡았나보다.
대략 기존꺼 20배에 달하는 성능을 보장하도록 한것 같던데.
멀티코어만 조금 써준다면 남아도는 수치이지만...
현실안주하던 개발자들이었다면, 뭐...매우 힘든일이 될꺼다 ㅎㅎㅎ

여튼 조금 신선했달까. ^^
,
TOTAL TODAY