Changeset 20235a3 in mainline for boot/arch/arm32/src/putchar.c
- Timestamp:
- 2010-09-02T20:55:28Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0c39b96
- Parents:
- 0c61955 (diff), 3249673 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/arm32/src/putchar.c
r0c61955 r20235a3 2 2 * Copyright (c) 2007 Michal Kebrt 3 3 * Copyright (c) 2009 Vineeth Pillai 4 * Copyright (c) 2010 Jiri Svoboda 4 5 * All rights reserved. 5 6 * … … 40 41 #include <str.h> 41 42 43 #ifdef MACHINE_gta02 44 45 /** Send a byte to the gta02 serial console. 46 * 47 * @param byte Byte to send. 48 */ 49 static void scons_sendb_gta02(uint8_t byte) 50 { 51 volatile uint32_t *utrstat; 52 volatile uint32_t *utxh; 53 54 utrstat = (volatile uint32_t *) GTA02_SCONS_UTRSTAT; 55 utxh = (volatile uint32_t *) GTA02_SCONS_UTXH; 56 57 /* Wait until transmitter is empty. */ 58 while ((*utrstat & S3C24XX_UTXH_TX_EMPTY) == 0) 59 ; 60 61 /* Transmit byte. */ 62 *utxh = (uint32_t) byte; 63 } 64 65 #endif 66 67 #ifdef MACHINE_testarm 68 69 /** Send a byte to the GXemul testarm serial console. 70 * 71 * @param byte Byte to send. 72 */ 73 static void scons_sendb_testarm(uint8_t byte) 74 { 75 *((volatile uint8_t *) TESTARM_SCONS_ADDR) = byte; 76 } 77 78 #endif 79 80 #ifdef MACHINE_integratorcp 81 82 /** Send a byte to the IntegratorCP serial console. 83 * 84 * @param byte Byte to send. 85 */ 86 static void scons_sendb_icp(uint8_t byte) 87 { 88 *((volatile uint8_t *) ICP_SCONS_ADDR) = byte; 89 } 90 91 #endif 92 93 /** Send a byte to the serial console. 94 * 95 * @param byte Byte to send. 96 */ 97 static void scons_sendb(uint8_t byte) 98 { 99 #ifdef MACHINE_gta02 100 scons_sendb_gta02(byte); 101 #endif 102 #ifdef MACHINE_testarm 103 scons_sendb_testarm(byte); 104 #endif 105 #ifdef MACHINE_integratorcp 106 scons_sendb_icp(byte); 107 #endif 108 } 109 110 /** Display a character 111 * 112 * @param ch Character to display 113 */ 42 114 void putchar(const wchar_t ch) 43 115 { 44 116 if (ch == '\n') 45 *((volatile char *) VIDEORAM_ADDRESS) = '\r';46 117 scons_sendb('\r'); 118 47 119 if (ascii_check(ch)) 48 *((volatile char *) VIDEORAM_ADDRESS) = ch;120 scons_sendb((uint8_t) ch); 49 121 else 50 *((volatile char *) VIDEORAM_ADDRESS) = U_SPECIAL;122 scons_sendb(U_SPECIAL); 51 123 } 52 124
Note:
See TracChangeset
for help on using the changeset viewer.