회원 및 비회원 모두 열람이 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

글이 길어질 듯 해서, 답글로 썼습니다.

mmsp2/mmsp2+ 커널을 개발하면서 wince소스를 많이 봤었습니다.
근래는 wince를가지고 포팅도 좀 해봤고요.

제가 wince에 대해서 모르는 부분이 많지만, 지금까지 봐왔고, 느꼈던 점을 대략 리눅스와
비교해서 써 봤습니다.

================================================================
첫째, 신규 제품 개발할 때마다 개발환경이 달라진다는 것입니다.
신규제품 개발하면, 해외 IC Maker에서 판매하는evaluation board를 구매해서 그 제품을 수정해서 개발합니다.
그 때마다, bootloader가 달라지고, 개발환경도 달라집니다.
일반적으로 u-boot를 많이 사용한다고는 하지만, 실제로는 상당수 evaluation board가 자체 bootloader을 사용하니,
신규제품 개발할 때마다, bootloader porting을 위해서, 수많은 삽질을 하구요…
이 부분에서 상당히 부담을 느낌니다.
즉… 배(본격적인 개발)보다 배꼽이 더 큰 것 같다는 느낌이 듭니다.
win-ce는 어떤가요 ?
bootloader와 개발환경이 이 처름 evaluation board마다 달라지는지요 ?
================================================================


- Linux의 경우 부트로더가 틀려지는 부분은 어쩔 수 없다고 보여집니다. 공식적언 부트로더가 없으니까요.
- 하지만 저의 경우는 대부분 분석해서 u-boot로 포팅을 해서 작업하는 편입니다.
- 아니면 ev보드회사에서 준 부트로더를 변경해서 상용으로 사용이 가능하도록 수정합니다.
- 참고로, 장비를 쓰면 부트로더에서는 그다지 오래 걸리지는 않을 것이라고 보여집니다.

- wince의 경우는 eboot의 구조에 맞춰야 합니다. 물론 거기도 custom code가 많이 들어갑니다.
- 칩벤더에서 주는 경우가 대부분이기 때문에 그냥 약간의 변경만 하시면 됩니다. 즉, 구조변경은 없다는 쪽이지요.
- 의외로 코딩보다는 세팅이 많은 편입니다.

- 개인적인말
저는 부트로더를 주는 대로 쓰는 편입니다. 거의 모든 칩들이 비슷합니다.
한 칩에 익숙해져 있으면(core가 같은) 거의 유사하지 않을까요?
개인적으로 au1200 yamon이 제일 골때렸었습니다. 하지만 남는것도 있었지요.




================================================================
둘째, 마이컴 firmware에 비해서 재미가 별로 없군요…
하는 일일라곤 대부분 삽질이구요…
driver source code의 99%는 그데로 사용하고,
그 나머지 1%의 변경을 위해서 숱한 날들을 밤을 세워야 하구요…
이런 점에서 win-ce는 어떤가요 ?
================================================================

- 마이컴은 직접 작성해야하는 경우가 많기 때문에 재미가 더 있을 수 있다고 봅니다.

- 리눅스의 드라이버 구조는 있는구조에 맞춰서 넣는 방식입니다.
- 구조에 익숙하지 않으면 진짜 삽질이라는 생각밖에 들지 않습니다.
- 2.6서부터는 그 구조가 그나마 잡혀 있는 상황이라 개인적으로는 훨 편해졌다고 생각합니다.
- 한번 익숙해지면(특정 버전에 따라) 의외로 편한구석이 많습니다.
- 1%변경을 해서 동작한다면 아주 편한구조가 아닐까요?....^^

- wince의 경우는 어느정도의 구조는 있으나 드라이버의 구성은 거의 맘대로입니다.
- 리눅스 커널 2.4를 보는 듯 합니다. 리눅스 2.6보다는 자유도가 훨 있는 편이고요.
- wince는 세팅노가다(BSP작성할 경우 외엔) + 시간과의 싸움입니다. 저도 근래 포팅할 일이 있어서 같이 작업을 하는데
속터져 죽는 줄 알았습니다...--; 한마디로 되어 있는 BSP가 있다면 코딩은 거의 할일없고 세팅입니다.
==> 세팅이 그렇게 힘들줄은....--;
- 대신 application의 경우 MFC와 win32api를 잘 다루신다면 pc랑 거의 동일한 환경이니 의외로 재미 있을지도 모르겠습니다.


