S3C2410的WINCE BSP添加串口支持
s2410INT->rINTMSK = ~BIT_UART1;
break;
搜索:
void
OEMInterruptDisable(DWORD idInt) // @parm Interrupt ID to be disabled. See
还是这一句: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
依旧找到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分钟,还要下载,烧写,启动~唉,没有仿真器就是麻烦。调了好多次没有成功,就是在注册表的中断号那儿出了问题!
评论