x210 debug口当普通串口使用
生活随笔
收集整理的這篇文章主要介紹了
x210 debug口当普通串口使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法共三步:
第一步:??修改文件wince600\platform\smdkv210\common\dbgserial\dbgserial.c中的三個函數
OEMInitDebugSerial()
{
...
????if?(g_pUARTReg?==?NULL)
????{
#if????(DEBUG_PORT?==?DEBUG_UART0)
????????//?UART0
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART0,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART1)
????????//?UART1
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART1,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART2)
????????//?UART2
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART2,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART3)
????????//?UART3
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART3,?FALSE);
#else
return?;??//?????沒有DEBUG口就直接返回,無需后面的初始化。
????//????INVALID_DEBUG_PORT????????//?Error
#endif
????}
...
}
int?OEMReadDebugByte()?
{
????UINT32?status,?ch;
//如果沒有DEBUG口,則直接返回。
???return?OEM_DEBUG_READ_NODATA;
if?(g_UARTStat?&?UART_NOT_READY)
????????return?OEM_DEBUG_READ_NODATA;
????
????status?=?INREG32(&g_pUARTReg->UTRSTAT);
????if?((status?&?0x01)?!=?0)?{
???????ch?=?INREG32(&g_pUARTReg->URXH);
????}?else?{
???????ch?=?OEM_DEBUG_READ_NODATA;
????}
????return?(int)ch;
}
VOID?OEMWriteDebugString(UINT16?*string)
{
//如果沒有DEBUG口,則直接返回。
???return?;
????while?(*string?!=?L'\0')?OEMWriteDebugByte((UINT8)*string++);
}
第二步:??\wince600\platform\smdkv210\src\oal\oallib\init.c
static?void?InitializeCLKGating(void)
{
...
???????????//added??by?terr0.y?20120929??fro?no?debug?uart
?pCMUCLKReg->CLK_GATE.CLK_GATE_IP3?=
?????#elif?(DEBUG_PORT?==?DEBUG_UART0)
????????????(CLK_OFF<<BP_CLK_IP_UART3)????????|?????//?all?clocks?for?UART3
????????????(CLK_OFF<<BP_CLK_IP_UART2)????????|?????//?all?clocks?for?UART2
????????????(CLK_OFF<<BP_CLK_IP_UART1)????????|?????//?all?clocks?for?UART1
????????????(CLK_ON<<BP_CLK_IP_UART0)?????????|?????//?all?clocks?for?UART0
??????#else??//?no?debug?uart??//不使用DEBUG口時,關閉所有串口的CLK
????????????(CLK_OFF<<BP_CLK_IP_UART3)????????|?????//?all?clocks?for?UART3
????????????(CLK_OFF<<BP_CLK_IP_UART2)????????|?????//?all?clocks?for?UART2
????????????(CLK_OFF<<BP_CLK_IP_UART1)????????|?????//?all?clocks?for?UART1
????????????(CLK_OFF<<BP_CLK_IP_UART0)????????|?????//?all?clocks?for?UART0
#endif
...
}
第三步:??
更改SMDKV210.bat文件
@REM?注釋掉這個定義
@REM?set?BSP_DEBUGPORT=SERIAL_UART0
第一步:??修改文件wince600\platform\smdkv210\common\dbgserial\dbgserial.c中的三個函數
OEMInitDebugSerial()
{
...
????if?(g_pUARTReg?==?NULL)
????{
#if????(DEBUG_PORT?==?DEBUG_UART0)
????????//?UART0
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART0,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART1)
????????//?UART1
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART1,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART2)
????????//?UART2
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART2,?FALSE);
#elif?(DEBUG_PORT?==?DEBUG_UART3)
????????//?UART3
????????g_pUARTReg?=?(UART_REG?*)OALPAtoVA(BASE_REG_PA_UART3,?FALSE);
#else
return?;??//?????沒有DEBUG口就直接返回,無需后面的初始化。
????//????INVALID_DEBUG_PORT????????//?Error
#endif
????}
...
}
int?OEMReadDebugByte()?
{
????UINT32?status,?ch;
//如果沒有DEBUG口,則直接返回。
???return?OEM_DEBUG_READ_NODATA;
if?(g_UARTStat?&?UART_NOT_READY)
????????return?OEM_DEBUG_READ_NODATA;
????
????status?=?INREG32(&g_pUARTReg->UTRSTAT);
????if?((status?&?0x01)?!=?0)?{
???????ch?=?INREG32(&g_pUARTReg->URXH);
????}?else?{
???????ch?=?OEM_DEBUG_READ_NODATA;
????}
????return?(int)ch;
}
VOID?OEMWriteDebugString(UINT16?*string)
{
//如果沒有DEBUG口,則直接返回。
???return?;
????while?(*string?!=?L'\0')?OEMWriteDebugByte((UINT8)*string++);
}
第二步:??\wince600\platform\smdkv210\src\oal\oallib\init.c
static?void?InitializeCLKGating(void)
{
...
???????????//added??by?terr0.y?20120929??fro?no?debug?uart
?pCMUCLKReg->CLK_GATE.CLK_GATE_IP3?=
?????#elif?(DEBUG_PORT?==?DEBUG_UART0)
????????????(CLK_OFF<<BP_CLK_IP_UART3)????????|?????//?all?clocks?for?UART3
????????????(CLK_OFF<<BP_CLK_IP_UART2)????????|?????//?all?clocks?for?UART2
????????????(CLK_OFF<<BP_CLK_IP_UART1)????????|?????//?all?clocks?for?UART1
????????????(CLK_ON<<BP_CLK_IP_UART0)?????????|?????//?all?clocks?for?UART0
??????#else??//?no?debug?uart??//不使用DEBUG口時,關閉所有串口的CLK
????????????(CLK_OFF<<BP_CLK_IP_UART3)????????|?????//?all?clocks?for?UART3
????????????(CLK_OFF<<BP_CLK_IP_UART2)????????|?????//?all?clocks?for?UART2
????????????(CLK_OFF<<BP_CLK_IP_UART1)????????|?????//?all?clocks?for?UART1
????????????(CLK_OFF<<BP_CLK_IP_UART0)????????|?????//?all?clocks?for?UART0
#endif
...
}
第三步:??
更改SMDKV210.bat文件
@REM?注釋掉這個定義
@REM?set?BSP_DEBUGPORT=SERIAL_UART0
總結
以上是生活随笔為你收集整理的x210 debug口当普通串口使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ldr
- 下一篇: 日本老父亲为女儿DIY可行走床头灯 网友