================================================================
셋째, kernel source가 너무나 방대하기 대문에
어느 부분을 수정(porting)해야할 지 감을 못잡겠습니다.
설명하는 문서가 제데로 있는 것도 아니구요…
결국 대부분 사람들도 경험으로 터득하는 것 같은데요..
더더구나, 커널 버전이 항상 바뀌고 있으니 말입니다.
(물론, win-ce도 바뀌는 것은 마찬가지 이겠지만 말입니다.)
그래도, win-ce의 경우는 기술문서가 MS사에서 잘 나와 있을 것으로 생각됩니다.
즉… 어떤 부분의 수정을 위해서는 어떤 디렉토리의 어떤 파일의 어떤 부분을 수정해야 된다는 씩으로 말입니다.

10년 정도된 개발자가 그러더군요…
linux로 개발하려면, 공짜(물론, 어떤 것은 유료이지만…)인 대신에 임금비도 안 나온다고
그래서, 개발일정,임금비,안정성등을 고려하면, 속편하게 win-ce로 개발하는 것이 낳다더군요…
ps: win-ce kernel, driver 포팅을 하려면 c++도 알아야 되는지요 ?
================================================================

- kernel source가 방대하지만 손대야 할 부분은 일부분입니다. 손대는 부분은 뻔합니다.
- 설명하는 문서는 그다지 필요하지 않고(보통은 kernel tree의 Documentation부분에 자료가 많습니다) tree구조와 device model만
알면 됩니다(설명해 놓은 자료가 대부분 별로 안좋지만요...^^)
- 커널 버전이 바뀌는 부분은 어쩔 수 없지만, 나름 몇개의 category로 구분이 가능합니다.


- wince의 경우는 현재 거의 5.0을 사용합니다. 4.2에서 5.0으로 넘어가는 부분이 그나마 수월해서이기도 하고
5.0에서 6.0으로 넘어가는데 그다지 필요성을 못 느끼기 때문이기도 하고요(6.0은 완전히 바뀌었답니다).
그리고, 조만간 7.0이 나온다는 얘기가 많고요.
- wince BSP를 한번 만드는데는 거의 1년이 걸립니다. 해외 칩벤더들이 리눅스로 먼저 내놓고, 나중에야 wince를
내놓는 경우가 이 때문이고요. 의외로 wince BSP의 안정성이 떨어지는 경우가 많아서 제대로 도는 칩은 손에 꼽을
지경입니다.(특정기간내에요)
- wince 개발문서는 MSDN에 아주 잘 나와 있습니다. 하지만 전체 구조에 대한 책은 구하기 힘들고, 물어보고자
해도 절때루 잘 안가르쳐 줄겁니다. 그게 돈이니까요. 해당구조는 직접 파악해야합니다(BSP구조는).
- wince는 대부분 상용이라 registry 한줄 세팅하는 것도 잘 안갈켜 줍니다.


- 개인적인글
- wince와 리눅스의 차이는 적용시스템이 있다고 보여집니다.
- 네트워크와 디바이스가 많이 붙는쪽(customizing이 많은쪽)은 리눅스로, 상대적으로 GUI와 network 의존도가
적고, customizing이 덜한쪽은 wince가 쓰입니다.
- 대신 재미있는 부분은 wince쪽은 모든게 돈이고, 리눅스는 모든게 인력입니다....ㅎㅎ
- 어떤것이 좋다보다는 어떤쪽으로 쓰여야 하는지에 따라서 적용 OS가 틀려지는 것이라고 보고요.
- 돈과 편한쪽을 생각한다면 wince가 훨 낫습니다. 대신 BSP포팅쪽은 하지말고 app만 하는게 훨 나을거라고
생각합니다.
- 저도 요즘 wince 소스를 많이보고 동작시켜보고 있습니다만, 하는 일은 리눅스랑 동일합니다(대신 개발 컴이 엄청좋아야 한다는...^^)
- 리눅스가 인력이 많이들고 힘들다고 얘기하지만, 사람에 따라서라고 보여지고요.
- wince 엔지니어가 각광받는 이유는 딱 두가지라고 보여집니다.
1. 칩벤더가 주는대로 쓰면 되는데, 수정하기가 버겁니다(BSP 포팅의경우)
2. 단말쪽 수요가 많아지면서 잘하는 application 엔지니어가 별루 없다.

