Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 #ifdef __LPC17XX__
Michael J. Spencer 2:1df0b61d3b5a 2
Michael J. Spencer 2:1df0b61d3b5a 3 /**********************************************************************
Michael J. Spencer 2:1df0b61d3b5a 4 * $Id$ debug_frmwrk.c 2010-05-21
Michael J. Spencer 2:1df0b61d3b5a 5 *//**
Michael J. Spencer 2:1df0b61d3b5a 6 * @file debug_frmwrk.c
Michael J. Spencer 2:1df0b61d3b5a 7 * @brief Contains some utilities that used for debugging through UART
Michael J. Spencer 2:1df0b61d3b5a 8 * @version 2.0
Michael J. Spencer 2:1df0b61d3b5a 9 * @date 21. May. 2010
Michael J. Spencer 2:1df0b61d3b5a 10 * @author NXP MCU SW Application Team
Michael J. Spencer 2:1df0b61d3b5a 11 *
Michael J. Spencer 2:1df0b61d3b5a 12 * Copyright(C) 2010, NXP Semiconductor
Michael J. Spencer 2:1df0b61d3b5a 13 * All rights reserved.
Michael J. Spencer 2:1df0b61d3b5a 14 *
Michael J. Spencer 2:1df0b61d3b5a 15 ***********************************************************************
Michael J. Spencer 2:1df0b61d3b5a 16 * Software that is described herein is for illustrative purposes only
Michael J. Spencer 2:1df0b61d3b5a 17 * which provides customers with programming information regarding the
Michael J. Spencer 2:1df0b61d3b5a 18 * products. This software is supplied "AS IS" without any warranties.
Michael J. Spencer 2:1df0b61d3b5a 19 * NXP Semiconductors assumes no responsibility or liability for the
Michael J. Spencer 2:1df0b61d3b5a 20 * use of the software, conveys no license or title under any patent,
Michael J. Spencer 2:1df0b61d3b5a 21 * copyright, or mask work right to the product. NXP Semiconductors
Michael J. Spencer 2:1df0b61d3b5a 22 * reserves the right to make changes in the software without
Michael J. Spencer 2:1df0b61d3b5a 23 * notification. NXP Semiconductors also make no representation or
Michael J. Spencer 2:1df0b61d3b5a 24 * warranty that such application will be suitable for the specified
Michael J. Spencer 2:1df0b61d3b5a 25 * use without further testing or modification.
Michael J. Spencer 2:1df0b61d3b5a 26 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 27
Michael J. Spencer 2:1df0b61d3b5a 28 #include "debug_frmwrk.h"
Michael J. Spencer 2:1df0b61d3b5a 29 #include "lpc17xx_pinsel.h"
Michael J. Spencer 2:1df0b61d3b5a 30
Michael J. Spencer 2:1df0b61d3b5a 31 /* If this source file built with example, the LPC17xx FW library configuration
Michael J. Spencer 2:1df0b61d3b5a 32 * file in each example directory ("lpc17xx_libcfg.h") must be included,
Michael J. Spencer 2:1df0b61d3b5a 33 * otherwise the default FW library configuration file must be included instead
Michael J. Spencer 2:1df0b61d3b5a 34 */
Michael J. Spencer 2:1df0b61d3b5a 35 #ifdef __BUILD_WITH_EXAMPLE__
Michael J. Spencer 2:1df0b61d3b5a 36 #include "lpc17xx_libcfg.h"
Michael J. Spencer 2:1df0b61d3b5a 37 #else
Michael J. Spencer 2:1df0b61d3b5a 38 #include "lpc17xx_libcfg_default.h"
Michael J. Spencer 2:1df0b61d3b5a 39 #endif /* __BUILD_WITH_EXAMPLE__ */
Michael J. Spencer 2:1df0b61d3b5a 40
Michael J. Spencer 2:1df0b61d3b5a 41 #ifdef _DBGFWK
Michael J. Spencer 2:1df0b61d3b5a 42 /* Debug framework */
Michael J. Spencer 2:1df0b61d3b5a 43
Michael J. Spencer 2:1df0b61d3b5a 44 void (*_db_msg)(LPC_UART_TypeDef *UARTx, const void *s);
Michael J. Spencer 2:1df0b61d3b5a 45 void (*_db_msg_)(LPC_UART_TypeDef *UARTx, const void *s);
Michael J. Spencer 2:1df0b61d3b5a 46 void (*_db_char)(LPC_UART_TypeDef *UARTx, uint8_t ch);
Michael J. Spencer 2:1df0b61d3b5a 47 void (*_db_dec)(LPC_UART_TypeDef *UARTx, uint8_t decn);
Michael J. Spencer 2:1df0b61d3b5a 48 void (*_db_dec_16)(LPC_UART_TypeDef *UARTx, uint16_t decn);
Michael J. Spencer 2:1df0b61d3b5a 49 void (*_db_dec_32)(LPC_UART_TypeDef *UARTx, uint32_t decn);
Michael J. Spencer 2:1df0b61d3b5a 50 void (*_db_hex)(LPC_UART_TypeDef *UARTx, uint8_t hexn);
Michael J. Spencer 2:1df0b61d3b5a 51 void (*_db_hex_16)(LPC_UART_TypeDef *UARTx, uint16_t hexn);
Michael J. Spencer 2:1df0b61d3b5a 52 void (*_db_hex_32)(LPC_UART_TypeDef *UARTx, uint32_t hexn);
Michael J. Spencer 2:1df0b61d3b5a 53 uint8_t (*_db_get_char)(LPC_UART_TypeDef *UARTx);
Michael J. Spencer 2:1df0b61d3b5a 54
Michael J. Spencer 2:1df0b61d3b5a 55
Michael J. Spencer 2:1df0b61d3b5a 56 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 57 * @brief Puts a character to UART port
Michael J. Spencer 2:1df0b61d3b5a 58 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 59 * @param[in] ch Character to put
Michael J. Spencer 2:1df0b61d3b5a 60 * @return None
Michael J. Spencer 2:1df0b61d3b5a 61 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 62 void UARTPutChar (LPC_UART_TypeDef *UARTx, uint8_t ch)
Michael J. Spencer 2:1df0b61d3b5a 63 {
Michael J. Spencer 2:1df0b61d3b5a 64 UART_Send(UARTx, &ch, 1, BLOCKING);
Michael J. Spencer 2:1df0b61d3b5a 65 }
Michael J. Spencer 2:1df0b61d3b5a 66
Michael J. Spencer 2:1df0b61d3b5a 67
Michael J. Spencer 2:1df0b61d3b5a 68 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 69 * @brief Get a character to UART port
Michael J. Spencer 2:1df0b61d3b5a 70 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 71 * @return character value that returned
Michael J. Spencer 2:1df0b61d3b5a 72 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 73 uint8_t UARTGetChar (LPC_UART_TypeDef *UARTx)
Michael J. Spencer 2:1df0b61d3b5a 74 {
Michael J. Spencer 2:1df0b61d3b5a 75 uint8_t tmp = 0;
Michael J. Spencer 2:1df0b61d3b5a 76 UART_Receive(UARTx, &tmp, 1, BLOCKING);
Michael J. Spencer 2:1df0b61d3b5a 77 return(tmp);
Michael J. Spencer 2:1df0b61d3b5a 78 }
Michael J. Spencer 2:1df0b61d3b5a 79
Michael J. Spencer 2:1df0b61d3b5a 80
Michael J. Spencer 2:1df0b61d3b5a 81 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 82 * @brief Puts a string to UART port
Michael J. Spencer 2:1df0b61d3b5a 83 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 84 * @param[in] str string to put
Michael J. Spencer 2:1df0b61d3b5a 85 * @return None
Michael J. Spencer 2:1df0b61d3b5a 86 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 87 void UARTPuts(LPC_UART_TypeDef *UARTx, const void *str)
Michael J. Spencer 2:1df0b61d3b5a 88 {
Michael J. Spencer 2:1df0b61d3b5a 89 const uint8_t *s = (const uint8_t *) str;
Michael J. Spencer 2:1df0b61d3b5a 90
Michael J. Spencer 2:1df0b61d3b5a 91 while (*s)
Michael J. Spencer 2:1df0b61d3b5a 92 {
Michael J. Spencer 2:1df0b61d3b5a 93 UARTPutChar(UARTx, *s++);
Michael J. Spencer 2:1df0b61d3b5a 94 }
Michael J. Spencer 2:1df0b61d3b5a 95 }
Michael J. Spencer 2:1df0b61d3b5a 96
Michael J. Spencer 2:1df0b61d3b5a 97
Michael J. Spencer 2:1df0b61d3b5a 98 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 99 * @brief Puts a string to UART port and print new line
Michael J. Spencer 2:1df0b61d3b5a 100 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 101 * @param[in] str String to put
Michael J. Spencer 2:1df0b61d3b5a 102 * @return None
Michael J. Spencer 2:1df0b61d3b5a 103 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 104 void UARTPuts_(LPC_UART_TypeDef *UARTx, const void *str)
Michael J. Spencer 2:1df0b61d3b5a 105 {
Michael J. Spencer 2:1df0b61d3b5a 106 UARTPuts (UARTx, str);
Michael J. Spencer 2:1df0b61d3b5a 107 UARTPuts (UARTx, "\n\r");
Michael J. Spencer 2:1df0b61d3b5a 108 }
Michael J. Spencer 2:1df0b61d3b5a 109
Michael J. Spencer 2:1df0b61d3b5a 110
Michael J. Spencer 2:1df0b61d3b5a 111 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 112 * @brief Puts a decimal number to UART port
Michael J. Spencer 2:1df0b61d3b5a 113 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 114 * @param[in] decnum Decimal number (8-bit long)
Michael J. Spencer 2:1df0b61d3b5a 115 * @return None
Michael J. Spencer 2:1df0b61d3b5a 116 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 117 void UARTPutDec(LPC_UART_TypeDef *UARTx, uint8_t decnum)
Michael J. Spencer 2:1df0b61d3b5a 118 {
Michael J. Spencer 2:1df0b61d3b5a 119 uint8_t c1=decnum%10;
Michael J. Spencer 2:1df0b61d3b5a 120 uint8_t c2=(decnum/10)%10;
Michael J. Spencer 2:1df0b61d3b5a 121 uint8_t c3=(decnum/100)%10;
Michael J. Spencer 2:1df0b61d3b5a 122 UARTPutChar(UARTx, '0'+c3);
Michael J. Spencer 2:1df0b61d3b5a 123 UARTPutChar(UARTx, '0'+c2);
Michael J. Spencer 2:1df0b61d3b5a 124 UARTPutChar(UARTx, '0'+c1);
Michael J. Spencer 2:1df0b61d3b5a 125 }
Michael J. Spencer 2:1df0b61d3b5a 126
Michael J. Spencer 2:1df0b61d3b5a 127 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 128 * @brief Puts a decimal number to UART port
Michael J. Spencer 2:1df0b61d3b5a 129 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 130 * @param[in] decnum Decimal number (8-bit long)
Michael J. Spencer 2:1df0b61d3b5a 131 * @return None
Michael J. Spencer 2:1df0b61d3b5a 132 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 133 void UARTPutDec16(LPC_UART_TypeDef *UARTx, uint16_t decnum)
Michael J. Spencer 2:1df0b61d3b5a 134 {
Michael J. Spencer 2:1df0b61d3b5a 135 uint8_t c1=decnum%10;
Michael J. Spencer 2:1df0b61d3b5a 136 uint8_t c2=(decnum/10)%10;
Michael J. Spencer 2:1df0b61d3b5a 137 uint8_t c3=(decnum/100)%10;
Michael J. Spencer 2:1df0b61d3b5a 138 uint8_t c4=(decnum/1000)%10;
Michael J. Spencer 2:1df0b61d3b5a 139 uint8_t c5=(decnum/10000)%10;
Michael J. Spencer 2:1df0b61d3b5a 140 UARTPutChar(UARTx, '0'+c5);
Michael J. Spencer 2:1df0b61d3b5a 141 UARTPutChar(UARTx, '0'+c4);
Michael J. Spencer 2:1df0b61d3b5a 142 UARTPutChar(UARTx, '0'+c3);
Michael J. Spencer 2:1df0b61d3b5a 143 UARTPutChar(UARTx, '0'+c2);
Michael J. Spencer 2:1df0b61d3b5a 144 UARTPutChar(UARTx, '0'+c1);
Michael J. Spencer 2:1df0b61d3b5a 145 }
Michael J. Spencer 2:1df0b61d3b5a 146
Michael J. Spencer 2:1df0b61d3b5a 147 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 148 * @brief Puts a decimal number to UART port
Michael J. Spencer 2:1df0b61d3b5a 149 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 150 * @param[in] decnum Decimal number (8-bit long)
Michael J. Spencer 2:1df0b61d3b5a 151 * @return None
Michael J. Spencer 2:1df0b61d3b5a 152 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 153 void UARTPutDec32(LPC_UART_TypeDef *UARTx, uint32_t decnum)
Michael J. Spencer 2:1df0b61d3b5a 154 {
Michael J. Spencer 2:1df0b61d3b5a 155 uint8_t c1=decnum%10;
Michael J. Spencer 2:1df0b61d3b5a 156 uint8_t c2=(decnum/10)%10;
Michael J. Spencer 2:1df0b61d3b5a 157 uint8_t c3=(decnum/100)%10;
Michael J. Spencer 2:1df0b61d3b5a 158 uint8_t c4=(decnum/1000)%10;
Michael J. Spencer 2:1df0b61d3b5a 159 uint8_t c5=(decnum/10000)%10;
Michael J. Spencer 2:1df0b61d3b5a 160 uint8_t c6=(decnum/100000)%10;
Michael J. Spencer 2:1df0b61d3b5a 161 uint8_t c7=(decnum/1000000)%10;
Michael J. Spencer 2:1df0b61d3b5a 162 uint8_t c8=(decnum/10000000)%10;
Michael J. Spencer 2:1df0b61d3b5a 163 uint8_t c9=(decnum/100000000)%10;
Michael J. Spencer 2:1df0b61d3b5a 164 uint8_t c10=(decnum/1000000000)%10;
Michael J. Spencer 2:1df0b61d3b5a 165 UARTPutChar(UARTx, '0'+c10);
Michael J. Spencer 2:1df0b61d3b5a 166 UARTPutChar(UARTx, '0'+c9);
Michael J. Spencer 2:1df0b61d3b5a 167 UARTPutChar(UARTx, '0'+c8);
Michael J. Spencer 2:1df0b61d3b5a 168 UARTPutChar(UARTx, '0'+c7);
Michael J. Spencer 2:1df0b61d3b5a 169 UARTPutChar(UARTx, '0'+c6);
Michael J. Spencer 2:1df0b61d3b5a 170 UARTPutChar(UARTx, '0'+c5);
Michael J. Spencer 2:1df0b61d3b5a 171 UARTPutChar(UARTx, '0'+c4);
Michael J. Spencer 2:1df0b61d3b5a 172 UARTPutChar(UARTx, '0'+c3);
Michael J. Spencer 2:1df0b61d3b5a 173 UARTPutChar(UARTx, '0'+c2);
Michael J. Spencer 2:1df0b61d3b5a 174 UARTPutChar(UARTx, '0'+c1);
Michael J. Spencer 2:1df0b61d3b5a 175 }
Michael J. Spencer 2:1df0b61d3b5a 176
Michael J. Spencer 2:1df0b61d3b5a 177 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 178 * @brief Puts a hex number to UART port
Michael J. Spencer 2:1df0b61d3b5a 179 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 180 * @param[in] hexnum Hex number (8-bit long)
Michael J. Spencer 2:1df0b61d3b5a 181 * @return None
Michael J. Spencer 2:1df0b61d3b5a 182 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 183 void UARTPutHex (LPC_UART_TypeDef *UARTx, uint8_t hexnum)
Michael J. Spencer 2:1df0b61d3b5a 184 {
Michael J. Spencer 2:1df0b61d3b5a 185 uint8_t nibble, i;
Michael J. Spencer 2:1df0b61d3b5a 186
Michael J. Spencer 2:1df0b61d3b5a 187 UARTPuts(UARTx, "0x");
Michael J. Spencer 2:1df0b61d3b5a 188 i = 1;
Michael J. Spencer 2:1df0b61d3b5a 189 do {
Michael J. Spencer 2:1df0b61d3b5a 190 nibble = (hexnum >> (4*i)) & 0x0F;
Michael J. Spencer 2:1df0b61d3b5a 191 UARTPutChar(UARTx, (nibble > 9) ? ('A' + nibble - 10) : ('0' + nibble));
Michael J. Spencer 2:1df0b61d3b5a 192 } while (i--);
Michael J. Spencer 2:1df0b61d3b5a 193 }
Michael J. Spencer 2:1df0b61d3b5a 194
Michael J. Spencer 2:1df0b61d3b5a 195
Michael J. Spencer 2:1df0b61d3b5a 196 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 197 * @brief Puts a hex number to UART port
Michael J. Spencer 2:1df0b61d3b5a 198 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 199 * @param[in] hexnum Hex number (16-bit long)
Michael J. Spencer 2:1df0b61d3b5a 200 * @return None
Michael J. Spencer 2:1df0b61d3b5a 201 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 202 void UARTPutHex16 (LPC_UART_TypeDef *UARTx, uint16_t hexnum)
Michael J. Spencer 2:1df0b61d3b5a 203 {
Michael J. Spencer 2:1df0b61d3b5a 204 uint8_t nibble, i;
Michael J. Spencer 2:1df0b61d3b5a 205
Michael J. Spencer 2:1df0b61d3b5a 206 UARTPuts(UARTx, "0x");
Michael J. Spencer 2:1df0b61d3b5a 207 i = 3;
Michael J. Spencer 2:1df0b61d3b5a 208 do {
Michael J. Spencer 2:1df0b61d3b5a 209 nibble = (hexnum >> (4*i)) & 0x0F;
Michael J. Spencer 2:1df0b61d3b5a 210 UARTPutChar(UARTx, (nibble > 9) ? ('A' + nibble - 10) : ('0' + nibble));
Michael J. Spencer 2:1df0b61d3b5a 211 } while (i--);
Michael J. Spencer 2:1df0b61d3b5a 212 }
Michael J. Spencer 2:1df0b61d3b5a 213
Michael J. Spencer 2:1df0b61d3b5a 214 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 215 * @brief Puts a hex number to UART port
Michael J. Spencer 2:1df0b61d3b5a 216 * @param[in] UARTx Pointer to UART peripheral
Michael J. Spencer 2:1df0b61d3b5a 217 * @param[in] hexnum Hex number (32-bit long)
Michael J. Spencer 2:1df0b61d3b5a 218 * @return None
Michael J. Spencer 2:1df0b61d3b5a 219 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 220 void UARTPutHex32 (LPC_UART_TypeDef *UARTx, uint32_t hexnum)
Michael J. Spencer 2:1df0b61d3b5a 221 {
Michael J. Spencer 2:1df0b61d3b5a 222 uint8_t nibble, i;
Michael J. Spencer 2:1df0b61d3b5a 223
Michael J. Spencer 2:1df0b61d3b5a 224 UARTPuts(UARTx, "0x");
Michael J. Spencer 2:1df0b61d3b5a 225 i = 7;
Michael J. Spencer 2:1df0b61d3b5a 226 do {
Michael J. Spencer 2:1df0b61d3b5a 227 nibble = (hexnum >> (4*i)) & 0x0F;
Michael J. Spencer 2:1df0b61d3b5a 228 UARTPutChar(UARTx, (nibble > 9) ? ('A' + nibble - 10) : ('0' + nibble));
Michael J. Spencer 2:1df0b61d3b5a 229 } while (i--);
Michael J. Spencer 2:1df0b61d3b5a 230 }
Michael J. Spencer 2:1df0b61d3b5a 231
Michael J. Spencer 2:1df0b61d3b5a 232 ///*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 233 // * @brief print function that supports format as same as printf()
Michael J. Spencer 2:1df0b61d3b5a 234 // * function of <stdio.h> library
Michael J. Spencer 2:1df0b61d3b5a 235 // * @param[in] None
Michael J. Spencer 2:1df0b61d3b5a 236 // * @return None
Michael J. Spencer 2:1df0b61d3b5a 237 // **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 238 //void _printf (const char *format, ...)
Michael J. Spencer 2:1df0b61d3b5a 239 //{
Michael J. Spencer 2:1df0b61d3b5a 240 // static char buffer[512 + 1];
Michael J. Spencer 2:1df0b61d3b5a 241 // va_list vArgs;
Michael J. Spencer 2:1df0b61d3b5a 242 // char *tmp;
Michael J. Spencer 2:1df0b61d3b5a 243 // va_start(vArgs, format);
Michael J. Spencer 2:1df0b61d3b5a 244 // vsprintf((char *)buffer, (char const *)format, vArgs);
Michael J. Spencer 2:1df0b61d3b5a 245 // va_end(vArgs);
Michael J. Spencer 2:1df0b61d3b5a 246 //
Michael J. Spencer 2:1df0b61d3b5a 247 // _DBG(buffer);
Michael J. Spencer 2:1df0b61d3b5a 248 //}
Michael J. Spencer 2:1df0b61d3b5a 249
Michael J. Spencer 2:1df0b61d3b5a 250 /*********************************************************************//**
Michael J. Spencer 2:1df0b61d3b5a 251 * @brief Initialize Debug frame work through initializing UART port
Michael J. Spencer 2:1df0b61d3b5a 252 * @param[in] None
Michael J. Spencer 2:1df0b61d3b5a 253 * @return None
Michael J. Spencer 2:1df0b61d3b5a 254 **********************************************************************/
Michael J. Spencer 2:1df0b61d3b5a 255 void debug_frmwrk_init(void)
Michael J. Spencer 2:1df0b61d3b5a 256 {
Michael J. Spencer 2:1df0b61d3b5a 257 UART_CFG_Type UARTConfigStruct;
Michael J. Spencer 2:1df0b61d3b5a 258 PINSEL_CFG_Type PinCfg;
Michael J. Spencer 2:1df0b61d3b5a 259
Michael J. Spencer 2:1df0b61d3b5a 260 #if (USED_UART_DEBUG_PORT==0)
Michael J. Spencer 2:1df0b61d3b5a 261 /*
Michael J. Spencer 2:1df0b61d3b5a 262 * Initialize UART0 pin connect
Michael J. Spencer 2:1df0b61d3b5a 263 */
Michael J. Spencer 2:1df0b61d3b5a 264 PinCfg.Funcnum = 1;
Michael J. Spencer 2:1df0b61d3b5a 265 PinCfg.OpenDrain = 0;
Michael J. Spencer 2:1df0b61d3b5a 266 PinCfg.Pinmode = 0;
Michael J. Spencer 2:1df0b61d3b5a 267 PinCfg.Pinnum = 2;
Michael J. Spencer 2:1df0b61d3b5a 268 PinCfg.Portnum = 0;
Michael J. Spencer 2:1df0b61d3b5a 269 PINSEL_ConfigPin(&PinCfg);
Michael J. Spencer 2:1df0b61d3b5a 270 PinCfg.Pinnum = 3;
Michael J. Spencer 2:1df0b61d3b5a 271 PINSEL_ConfigPin(&PinCfg);
Michael J. Spencer 2:1df0b61d3b5a 272
Michael J. Spencer 2:1df0b61d3b5a 273 #elif (USED_UART_DEBUG_PORT==1)
Michael J. Spencer 2:1df0b61d3b5a 274 /*
Michael J. Spencer 2:1df0b61d3b5a 275 * Initialize UART1 pin connect
Michael J. Spencer 2:1df0b61d3b5a 276 */
Michael J. Spencer 2:1df0b61d3b5a 277 PinCfg.Funcnum = 1;
Michael J. Spencer 2:1df0b61d3b5a 278 PinCfg.OpenDrain = 0;
Michael J. Spencer 2:1df0b61d3b5a 279 PinCfg.Pinmode = 0;
Michael J. Spencer 2:1df0b61d3b5a 280 PinCfg.Pinnum = 15;
Michael J. Spencer 2:1df0b61d3b5a 281 PinCfg.Portnum = 0;
Michael J. Spencer 2:1df0b61d3b5a 282 PINSEL_ConfigPin(&PinCfg);
Michael J. Spencer 2:1df0b61d3b5a 283 PinCfg.Pinnum = 16;
Michael J. Spencer 2:1df0b61d3b5a 284 PINSEL_ConfigPin(&PinCfg);
Michael J. Spencer 2:1df0b61d3b5a 285 #endif
Michael J. Spencer 2:1df0b61d3b5a 286
Michael J. Spencer 2:1df0b61d3b5a 287 /* Initialize UART Configuration parameter structure to default state:
Michael J. Spencer 2:1df0b61d3b5a 288 * Baudrate = 9600bps
Michael J. Spencer 2:1df0b61d3b5a 289 * 8 data bit
Michael J. Spencer 2:1df0b61d3b5a 290 * 1 Stop bit
Michael J. Spencer 2:1df0b61d3b5a 291 * None parity
Michael J. Spencer 2:1df0b61d3b5a 292 */
Michael J. Spencer 2:1df0b61d3b5a 293 UART_ConfigStructInit(&UARTConfigStruct);
Michael J. Spencer 2:1df0b61d3b5a 294
Michael J. Spencer 2:1df0b61d3b5a 295 // Re-configure baudrate to 115200bps
Michael J. Spencer 2:1df0b61d3b5a 296 UARTConfigStruct.Baud_rate = 115200;
Michael J. Spencer 2:1df0b61d3b5a 297
Michael J. Spencer 2:1df0b61d3b5a 298 // Initialize DEBUG_UART_PORT peripheral with given to corresponding parameter
Michael J. Spencer 2:1df0b61d3b5a 299 UART_Init((LPC_UART_TypeDef *) DEBUG_UART_PORT, &UARTConfigStruct);
Michael J. Spencer 2:1df0b61d3b5a 300
Michael J. Spencer 2:1df0b61d3b5a 301 // Enable UART Transmit
Michael J. Spencer 2:1df0b61d3b5a 302 UART_TxCmd((LPC_UART_TypeDef *) DEBUG_UART_PORT, ENABLE);
Michael J. Spencer 2:1df0b61d3b5a 303
Michael J. Spencer 2:1df0b61d3b5a 304 _db_msg = UARTPuts;
Michael J. Spencer 2:1df0b61d3b5a 305 _db_msg_ = UARTPuts_;
Michael J. Spencer 2:1df0b61d3b5a 306 _db_char = UARTPutChar;
Michael J. Spencer 2:1df0b61d3b5a 307 _db_hex = UARTPutHex;
Michael J. Spencer 2:1df0b61d3b5a 308 _db_hex_16 = UARTPutHex16;
Michael J. Spencer 2:1df0b61d3b5a 309 _db_hex_32 = UARTPutHex32;
Michael J. Spencer 2:1df0b61d3b5a 310 _db_dec = UARTPutDec;
Michael J. Spencer 2:1df0b61d3b5a 311 _db_dec_16 = UARTPutDec16;
Michael J. Spencer 2:1df0b61d3b5a 312 _db_dec_32 = UARTPutDec32;
Michael J. Spencer 2:1df0b61d3b5a 313 _db_get_char = UARTGetChar;
Michael J. Spencer 2:1df0b61d3b5a 314 }
Michael J. Spencer 2:1df0b61d3b5a 315 #endif /*_DBGFWK */
Michael J. Spencer 2:1df0b61d3b5a 316
Michael J. Spencer 2:1df0b61d3b5a 317
Michael J. Spencer 2:1df0b61d3b5a 318 /* --------------------------------- End Of File ------------------------------ */
Michael J. Spencer 2:1df0b61d3b5a 319 #endif /* __LPC17XX__ */