S3C2410的WINCE BSP添加串口支持 05
- UID
- 872238
|
S3C2410的WINCE BSP添加串口支持 05
在其后面添加:
case SYSINTR_SERIAL1: // Serial port1.
s2410INT->rSUBSRCPND = (INTSUB_RXD1 | INTSUB_TXD1 | INTSUB_ERR1);
s2410INT->rINTSUBMSK &= ~INTSUB_RXD1;
s2410INT->rINTSUBMSK &= ~INTSUB_TXD1;
s2410INT->rINTSUBMSK &= ~INTSUB_ERR1;
s2410INT->rSRCPND = BIT_UART1;
// S3C2410X Developer Notice (page 4) warns against writing a 1 to a 0 bit in the INTPND register.
if (s2410INT->rINTPND & BIT_UART1) s2410INT->rINTPND = BIT_UART1;
s2410INT->rINTMSK &= ~BIT_UART1;
break; |
搜索:
void
OEMInterruptDisable(DWORD idInt) // @parm Interrupt ID to be disabled. See <t Interrupt ID's> |
还是这一句:case SYSINTR_SERIAL:
在其后面添加:
case SYSINTR_SERIAL1:
s2410INT->rINTMSK |= BIT_UART1;
s2410INT->rINTSUBMSK |= INTSUB_RXD1;
s2410INT->rINTSUBMSK |= INTSUB_TXD1;
s2410INT->rINTSUBMSK |= INTSUB_ERR1;
break; |
搜索:
void
OEMInterruptDone(DWORD idInt) // @parm Interrupt ID. See <t Interrupt ID's>
依旧找到case SYSINTR_SERIAL:
在其后面添加:
case SYSINTR_SERIAL1:
s2410INT->rINTMSK &= ~BIT_UART1;
s2410INT->rINTSUBMSK &= ~INTSUB_RXD1;
break;
6、打开armint.c文件。
搜索:else if(IntPendVal == INTSRC_UART0)
在其后面添加:
else if(IntPendVal == INTSRC_UART1)
{
SubIntPendVal = s2410INT->rSUBSRCPND;
// Note that we only mask the sub source interrupt - the serial driver will clear the
// sub source pending register.
//
if(SubIntPendVal & INTSUB_ERR1)
{
s2410INT->rINTSUBMSK |= INTSUB_ERR1;
}
else if(SubIntPendVal & INTSUB_RXD1)
{
s2410INT->rINTSUBMSK |= INTSUB_RXD1;
}
else if(SubIntPendVal & INTSUB_TXD1)
{
s2410INT->rINTSUBMSK |= INTSUB_TXD1;
}
else
{
return(SYSINTR_NOP);
}
// NOTE: Don't clear INTSRC:UART1 here - serial driver does that.
//
s2410INT->rINTMSK |= BIT_UART1;
if (s2410INT->rINTPND & BIT_UART1) s2410INT->rINTPND = BIT_UART1;
return(SYSINTR_SERIAL1);
}
|
7、打开smdk2410.cec文件,添加UART1这个feature。
搜索
ComponentType
(
Name ( "Serial" )
GUID ( {6563AD6C-E71C-11D4-B892-0050FC049781} )
MaxResolvedImpsAllowed( 999 )
Implementations
(
Implementation
(
Name ( "S32410 Serial UART" ) |
在其后面添加:
Implementation
(
Name ( "S32410 Serial UART1" )
GUID ( {7C4427A5-286C-4C7A-B687-4E3B364D079B} )
Description ( "Samsung S32410 serial UART controller." )
BSPPlatformDir ( "smdk2410" )
Version ( "5.0.0.0" )
Locale ( 0409 )
Vendor ( "Microsoft" )
Date ( "2003-1-13" )
SizeIsCPUDependent( 1 )
BuildMethods
(
BuildMethod
(
GUID ( {07DA2083-6261-4ED6-B5BB-70CF4D930D68} )
Step ( BSP )
CPU ( "armV4" )
CPU ( "armV4I" )
Action ( '#BUILD(SOURCES,"$(_WINCEROOT)PLATFORMSMDK2410driversserial")')
)
)
) |
我感觉这个改不改没什么关系,反正网上有人这样改了,我也就改了,但是实际内核定制时中并没有添加上这个feature。
到这里,整个过程就结束了,耗费了我整整一天!其实改动量并不大,但是调试一次光编译就要15分钟,还要下载,烧写,启动~唉,没有仿真器就是麻烦。调了好多次没有成功,就是在注册表的中断号那儿出了问题! |
|
|
|
|
|