--> 한가지 재밌는 일은 wince쪽/리눅스쪽 가릴것 없이 의외로 사깃군들이 많습니다. 다 할 수 있다고 하고서는
하나도 못해서 프로젝트를 말아먹는 경우가 요즘 속출하네요. 근래 전화만 두번 받았습니다. wince관련해서



ps> wince kernel/driver는 대부분 칩벤더가 준 BSP를 거의 그대로 사용합니다. 수정이 대부분이고
재작성은 의외로 드뭅니다. BSP가 C로 되어 있는 경우도 있지만, C++로 되어 있는 경우도 많습니다.
App까지 생각한다면 C++을 당연히 알아야 하겠지요.


ps1> wince랑 리눅스 커널 개발속도를 비교하면 리눅스가 훨 빠릅니다. 칩벤더 입장에서 작업하면 그렇습니다.
하지만 사용자 입장에서는 wince가 편합니다. 왜냐하면 BSP개발이 끝난후에 릴리즈된것을 쓰는 편이니깐요.
리눅스는 주로 사용처가 customizing하는 부분이 많아서 어렵다고 느껴진다고 생각합니다.


ps2> 어느 업계에 있건 상위 몇 %안에 들면 어느정도 만족한다고 생각합니다. wince건 리눅스건 고물상이건....^^
그 몇 %안에 들려면 어떻게 해야할까 하는게 관건아닐까요? 저는 일을 한번 시작한다면 끝을 봐야 그 부분에서
만큼은 큰 소리칠 수 있다고 생각합니다.


ps3> wince에 대해서 약간 부정적으로 쓴 것처럼 보이지만, 적용에 따라 case by case입니다.
둘 다 잘하면 좋다고 생각하고요....^^, 요즘 wince bsp쓰다가 하두 돈 달라는데가 많은데다가
잘 안가르쳐 줄려고하는 그쪽 업계 풍토땜에 의아해 하고 있습니다.



>현재 5년차 개발자입니다.
>linux 사이트에서 이런 애기해서 대단히 죄송합니다.
>제 진로에 관련되어서 너무 고민이 되어서 이렇게 문의드립니다.
>
>처음 회사생활은 MCU(마이컴) Firmware로 시작을 했고 2년동안 했습니다.
>그 후, embedded linux 쪽으로 분야를 바꾸었습니다.
>했었던 업무는 bootloader,kernel,filesystem,device driver porting일이구요…
>이 분야 일을 2년 정도 했는데, 아직도 막막합니다.
>이젠 embedded linux 분야쪽의 일에 대해서 회의를 느끼면서, 이 일을 계속해야 할지,
>win-ce 분야로 바꿔야 할 지 많이 고민입니다.
>고민하는 내용은 다음과 같습니다.
>linux와 win-ce경험이 있으신 분은 조언을 해 주시면 대단히 감사하겠습니다.
>
>첫째, 신규 제품 개발할 때마다 개발환경이 달라진다는 것입니다.
>신규제품 개발하면, 해외 IC Maker에서 판매하는evaluation board를 구매해서 그 제품을 수정해서 개발합니다.
>그 때마다, bootloader가 달라지고, 개발환경도 달라집니다.
>일반적으로 u-boot를 많이 사용한다고는 하지만, 실제로는 상당수 evaluation board가 자체 bootloader을 사용하니,
>신규제품 개발할 때마다, bootloader porting을 위해서, 수많은 삽질을 하구요…
>이 부분에서 상당히 부담을 느낌니다.
>즉… 배(본격적인 개발)보다 배꼽이 더 큰 것 같다는 느낌이 듭니다.
>win-ce는 어떤가요 ?
>bootloader와 개발환경이 이 처름 evaluation board마다 달라지는지요 ?
>
>둘째, 마이컴 firmware에 비해서 재미가 별로 없군요…
>하는 일일라곤 대부분 삽질이구요…
>driver source code의 99%는 그데로 사용하고,
>그 나머지 1%의 변경을 위해서 숱한 날들을 밤을 세워야 하구요…
>이런 점에서 win-ce는 어떤가요 ?
>
>셋째, kernel sourc가 너무나 방대하기 대문에
>어느 부분을 수정(porting)해야할 지 감을 못잡겠습니다.
>설명하는 문서가 제데로 있는 것도 아니구요…
>결국 대부분 사람들도 경험으로 터득하는 것 같은데요..
>더더구나, 커널 버전이 항상 바뀌고 있으니 말입니다.
>(물론, win-ce도 바뀌는 것은 마찬가지 이겠지만 말입니다.)
>그래도, win-ce의 경우는 기술문서가 MS사에서 잘 나와 있을 것으로 생각됩니다.
>즉… 어떤 부분의 수정을 위해서는 어떤 디렉토리의 어떤 파일의 어떤 부분을 수정해야 된다는 씩으로 말입니다.
>
>10년 정도된 개발자가 그러더군요…
>linux로 개발하려면, 공짜(물론, 어떤 것은 유료이지만…)인 대신에 임금비도 안 나온다고
>그래서, 개발일정,임금비,안정성등을 고려하면, 속편하게 win-ce로 개발하는 것이 낳다더군요…
>ps: win-ce kernel, driver 포팅을 하려면 c++도 알아야 되는지요 ?
>

