Mini2440 wince 5.0 串口打印输出

来源:互联网 发布:2017网络投资诈骗案例 编辑:程序博客网 时间:2024/05/18 03:28

调试Mini2440时,默认情况无法打开串口调试信息输出。如果需要打开串口0进行调试信息输出,按照如下方法进行:

1.  bsp包的/Src/Kernel/Oal路径下的debug.c文件中

 

(1)添加如下信息:

//-----------------------------------------------
// add by DY for test used
#define BSP_DEBUG_UART0
//-----------------------------------------------


#undef BSP_DEBUGPORT
#if defined(BSP_DEBUG_UART0) || defined(BSP_DEBUG_UART1)
#define BSP_DEBUGPORT
#endif

 

(2)更改如下信息

    // Configure the UART.  
    //   
    /*

    OUTREG32(&g_pUARTReg->UFCON,  BSP_UART1_UFCON);  
    OUTREG32(&g_pUARTReg->UMCON,  BSP_UART1_UMCON);  
    OUTREG32(&g_pUARTReg->ULCON,  BSP_UART1_ULCON);  
    OUTREG32(&g_pUARTReg->UCON,   BSP_UART1_UCON);  
    OUTREG32(&g_pUARTReg->UBRDIV, BSP_UART1_UBRDIV); 

    */

 

    OUTREG32(&g_pUARTReg->UFCON,  BSP_UART0_UFCON);  
    OUTREG32(&g_pUARTReg->UMCON,  BSP_UART0_UMCON);  
    OUTREG32(&g_pUARTReg->ULCON,  BSP_UART0_ULCON);  
    OUTREG32(&g_pUARTReg->UCON,   BSP_UART0_UCON);  
    OUTREG32(&g_pUARTReg->UBRDIV, BSP_UART0_UBRDIV); 

 

2. 相关的改动还有Src/Inc下的bsp_cfg.h

//------------------------------------------------------------------------------
// Debug UART1
//------------------------------------------------------------------------------

/*

#define DEBUG_BAUDRATE                  (115200)

#define BSP_UART1_ULCON         0x03                // 8 bits, 1 stop, no parity
#define BSP_UART1_UCON          0x0005              // pool mode, PCLK for UART
#define BSP_UART1_UFCON         0x00                // disable FIFO
#define BSP_UART1_UMCON         0x00                // disable auto flow control
#define BSP_UART1_UBRDIV        (S3C2440A_PCLK/(DEBUG_BAUDRATE*16) - 1)

*/

 

#define DEBUG_BAUDRATE                  (115200)

#define BSP_UART0_ULCON         0x03                // 8 bits, 1 stop, no parity
#define BSP_UART0_UCON          0x0005              // pool mode, PCLK for UART
#define BSP_UART0_UFCON         0x00                // disable FIFO
#define BSP_UART0_UMCON         0x00                // disable auto flow control
#define BSP_UART0_UBRDIV        (S3C2440A_PCLK/(DEBUG_BAUDRATE*16) - 1)

 

3. 由于不能让内核在启动过程中加载正常串口0的驱动,如果加载无法做调试口使用,需要修改注册表文件platform.reg,在这个文件中注释掉关于串口0的部分


IF BSP_NOSERIAL !

IF 0
IF BSP_NOUART0 !
;IF BSP_KITL != SERIAL_UART0
;=============== UART0 (physical COM1 connector P1) (Serial) ===============
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Serial0]
   "DeviceArrayIndex"=dword:0
   "Irq"=dword:1c
   "MemBase"=dword:50000000
   "MemLen"=dword:2C
   "InterruptBitsShift"=dword:0 ; UART 0 Interrupt Sub Register shift bit.
   "ISTTimeouts"=dword:200 ; every 512 ticks checking Modem status.
   "Prefix"="COM"
   "Index"=dword:1
   "Dll"="serial_smdk2440.dll"
   "Order"=dword:0
   "Priority"=dword:0
   "Port"="COM1:"
   "DeviceType"=dword:0
   "FriendlyName"="COM-1"
   "Tsp"="unimodem.dll"
   "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
   "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
;ENDIF
ENDIF

ENDIF

 

按照如上步骤添加之后,重新编译一下bsp即可。