Monitor program only for mbed GR-PEACH

Dependencies:  

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?

UserRevisionLine numberNew 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)