Search Results for '모바일 개발'

1 POSTS

  1. 2007.02.07 답답한 WIPI Emulator 1

답답한 WIPI Emulator

Posted 2007. 2. 7. 02:38
원래 모바일 쪽 개발을 하지는 않지만, 최근에 WIPI 플랫폼에서 C 언어로 작은 프로젝트를 하나 하고 있습니다. 실제 폰 환경에 돌려보기 전에 윈도 환경에서 WIPI 에뮬레이터로 테스트를 먼저 하고 있는데, ETRI에서 제작한 이 윈도 WIPI 에뮬레이터가 정말 걸작(?)이네요.

1. 짤리는 로그

WIPI C의 MC_knlPrintk()라는 함수를 이용해 콘솔에 로그를 찍어보고 있는데, WIPI 에뮬레이터는 별도의 로그 창을 띄어줍니다. 근데 문제는 로그 창을 넘어가는 로그를 그대로 잘려서 보인다는 것이죠. 스크롤 바도 없어서 잘린 로그를 확인할 수 있는 방법이 없습니다.

사용자 삽입 이미지

2. 엉터리 MC_knlSprintk()

WIPI C의 MC_knlSprintk() 함수는 stdio.h의 sprintf() 함수와 동일합니다. WIPI C 환경은 stdio.h 헤더 파일을 제공하지 않기 때문에 별도의 함수를 두고 있습니다. ETRI의 윈도 에뮬레이터는 이 함수 구현이 버그투성이더군요. MC_knlPrintk(buf, "%02x", 0xff)와 같이 포맷 지정자에 %02x 와 같은 포맷이 들어가면 아무 것도 찍지 않는 문제가 있더군요. MC_knlPrintk(buf, "%02x\n", 0xff)와 같이 개행 문자(new line)이 들어가면 또 출력이 됩니다.

WIPI C 표준안에 따르면 MC_knlSprintk()는 C 언어 표준에 정의된 sprintf()을 따라야 한다고 했는데, 윈도 에뮬레이터는 윈도가 기본으로 제공하는 sprintf() 함수를 두고 왜 엉터리 구현을 굳이 작성해서 사용자를 골탕 먹이는 걸까요?


3. 서버 소켓 지원

WIPI C에서 서버 소켓 지원은 선택 사항입니다. 덕분에 일부 플랫폼에 서버 소켓을 지원할 수도 있고, 상황이 여의치 않는 경우는 지원 안 할 수도 있습니다. 확인해보니 이 표준안에 충실해서 윈도 에뮬레이터도 서버 소켓을 지원 안 하더군요. 문제는 윈도 에뮬레이터가 왜 서버 소켓을 지원 안 하는지를 모르겠다는 것입니다. 내부적으로 WINSOCK을 썼을텐데, 함수 한 개 매핑만 해주면 될 일을 굳이 선택 사항이니깐 안 해도 되겠지라는 식으로 구현해줘서, 에뮬레이터 사용자를 불편하게 만드네요.


답답한 환경에서 개발하는 모바일 개발자 여러분 힘내십시오.