Monitor program only for mbed GR-PEACH
debug_tools/mon_hw_LPC1114.cpp@4:76b3113c79ff, 2014-12-14 (annotated)
- Committer:
- kenjiArai
- Date:
- Sun Dec 14 09:17:01 2014 +0000
- Revision:
- 4:76b3113c79ff
Check rtos functions on GR-PEACH. Does NOT work on GR-PEACH but does work on LPC1768, F401RE and L152RE.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kenjiArai | 4:76b3113c79ff | 1 | /* |
kenjiArai | 4:76b3113c79ff | 2 | * mbed Application program for the mbed LPC1114FN28 |
kenjiArai | 4:76b3113c79ff | 3 | * Monitor program Ver.3 for only for LPC1114FN28 |
kenjiArai | 4:76b3113c79ff | 4 | * |
kenjiArai | 4:76b3113c79ff | 5 | * Copyright (c) 2010-2014 Kenji Arai / JH1PJL |
kenjiArai | 4:76b3113c79ff | 6 | * http://www.page.sannet.ne.jp/kenjia/index.html |
kenjiArai | 4:76b3113c79ff | 7 | * http://mbed.org/users/kenjiArai/ |
kenjiArai | 4:76b3113c79ff | 8 | * Created: May 15th, 2010 |
kenjiArai | 4:76b3113c79ff | 9 | * release as "monitor_01" http://mbed.org/users/kenjiArai/code/monitor_01/ |
kenjiArai | 4:76b3113c79ff | 10 | * Spareted: June 25th, 2014 mon() & mon_hw() |
kenjiArai | 4:76b3113c79ff | 11 | * Revised: Nobember 2nd, 2014 |
kenjiArai | 4:76b3113c79ff | 12 | * |
kenjiArai | 4:76b3113c79ff | 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, |
kenjiArai | 4:76b3113c79ff | 14 | * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE |
kenjiArai | 4:76b3113c79ff | 15 | * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
kenjiArai | 4:76b3113c79ff | 16 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
kenjiArai | 4:76b3113c79ff | 17 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
kenjiArai | 4:76b3113c79ff | 18 | */ |
kenjiArai | 4:76b3113c79ff | 19 | |
kenjiArai | 4:76b3113c79ff | 20 | #if defined(TARGET_LPC1114) |
kenjiArai | 4:76b3113c79ff | 21 | |
kenjiArai | 4:76b3113c79ff | 22 | // Include --------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 23 | #include "mbed.h" |
kenjiArai | 4:76b3113c79ff | 24 | #include "mon_hw_config.h" |
kenjiArai | 4:76b3113c79ff | 25 | #include "mon_hw_common.h" |
kenjiArai | 4:76b3113c79ff | 26 | |
kenjiArai | 4:76b3113c79ff | 27 | // Object ---------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 28 | |
kenjiArai | 4:76b3113c79ff | 29 | // Definition ------------------------------------------------------------------------------------ |
kenjiArai | 4:76b3113c79ff | 30 | // Define clocks |
kenjiArai | 4:76b3113c79ff | 31 | #define __XTAL (12000000UL) // Oscillator frequency |
kenjiArai | 4:76b3113c79ff | 32 | #define __SYS_OSC_CLK ( __XTAL) // Main oscillator frequency |
kenjiArai | 4:76b3113c79ff | 33 | #define __IRC_OSC_CLK (12000000UL) // Internal RC oscillator frequency |
kenjiArai | 4:76b3113c79ff | 34 | |
kenjiArai | 4:76b3113c79ff | 35 | // RAM ------------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 36 | uint32_t SystemFrequency; |
kenjiArai | 4:76b3113c79ff | 37 | |
kenjiArai | 4:76b3113c79ff | 38 | // ROM / Constant data --------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 39 | #if USE_MEM |
kenjiArai | 4:76b3113c79ff | 40 | // Memory range data |
kenjiArai | 4:76b3113c79ff | 41 | const uint32_t mem_range[][2] = { // Memory access range |
kenjiArai | 4:76b3113c79ff | 42 | { 0x00000000, 0x00007fff }, // On-chip non-volatile memory //32KB Flash memory |
kenjiArai | 4:76b3113c79ff | 43 | { 0x10000000, 0x10000fff }, // On-chip SRAM //4KB local RAM |
kenjiArai | 4:76b3113c79ff | 44 | { 0x1fff0000, 0x1fff3fff }, // Boot ROM //16KB Boot ROM |
kenjiArai | 4:76b3113c79ff | 45 | { 0x40000000, 0x4007ffff }, // IO area |
kenjiArai | 4:76b3113c79ff | 46 | { 0x50000000, 0x501fffff } // IO area |
kenjiArai | 4:76b3113c79ff | 47 | }; |
kenjiArai | 4:76b3113c79ff | 48 | #endif // USE_MEM |
kenjiArai | 4:76b3113c79ff | 49 | |
kenjiArai | 4:76b3113c79ff | 50 | char *const mon_msg = "HW monitor only for mbed LPC1114FN28 created on "__DATE__","__TIME__""; |
kenjiArai | 4:76b3113c79ff | 51 | |
kenjiArai | 4:76b3113c79ff | 52 | char *const xmsg0 = "Not implimented yet"; |
kenjiArai | 4:76b3113c79ff | 53 | |
kenjiArai | 4:76b3113c79ff | 54 | char *const hmsg0 = "m - Entry Memory Mode"; |
kenjiArai | 4:76b3113c79ff | 55 | char *const hmsg1 = "m>? -> Help "; |
kenjiArai | 4:76b3113c79ff | 56 | char *const hmsg2 = "r - Show PORT,I2C,SPI,UART & other Reg."; |
kenjiArai | 4:76b3113c79ff | 57 | char *const hmsg3 = "r>? -> Help"; |
kenjiArai | 4:76b3113c79ff | 58 | char *const hmsg4 = "sf - System Clock"; |
kenjiArai | 4:76b3113c79ff | 59 | char *const hmsg5 = "sc - System / CPU information"; |
kenjiArai | 4:76b3113c79ff | 60 | char *const hmsg6 = "x - Special command for Debug"; |
kenjiArai | 4:76b3113c79ff | 61 | char *const hmsg7 = "q - Quit (back to called routine)"; |
kenjiArai | 4:76b3113c79ff | 62 | |
kenjiArai | 4:76b3113c79ff | 63 | #if (USE_PORT==0)||(USE_UART==0)||(USE_SPI==0)||(USE_I2C==0) |
kenjiArai | 4:76b3113c79ff | 64 | char *const io_port_name0 = "PIO0_"; |
kenjiArai | 4:76b3113c79ff | 65 | char *const io_port_name1 = "PIO1_"; |
kenjiArai | 4:76b3113c79ff | 66 | char *const iomsg0 = "Func->select "; |
kenjiArai | 4:76b3113c79ff | 67 | char *const iomsg1 = "IO"; |
kenjiArai | 4:76b3113c79ff | 68 | char *const iomsg2 = "Reserved"; |
kenjiArai | 4:76b3113c79ff | 69 | char *const iomsg30 = "B0_MAT"; |
kenjiArai | 4:76b3113c79ff | 70 | char *const iomsg31 = "B1_MAT"; |
kenjiArai | 4:76b3113c79ff | 71 | char *const iomsg4 = "Std/F-md I2C"; |
kenjiArai | 4:76b3113c79ff | 72 | char *const iomsg5 = "func. R"; |
kenjiArai | 4:76b3113c79ff | 73 | char *const iomsg6 = "D-Mode"; |
kenjiArai | 4:76b3113c79ff | 74 | char *const iomsg7 = "A-Mode"; |
kenjiArai | 4:76b3113c79ff | 75 | #endif |
kenjiArai | 4:76b3113c79ff | 76 | |
kenjiArai | 4:76b3113c79ff | 77 | // Calculate CPU System Clock Frequency /refrence: system_LPCxx.c |
kenjiArai | 4:76b3113c79ff | 78 | char *const fmsg0 = "Internal RC Oscillator"; |
kenjiArai | 4:76b3113c79ff | 79 | char *const fmsg1 = "Xtal Osc Clock"; |
kenjiArai | 4:76b3113c79ff | 80 | char *const fmsg2 = "Watch dog Osc Clock"; |
kenjiArai | 4:76b3113c79ff | 81 | char *const fmsg3 = "with PLL"; |
kenjiArai | 4:76b3113c79ff | 82 | char *const fmsg4 = "System Clock ="; |
kenjiArai | 4:76b3113c79ff | 83 | char *const fmsg5 = "PLL Post divider ratio ="; |
kenjiArai | 4:76b3113c79ff | 84 | char *const fmsg6 = "feedback devider ="; |
kenjiArai | 4:76b3113c79ff | 85 | char *const fmsg7 = "NO Clock ?!"; |
kenjiArai | 4:76b3113c79ff | 86 | |
kenjiArai | 4:76b3113c79ff | 87 | #if (USE_UART==1) || (USE_SPI==1) || (USE_I2C == 1) |
kenjiArai | 4:76b3113c79ff | 88 | char *const imsg2 = "-->Control Reg."; |
kenjiArai | 4:76b3113c79ff | 89 | char *const imsg3 = "-->Status Reg."; |
kenjiArai | 4:76b3113c79ff | 90 | char *const imsg4 = "-->Data Reg."; |
kenjiArai | 4:76b3113c79ff | 91 | char *const imsg5 = "-->Clock control Reg."; |
kenjiArai | 4:76b3113c79ff | 92 | #endif |
kenjiArai | 4:76b3113c79ff | 93 | |
kenjiArai | 4:76b3113c79ff | 94 | // Function prototypes --------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 95 | |
kenjiArai | 4:76b3113c79ff | 96 | //------------------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 97 | // Control Program |
kenjiArai | 4:76b3113c79ff | 98 | //------------------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 99 | // No function |
kenjiArai | 4:76b3113c79ff | 100 | void not_yet_impliment( void ) |
kenjiArai | 4:76b3113c79ff | 101 | { |
kenjiArai | 4:76b3113c79ff | 102 | PRINTF(xmsg0); |
kenjiArai | 4:76b3113c79ff | 103 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 104 | } |
kenjiArai | 4:76b3113c79ff | 105 | |
kenjiArai | 4:76b3113c79ff | 106 | // No function |
kenjiArai | 4:76b3113c79ff | 107 | #if (USE_MEM==0)||(USE_PORT==0)||(USE_UART==0)||(USE_SPI==0)||(USE_I2C==0)||(USE_SYS==0) |
kenjiArai | 4:76b3113c79ff | 108 | void not_select( void ) |
kenjiArai | 4:76b3113c79ff | 109 | { |
kenjiArai | 4:76b3113c79ff | 110 | PRINTF("Not select the function (refer mon_hw_config.h)"); |
kenjiArai | 4:76b3113c79ff | 111 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 112 | } |
kenjiArai | 4:76b3113c79ff | 113 | #endif |
kenjiArai | 4:76b3113c79ff | 114 | |
kenjiArai | 4:76b3113c79ff | 115 | // Help Massage |
kenjiArai | 4:76b3113c79ff | 116 | void msg_hlp_hw (void) |
kenjiArai | 4:76b3113c79ff | 117 | { |
kenjiArai | 4:76b3113c79ff | 118 | PRINTF(mon_msg); |
kenjiArai | 4:76b3113c79ff | 119 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 120 | PRINTF(hmsg0); |
kenjiArai | 4:76b3113c79ff | 121 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 122 | PRINTF(hmsg1); |
kenjiArai | 4:76b3113c79ff | 123 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 124 | PRINTF(hmsg2); |
kenjiArai | 4:76b3113c79ff | 125 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 126 | PRINTF(hmsg3); |
kenjiArai | 4:76b3113c79ff | 127 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 128 | PRINTF(hmsg4); |
kenjiArai | 4:76b3113c79ff | 129 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 130 | PRINTF(hmsg5); |
kenjiArai | 4:76b3113c79ff | 131 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 132 | PRINTF(hmsg6); |
kenjiArai | 4:76b3113c79ff | 133 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 134 | PRINTF(hmsg7); |
kenjiArai | 4:76b3113c79ff | 135 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 136 | } |
kenjiArai | 4:76b3113c79ff | 137 | |
kenjiArai | 4:76b3113c79ff | 138 | #if USE_MEM |
kenjiArai | 4:76b3113c79ff | 139 | char *const rmsg0 = "FLASH "; |
kenjiArai | 4:76b3113c79ff | 140 | char *const rmsg1 = "SRAM "; |
kenjiArai | 4:76b3113c79ff | 141 | char *const rmsg2 = "Boot ROM "; |
kenjiArai | 4:76b3113c79ff | 142 | char *const rmsg3 = "IO Area0 "; |
kenjiArai | 4:76b3113c79ff | 143 | char *const rmsg4 = "IO Area1 "; |
kenjiArai | 4:76b3113c79ff | 144 | |
kenjiArai | 4:76b3113c79ff | 145 | #include "mon_hw_mem.h" |
kenjiArai | 4:76b3113c79ff | 146 | #endif // USE_MEM |
kenjiArai | 4:76b3113c79ff | 147 | |
kenjiArai | 4:76b3113c79ff | 148 | // Show 16bit register contents |
kenjiArai | 4:76b3113c79ff | 149 | void reg_print(uint16_t size, uint16_t reg) |
kenjiArai | 4:76b3113c79ff | 150 | { |
kenjiArai | 4:76b3113c79ff | 151 | uint16_t i, j, k, n; |
kenjiArai | 4:76b3113c79ff | 152 | |
kenjiArai | 4:76b3113c79ff | 153 | if (size == 8) { |
kenjiArai | 4:76b3113c79ff | 154 | PRINTF(" 7, 6, 5, 4, 3, 2, 1, 0"); |
kenjiArai | 4:76b3113c79ff | 155 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 156 | i = 8; |
kenjiArai | 4:76b3113c79ff | 157 | n = 0x80; |
kenjiArai | 4:76b3113c79ff | 158 | } else if (size == 16) { |
kenjiArai | 4:76b3113c79ff | 159 | PRINTF( "15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0" ); |
kenjiArai | 4:76b3113c79ff | 160 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 161 | i = 16; |
kenjiArai | 4:76b3113c79ff | 162 | n = 0x8000; |
kenjiArai | 4:76b3113c79ff | 163 | } else { |
kenjiArai | 4:76b3113c79ff | 164 | PRINTF("0x%08x", reg); |
kenjiArai | 4:76b3113c79ff | 165 | return; |
kenjiArai | 4:76b3113c79ff | 166 | } |
kenjiArai | 4:76b3113c79ff | 167 | PUTC(' '); |
kenjiArai | 4:76b3113c79ff | 168 | for (; i>0; i--) { |
kenjiArai | 4:76b3113c79ff | 169 | k = n >> (size-i); |
kenjiArai | 4:76b3113c79ff | 170 | j = reg & k; |
kenjiArai | 4:76b3113c79ff | 171 | if (j) { |
kenjiArai | 4:76b3113c79ff | 172 | PUTC('1'); |
kenjiArai | 4:76b3113c79ff | 173 | } else { |
kenjiArai | 4:76b3113c79ff | 174 | PUTC('0'); |
kenjiArai | 4:76b3113c79ff | 175 | } |
kenjiArai | 4:76b3113c79ff | 176 | PUTC(' '); |
kenjiArai | 4:76b3113c79ff | 177 | PUTC(' '); |
kenjiArai | 4:76b3113c79ff | 178 | } |
kenjiArai | 4:76b3113c79ff | 179 | PRINTF(" (0x%04x)", reg); |
kenjiArai | 4:76b3113c79ff | 180 | } |
kenjiArai | 4:76b3113c79ff | 181 | |
kenjiArai | 4:76b3113c79ff | 182 | #if USE_PORT |
kenjiArai | 4:76b3113c79ff | 183 | void io_mode(uint32_t reg) |
kenjiArai | 4:76b3113c79ff | 184 | { |
kenjiArai | 4:76b3113c79ff | 185 | PRINTF("MODE->"); |
kenjiArai | 4:76b3113c79ff | 186 | switch (reg) { |
kenjiArai | 4:76b3113c79ff | 187 | case 0: |
kenjiArai | 4:76b3113c79ff | 188 | PRINTF("Inactive"); |
kenjiArai | 4:76b3113c79ff | 189 | break; |
kenjiArai | 4:76b3113c79ff | 190 | case 1: |
kenjiArai | 4:76b3113c79ff | 191 | PRINTF("P-DWN"); |
kenjiArai | 4:76b3113c79ff | 192 | break; |
kenjiArai | 4:76b3113c79ff | 193 | case 2: |
kenjiArai | 4:76b3113c79ff | 194 | PRINTF("P-UP"); |
kenjiArai | 4:76b3113c79ff | 195 | break; |
kenjiArai | 4:76b3113c79ff | 196 | case 3: |
kenjiArai | 4:76b3113c79ff | 197 | PRINTF("Repeater"); |
kenjiArai | 4:76b3113c79ff | 198 | break; |
kenjiArai | 4:76b3113c79ff | 199 | } |
kenjiArai | 4:76b3113c79ff | 200 | } |
kenjiArai | 4:76b3113c79ff | 201 | |
kenjiArai | 4:76b3113c79ff | 202 | void io_hys(uint32_t reg) |
kenjiArai | 4:76b3113c79ff | 203 | { |
kenjiArai | 4:76b3113c79ff | 204 | PRINTF("HIS->"); |
kenjiArai | 4:76b3113c79ff | 205 | switch (reg) { |
kenjiArai | 4:76b3113c79ff | 206 | case 0: |
kenjiArai | 4:76b3113c79ff | 207 | PRINTF("Dis"); |
kenjiArai | 4:76b3113c79ff | 208 | break; |
kenjiArai | 4:76b3113c79ff | 209 | case 1: |
kenjiArai | 4:76b3113c79ff | 210 | PRINTF("Ena"); |
kenjiArai | 4:76b3113c79ff | 211 | break; |
kenjiArai | 4:76b3113c79ff | 212 | } |
kenjiArai | 4:76b3113c79ff | 213 | } |
kenjiArai | 4:76b3113c79ff | 214 | |
kenjiArai | 4:76b3113c79ff | 215 | void io_od(uint32_t reg) |
kenjiArai | 4:76b3113c79ff | 216 | { |
kenjiArai | 4:76b3113c79ff | 217 | PRINTF("OD->"); |
kenjiArai | 4:76b3113c79ff | 218 | switch (reg) { |
kenjiArai | 4:76b3113c79ff | 219 | case 0: |
kenjiArai | 4:76b3113c79ff | 220 | PRINTF("no OD"); |
kenjiArai | 4:76b3113c79ff | 221 | break; |
kenjiArai | 4:76b3113c79ff | 222 | case 1: |
kenjiArai | 4:76b3113c79ff | 223 | PRINTF("OD"); |
kenjiArai | 4:76b3113c79ff | 224 | break; |
kenjiArai | 4:76b3113c79ff | 225 | } |
kenjiArai | 4:76b3113c79ff | 226 | } |
kenjiArai | 4:76b3113c79ff | 227 | |
kenjiArai | 4:76b3113c79ff | 228 | void io_mode_hys_od(uint32_t reg) |
kenjiArai | 4:76b3113c79ff | 229 | { |
kenjiArai | 4:76b3113c79ff | 230 | io_mode ((reg >> 3) & 0x3); |
kenjiArai | 4:76b3113c79ff | 231 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 232 | io_hys (( reg >> 5) & 0x1); |
kenjiArai | 4:76b3113c79ff | 233 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 234 | io_od (( reg >> 10) & 0x1); |
kenjiArai | 4:76b3113c79ff | 235 | } |
kenjiArai | 4:76b3113c79ff | 236 | |
kenjiArai | 4:76b3113c79ff | 237 | // I/O Config IO0_x |
kenjiArai | 4:76b3113c79ff | 238 | void io_config0(void) |
kenjiArai | 4:76b3113c79ff | 239 | { |
kenjiArai | 4:76b3113c79ff | 240 | uint32_t r0; |
kenjiArai | 4:76b3113c79ff | 241 | |
kenjiArai | 4:76b3113c79ff | 242 | // P0_0 |
kenjiArai | 4:76b3113c79ff | 243 | r0 = LPC_IOCON->RESET_PIO0_0; |
kenjiArai | 4:76b3113c79ff | 244 | PRINTF("RESET_%s0(dp23)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 245 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 246 | reg_print( SIZE_X, r0 ); |
kenjiArai | 4:76b3113c79ff | 247 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 248 | PRINTF( iomsg0 ); |
kenjiArai | 4:76b3113c79ff | 249 | if ((r0 & 0x7) == 0) { |
kenjiArai | 4:76b3113c79ff | 250 | PRINTF("RESET"); |
kenjiArai | 4:76b3113c79ff | 251 | } else { |
kenjiArai | 4:76b3113c79ff | 252 | PRINTF( iomsg1 ); |
kenjiArai | 4:76b3113c79ff | 253 | } |
kenjiArai | 4:76b3113c79ff | 254 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 255 | io_mode_hys_od( r0 ); |
kenjiArai | 4:76b3113c79ff | 256 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 257 | // P0_1 |
kenjiArai | 4:76b3113c79ff | 258 | r0 = LPC_IOCON->PIO0_1; |
kenjiArai | 4:76b3113c79ff | 259 | PRINTF("%s1(dp24)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 260 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 261 | reg_print( SIZE_X, r0 ); |
kenjiArai | 4:76b3113c79ff | 262 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 263 | PRINTF( iomsg0 ); |
kenjiArai | 4:76b3113c79ff | 264 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 265 | case 0: |
kenjiArai | 4:76b3113c79ff | 266 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 267 | break; |
kenjiArai | 4:76b3113c79ff | 268 | case 1: |
kenjiArai | 4:76b3113c79ff | 269 | PRINTF("CLKOUT"); |
kenjiArai | 4:76b3113c79ff | 270 | break; |
kenjiArai | 4:76b3113c79ff | 271 | case 2: |
kenjiArai | 4:76b3113c79ff | 272 | PRINTF("32%s2", iomsg30); |
kenjiArai | 4:76b3113c79ff | 273 | break; |
kenjiArai | 4:76b3113c79ff | 274 | } |
kenjiArai | 4:76b3113c79ff | 275 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 276 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 277 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 278 | // P0_2 |
kenjiArai | 4:76b3113c79ff | 279 | r0 = LPC_IOCON->PIO0_2; |
kenjiArai | 4:76b3113c79ff | 280 | PRINTF("%s2(dp25)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 281 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 282 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 283 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 284 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 285 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 286 | case 0: |
kenjiArai | 4:76b3113c79ff | 287 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 288 | break; |
kenjiArai | 4:76b3113c79ff | 289 | case 1: |
kenjiArai | 4:76b3113c79ff | 290 | PRINTF("SSEL0"); |
kenjiArai | 4:76b3113c79ff | 291 | break; |
kenjiArai | 4:76b3113c79ff | 292 | case 2: |
kenjiArai | 4:76b3113c79ff | 293 | PRINTF("16B0_CAP0"); |
kenjiArai | 4:76b3113c79ff | 294 | break; |
kenjiArai | 4:76b3113c79ff | 295 | } |
kenjiArai | 4:76b3113c79ff | 296 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 297 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 298 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 299 | // P0_3 |
kenjiArai | 4:76b3113c79ff | 300 | r0 = LPC_IOCON->PIO0_3; |
kenjiArai | 4:76b3113c79ff | 301 | PRINTF("%s3(dp26)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 302 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 303 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 304 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 305 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 306 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 307 | case 0: |
kenjiArai | 4:76b3113c79ff | 308 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 309 | break; |
kenjiArai | 4:76b3113c79ff | 310 | } |
kenjiArai | 4:76b3113c79ff | 311 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 312 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 313 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 314 | // P0_4 |
kenjiArai | 4:76b3113c79ff | 315 | r0 = LPC_IOCON->PIO0_4; |
kenjiArai | 4:76b3113c79ff | 316 | PRINTF("%s4(dp27)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 317 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 318 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 319 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 320 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 321 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 322 | case 0: |
kenjiArai | 4:76b3113c79ff | 323 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 324 | break; |
kenjiArai | 4:76b3113c79ff | 325 | case 1: |
kenjiArai | 4:76b3113c79ff | 326 | PRINTF("SCL"); |
kenjiArai | 4:76b3113c79ff | 327 | break; |
kenjiArai | 4:76b3113c79ff | 328 | } |
kenjiArai | 4:76b3113c79ff | 329 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 330 | switch (( r0 >> 8 ) & 0x3) { |
kenjiArai | 4:76b3113c79ff | 331 | case 0: |
kenjiArai | 4:76b3113c79ff | 332 | PRINTF(iomsg4); |
kenjiArai | 4:76b3113c79ff | 333 | break; |
kenjiArai | 4:76b3113c79ff | 334 | case 1: |
kenjiArai | 4:76b3113c79ff | 335 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 336 | break; |
kenjiArai | 4:76b3113c79ff | 337 | case 2: |
kenjiArai | 4:76b3113c79ff | 338 | PRINTF("Fast md"); |
kenjiArai | 4:76b3113c79ff | 339 | break; |
kenjiArai | 4:76b3113c79ff | 340 | case 3: |
kenjiArai | 4:76b3113c79ff | 341 | PRINTF(iomsg2); |
kenjiArai | 4:76b3113c79ff | 342 | break; |
kenjiArai | 4:76b3113c79ff | 343 | } |
kenjiArai | 4:76b3113c79ff | 344 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 345 | // P0_5 |
kenjiArai | 4:76b3113c79ff | 346 | r0 = LPC_IOCON->PIO0_5; |
kenjiArai | 4:76b3113c79ff | 347 | PRINTF("%s5(dp5)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 348 | put_spc(4); |
kenjiArai | 4:76b3113c79ff | 349 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 350 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 351 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 352 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 353 | case 0: |
kenjiArai | 4:76b3113c79ff | 354 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 355 | break; |
kenjiArai | 4:76b3113c79ff | 356 | case 1: |
kenjiArai | 4:76b3113c79ff | 357 | PRINTF("SDA"); |
kenjiArai | 4:76b3113c79ff | 358 | break; |
kenjiArai | 4:76b3113c79ff | 359 | } |
kenjiArai | 4:76b3113c79ff | 360 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 361 | switch ( ( r0 >> 8 ) & 0x3 ) { |
kenjiArai | 4:76b3113c79ff | 362 | case 0: |
kenjiArai | 4:76b3113c79ff | 363 | PRINTF(iomsg4); |
kenjiArai | 4:76b3113c79ff | 364 | break; |
kenjiArai | 4:76b3113c79ff | 365 | case 1: |
kenjiArai | 4:76b3113c79ff | 366 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 367 | break; |
kenjiArai | 4:76b3113c79ff | 368 | case 2: |
kenjiArai | 4:76b3113c79ff | 369 | PRINTF("Fast md"); |
kenjiArai | 4:76b3113c79ff | 370 | break; |
kenjiArai | 4:76b3113c79ff | 371 | case 3: |
kenjiArai | 4:76b3113c79ff | 372 | PRINTF(iomsg2); |
kenjiArai | 4:76b3113c79ff | 373 | break; |
kenjiArai | 4:76b3113c79ff | 374 | } |
kenjiArai | 4:76b3113c79ff | 375 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 376 | // P0_6 |
kenjiArai | 4:76b3113c79ff | 377 | r0 = LPC_IOCON->PIO0_6; |
kenjiArai | 4:76b3113c79ff | 378 | PRINTF("%s6(dp6)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 379 | put_spc(4); |
kenjiArai | 4:76b3113c79ff | 380 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 381 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 382 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 383 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 384 | case 0: |
kenjiArai | 4:76b3113c79ff | 385 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 386 | break; |
kenjiArai | 4:76b3113c79ff | 387 | case 1: |
kenjiArai | 4:76b3113c79ff | 388 | PRINTF(iomsg2); |
kenjiArai | 4:76b3113c79ff | 389 | break; |
kenjiArai | 4:76b3113c79ff | 390 | case 2: |
kenjiArai | 4:76b3113c79ff | 391 | PRINTF("SCK0"); |
kenjiArai | 4:76b3113c79ff | 392 | break; |
kenjiArai | 4:76b3113c79ff | 393 | } |
kenjiArai | 4:76b3113c79ff | 394 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 395 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 396 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 397 | // P0_7 |
kenjiArai | 4:76b3113c79ff | 398 | r0 = LPC_IOCON->PIO0_7; |
kenjiArai | 4:76b3113c79ff | 399 | PRINTF("%s7(dp28)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 400 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 401 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 402 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 403 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 404 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 405 | case 0: |
kenjiArai | 4:76b3113c79ff | 406 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 407 | break; |
kenjiArai | 4:76b3113c79ff | 408 | case 1: |
kenjiArai | 4:76b3113c79ff | 409 | PRINTF("CTS"); |
kenjiArai | 4:76b3113c79ff | 410 | break; |
kenjiArai | 4:76b3113c79ff | 411 | } |
kenjiArai | 4:76b3113c79ff | 412 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 413 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 414 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 415 | // P0_8 |
kenjiArai | 4:76b3113c79ff | 416 | r0 = LPC_IOCON->PIO0_8; |
kenjiArai | 4:76b3113c79ff | 417 | PRINTF("%s8(dp1)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 418 | put_spc(4); |
kenjiArai | 4:76b3113c79ff | 419 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 420 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 421 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 422 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 423 | case 0: |
kenjiArai | 4:76b3113c79ff | 424 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 425 | break; |
kenjiArai | 4:76b3113c79ff | 426 | case 1: |
kenjiArai | 4:76b3113c79ff | 427 | PRINTF("MISO0"); |
kenjiArai | 4:76b3113c79ff | 428 | break; |
kenjiArai | 4:76b3113c79ff | 429 | case 2: |
kenjiArai | 4:76b3113c79ff | 430 | PRINTF("16%s0", iomsg30); |
kenjiArai | 4:76b3113c79ff | 431 | break; |
kenjiArai | 4:76b3113c79ff | 432 | } |
kenjiArai | 4:76b3113c79ff | 433 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 434 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 435 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 436 | // P0_9 |
kenjiArai | 4:76b3113c79ff | 437 | r0 = LPC_IOCON->PIO0_9; |
kenjiArai | 4:76b3113c79ff | 438 | PRINTF("%s9(dp2)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 439 | put_spc(4); |
kenjiArai | 4:76b3113c79ff | 440 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 441 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 442 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 443 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 444 | case 0: |
kenjiArai | 4:76b3113c79ff | 445 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 446 | break; |
kenjiArai | 4:76b3113c79ff | 447 | case 1: |
kenjiArai | 4:76b3113c79ff | 448 | PRINTF("MOSI0"); |
kenjiArai | 4:76b3113c79ff | 449 | break; |
kenjiArai | 4:76b3113c79ff | 450 | case 2: |
kenjiArai | 4:76b3113c79ff | 451 | PRINTF("16%s1", iomsg30); |
kenjiArai | 4:76b3113c79ff | 452 | break; |
kenjiArai | 4:76b3113c79ff | 453 | } |
kenjiArai | 4:76b3113c79ff | 454 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 455 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 456 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 457 | // P0_10 |
kenjiArai | 4:76b3113c79ff | 458 | r0 = LPC_IOCON->SWCLK_PIO0_10; |
kenjiArai | 4:76b3113c79ff | 459 | PRINTF("SWCLK_%s10(dp3)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 460 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 461 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 462 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 463 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 464 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 465 | case 0: |
kenjiArai | 4:76b3113c79ff | 466 | PRINTF("SWCLK"); |
kenjiArai | 4:76b3113c79ff | 467 | break; |
kenjiArai | 4:76b3113c79ff | 468 | case 1: |
kenjiArai | 4:76b3113c79ff | 469 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 470 | break; |
kenjiArai | 4:76b3113c79ff | 471 | case 2: |
kenjiArai | 4:76b3113c79ff | 472 | PRINTF("SCK0"); |
kenjiArai | 4:76b3113c79ff | 473 | break; |
kenjiArai | 4:76b3113c79ff | 474 | case 3: |
kenjiArai | 4:76b3113c79ff | 475 | PRINTF("16%s2", iomsg30); |
kenjiArai | 4:76b3113c79ff | 476 | break; |
kenjiArai | 4:76b3113c79ff | 477 | } |
kenjiArai | 4:76b3113c79ff | 478 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 479 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 480 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 481 | // P0_11 |
kenjiArai | 4:76b3113c79ff | 482 | r0 = LPC_IOCON->R_PIO0_11; |
kenjiArai | 4:76b3113c79ff | 483 | PRINTF("R_%s11(dp4)", io_port_name0); |
kenjiArai | 4:76b3113c79ff | 484 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 485 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 486 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 487 | PRINTF( iomsg0 ); |
kenjiArai | 4:76b3113c79ff | 488 | switch ( r0 & 0x7 ) { |
kenjiArai | 4:76b3113c79ff | 489 | case 0: |
kenjiArai | 4:76b3113c79ff | 490 | PRINTF(iomsg5); |
kenjiArai | 4:76b3113c79ff | 491 | break; |
kenjiArai | 4:76b3113c79ff | 492 | case 1: |
kenjiArai | 4:76b3113c79ff | 493 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 494 | break; |
kenjiArai | 4:76b3113c79ff | 495 | case 2: |
kenjiArai | 4:76b3113c79ff | 496 | PRINTF("AD0"); |
kenjiArai | 4:76b3113c79ff | 497 | break; |
kenjiArai | 4:76b3113c79ff | 498 | case 3: |
kenjiArai | 4:76b3113c79ff | 499 | PRINTF("32%s3", iomsg30); |
kenjiArai | 4:76b3113c79ff | 500 | break; |
kenjiArai | 4:76b3113c79ff | 501 | } |
kenjiArai | 4:76b3113c79ff | 502 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 503 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 504 | if ( r0 & 0x80 ) { |
kenjiArai | 4:76b3113c79ff | 505 | PRINTF(", %s", iomsg6); |
kenjiArai | 4:76b3113c79ff | 506 | } else { |
kenjiArai | 4:76b3113c79ff | 507 | PRINTF(", %s", iomsg7); |
kenjiArai | 4:76b3113c79ff | 508 | } |
kenjiArai | 4:76b3113c79ff | 509 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 510 | } |
kenjiArai | 4:76b3113c79ff | 511 | |
kenjiArai | 4:76b3113c79ff | 512 | // I/O Config IO1_x |
kenjiArai | 4:76b3113c79ff | 513 | void io_config1(void) |
kenjiArai | 4:76b3113c79ff | 514 | { |
kenjiArai | 4:76b3113c79ff | 515 | uint32_t r0; |
kenjiArai | 4:76b3113c79ff | 516 | |
kenjiArai | 4:76b3113c79ff | 517 | // P1_0 |
kenjiArai | 4:76b3113c79ff | 518 | r0 = LPC_IOCON->R_PIO1_0; |
kenjiArai | 4:76b3113c79ff | 519 | PRINTF("R_%s0(dp9)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 520 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 521 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 522 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 523 | PRINTF( iomsg0 ); |
kenjiArai | 4:76b3113c79ff | 524 | switch ( r0 & 0x7 ) { |
kenjiArai | 4:76b3113c79ff | 525 | case 0: |
kenjiArai | 4:76b3113c79ff | 526 | PRINTF(iomsg5); |
kenjiArai | 4:76b3113c79ff | 527 | break; |
kenjiArai | 4:76b3113c79ff | 528 | case 1: |
kenjiArai | 4:76b3113c79ff | 529 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 530 | break; |
kenjiArai | 4:76b3113c79ff | 531 | case 2: |
kenjiArai | 4:76b3113c79ff | 532 | PRINTF("AD1"); |
kenjiArai | 4:76b3113c79ff | 533 | break; |
kenjiArai | 4:76b3113c79ff | 534 | case 3: |
kenjiArai | 4:76b3113c79ff | 535 | PRINTF("32B1_CAP0"); |
kenjiArai | 4:76b3113c79ff | 536 | break; |
kenjiArai | 4:76b3113c79ff | 537 | } |
kenjiArai | 4:76b3113c79ff | 538 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 539 | if (r0 & 0x80) { |
kenjiArai | 4:76b3113c79ff | 540 | PRINTF(", %s", iomsg6); |
kenjiArai | 4:76b3113c79ff | 541 | } else { |
kenjiArai | 4:76b3113c79ff | 542 | PRINTF(", %s", iomsg7); |
kenjiArai | 4:76b3113c79ff | 543 | } |
kenjiArai | 4:76b3113c79ff | 544 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 545 | // P1_1 |
kenjiArai | 4:76b3113c79ff | 546 | r0 = LPC_IOCON->R_PIO1_1; |
kenjiArai | 4:76b3113c79ff | 547 | PRINTF("R_%s1(dp10)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 548 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 549 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 550 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 551 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 552 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 553 | case 0: |
kenjiArai | 4:76b3113c79ff | 554 | PRINTF(iomsg5); |
kenjiArai | 4:76b3113c79ff | 555 | break; |
kenjiArai | 4:76b3113c79ff | 556 | case 1: |
kenjiArai | 4:76b3113c79ff | 557 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 558 | break; |
kenjiArai | 4:76b3113c79ff | 559 | case 2: |
kenjiArai | 4:76b3113c79ff | 560 | PRINTF("AD2"); |
kenjiArai | 4:76b3113c79ff | 561 | break; |
kenjiArai | 4:76b3113c79ff | 562 | case 3: |
kenjiArai | 4:76b3113c79ff | 563 | PRINTF("32%s0", iomsg31); |
kenjiArai | 4:76b3113c79ff | 564 | break; |
kenjiArai | 4:76b3113c79ff | 565 | } |
kenjiArai | 4:76b3113c79ff | 566 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 567 | if (r0 & 0x80) { |
kenjiArai | 4:76b3113c79ff | 568 | PRINTF(", %s", iomsg6); |
kenjiArai | 4:76b3113c79ff | 569 | } else { |
kenjiArai | 4:76b3113c79ff | 570 | PRINTF(", %s", iomsg7); |
kenjiArai | 4:76b3113c79ff | 571 | } |
kenjiArai | 4:76b3113c79ff | 572 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 573 | // P1_2 |
kenjiArai | 4:76b3113c79ff | 574 | r0 = LPC_IOCON->R_PIO1_2; |
kenjiArai | 4:76b3113c79ff | 575 | PRINTF("R_%s2(dp11)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 576 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 577 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 578 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 579 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 580 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 581 | case 0: |
kenjiArai | 4:76b3113c79ff | 582 | PRINTF(iomsg5); |
kenjiArai | 4:76b3113c79ff | 583 | break; |
kenjiArai | 4:76b3113c79ff | 584 | case 1: |
kenjiArai | 4:76b3113c79ff | 585 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 586 | break; |
kenjiArai | 4:76b3113c79ff | 587 | case 2: |
kenjiArai | 4:76b3113c79ff | 588 | PRINTF("AD3"); |
kenjiArai | 4:76b3113c79ff | 589 | break; |
kenjiArai | 4:76b3113c79ff | 590 | case 3: |
kenjiArai | 4:76b3113c79ff | 591 | PRINTF("32%s1", iomsg31); |
kenjiArai | 4:76b3113c79ff | 592 | break; |
kenjiArai | 4:76b3113c79ff | 593 | } |
kenjiArai | 4:76b3113c79ff | 594 | io_mode_hys_od( r0 ); |
kenjiArai | 4:76b3113c79ff | 595 | if (r0 & 0x80) { |
kenjiArai | 4:76b3113c79ff | 596 | PRINTF(", %s", iomsg6); |
kenjiArai | 4:76b3113c79ff | 597 | } else { |
kenjiArai | 4:76b3113c79ff | 598 | PRINTF(", %s", iomsg7); |
kenjiArai | 4:76b3113c79ff | 599 | } |
kenjiArai | 4:76b3113c79ff | 600 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 601 | // P1_3 |
kenjiArai | 4:76b3113c79ff | 602 | r0 = LPC_IOCON->SWDIO_PIO1_3; |
kenjiArai | 4:76b3113c79ff | 603 | PRINTF("SWDIO_%s3(dp12)",io_port_name1); |
kenjiArai | 4:76b3113c79ff | 604 | put_spc(1); |
kenjiArai | 4:76b3113c79ff | 605 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 606 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 607 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 608 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 609 | case 0: |
kenjiArai | 4:76b3113c79ff | 610 | PRINTF("SWDIO"); |
kenjiArai | 4:76b3113c79ff | 611 | break; |
kenjiArai | 4:76b3113c79ff | 612 | case 1: |
kenjiArai | 4:76b3113c79ff | 613 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 614 | break; |
kenjiArai | 4:76b3113c79ff | 615 | case 2: |
kenjiArai | 4:76b3113c79ff | 616 | PRINTF("AD4"); |
kenjiArai | 4:76b3113c79ff | 617 | break; |
kenjiArai | 4:76b3113c79ff | 618 | case 3: |
kenjiArai | 4:76b3113c79ff | 619 | PRINTF("32%s2", iomsg31); |
kenjiArai | 4:76b3113c79ff | 620 | break; |
kenjiArai | 4:76b3113c79ff | 621 | } |
kenjiArai | 4:76b3113c79ff | 622 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 623 | if (r0 & 0x80) { |
kenjiArai | 4:76b3113c79ff | 624 | PRINTF(", %s", iomsg6); |
kenjiArai | 4:76b3113c79ff | 625 | } else { |
kenjiArai | 4:76b3113c79ff | 626 | PRINTF(", %s", iomsg7); |
kenjiArai | 4:76b3113c79ff | 627 | } |
kenjiArai | 4:76b3113c79ff | 628 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 629 | // P1_4 |
kenjiArai | 4:76b3113c79ff | 630 | r0 = LPC_IOCON->PIO1_4; |
kenjiArai | 4:76b3113c79ff | 631 | PRINTF("%s4(dp13)",io_port_name1); |
kenjiArai | 4:76b3113c79ff | 632 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 633 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 634 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 635 | PRINTF( iomsg0 ); |
kenjiArai | 4:76b3113c79ff | 636 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 637 | case 0: |
kenjiArai | 4:76b3113c79ff | 638 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 639 | break; |
kenjiArai | 4:76b3113c79ff | 640 | case 1: |
kenjiArai | 4:76b3113c79ff | 641 | PRINTF("AD5"); |
kenjiArai | 4:76b3113c79ff | 642 | break; |
kenjiArai | 4:76b3113c79ff | 643 | case 2: |
kenjiArai | 4:76b3113c79ff | 644 | PRINTF("32%s3", iomsg31); |
kenjiArai | 4:76b3113c79ff | 645 | break; |
kenjiArai | 4:76b3113c79ff | 646 | } |
kenjiArai | 4:76b3113c79ff | 647 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 648 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 649 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 650 | // P1_5 |
kenjiArai | 4:76b3113c79ff | 651 | r0 = LPC_IOCON->PIO1_5; |
kenjiArai | 4:76b3113c79ff | 652 | PRINTF("%s5(dp14)",io_port_name1); |
kenjiArai | 4:76b3113c79ff | 653 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 654 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 655 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 656 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 657 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 658 | case 0: |
kenjiArai | 4:76b3113c79ff | 659 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 660 | break; |
kenjiArai | 4:76b3113c79ff | 661 | case 1: |
kenjiArai | 4:76b3113c79ff | 662 | PRINTF("RTS"); |
kenjiArai | 4:76b3113c79ff | 663 | break; |
kenjiArai | 4:76b3113c79ff | 664 | case 2: |
kenjiArai | 4:76b3113c79ff | 665 | PRINTF("32B0_CAP0"); |
kenjiArai | 4:76b3113c79ff | 666 | break; |
kenjiArai | 4:76b3113c79ff | 667 | } |
kenjiArai | 4:76b3113c79ff | 668 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 669 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 670 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 671 | // P1_6 |
kenjiArai | 4:76b3113c79ff | 672 | r0 = LPC_IOCON->PIO1_6; |
kenjiArai | 4:76b3113c79ff | 673 | PRINTF("%s6(dp15)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 674 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 675 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 676 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 677 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 678 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 679 | case 0: |
kenjiArai | 4:76b3113c79ff | 680 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 681 | break; |
kenjiArai | 4:76b3113c79ff | 682 | case 1: |
kenjiArai | 4:76b3113c79ff | 683 | PRINTF("RXD"); |
kenjiArai | 4:76b3113c79ff | 684 | break; |
kenjiArai | 4:76b3113c79ff | 685 | case 2: |
kenjiArai | 4:76b3113c79ff | 686 | PRINTF( "32%s0", iomsg30 ); |
kenjiArai | 4:76b3113c79ff | 687 | break; |
kenjiArai | 4:76b3113c79ff | 688 | } |
kenjiArai | 4:76b3113c79ff | 689 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 690 | io_mode_hys_od( r0 ); |
kenjiArai | 4:76b3113c79ff | 691 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 692 | // P1_7 |
kenjiArai | 4:76b3113c79ff | 693 | r0 = LPC_IOCON->PIO1_7; |
kenjiArai | 4:76b3113c79ff | 694 | PRINTF("%s7(dp16)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 695 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 696 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 697 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 698 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 699 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 700 | case 0: |
kenjiArai | 4:76b3113c79ff | 701 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 702 | break; |
kenjiArai | 4:76b3113c79ff | 703 | case 1: |
kenjiArai | 4:76b3113c79ff | 704 | PRINTF("TXD"); |
kenjiArai | 4:76b3113c79ff | 705 | break; |
kenjiArai | 4:76b3113c79ff | 706 | case 2: |
kenjiArai | 4:76b3113c79ff | 707 | PRINTF("32%s1", iomsg30); |
kenjiArai | 4:76b3113c79ff | 708 | break; |
kenjiArai | 4:76b3113c79ff | 709 | } |
kenjiArai | 4:76b3113c79ff | 710 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 711 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 712 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 713 | // P1_8 |
kenjiArai | 4:76b3113c79ff | 714 | r0 = LPC_IOCON->PIO1_8; |
kenjiArai | 4:76b3113c79ff | 715 | PRINTF("%s8(dp17)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 716 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 717 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 718 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 719 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 720 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 721 | case 0: |
kenjiArai | 4:76b3113c79ff | 722 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 723 | break; |
kenjiArai | 4:76b3113c79ff | 724 | case 1: |
kenjiArai | 4:76b3113c79ff | 725 | PRINTF("32%s1", iomsg30); |
kenjiArai | 4:76b3113c79ff | 726 | break; |
kenjiArai | 4:76b3113c79ff | 727 | } |
kenjiArai | 4:76b3113c79ff | 728 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 729 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 730 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 731 | // P1_9 |
kenjiArai | 4:76b3113c79ff | 732 | r0 = LPC_IOCON->PIO1_9; |
kenjiArai | 4:76b3113c79ff | 733 | PRINTF("%s9(dp18)", io_port_name1); |
kenjiArai | 4:76b3113c79ff | 734 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 735 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 736 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 737 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 738 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 739 | case 0: |
kenjiArai | 4:76b3113c79ff | 740 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 741 | break; |
kenjiArai | 4:76b3113c79ff | 742 | case 1: |
kenjiArai | 4:76b3113c79ff | 743 | PRINTF("16%s0", iomsg31); |
kenjiArai | 4:76b3113c79ff | 744 | break; |
kenjiArai | 4:76b3113c79ff | 745 | case 2: |
kenjiArai | 4:76b3113c79ff | 746 | PRINTF("MOSI1"); |
kenjiArai | 4:76b3113c79ff | 747 | break; |
kenjiArai | 4:76b3113c79ff | 748 | } |
kenjiArai | 4:76b3113c79ff | 749 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 750 | io_mode_hys_od(r0); |
kenjiArai | 4:76b3113c79ff | 751 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 752 | } |
kenjiArai | 4:76b3113c79ff | 753 | #endif // USE_PORT |
kenjiArai | 4:76b3113c79ff | 754 | |
kenjiArai | 4:76b3113c79ff | 755 | #if USE_SPI |
kenjiArai | 4:76b3113c79ff | 756 | void spi_reg(int no) |
kenjiArai | 4:76b3113c79ff | 757 | { |
kenjiArai | 4:76b3113c79ff | 758 | uint32_t n, r0, r1 ,r2, r3, r4, r5, r6, r7, r8; |
kenjiArai | 4:76b3113c79ff | 759 | |
kenjiArai | 4:76b3113c79ff | 760 | if (no == SPI_0) { |
kenjiArai | 4:76b3113c79ff | 761 | n = 0; |
kenjiArai | 4:76b3113c79ff | 762 | r0 = LPC_SSP0->CR1; |
kenjiArai | 4:76b3113c79ff | 763 | r1 = LPC_SSP0->DR; |
kenjiArai | 4:76b3113c79ff | 764 | r2 = LPC_SSP0->SR; |
kenjiArai | 4:76b3113c79ff | 765 | r3 = LPC_SSP0->CPSR; |
kenjiArai | 4:76b3113c79ff | 766 | r4 = LPC_SSP0->IMSC; |
kenjiArai | 4:76b3113c79ff | 767 | r5 = LPC_SSP0->RIS; |
kenjiArai | 4:76b3113c79ff | 768 | r6 = LPC_SSP0->MIS; |
kenjiArai | 4:76b3113c79ff | 769 | r7 = LPC_SSP0->ICR; |
kenjiArai | 4:76b3113c79ff | 770 | r8 = LPC_SSP0->CR0; |
kenjiArai | 4:76b3113c79ff | 771 | } else if (no == SPI_1) { |
kenjiArai | 4:76b3113c79ff | 772 | n = 1; |
kenjiArai | 4:76b3113c79ff | 773 | r0 = LPC_SSP1->CR1; |
kenjiArai | 4:76b3113c79ff | 774 | r1 = LPC_SSP1->DR; |
kenjiArai | 4:76b3113c79ff | 775 | r2 = LPC_SSP1->SR; |
kenjiArai | 4:76b3113c79ff | 776 | r3 = LPC_SSP1->CPSR; |
kenjiArai | 4:76b3113c79ff | 777 | r4 = LPC_SSP1->IMSC; |
kenjiArai | 4:76b3113c79ff | 778 | r5 = LPC_SSP1->RIS; |
kenjiArai | 4:76b3113c79ff | 779 | r6 = LPC_SSP1->MIS; |
kenjiArai | 4:76b3113c79ff | 780 | r7 = LPC_SSP1->ICR; |
kenjiArai | 4:76b3113c79ff | 781 | r8 = LPC_SSP1->CR0; |
kenjiArai | 4:76b3113c79ff | 782 | } else { |
kenjiArai | 4:76b3113c79ff | 783 | return; |
kenjiArai | 4:76b3113c79ff | 784 | } |
kenjiArai | 4:76b3113c79ff | 785 | PRINTF("Show SSP%1d(SPI%1d) Registers", n, n); |
kenjiArai | 4:76b3113c79ff | 786 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 787 | PRINTF("CR0"); |
kenjiArai | 4:76b3113c79ff | 788 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 789 | reg_print(SIZE8, r8); |
kenjiArai | 4:76b3113c79ff | 790 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 791 | PRINTF("CR1"); |
kenjiArai | 4:76b3113c79ff | 792 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 793 | reg_print(SIZE8, r0); |
kenjiArai | 4:76b3113c79ff | 794 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 795 | PRINTF("DR"); |
kenjiArai | 4:76b3113c79ff | 796 | PRINTF(imsg4); |
kenjiArai | 4:76b3113c79ff | 797 | reg_print(SIZE8, r1); |
kenjiArai | 4:76b3113c79ff | 798 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 799 | PRINTF("SR"); |
kenjiArai | 4:76b3113c79ff | 800 | PRINTF(imsg3); |
kenjiArai | 4:76b3113c79ff | 801 | reg_print(SIZE8, r2); |
kenjiArai | 4:76b3113c79ff | 802 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 803 | PRINTF("CPSR"); |
kenjiArai | 4:76b3113c79ff | 804 | PRINTF(imsg5); |
kenjiArai | 4:76b3113c79ff | 805 | reg_print(SIZE8, r3); |
kenjiArai | 4:76b3113c79ff | 806 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 807 | PRINTF("IMSC"); |
kenjiArai | 4:76b3113c79ff | 808 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 809 | reg_print(SIZE8, r4); |
kenjiArai | 4:76b3113c79ff | 810 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 811 | PRINTF("RIS"); |
kenjiArai | 4:76b3113c79ff | 812 | PRINTF(imsg3); |
kenjiArai | 4:76b3113c79ff | 813 | reg_print(SIZE8, r5); |
kenjiArai | 4:76b3113c79ff | 814 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 815 | PRINTF("MIS"); |
kenjiArai | 4:76b3113c79ff | 816 | PRINTF(imsg3); |
kenjiArai | 4:76b3113c79ff | 817 | reg_print(SIZE8, r6); |
kenjiArai | 4:76b3113c79ff | 818 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 819 | PRINTF("ICR"); |
kenjiArai | 4:76b3113c79ff | 820 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 821 | reg_print(SIZE8, r7); |
kenjiArai | 4:76b3113c79ff | 822 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 823 | } |
kenjiArai | 4:76b3113c79ff | 824 | #endif //USE_SPI |
kenjiArai | 4:76b3113c79ff | 825 | |
kenjiArai | 4:76b3113c79ff | 826 | #if USE_UART |
kenjiArai | 4:76b3113c79ff | 827 | void uart_reg(void) |
kenjiArai | 4:76b3113c79ff | 828 | { |
kenjiArai | 4:76b3113c79ff | 829 | uint32_t r0,r1,r2,r3,r4,r5,r6; |
kenjiArai | 4:76b3113c79ff | 830 | |
kenjiArai | 4:76b3113c79ff | 831 | // clear LCR[DLAB] to read registers |
kenjiArai | 4:76b3113c79ff | 832 | LPC_UART->LCR &= ~(1 << 7); |
kenjiArai | 4:76b3113c79ff | 833 | r0 = LPC_UART->RBR; |
kenjiArai | 4:76b3113c79ff | 834 | r1 = LPC_UART->IER; |
kenjiArai | 4:76b3113c79ff | 835 | r2 = LPC_UART->IIR; |
kenjiArai | 4:76b3113c79ff | 836 | r3 = LPC_UART->TER; |
kenjiArai | 4:76b3113c79ff | 837 | // set LCR[DLAB] to enable writing to divider registers |
kenjiArai | 4:76b3113c79ff | 838 | LPC_UART->LCR |= (1 << 7); |
kenjiArai | 4:76b3113c79ff | 839 | r4 = LPC_UART->DLL; |
kenjiArai | 4:76b3113c79ff | 840 | r5 = LPC_UART->DLM; |
kenjiArai | 4:76b3113c79ff | 841 | r6 = LPC_UART->FDR; |
kenjiArai | 4:76b3113c79ff | 842 | // clear LCR[DLAB] |
kenjiArai | 4:76b3113c79ff | 843 | LPC_UART->LCR &= ~(1 << 7); |
kenjiArai | 4:76b3113c79ff | 844 | // Print each register |
kenjiArai | 4:76b3113c79ff | 845 | PRINTF("Show UART Registers"); |
kenjiArai | 4:76b3113c79ff | 846 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 847 | PRINTF("RBR"); |
kenjiArai | 4:76b3113c79ff | 848 | PRINTF(imsg4); |
kenjiArai | 4:76b3113c79ff | 849 | reg_print(SIZE8, r0); |
kenjiArai | 4:76b3113c79ff | 850 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 851 | PRINTF("THR--Write only"); |
kenjiArai | 4:76b3113c79ff | 852 | PRINTF(imsg4); |
kenjiArai | 4:76b3113c79ff | 853 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 854 | PRINTF("DLL"); |
kenjiArai | 4:76b3113c79ff | 855 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 856 | reg_print(SIZE8, r4); |
kenjiArai | 4:76b3113c79ff | 857 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 858 | PRINTF("DLM"); |
kenjiArai | 4:76b3113c79ff | 859 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 860 | reg_print(SIZE8, r5); |
kenjiArai | 4:76b3113c79ff | 861 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 862 | PRINTF("IER"); |
kenjiArai | 4:76b3113c79ff | 863 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 864 | reg_print(SIZE8, r1); |
kenjiArai | 4:76b3113c79ff | 865 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 866 | PRINTF("IIR"); |
kenjiArai | 4:76b3113c79ff | 867 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 868 | reg_print(SIZE8, r2); |
kenjiArai | 4:76b3113c79ff | 869 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 870 | PRINTF("FCR--Write only"); |
kenjiArai | 4:76b3113c79ff | 871 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 872 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 873 | PRINTF("LCR,MCR,MSR,SCR,ACR--Not support"); |
kenjiArai | 4:76b3113c79ff | 874 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 875 | PRINTF("FDR"); |
kenjiArai | 4:76b3113c79ff | 876 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 877 | reg_print(SIZE8, r6); |
kenjiArai | 4:76b3113c79ff | 878 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 879 | PRINTF("TER"); |
kenjiArai | 4:76b3113c79ff | 880 | PRINTF(imsg3); |
kenjiArai | 4:76b3113c79ff | 881 | reg_print(SIZE8, r3); |
kenjiArai | 4:76b3113c79ff | 882 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 883 | PRINTF("RS485CTRL,485ADRMATCH,485DLY--Not support"); |
kenjiArai | 4:76b3113c79ff | 884 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 885 | } |
kenjiArai | 4:76b3113c79ff | 886 | #endif //USE_UART |
kenjiArai | 4:76b3113c79ff | 887 | |
kenjiArai | 4:76b3113c79ff | 888 | //#if USE_SYS |
kenjiArai | 4:76b3113c79ff | 889 | void cpu_inf (void) |
kenjiArai | 4:76b3113c79ff | 890 | { |
kenjiArai | 4:76b3113c79ff | 891 | unsigned long m1, m2; |
kenjiArai | 4:76b3113c79ff | 892 | |
kenjiArai | 4:76b3113c79ff | 893 | m1 = SCB->CPUID; |
kenjiArai | 4:76b3113c79ff | 894 | m2 = (m1 >> 24); |
kenjiArai | 4:76b3113c79ff | 895 | if (m2 == 0x41) { |
kenjiArai | 4:76b3113c79ff | 896 | put_r(); |
kenjiArai | 4:76b3113c79ff | 897 | PRINTF("CPU = ARM "); |
kenjiArai | 4:76b3113c79ff | 898 | } else { |
kenjiArai | 4:76b3113c79ff | 899 | put_r(); |
kenjiArai | 4:76b3113c79ff | 900 | PRINTF("CPU = NOT ARM "); |
kenjiArai | 4:76b3113c79ff | 901 | } |
kenjiArai | 4:76b3113c79ff | 902 | m2 = (m1 >> 4) & 0xfff; |
kenjiArai | 4:76b3113c79ff | 903 | if (m2 == 0xc23) { |
kenjiArai | 4:76b3113c79ff | 904 | PRINTF("Cortex-M3"); |
kenjiArai | 4:76b3113c79ff | 905 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 906 | } else if (m2 == 0xc20) { |
kenjiArai | 4:76b3113c79ff | 907 | PRINTF("Cortex-M0"); |
kenjiArai | 4:76b3113c79ff | 908 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 909 | } else { |
kenjiArai | 4:76b3113c79ff | 910 | PRINTF("NOT Cortex-M3,M0"); |
kenjiArai | 4:76b3113c79ff | 911 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 912 | } |
kenjiArai | 4:76b3113c79ff | 913 | m2 = (m1 >> 20) & 0x0f; |
kenjiArai | 4:76b3113c79ff | 914 | PRINTF("Variant:%x", m2); |
kenjiArai | 4:76b3113c79ff | 915 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 916 | m2 = m1 & 0x7; |
kenjiArai | 4:76b3113c79ff | 917 | PRINTF("Revision:%x", m2); |
kenjiArai | 4:76b3113c79ff | 918 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 919 | #if 0 |
kenjiArai | 4:76b3113c79ff | 920 | // unique ID |
kenjiArai | 4:76b3113c79ff | 921 | // http://nemuisan.blog.bai.ne.jp/?eid=192845 |
kenjiArai | 4:76b3113c79ff | 922 | m1 = *(__IO uint32_t *)((uint32_t)0x1FFF7A22); |
kenjiArai | 4:76b3113c79ff | 923 | PRINTF("Unique device ID(94bits):(1) 0x%08x ", m1); |
kenjiArai | 4:76b3113c79ff | 924 | m1 = *(__IO uint32_t *)((uint32_t)0x1FFF7A26); |
kenjiArai | 4:76b3113c79ff | 925 | PRINTF("(2) 0x%08x ", m1); |
kenjiArai | 4:76b3113c79ff | 926 | m1 = *(__IO uint32_t *)((uint32_t)0x1FFF7A2A); |
kenjiArai | 4:76b3113c79ff | 927 | PRINTF( "(3) 0x%08x", m1 ); |
kenjiArai | 4:76b3113c79ff | 928 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 929 | // m1 = DBGMCU->IDCODE; |
kenjiArai | 4:76b3113c79ff | 930 | // PRINTF( "DBG ID: 0x%08x", m1 ); |
kenjiArai | 4:76b3113c79ff | 931 | #endif |
kenjiArai | 4:76b3113c79ff | 932 | } |
kenjiArai | 4:76b3113c79ff | 933 | |
kenjiArai | 4:76b3113c79ff | 934 | // Calculate CPU System Clock Frequency |
kenjiArai | 4:76b3113c79ff | 935 | void get_freq(int pr) |
kenjiArai | 4:76b3113c79ff | 936 | { |
kenjiArai | 4:76b3113c79ff | 937 | uint32_t wdt_osc = 0, pll_fct0 = 0, pll_fct1 = 0; |
kenjiArai | 4:76b3113c79ff | 938 | |
kenjiArai | 4:76b3113c79ff | 939 | // Determine clock frequency according to clock register values |
kenjiArai | 4:76b3113c79ff | 940 | switch ((LPC_SYSCON->WDTOSCCTRL >> 5) & 0x0F) { |
kenjiArai | 4:76b3113c79ff | 941 | case 0: |
kenjiArai | 4:76b3113c79ff | 942 | wdt_osc = 400000; |
kenjiArai | 4:76b3113c79ff | 943 | break; |
kenjiArai | 4:76b3113c79ff | 944 | case 1: |
kenjiArai | 4:76b3113c79ff | 945 | wdt_osc = 500000; |
kenjiArai | 4:76b3113c79ff | 946 | break; |
kenjiArai | 4:76b3113c79ff | 947 | case 2: |
kenjiArai | 4:76b3113c79ff | 948 | wdt_osc = 800000; |
kenjiArai | 4:76b3113c79ff | 949 | break; |
kenjiArai | 4:76b3113c79ff | 950 | case 3: |
kenjiArai | 4:76b3113c79ff | 951 | wdt_osc = 1100000; |
kenjiArai | 4:76b3113c79ff | 952 | break; |
kenjiArai | 4:76b3113c79ff | 953 | case 4: |
kenjiArai | 4:76b3113c79ff | 954 | wdt_osc = 1400000; |
kenjiArai | 4:76b3113c79ff | 955 | break; |
kenjiArai | 4:76b3113c79ff | 956 | case 5: |
kenjiArai | 4:76b3113c79ff | 957 | wdt_osc = 1600000; |
kenjiArai | 4:76b3113c79ff | 958 | break; |
kenjiArai | 4:76b3113c79ff | 959 | case 6: |
kenjiArai | 4:76b3113c79ff | 960 | wdt_osc = 1800000; |
kenjiArai | 4:76b3113c79ff | 961 | break; |
kenjiArai | 4:76b3113c79ff | 962 | case 7: |
kenjiArai | 4:76b3113c79ff | 963 | wdt_osc = 2000000; |
kenjiArai | 4:76b3113c79ff | 964 | break; |
kenjiArai | 4:76b3113c79ff | 965 | case 8: |
kenjiArai | 4:76b3113c79ff | 966 | wdt_osc = 2200000; |
kenjiArai | 4:76b3113c79ff | 967 | break; |
kenjiArai | 4:76b3113c79ff | 968 | case 9: |
kenjiArai | 4:76b3113c79ff | 969 | wdt_osc = 2400000; |
kenjiArai | 4:76b3113c79ff | 970 | break; |
kenjiArai | 4:76b3113c79ff | 971 | case 10: |
kenjiArai | 4:76b3113c79ff | 972 | wdt_osc = 2600000; |
kenjiArai | 4:76b3113c79ff | 973 | break; |
kenjiArai | 4:76b3113c79ff | 974 | case 11: |
kenjiArai | 4:76b3113c79ff | 975 | wdt_osc = 2700000; |
kenjiArai | 4:76b3113c79ff | 976 | break; |
kenjiArai | 4:76b3113c79ff | 977 | case 12: |
kenjiArai | 4:76b3113c79ff | 978 | wdt_osc = 2900000; |
kenjiArai | 4:76b3113c79ff | 979 | break; |
kenjiArai | 4:76b3113c79ff | 980 | case 13: |
kenjiArai | 4:76b3113c79ff | 981 | wdt_osc = 3100000; |
kenjiArai | 4:76b3113c79ff | 982 | break; |
kenjiArai | 4:76b3113c79ff | 983 | case 14: |
kenjiArai | 4:76b3113c79ff | 984 | wdt_osc = 3200000; |
kenjiArai | 4:76b3113c79ff | 985 | break; |
kenjiArai | 4:76b3113c79ff | 986 | case 15: |
kenjiArai | 4:76b3113c79ff | 987 | wdt_osc = 3400000; |
kenjiArai | 4:76b3113c79ff | 988 | break; |
kenjiArai | 4:76b3113c79ff | 989 | } |
kenjiArai | 4:76b3113c79ff | 990 | wdt_osc /= ((LPC_SYSCON->WDTOSCCTRL & 0x1F) << 1) + 2; |
kenjiArai | 4:76b3113c79ff | 991 | put_r(); |
kenjiArai | 4:76b3113c79ff | 992 | switch (LPC_SYSCON->MAINCLKSEL & 0x03) { |
kenjiArai | 4:76b3113c79ff | 993 | case 0: // Internal RC oscillator |
kenjiArai | 4:76b3113c79ff | 994 | SystemCoreClock = __IRC_OSC_CLK; |
kenjiArai | 4:76b3113c79ff | 995 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 996 | PRINTF("%s = %dHz", fmsg0, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 997 | } |
kenjiArai | 4:76b3113c79ff | 998 | break; |
kenjiArai | 4:76b3113c79ff | 999 | case 1: // Input Clock to System PLL |
kenjiArai | 4:76b3113c79ff | 1000 | switch (LPC_SYSCON->SYSPLLCLKSEL & 0x03) { |
kenjiArai | 4:76b3113c79ff | 1001 | case 0: // Internal RC oscillator |
kenjiArai | 4:76b3113c79ff | 1002 | SystemCoreClock = __IRC_OSC_CLK; |
kenjiArai | 4:76b3113c79ff | 1003 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1004 | PRINTF("%s = %dHz", fmsg0, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1005 | } |
kenjiArai | 4:76b3113c79ff | 1006 | break; |
kenjiArai | 4:76b3113c79ff | 1007 | case 1: // System oscillator |
kenjiArai | 4:76b3113c79ff | 1008 | SystemCoreClock = __SYS_OSC_CLK; |
kenjiArai | 4:76b3113c79ff | 1009 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1010 | PRINTF("%s = %dHz", fmsg1, SystemCoreClock ); |
kenjiArai | 4:76b3113c79ff | 1011 | } |
kenjiArai | 4:76b3113c79ff | 1012 | break; |
kenjiArai | 4:76b3113c79ff | 1013 | case 2: // WDT Oscillator |
kenjiArai | 4:76b3113c79ff | 1014 | SystemCoreClock = wdt_osc; |
kenjiArai | 4:76b3113c79ff | 1015 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1016 | PRINTF("%s = %dHz", fmsg2, wdt_osc ); |
kenjiArai | 4:76b3113c79ff | 1017 | } |
kenjiArai | 4:76b3113c79ff | 1018 | break; |
kenjiArai | 4:76b3113c79ff | 1019 | case 3: // Reserved |
kenjiArai | 4:76b3113c79ff | 1020 | SystemCoreClock = 0; |
kenjiArai | 4:76b3113c79ff | 1021 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1022 | PRINTF(fmsg7); |
kenjiArai | 4:76b3113c79ff | 1023 | } |
kenjiArai | 4:76b3113c79ff | 1024 | break; |
kenjiArai | 4:76b3113c79ff | 1025 | } |
kenjiArai | 4:76b3113c79ff | 1026 | break; |
kenjiArai | 4:76b3113c79ff | 1027 | case 2: // WDT Oscillator |
kenjiArai | 4:76b3113c79ff | 1028 | SystemCoreClock = wdt_osc; |
kenjiArai | 4:76b3113c79ff | 1029 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1030 | PRINTF("%s = %dHz", fmsg2, wdt_osc ); |
kenjiArai | 4:76b3113c79ff | 1031 | } |
kenjiArai | 4:76b3113c79ff | 1032 | break; |
kenjiArai | 4:76b3113c79ff | 1033 | case 3: // System PLL Clock Out |
kenjiArai | 4:76b3113c79ff | 1034 | switch (LPC_SYSCON->SYSPLLCLKSEL & 0x03) { |
kenjiArai | 4:76b3113c79ff | 1035 | case 0: // Internal RC oscillator |
kenjiArai | 4:76b3113c79ff | 1036 | if (LPC_SYSCON->SYSPLLCTRL & 0x180) { |
kenjiArai | 4:76b3113c79ff | 1037 | SystemCoreClock = __IRC_OSC_CLK; |
kenjiArai | 4:76b3113c79ff | 1038 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1039 | PRINTF("%s = %dHz", fmsg0, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1040 | } |
kenjiArai | 4:76b3113c79ff | 1041 | } else { |
kenjiArai | 4:76b3113c79ff | 1042 | pll_fct0 = (LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1; |
kenjiArai | 4:76b3113c79ff | 1043 | pll_fct1 = (LPC_SYSCON->SYSPLLCTRL & 0x060) >> 5UL; |
kenjiArai | 4:76b3113c79ff | 1044 | SystemCoreClock = __IRC_OSC_CLK * pll_fct0; |
kenjiArai | 4:76b3113c79ff | 1045 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1046 | PRINTF("Use Internal RC = %dHz", __IRC_OSC_CLK); |
kenjiArai | 4:76b3113c79ff | 1047 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1048 | PRINTF("%s %s = %dHz", fmsg0, fmsg3, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1049 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1050 | PRINTF("%s %d, %s %d", fmsg5, pll_fct1, fmsg6, pll_fct0); |
kenjiArai | 4:76b3113c79ff | 1051 | } |
kenjiArai | 4:76b3113c79ff | 1052 | } |
kenjiArai | 4:76b3113c79ff | 1053 | break; |
kenjiArai | 4:76b3113c79ff | 1054 | case 1: // System oscillator |
kenjiArai | 4:76b3113c79ff | 1055 | if (LPC_SYSCON->SYSPLLCTRL & 0x180) { |
kenjiArai | 4:76b3113c79ff | 1056 | SystemCoreClock = __SYS_OSC_CLK; |
kenjiArai | 4:76b3113c79ff | 1057 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1058 | PRINTF("%s = %dHz", fmsg1, SystemCoreClock ); |
kenjiArai | 4:76b3113c79ff | 1059 | } |
kenjiArai | 4:76b3113c79ff | 1060 | } else { |
kenjiArai | 4:76b3113c79ff | 1061 | pll_fct0 = (LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1; |
kenjiArai | 4:76b3113c79ff | 1062 | pll_fct1 = (LPC_SYSCON->SYSPLLCTRL & 0x060) >> 5UL; |
kenjiArai | 4:76b3113c79ff | 1063 | SystemCoreClock = __SYS_OSC_CLK * pll_fct0; |
kenjiArai | 4:76b3113c79ff | 1064 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1065 | PRINTF("Use XTAL = %dHz", __XTAL); |
kenjiArai | 4:76b3113c79ff | 1066 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1067 | PRINTF("%s %s = %dHz", fmsg1, fmsg3, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1068 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1069 | PRINTF("%s %d, %s %d", fmsg5, pll_fct1, fmsg6, pll_fct0); |
kenjiArai | 4:76b3113c79ff | 1070 | } |
kenjiArai | 4:76b3113c79ff | 1071 | } |
kenjiArai | 4:76b3113c79ff | 1072 | break; |
kenjiArai | 4:76b3113c79ff | 1073 | case 2: // WDT Oscillator |
kenjiArai | 4:76b3113c79ff | 1074 | if (LPC_SYSCON->SYSPLLCTRL & 0x180) { |
kenjiArai | 4:76b3113c79ff | 1075 | SystemCoreClock = wdt_osc; |
kenjiArai | 4:76b3113c79ff | 1076 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1077 | PRINTF("%s = %dHz", fmsg2, wdt_osc ); |
kenjiArai | 4:76b3113c79ff | 1078 | } |
kenjiArai | 4:76b3113c79ff | 1079 | } else { |
kenjiArai | 4:76b3113c79ff | 1080 | pll_fct0 = (LPC_SYSCON->SYSPLLCTRL & 0x01F) + 1; |
kenjiArai | 4:76b3113c79ff | 1081 | pll_fct1 = (LPC_SYSCON->SYSPLLCTRL & 0x060) >> 5UL; |
kenjiArai | 4:76b3113c79ff | 1082 | SystemCoreClock = wdt_osc * pll_fct0; |
kenjiArai | 4:76b3113c79ff | 1083 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1084 | PRINTF("Use WDT OSC = %dHz", wdt_osc); |
kenjiArai | 4:76b3113c79ff | 1085 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1086 | PRINTF("%s %s = %dHz", fmsg2, fmsg3, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1087 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1088 | PRINTF("%s %d, %s %d", fmsg5, pll_fct1, fmsg6, pll_fct0); |
kenjiArai | 4:76b3113c79ff | 1089 | } |
kenjiArai | 4:76b3113c79ff | 1090 | } |
kenjiArai | 4:76b3113c79ff | 1091 | break; |
kenjiArai | 4:76b3113c79ff | 1092 | case 3: // Reserved |
kenjiArai | 4:76b3113c79ff | 1093 | SystemCoreClock = 0; |
kenjiArai | 4:76b3113c79ff | 1094 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1095 | PRINTF("fmsg7"); |
kenjiArai | 4:76b3113c79ff | 1096 | } |
kenjiArai | 4:76b3113c79ff | 1097 | break; |
kenjiArai | 4:76b3113c79ff | 1098 | } |
kenjiArai | 4:76b3113c79ff | 1099 | break; |
kenjiArai | 4:76b3113c79ff | 1100 | } |
kenjiArai | 4:76b3113c79ff | 1101 | SystemCoreClock /= LPC_SYSCON->SYSAHBCLKDIV; |
kenjiArai | 4:76b3113c79ff | 1102 | if(pr) { |
kenjiArai | 4:76b3113c79ff | 1103 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1104 | PRINTF("%s %dHz", fmsg4, SystemCoreClock); |
kenjiArai | 4:76b3113c79ff | 1105 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1106 | } |
kenjiArai | 4:76b3113c79ff | 1107 | } |
kenjiArai | 4:76b3113c79ff | 1108 | //#endif //USE_SYS |
kenjiArai | 4:76b3113c79ff | 1109 | |
kenjiArai | 4:76b3113c79ff | 1110 | #if USE_I2C |
kenjiArai | 4:76b3113c79ff | 1111 | void i2c_io_reg (void) |
kenjiArai | 4:76b3113c79ff | 1112 | { |
kenjiArai | 4:76b3113c79ff | 1113 | uint32_t r0; |
kenjiArai | 4:76b3113c79ff | 1114 | |
kenjiArai | 4:76b3113c79ff | 1115 | PRINTF("<Show IO Pin>"); |
kenjiArai | 4:76b3113c79ff | 1116 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1117 | // P0_4 |
kenjiArai | 4:76b3113c79ff | 1118 | r0 = LPC_IOCON->PIO0_4; |
kenjiArai | 4:76b3113c79ff | 1119 | reg_print(SIZE_X, r0); |
kenjiArai | 4:76b3113c79ff | 1120 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1121 | PRINTF("%s4(dp27)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 1122 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1123 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 1124 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 1125 | case 0: |
kenjiArai | 4:76b3113c79ff | 1126 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 1127 | break; |
kenjiArai | 4:76b3113c79ff | 1128 | case 1: |
kenjiArai | 4:76b3113c79ff | 1129 | PRINTF("SCL"); |
kenjiArai | 4:76b3113c79ff | 1130 | break; |
kenjiArai | 4:76b3113c79ff | 1131 | } |
kenjiArai | 4:76b3113c79ff | 1132 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 1133 | switch (( r0 >> 8 ) & 0x3) { |
kenjiArai | 4:76b3113c79ff | 1134 | case 0: |
kenjiArai | 4:76b3113c79ff | 1135 | PRINTF(iomsg4); |
kenjiArai | 4:76b3113c79ff | 1136 | break; |
kenjiArai | 4:76b3113c79ff | 1137 | case 1: |
kenjiArai | 4:76b3113c79ff | 1138 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 1139 | break; |
kenjiArai | 4:76b3113c79ff | 1140 | case 2: |
kenjiArai | 4:76b3113c79ff | 1141 | PRINTF("Fast md"); |
kenjiArai | 4:76b3113c79ff | 1142 | break; |
kenjiArai | 4:76b3113c79ff | 1143 | case 3: |
kenjiArai | 4:76b3113c79ff | 1144 | PRINTF(iomsg2); |
kenjiArai | 4:76b3113c79ff | 1145 | break; |
kenjiArai | 4:76b3113c79ff | 1146 | } |
kenjiArai | 4:76b3113c79ff | 1147 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1148 | // P0_5 |
kenjiArai | 4:76b3113c79ff | 1149 | r0 = LPC_IOCON->PIO0_5; |
kenjiArai | 4:76b3113c79ff | 1150 | reg_print( SIZE_X, r0 ); |
kenjiArai | 4:76b3113c79ff | 1151 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1152 | PRINTF("%s5(dp5)",io_port_name0); |
kenjiArai | 4:76b3113c79ff | 1153 | put_spc(3); |
kenjiArai | 4:76b3113c79ff | 1154 | PRINTF(iomsg0); |
kenjiArai | 4:76b3113c79ff | 1155 | switch (r0 & 0x7) { |
kenjiArai | 4:76b3113c79ff | 1156 | case 0: |
kenjiArai | 4:76b3113c79ff | 1157 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 1158 | break; |
kenjiArai | 4:76b3113c79ff | 1159 | case 1: |
kenjiArai | 4:76b3113c79ff | 1160 | PRINTF("SDA"); |
kenjiArai | 4:76b3113c79ff | 1161 | break; |
kenjiArai | 4:76b3113c79ff | 1162 | } |
kenjiArai | 4:76b3113c79ff | 1163 | put_lin(); |
kenjiArai | 4:76b3113c79ff | 1164 | switch ((r0 >> 8 ) & 0x3) { |
kenjiArai | 4:76b3113c79ff | 1165 | case 0: |
kenjiArai | 4:76b3113c79ff | 1166 | PRINTF(iomsg4); |
kenjiArai | 4:76b3113c79ff | 1167 | break; |
kenjiArai | 4:76b3113c79ff | 1168 | case 1: |
kenjiArai | 4:76b3113c79ff | 1169 | PRINTF(iomsg1); |
kenjiArai | 4:76b3113c79ff | 1170 | break; |
kenjiArai | 4:76b3113c79ff | 1171 | case 2: |
kenjiArai | 4:76b3113c79ff | 1172 | PRINTF("Fast md"); |
kenjiArai | 4:76b3113c79ff | 1173 | break; |
kenjiArai | 4:76b3113c79ff | 1174 | case 3: |
kenjiArai | 4:76b3113c79ff | 1175 | PRINTF(iomsg2); |
kenjiArai | 4:76b3113c79ff | 1176 | break; |
kenjiArai | 4:76b3113c79ff | 1177 | } |
kenjiArai | 4:76b3113c79ff | 1178 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1179 | } |
kenjiArai | 4:76b3113c79ff | 1180 | |
kenjiArai | 4:76b3113c79ff | 1181 | void i2c_reg (void) |
kenjiArai | 4:76b3113c79ff | 1182 | { |
kenjiArai | 4:76b3113c79ff | 1183 | uint32_t r0,r1,r2,r3,r4,r5,r6,r7; |
kenjiArai | 4:76b3113c79ff | 1184 | |
kenjiArai | 4:76b3113c79ff | 1185 | r0 = LPC_I2C->CONSET; |
kenjiArai | 4:76b3113c79ff | 1186 | r1 = LPC_I2C->STAT; |
kenjiArai | 4:76b3113c79ff | 1187 | r2 = LPC_I2C->DAT; |
kenjiArai | 4:76b3113c79ff | 1188 | r3 = LPC_I2C->SCLH; |
kenjiArai | 4:76b3113c79ff | 1189 | r4 = LPC_I2C->SCLL; |
kenjiArai | 4:76b3113c79ff | 1190 | r5 = LPC_I2C->CONCLR; |
kenjiArai | 4:76b3113c79ff | 1191 | r6 = LPC_I2C->MMCTRL; |
kenjiArai | 4:76b3113c79ff | 1192 | r7 = LPC_I2C->DATA_BUFFER; |
kenjiArai | 4:76b3113c79ff | 1193 | |
kenjiArai | 4:76b3113c79ff | 1194 | PRINTF("<Show I2C Registers>"); |
kenjiArai | 4:76b3113c79ff | 1195 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1196 | reg_print(SIZE8, r0); |
kenjiArai | 4:76b3113c79ff | 1197 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1198 | PRINTF("CONSET"); |
kenjiArai | 4:76b3113c79ff | 1199 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 1200 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1201 | reg_print(SIZE8, r1); |
kenjiArai | 4:76b3113c79ff | 1202 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1203 | PRINTF("STAT"); |
kenjiArai | 4:76b3113c79ff | 1204 | PRINTF(imsg3); |
kenjiArai | 4:76b3113c79ff | 1205 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1206 | reg_print(SIZE8, r2); |
kenjiArai | 4:76b3113c79ff | 1207 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1208 | PRINTF("DAT"); |
kenjiArai | 4:76b3113c79ff | 1209 | PRINTF(imsg4); |
kenjiArai | 4:76b3113c79ff | 1210 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1211 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1212 | PRINTF("ADR0--Not support"); |
kenjiArai | 4:76b3113c79ff | 1213 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1214 | reg_print(SIZE8, r3); |
kenjiArai | 4:76b3113c79ff | 1215 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1216 | PRINTF("SCLH"); |
kenjiArai | 4:76b3113c79ff | 1217 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 1218 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1219 | reg_print(SIZE8, r4); |
kenjiArai | 4:76b3113c79ff | 1220 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1221 | PRINTF("SCLL"); |
kenjiArai | 4:76b3113c79ff | 1222 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 1223 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1224 | reg_print(SIZE8, r5); |
kenjiArai | 4:76b3113c79ff | 1225 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1226 | PRINTF("CONCLR"); |
kenjiArai | 4:76b3113c79ff | 1227 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 1228 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1229 | reg_print(SIZE8, r6); |
kenjiArai | 4:76b3113c79ff | 1230 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1231 | PRINTF("MMCTRL"); |
kenjiArai | 4:76b3113c79ff | 1232 | PRINTF(imsg2); |
kenjiArai | 4:76b3113c79ff | 1233 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1234 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1235 | PRINTF("ADR1,2,3--Not support"); |
kenjiArai | 4:76b3113c79ff | 1236 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1237 | reg_print(SIZE8, r7); |
kenjiArai | 4:76b3113c79ff | 1238 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1239 | PRINTF("DATA_BUFFER"); |
kenjiArai | 4:76b3113c79ff | 1240 | PRINTF(imsg5); |
kenjiArai | 4:76b3113c79ff | 1241 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1242 | put_spc(2); |
kenjiArai | 4:76b3113c79ff | 1243 | PRINTF("MASK0,1,2,3--Not support"); |
kenjiArai | 4:76b3113c79ff | 1244 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1245 | } |
kenjiArai | 4:76b3113c79ff | 1246 | |
kenjiArai | 4:76b3113c79ff | 1247 | void i2c_freq (void) |
kenjiArai | 4:76b3113c79ff | 1248 | { |
kenjiArai | 4:76b3113c79ff | 1249 | uint32_t r0,r1; |
kenjiArai | 4:76b3113c79ff | 1250 | |
kenjiArai | 4:76b3113c79ff | 1251 | r0 = LPC_I2C->SCLH; |
kenjiArai | 4:76b3113c79ff | 1252 | r1 = LPC_I2C->SCLL; |
kenjiArai | 4:76b3113c79ff | 1253 | get_freq(0); |
kenjiArai | 4:76b3113c79ff | 1254 | PRINTF("<I2C Status>"); |
kenjiArai | 4:76b3113c79ff | 1255 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1256 | PRINTF("Freq. = I2CPCLK/(SCLH+SCLL) = %d/(%d+%d) = %d Hz", |
kenjiArai | 4:76b3113c79ff | 1257 | SystemCoreClock, r0, r1, SystemCoreClock/(r0+r1)); |
kenjiArai | 4:76b3113c79ff | 1258 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1259 | r0 = LPC_I2C->CONSET; |
kenjiArai | 4:76b3113c79ff | 1260 | PRINTF("I2C I/F "); |
kenjiArai | 4:76b3113c79ff | 1261 | if ( r0 & 0x40 ) { |
kenjiArai | 4:76b3113c79ff | 1262 | PRINTF("Enabled"); |
kenjiArai | 4:76b3113c79ff | 1263 | } else { |
kenjiArai | 4:76b3113c79ff | 1264 | PRINTF("disabled"); |
kenjiArai | 4:76b3113c79ff | 1265 | } |
kenjiArai | 4:76b3113c79ff | 1266 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1267 | } |
kenjiArai | 4:76b3113c79ff | 1268 | #endif |
kenjiArai | 4:76b3113c79ff | 1269 | |
kenjiArai | 4:76b3113c79ff | 1270 | //------------------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1271 | // Monitor Main Program |
kenjiArai | 4:76b3113c79ff | 1272 | //------------------------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1273 | int mon_hw (void) |
kenjiArai | 4:76b3113c79ff | 1274 | { |
kenjiArai | 4:76b3113c79ff | 1275 | char *ptr; |
kenjiArai | 4:76b3113c79ff | 1276 | |
kenjiArai | 4:76b3113c79ff | 1277 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1278 | PRINTF("%s [Help:'?' key]", mon_msg); |
kenjiArai | 4:76b3113c79ff | 1279 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1280 | #if USE_SYS |
kenjiArai | 4:76b3113c79ff | 1281 | get_freq(0); |
kenjiArai | 4:76b3113c79ff | 1282 | #endif //USE_SYS |
kenjiArai | 4:76b3113c79ff | 1283 | for (;;) { |
kenjiArai | 4:76b3113c79ff | 1284 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1285 | PUTC('>'); |
kenjiArai | 4:76b3113c79ff | 1286 | ptr = linebuf; |
kenjiArai | 4:76b3113c79ff | 1287 | get_line(ptr, buf_size); |
kenjiArai | 4:76b3113c79ff | 1288 | switch (*ptr++) { |
kenjiArai | 4:76b3113c79ff | 1289 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1290 | // Memory |
kenjiArai | 4:76b3113c79ff | 1291 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1292 | case 'm' : |
kenjiArai | 4:76b3113c79ff | 1293 | #if USE_MEM |
kenjiArai | 4:76b3113c79ff | 1294 | mem_inf(ptr); |
kenjiArai | 4:76b3113c79ff | 1295 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1296 | break; |
kenjiArai | 4:76b3113c79ff | 1297 | #else |
kenjiArai | 4:76b3113c79ff | 1298 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1299 | #endif // USE_MEM |
kenjiArai | 4:76b3113c79ff | 1300 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1301 | // Register |
kenjiArai | 4:76b3113c79ff | 1302 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1303 | case 'r' : |
kenjiArai | 4:76b3113c79ff | 1304 | uint8_t r_flg; |
kenjiArai | 4:76b3113c79ff | 1305 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1306 | PRINTF("Reg. Mode p,u,i,s,t,a,d,l,w,c & ?"); |
kenjiArai | 4:76b3113c79ff | 1307 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1308 | r_flg = 0; |
kenjiArai | 4:76b3113c79ff | 1309 | for (; r_flg != 0xff;) { |
kenjiArai | 4:76b3113c79ff | 1310 | PRINTF("r>"); |
kenjiArai | 4:76b3113c79ff | 1311 | ptr = linebuf; |
kenjiArai | 4:76b3113c79ff | 1312 | get_line(ptr, buf_size); |
kenjiArai | 4:76b3113c79ff | 1313 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1314 | switch(*ptr++) { |
kenjiArai | 4:76b3113c79ff | 1315 | case 'p' : |
kenjiArai | 4:76b3113c79ff | 1316 | #if USE_PORT |
kenjiArai | 4:76b3113c79ff | 1317 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1318 | switch(*ptr++) { |
kenjiArai | 4:76b3113c79ff | 1319 | case '0' : |
kenjiArai | 4:76b3113c79ff | 1320 | io_config0(); |
kenjiArai | 4:76b3113c79ff | 1321 | break; |
kenjiArai | 4:76b3113c79ff | 1322 | case '1' : |
kenjiArai | 4:76b3113c79ff | 1323 | io_config1(); |
kenjiArai | 4:76b3113c79ff | 1324 | break; |
kenjiArai | 4:76b3113c79ff | 1325 | case '*' : |
kenjiArai | 4:76b3113c79ff | 1326 | io_config0(); |
kenjiArai | 4:76b3113c79ff | 1327 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1328 | io_config1(); |
kenjiArai | 4:76b3113c79ff | 1329 | break; |
kenjiArai | 4:76b3113c79ff | 1330 | case '?' : |
kenjiArai | 4:76b3113c79ff | 1331 | default: |
kenjiArai | 4:76b3113c79ff | 1332 | PRINTF("Enter p0,p1 and p* for all"); |
kenjiArai | 4:76b3113c79ff | 1333 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1334 | } |
kenjiArai | 4:76b3113c79ff | 1335 | #else |
kenjiArai | 4:76b3113c79ff | 1336 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1337 | #endif // USE_PORT |
kenjiArai | 4:76b3113c79ff | 1338 | break; |
kenjiArai | 4:76b3113c79ff | 1339 | case 'u' : |
kenjiArai | 4:76b3113c79ff | 1340 | #if USE_UART |
kenjiArai | 4:76b3113c79ff | 1341 | uart_reg(); |
kenjiArai | 4:76b3113c79ff | 1342 | #else |
kenjiArai | 4:76b3113c79ff | 1343 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1344 | #endif // USE_UART |
kenjiArai | 4:76b3113c79ff | 1345 | break; |
kenjiArai | 4:76b3113c79ff | 1346 | case 'i' : |
kenjiArai | 4:76b3113c79ff | 1347 | #if USE_I2C |
kenjiArai | 4:76b3113c79ff | 1348 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1349 | i2c_io_reg(); |
kenjiArai | 4:76b3113c79ff | 1350 | i2c_reg(); |
kenjiArai | 4:76b3113c79ff | 1351 | i2c_freq(); |
kenjiArai | 4:76b3113c79ff | 1352 | #else |
kenjiArai | 4:76b3113c79ff | 1353 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1354 | #endif // USE_I2C |
kenjiArai | 4:76b3113c79ff | 1355 | break; |
kenjiArai | 4:76b3113c79ff | 1356 | case 's' : |
kenjiArai | 4:76b3113c79ff | 1357 | #if USE_SPI |
kenjiArai | 4:76b3113c79ff | 1358 | switch(*ptr++) { |
kenjiArai | 4:76b3113c79ff | 1359 | case '0' : |
kenjiArai | 4:76b3113c79ff | 1360 | spi_reg(SPI_0); |
kenjiArai | 4:76b3113c79ff | 1361 | break; |
kenjiArai | 4:76b3113c79ff | 1362 | case '1' : |
kenjiArai | 4:76b3113c79ff | 1363 | spi_reg(SPI_1); |
kenjiArai | 4:76b3113c79ff | 1364 | break; |
kenjiArai | 4:76b3113c79ff | 1365 | case '*' : |
kenjiArai | 4:76b3113c79ff | 1366 | spi_reg(SPI_0); |
kenjiArai | 4:76b3113c79ff | 1367 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1368 | spi_reg( SPI_1 ); |
kenjiArai | 4:76b3113c79ff | 1369 | break; |
kenjiArai | 4:76b3113c79ff | 1370 | case '?' : |
kenjiArai | 4:76b3113c79ff | 1371 | default: |
kenjiArai | 4:76b3113c79ff | 1372 | PRINTF("Enter s0,s1 and s* for all"); |
kenjiArai | 4:76b3113c79ff | 1373 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1374 | } |
kenjiArai | 4:76b3113c79ff | 1375 | #else |
kenjiArai | 4:76b3113c79ff | 1376 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1377 | #endif // USE_SPI |
kenjiArai | 4:76b3113c79ff | 1378 | break; |
kenjiArai | 4:76b3113c79ff | 1379 | case 't' : // |
kenjiArai | 4:76b3113c79ff | 1380 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1381 | break; |
kenjiArai | 4:76b3113c79ff | 1382 | case 'a' : // |
kenjiArai | 4:76b3113c79ff | 1383 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1384 | break; |
kenjiArai | 4:76b3113c79ff | 1385 | case 'd' : // |
kenjiArai | 4:76b3113c79ff | 1386 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1387 | break; |
kenjiArai | 4:76b3113c79ff | 1388 | case 'w' : // |
kenjiArai | 4:76b3113c79ff | 1389 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1390 | break; |
kenjiArai | 4:76b3113c79ff | 1391 | case 'l' : // |
kenjiArai | 4:76b3113c79ff | 1392 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1393 | break; |
kenjiArai | 4:76b3113c79ff | 1394 | case 'c' : // |
kenjiArai | 4:76b3113c79ff | 1395 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1396 | break; |
kenjiArai | 4:76b3113c79ff | 1397 | case 'x' : // |
kenjiArai | 4:76b3113c79ff | 1398 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1399 | break; |
kenjiArai | 4:76b3113c79ff | 1400 | case 'y' : // |
kenjiArai | 4:76b3113c79ff | 1401 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1402 | break; |
kenjiArai | 4:76b3113c79ff | 1403 | case 'q' : // quit |
kenjiArai | 4:76b3113c79ff | 1404 | r_flg = 0xff; |
kenjiArai | 4:76b3113c79ff | 1405 | break; |
kenjiArai | 4:76b3113c79ff | 1406 | case '?' : |
kenjiArai | 4:76b3113c79ff | 1407 | PRINTF("p - I/O Pin Config"); |
kenjiArai | 4:76b3113c79ff | 1408 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1409 | PRINTF("u - UART"); |
kenjiArai | 4:76b3113c79ff | 1410 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1411 | PRINTF("i - I2C"); |
kenjiArai | 4:76b3113c79ff | 1412 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1413 | PRINTF("s - SPI"); |
kenjiArai | 4:76b3113c79ff | 1414 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1415 | PRINTF("t - TIMER"); |
kenjiArai | 4:76b3113c79ff | 1416 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1417 | PRINTF("a - ADC"); |
kenjiArai | 4:76b3113c79ff | 1418 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1419 | PRINTF("d - DAC"); |
kenjiArai | 4:76b3113c79ff | 1420 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1421 | PRINTF("l - LDC"); |
kenjiArai | 4:76b3113c79ff | 1422 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1423 | PRINTF("w - WWDG"); |
kenjiArai | 4:76b3113c79ff | 1424 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1425 | PRINTF("c - COMP"); |
kenjiArai | 4:76b3113c79ff | 1426 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1427 | PRINTF("q - Exit mode"); |
kenjiArai | 4:76b3113c79ff | 1428 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1429 | break; |
kenjiArai | 4:76b3113c79ff | 1430 | default: |
kenjiArai | 4:76b3113c79ff | 1431 | PUTC('?'); |
kenjiArai | 4:76b3113c79ff | 1432 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1433 | } |
kenjiArai | 4:76b3113c79ff | 1434 | } |
kenjiArai | 4:76b3113c79ff | 1435 | PRINTF("Return to All Mode"); |
kenjiArai | 4:76b3113c79ff | 1436 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1437 | break; |
kenjiArai | 4:76b3113c79ff | 1438 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1439 | // System |
kenjiArai | 4:76b3113c79ff | 1440 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1441 | case 's' : // System related information |
kenjiArai | 4:76b3113c79ff | 1442 | #if USE_SYS |
kenjiArai | 4:76b3113c79ff | 1443 | switch (*ptr++) { |
kenjiArai | 4:76b3113c79ff | 1444 | case 'f' : // sc - show system clock frequency |
kenjiArai | 4:76b3113c79ff | 1445 | get_freq(1); |
kenjiArai | 4:76b3113c79ff | 1446 | break; |
kenjiArai | 4:76b3113c79ff | 1447 | case 'c' : // sc - show system CPU information |
kenjiArai | 4:76b3113c79ff | 1448 | cpu_inf(); |
kenjiArai | 4:76b3113c79ff | 1449 | break; |
kenjiArai | 4:76b3113c79ff | 1450 | case '?' : |
kenjiArai | 4:76b3113c79ff | 1451 | default: |
kenjiArai | 4:76b3113c79ff | 1452 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1453 | PRINTF("sc - System CPU information"); |
kenjiArai | 4:76b3113c79ff | 1454 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1455 | PRINTF("sf - System Clock"); |
kenjiArai | 4:76b3113c79ff | 1456 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1457 | break; |
kenjiArai | 4:76b3113c79ff | 1458 | } |
kenjiArai | 4:76b3113c79ff | 1459 | #else |
kenjiArai | 4:76b3113c79ff | 1460 | not_select(); |
kenjiArai | 4:76b3113c79ff | 1461 | #endif // USE_SYS |
kenjiArai | 4:76b3113c79ff | 1462 | break; |
kenjiArai | 4:76b3113c79ff | 1463 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1464 | // Help |
kenjiArai | 4:76b3113c79ff | 1465 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1466 | case '?' : |
kenjiArai | 4:76b3113c79ff | 1467 | put_r(); |
kenjiArai | 4:76b3113c79ff | 1468 | msg_hlp_hw(); |
kenjiArai | 4:76b3113c79ff | 1469 | break; |
kenjiArai | 4:76b3113c79ff | 1470 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1471 | // Return to main routine |
kenjiArai | 4:76b3113c79ff | 1472 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1473 | case 'q' : // Quit |
kenjiArai | 4:76b3113c79ff | 1474 | PRINTF("\rReturn to monitor "); |
kenjiArai | 4:76b3113c79ff | 1475 | return 0; |
kenjiArai | 4:76b3113c79ff | 1476 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1477 | // Special command for DEBUG |
kenjiArai | 4:76b3113c79ff | 1478 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1479 | case 'x' : |
kenjiArai | 4:76b3113c79ff | 1480 | not_yet_impliment(); |
kenjiArai | 4:76b3113c79ff | 1481 | break; |
kenjiArai | 4:76b3113c79ff | 1482 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1483 | // no support |
kenjiArai | 4:76b3113c79ff | 1484 | //--------------------------------------------------------------------------------- |
kenjiArai | 4:76b3113c79ff | 1485 | default: |
kenjiArai | 4:76b3113c79ff | 1486 | PUTC('?'); |
kenjiArai | 4:76b3113c79ff | 1487 | put_rn(); |
kenjiArai | 4:76b3113c79ff | 1488 | break; |
kenjiArai | 4:76b3113c79ff | 1489 | } |
kenjiArai | 4:76b3113c79ff | 1490 | } |
kenjiArai | 4:76b3113c79ff | 1491 | } |
kenjiArai | 4:76b3113c79ff | 1492 | |
kenjiArai | 4:76b3113c79ff | 1493 | #endif // defined(TARGET_LPC1114) |