Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
Dalvik VM 관련 문의드립니다.
작성자
작성일 2008-10-28 (화) 18:16
ㆍ추천: 0  ㆍ조회: 9535      
IP: 125.xxx.184
안녕하세요! 여기서 늘 좋은 정보 많이 보고 배우고 갑니다.
 
저는 휴대폰 S/W관련 일을 하고 있습니다. 안드로이드에 대해서 자료를 보다가
Dalvik VM을 알게되고,  여러모로 적용할 부분이 많을 것 같아서
퀄컴 CDMA보드에 Dalvik VM만 포팅해서 사용해보려고 합니다.
 
근데, VM만 포팅을 해본적이 없어서, 이 작업이 가능할까요?
이름아이콘 들풀
2008-10-28 19:01
dalvik VM을 사용할려고 하는 목적이 중요할 듯 합니다.
적어도 dalvik은 EABI, ARMv5 명령어 셋에 기반한다고 보아야 하기 때문에,
이 제약을 벗어나서 dalvik을 포팅한다는 것은 너무나 어려운 작업일 듯 합니다.

참고가 될 지는 모르겠지만, ARMv4 명령어를 사용하는 core를 지원하기 위해,
dalvik에서 수정되어야 하는 파일 목록입니다.

dalvik/vm/arch/arm/CallEABI.S
dalvik/vm/arch/arm/CallOldABI.S
dalvik/vm/mterp/armv5/OP_AGET_WIDE.S
dalvik/vm/mterp/armv5/OP_APUT_WIDE.S
dalvik/vm/mterp/armv5/OP_IGET_WIDE.S
dalvik/vm/mterp/armv5/OP_IGET_WIDE_QUICK.S
dalvik/vm/mterp/armv5/OP_IPUT_WIDE.S
dalvik/vm/mterp/armv5/OP_IPUT_WIDE_QUICK.S
dalvik/vm/mterp/armv5/OP_SGET_WIDE.S
dalvik/vm/mterp/armv5/OP_SPUT_WIDE.S
dalvik/vm/mterp/out/InterpAsm-armv5.S
dalvik/vm/oo/Object.h
   
이름아이콘 invain
2008-10-28 21:36
흐흐.....
참고로 ARMV5는  ARMv4의 Instructions을 모두 지원하므로 모호한 답변이지 싶습니다.
즉, 질문자의 퀄컴 CDMA보드의 CPU Core가 ARMV4 인경우 정말 달빅만 포팅하여 돌아가는 상황이라면, 사용하고 계시는 컴파일러로  Dalvik 을 큰 수정없이 동작되지 싶습니다.

오히려 달빅이 아시다시피 스택기반의  가상머신이라서
기존의 시스템에 달빅만 사용하고자 한다면
이 스택기반 디자인에 맞게 가지고 계신 시스템 레벨 컴포넌트들을 스택 오버플로우가
비대하게 발생치 않도록 수정작업도 감안되는 것이 옳습니다.

근본적인 문제는 정말 보유중이신 보드의  CPU가 ARMv4이라면,
부트루더,커널, 컴파일러,  C library(system level) , 기타 사용목적에 따라 필요한 파일들
모두  all rebuild 하는 것이 바람직합니다.

근데 질문자의 내용을 보면,
"퀄컴 CDMA보드에**" 라는 글을 보았을때 왠지 최근 CPU Core를 사용하고 있을것 같은데,
iphong님 사용하시고 계시는 보드의 CPU가 무엇인가요?
   
이름아이콘 들풀
2008-10-28 23:05
안드로이드 Dalvik이 armv5 instruction을 지원하도록 만들어져 있고,
target의 core가 armv4 instruction 기반이라면,
당연히 안드로이드 dalvik은 armv4에는 없는 armv5 instruction을 사용하는
구조를 갖게될 것이기 때문에, armv4 core에서는 동작하지 않을 수 있다는 말을 했던것이고,
더불어 dalvik은 stack-based가 아닌 register-based 구조의 vm 이라는 것도
이미 밝혀진 사실인데..~~ 이상타..!
   
이름아이콘 iphong
2008-10-29 13:57
들풀님, invain님  좋은 답변 감사드립니다.
확인해보니 QSC 6020을 쓰고 있어서 ARM 버전은 ARM926EJ-S을 쓰고 있고,
아키텍쳐는 ARMv5TEJ를 쓰고 있네요.
그럼, ARMv5 을 쓰는거니까 포팅이 가능한거네요? ^^
   
