Fork of Smoothie to port to mbed non-LPC targets.
Fork of Smoothie by
libs/LPC17xx/LPC17xxLib/src/lpc17xx_debug_frmwrk.c@2:1df0b61d3b5a, 2014-02-28 (annotated)
- 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?
User | Revision | Line number | New 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__ */ |