'OEMInitDebugSerial()'에 해당되는 글 1건
- 2007.12.06 Windows CE에서 Debug Port 설정
2007. 12. 6. 15:13
Windows CE에서 Debug Port 설정
2007. 12. 6. 15:13 in Windows Embedded/Windows Embedded CE 6.0
Windows CE에서 부팅 시 어떠한 일들이 벌어지는지 혹은 부팅 이후에 어떤 작업을 할 시에 무슨 일이 일어나는지에 대한 내용을 호스트 PC에서 '하이퍼터미널'과 같은 콘솔을 이용하여 확인할 수 있다.
이러한 것들을 확인하기 위해서는 'Debug Port'가 활성화 되어 있어야 한다.
일반적으로 이러한 내용들은 'OAL의 함수들'이 처리를 하게 된다.
디버깅 포트에 관련된 부분들은 'Debug.c'라는 파일을 참고하면 된다.
이 파일에서 'Debug Port'를 초기화 하는 함수를 볼 수 있다.
void OEMInitDebugSerial(void)
{
InitBootInfo ((BOOT_ARGS *) ((ULONG)(*(PBYTE *)BOOT_ARG_PTR_LOCATION) | 0x80000000));
switch ( g_pX86Info->ucComPort ) {
case 1:
IoPortBase = (PUCHAR)COM1_BASE;
break;
case 2:
IoPortBase = (PUCHAR)COM2_BASE;
break;
case 3:
IoPortBase = (PUCHAR)COM3_BASE;
break;
case 4:
IoPortBase = (PUCHAR)COM4_BASE;
break;
default:
IoPortBase = 0;
break;
}
if ( IoPortBase ) {
WRITE_PORT_UCHAR(IoPortBase+comLineControl, 0x80);
WRITE_PORT_UCHAR(IoPortBase+comDivisorLow, g_pX86Info->ucBaudDivisor);
WRITE_PORT_UCHAR(IoPortBase+comDivisorHigh, 0x00);
WRITE_PORT_UCHAR(IoPortBase+comFIFOControl, 0x01);
WRITE_PORT_UCHAR(IoPortBase+comLineControl, 0x03);
WRITE_PORT_UCHAR(IoPortBase+comIntEnable, 0x00);
WRITE_PORT_UCHAR(IoPortBase+comModemControl, 0x03);
}
OEMWriteDebugString(TEXT("Debug Serial Init\r\n"));
}
Debug.c파일의 OEMInitDebugSerial()함수
시리얼로 사용될 수 있는 4개의 포트 중 하나의 포트를 선택하여 디버깅 포트로 사용한다는 내용이다.
현재 COM1을 디버깅 포트로 사용하고 있는데 이를 COM2로 수정하고자 한다면,
...와 같이 Port를 수정하여 설정을 바꾸어 주면 된다.
}
IoPortBase = (PUCHAR)COM2_BASE;
if(IoPortBase) {
...
디버깅 포트를 막고자 한다면.. IOPortBase = 0으로 세팅해 주면 된다.
...
}
IoPortBase = 0;
if(IoPortBase) {
...
물론 registry에서의 설정도 사용할려는 시리얼에 관련된 내용을 포함하고 있어야 한다.
'Windows Embedded > Windows Embedded CE 6.0' 카테고리의 다른 글
Windows CE Screen Rotation (0) | 2007.12.10 |
---|---|
Debug port, UART, Serial, COM에 대한 간단한 정리.. (0) | 2007.12.06 |
Windows CE Boot Loader의 흐름 (0) | 2007.12.05 |
LDAP란.. 무엇일까요? (0) | 2007.12.04 |
Windows CE Ship Build (0) | 2007.11.30 |