//-------------------------------------------------------------------------- // // This module provides debug support using a PSoC UART. It can optionally // be compiled in. // //-------------------------------------------------------------------------- // $Archive: /WirelessUSB/WUSB Kits/CY4632 LS KBM RDK/DocSrc/CD_Root/Firmware/Source Code/RDK Mouse/debug.c $ // $Modtime: 6/16/04 4:38p10/01/04 1:18p $ // $Revision: 910 $ //-------------------------------------------------------------------------- // // Copyright 2003-2004, Cypress Semiconductor Corporation. // // This software is owned by Cypress Semiconductor Corporation (Cypress) // and is protected by and subject to worldwide patent protection (United // States and foreign), United States copyright laws and international // treaty provisions. Cypress hereby grants to licensee a personal, // non-exclusive, non-transferable license to copy, use, modify, create // derivative works of, and compile the Cypress Source Code and derivative // works for the sole purpose of creating custom software in support of // licensee product to be used only in conjunction with a Cypress integrated // circuit as specified in the applicable agreement. Any reproduction, // modification, translation, compilation, or representation of this // software except as specified above is prohibited without the express // written permission of Cypress. // // Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, // WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // Cypress reserves the right to make changes without further notice to the // materials described herein. Cypress does not assume any liability arising // out of the application or use of any product or circuit described herein. // Cypress does not authorize its products for use as critical components in // life-support systems where a malfunction or failure may reasonably be // expected to result in significant injury to the user. The inclusion of // Cypress’ product in a life-support systems application implies that the // manufacturer assumes all risk of such use and in doing so indemnifies // Cypress against all charges. // // Use may be limited by and subject to the applicable Cypress software // license agreement. // //-------------------------------------------------------------------------- //-------------------------------------- // Included files //-------------------------------------- #include "appconfig.h" #include PLATFORM_H #include "ls_config.h" #include "debug.h" #ifdef DEBUG #include "dbg_port.h" //-------------------------------------- // Local Definitions and Types //-------------------------------------- //-------------------------------------- // Local Function Declarations //-------------------------------------- static void debug_out_nibble(unsigned char nibble); //-------------------------------------- // Local Definitions //-------------------------------------- //-------------------------------------------------------------------------- // debug_init //-------------------------------------------------------------------------- void debug_init(void) { DBG_Port_Start(UART_PARITY_NONE); } //-------------------------------------------------------------------------- // debug_out_char //-------------------------------------------------------------------------- void debug_out_char(unsigned char data) { // write a byte DBG_Port_SendData(data); // wait for the byte to be sent while(!(bDBG_Port_ReadTxStatus() & UART_TX_BUFFER_EMPTY)); } //-------------------------------------------------------------------------- // debug_out_str //-------------------------------------------------------------------------- void debug_out_str(const unsigned char *pbStrPtr) { // loop for the null terminated string while( *pbStrPtr != 0 ) { // write a character debug_out_char( *pbStrPtr ); // point to the next character pbStrPtr++; } } //-------------------------------------------------------------------------- // debug_out_hex //-------------------------------------------------------------------------- void debug_out_hex(unsigned char data) { debug_out_nibble((data >> 4) & 0x0f); debug_out_nibble(data & 0x0f); } //-------------------------------------------------------------------------- // debug_out_dec //-------------------------------------------------------------------------- void debug_out_dec(unsigned char data) { if(data > 99) { debug_out_nibble(data / 100); data %= 100; debug_out_nibble(data / 10); data %= 10; debug_out_nibble(data); } else if(data > 9) { debug_out_nibble(data / 10); data %= 10; debug_out_nibble(data); } else debug_out_nibble(data); } //-------------------------------------------------------------------------- // debug_out_nibble //-------------------------------------------------------------------------- static void debug_out_nibble(unsigned char nibble) { if(nibble > 9) { debug_out_char((nibble - 10) + 'A'); } else { debug_out_char(nibble + '0'); } } #endif // DEBUG