이름아이콘 들풀
2008-10-29 14:37
네..정확하게 그렇습니다.ㅎ
   
이름아이콘 인베인
2008-10-29 23:31
아 그렇군요.. 이제 머리가 오락가락 합니다. ㅎㅎ
* Android Runtime
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.

Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
4853 화면에 텍스트, 이미지, 버튼 출력 관련 질문입니다... 2008-10-24 11210
4852 Re..소스파일 첨부 2008-10-24 8276
4851 [문의] ARM926EJS(Target)에 Android 올리기. 2008-10-24 10757
4850 android 1.0r SDK to read HW 포팅 질문 2008-10-24 8238
4849 [ZIP3] 처리되지 않은 win32 예외... 2008-10-27 11523
4848 Webbrowser 접근시 hidden되어 있는 안드로이드 소스파일을 어.. 2008-10-27 9607
4847 repo init 시 멈춤 2008-10-27 11609
4846 msm과 goldfish 빌드시 구분. 2008-10-27 9061
4845 에뮬레이터 이미지 추출 2008-10-28 8815
4844 mapview관련질문입니다. 2008-10-28 8402
4843 우선순위 문제. 2008-10-28 11012
4842 Dalvik VM 관련 문의드립니다. 2008-10-28 9535
4841 SDK 1.0 PORTING to HW 질문 2008-10-28 8309
4840 G1 USIM Unlock 문의 드립니다. 2008-10-29 8694
4839 map apikey관련해서 질문드립니다. 2008-10-29 8410
4838 M4300(사사미)에 포팅가능여부문의 2008-10-30 9323
4837 막히는 부분이 있어서 질문 드립니다. 2008-10-30 11021
4836 안드로이드 개발에 어떤 것들을 봐야 할까요??.. 2008-10-30 8106
4835 Parcel 클래스의 용도가 뭔가요?? 2008-10-31 9449
4834 그렇다면 Looper 클래스의 용도는 무엇인가요? 2008-10-31 8189
4833 리소스중 drawable를 xml로 정의 하는데 관련하여 참고할 문서.. 2008-10-31 8357
4832 현재 안드로이드는 어플을 만들면 어디서 배포 할수 있나요?.. 2008-10-31 8086
4831 포팅에러 질문드립니다.. 2008-10-31 10548
4830 안드로이드 단말기를 구하는 방법이 있을까요?.. 2008-10-31 8389
4829 App에 있는 VideoPlayer 에 관해서 입니다. 2008-11-01 8246
4828 MapView 질문입니다. 2008-11-02 8699
4827 LCD size 제약? 2008-11-02 8907
4826 도와주세요.ㅠ 2008-11-02 10894
4825 안녕하세요 질문이있습니다. 2008-11-03 8300
4824 Source Code 폴더 구조? 2008-11-03 9805
4823 T-Mobile USIM 가지고 계신 분 G1 USIM Unlock 부탁드립니다... 2008-11-03 8345
4822 windowsOS에서 MD5 fingerprint 획득 방법... 2008-11-03 8199
4821 에뮬레이터에서의 카메라 구동 관련 2008-11-03 9952
4820 Tslib 연결방법 문의 2008-11-03 10968
4819 ㅠㅠ 다시 Mapview 문의합니다..ㅠㅠ 2008-11-03 12329
4818 소스 에러좀 봐주세요. 2008-11-03 17090
4817 Re..에러요.ㅠㅠ 2008-11-03 8271
4816 XML과 setContentView 외에 View를 표시하는 방법이 있나요?.. 2008-11-03 10903
4815 T-Mobile G1을 USIM Unlock 하면 usb 디버깅 되나요? 2008-11-04 8384
4814 172번 포팅에러 재 질문 드립니다 2008-11-06 9102
4813 ubutu에서 eclipse 구동 오류 2008-11-06 8301
4812 Re..172번 포팅에러 재 질문 드립니다 2008-11-06 8556
4811 초보자가 질문하나만 드려요. 2008-11-07 14022
4810 프로그램 Signing 했습니다. 2008-11-07 9282
4809 텍스트색이요.ㅠ 2008-11-07 8303
4808 G1 어떻게 구입할 수 있을까요? 2008-11-09 8021
4807 안드로이드 플랫폼 질문 2008-11-09 10271
4806 간단한 질문드립니다~xml을 이용한 UI구성이후에요~.. 2008-11-09 8287
4805 안드로이드 초보 질문이에요~ 2008-11-10 8120
4804 Kernel Panic 문제. 2008-11-10 10515
12345678910,,,101