삽질기행/잡다정보2008. 5. 23. 01:22

Microsoft의 OS는 크게 3가지로 나뉜다.

-----------------------------------------------
.Net Micro Framework

OS는 아니다. (하지만 무려 Thread도 지원한다.)
AVR등이 주로 쓰이고 있는 환경을 .NET 으로 도배할 야심찬 계획. (센서노드가 분명 계산에 들어갔을거다)

WPF, XML도 지원한다.
HTTP Client 도 들어있던가? 하지만 가장 기대했던 Web Service Client는 없었다. 쳇.

Windows Vista 탑재 노트북의 SideShow 기능, 조금 더 Smart한 기능을 지원하는 시계서비스 (SPOT)등에 도입되어있다.

현재 지원 CPU는 ARM7, 9

물론 HAL은 하드웨어 제조사에서 자신들의 보드에 맞춰 직접 개발해야 한다.

-----------------------------------------------

Windows CE 계열
수도 없이 이름을 바꾸고는 있지만 -_-;

현재는 Windows Embedded CE로 부르고 있다. (곧 또 바꾼단다.)
이 계열에는
Windows Mobile / for XXX Edition s (예전의 Pocket PC)
과 Windows CE가 있다.

Windows Mobile은 PDA나 핸드폰에 탑재된다.
ARM9, MIPS 이상의 CPU가 필요하다.
Pocket PC 2002, 2003 은 Windows CE 3.X
Windows Mobile 5(?),6 는 Windows CE 5.X 의 커널을 사용.

Windows CE는 POS(마트 계산대)나 조금 대형 사이즈 PDA (PMP, 네비) 등에 많이 들어간다.

OS 포팅 과정은 PC처럼 표준화된 환경에 단순히 설치하는 작업이 아니다.
하드웨어에 맞추어 초기화과정, 인터럽트 세팅 등이 기본적으로 필요하며,
각 장치드라이버들을 구현 해주어야 한다. (이런 것들은 리눅스도 마찬가지.)

주로 OAL이라고 부르는 영역을 개발해주어야 하며,
거기에 더해 쉘을 자기가 원하는대로 바꾸고 싶다거나 한다면
엄청난 리소스노가다가 따라온다는 것을 잊지말자.

...그래도 CE에서는 .net 이 되잖아 *-_-*


-----------------------------------------------

PC 용 Windows

x86, x86 64bit CPU를 지원한다.
Windows XP, Windows Vista 등등
알다시피.

변종으로 컴포넌트들을 맘대로 세팅할 수 있는 Windows Embedded XP 와 곧 나올 Embedded Vista 가 있다.
오락실의 pump/ez2dj, 공장, POS 등에 활용된다.

가격도 일반 OS에 비해 저렴하고 pc windows 와 거의 완벽히 호환되는 게 장점이다.
-----------------------------------------------

공통점은 .net 으로 대동단결이 되며, 개발툴은 visual studio을 이용한다는거다.

Posted by freezn
삽질기행/잡다정보2008. 5. 23. 01:10

학생들에게 무료로 개발툴을 지원하는 프로그램(일종의 행사?)이다.

공부하는 학생개발자들에게 자기네 플랫폼에 완전히 물들게 하기 위한?

뭐... 일단 좋다. (난 학생이 아니라 안좋다 ㅜㅜ)


굳이 불법 CD 다운받지 않고도 쓸 수 있게 되었으니 등록해서 써보자..

이 프로그램에 등록하여 혜택을 받기 위해선 국제학생증이 필요하다.

자세한 내용은 나중에 덧붙이겠음.


...

그나저나 Microsoft는 신흥 종교라도 되고 싶은건지..-_-;;

evangelist는 뭐냐고! -_-;;

Posted by freezn
삽질기행/잡다정보2008. 5. 23. 01:07

두가지 컴포넌트가 포함된 project의 sdk가 필요로 할 수 있다.
AYG Shell 과 Network..뭐더라 -_-

Standard SDK 소스와 custom sdk를 비교해 봤을 땐 거의 무조건 있어야 되는 것으로 보인다.

AYG Shell 은 라이센스가 Professional 라서 Core를 쓰고자 한다면 골치가 좀 아플 듯.


Windows Embedded CE 6.0 부터는 아예 MFC 컴포넌트가 제외되어서 직접 라이브러리를 추가해야하는 걸로 봐선...

마소에서 '이제 MFC 그만 좀 쓰셈!' 하는 것으로 보인다. (MFC 좋은데... 우쒸... 버그가 꽤 있어서 그렇지..)

그런데 확실히 .net 의 퍼포먼스가 많이 좋아졌다.(컴퓨터가 좋아진건가?) 쉽고. 편하고.

.Net Micro Framework 도 써보고픈데..

보드 안사고 회사 보드에서 써볼라믄 이거 또 내가 포팅해야될까봐서리... 시간도 없는데 귀찮아서 -_-;

Posted by freezn
삽질기행/잡다정보2008. 5. 23. 01:01

Windows 에서 Wide Character 는 UNICODE 를 의미한다.

--------------------------------

매크로
_T("ABC")
TEXT("ABC")

"ABC" 대신 위에 것들을 쓰자.
UNICODE로 컴파일하면 UNICODE문자열로, ASCII로 컴파일하면 ASCII 문자열로 인식한다.

--------------------------------

windows (ce포함)용 c/c++의 string 처리에서 알아두면 좋은 거.

문자열의 길이를 재는 함수라면?
strlen() : ASCII용 문자열 길이 쟤는 함수
wcslen() : UNICODE용 문자열 길이 쟤는 함수
_tcslen() : 환경에 맞추어지는 매크로

뭐 일단 _mcslen() 도 있긴하다. (MB환경에서 strlen을 호출하면 이쪽으로 연결할걸?)

다른 함수들도 마찬가지다.

strXXXX() 함수들이 wcsXXXX()로, tcsXXXX() 로 바꾸어 쓰면 된다.

strtol : ASCII 문자열에서 long 값으로 변환 (atoi와 비슷하지만 진수 지정 가능)
wcstol : UNICODE ~~~
_tcstol : 환경 ~~~

-------------------------------

그럼 다 지원하려면 가장 깔끔한 방법은?
tcsXXXX() 시리즈를, char 대신 매크로 TCHAR 쓰는거.

물론 덕분에 골치아픈 문제도 가끔 발생한다는거..

-------------------------------

WideCharToMultiByte() : UNICODE -> ASCII

MultiByteToWideChar() : ASCII -> UNICODE

--------------------------------

char : ASCII
wchar_t : UNICODE
TCHAR : 환경 따라가는 매크로

--------------------------------

CString은 내용이 wchar일 수 도, char일 수 도 있음에 유의할 것.

--------------------------------

eVC++ 이나 SmartDevice(WinCE)용으로 사용하는 Visual Studio 시리즈는 기본설정이 UNICODE 환경으로 되어있다.
ASCII를 쓰고 싶다면 컴파일설정 (프로젝트 속성?) 을 바꾸어 주어야한다.

--------------------------------

아... Windows Embedded CE 6.0 부터는 기존 문자열 함수들에 문제가 있을 수 있다고 해서...
safe 시리즈를 선보였다. 젠장.

예를들어 strcpy 라면 strcpy_s 이런식이었던 듯...
대충 봤을 때 문자열 종료 문자 '\0'가 문제가 있다고 파악한 모양이다.

Posted by freezn