고현철

2008.02.04 06:39:51
*.51.146.125

한가지 더 말씀드리면....

wince와 리눅스를 병행해서 하면 가장 좋은점은 교차검증이 가능합니다.

리눅스의 경우는 직접 코딩이 가능하니깐 보드테스팅에는 왔다입니다.
wince에서는 bsp문제인지, 드라이버 문제인지, app문제인지 검증하기가
사실상 힘듭니다.

해서 리눅스로 올려서 Okay되면 sw문제로 검증하고 넘어갑니다.

근래에 이렇게 해서 개발했던 적이 있습니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 교육 홍보 및 광고는 "교육 및 세미나 홍보" 게시판을 이용해 ... 관리자 2010-07-15 108026
650 linux kernel 2.6.17 ~ 2.6.24.1까지 반드시 패치하시기 바랍... [1] 고현철 2008-02-13 1522
649 PC 메인보드 시리얼만 맛이 갔네요...--; [2] 고현철 2008-02-13 1570
648 s3c6400 칩가격과 H.264 H/W 디코딩 구동소스에 대하여 .... [4] 장석원 2008-02-12 1874
647 [잡담] wepos란 놈을 깔아보고 있습니다. [3] 도찬구 2008-02-12 2174
646 한동안 WinCE쪽 코드들을 보면서...... [1] 고현철 2008-02-04 2142
645 [re] 인터넷에 있는 코덱의 GPL 위반에 대한 글을 퍼왔읍니... file [1] 장석원 2008-02-08 1695
644 진로에 대한 조언을 구합니다. [3] 김경식 2008-02-04 1967
» [re] 진로에 대한 조언을 구합니다. [1] 고현철 2008-02-04 2154
642 [re] 답변 대단히 감사합니다. 죄송하지만, 몇 가지만 다시 ... 김경식 2008-02-05 1902
641 [re] 답변 대단히 감사합니다. 죄송하지만, 몇 가지만 다시 ... 고현철 2008-02-05 1922
640 이솝 2차 보드에서 LED 냉땜 발견... ^^;;;; [2] 김영수 2008-01-30 1754
639 [지난게시물]aesop-mp2530f 세미나 관련 설문조사/장소구함 [2] 고도리 2007-11-21 1634
638 VMware Tools 설치 (slackware11.0) [1] 박세웅 2008-01-29 1828
637 scratchbox2 사용기.. file [2] 이상철 2008-01-25 2059
636 어 현철님 방금 로그인 하셨나보네요 ^^ 불법싸이트 광고 ... [1] 조준동 2008-01-25 1613
635 잘 되네요~!! 감사합니다~!! [3] 신철수 2008-01-24 1556
634 RAM 2G 샀습니다....wince 공부 시작해야할까 합니다...ㅎㅎ [5] 고현철 2008-01-21 1590
633 창업 준비중 입니다 ...... 힘드네요 ㅠㅠ [5] 장석원 2008-01-20 1599
632 드뎌 듀얼 모니터 씁니다...^^ [6] 고현철 2008-01-17 1516
631 MP2530 리눅스커널 소스와 U-Boot 소스를 얻고 싶은데 가능할... [4] 장석원 2008-01-17 1588

사용자 로그인