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
kenjiArai 4:76b3113c79ff 3 *
kenjiArai 4:76b3113c79ff 4 * Copyright (c) 2010-2014 Kenji Arai / JH1PJL
kenjiArai 4:76b3113c79ff 5 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 4:76b3113c79ff 6 * http://mbed.org/users/kenjiArai/
kenjiArai 4:76b3113c79ff 7 * Created: May 15th, 2010
kenjiArai 4:76b3113c79ff 8 * Spareted: June 25th, 2014 mon() & mon_hw()
kenjiArai 4:76b3113c79ff 9 * Ported: September 22nd, 2014 from L152RE, LP1114
kenjiArai 4:76b3113c79ff 10 * changed: October 15th, 2014 mon.cpp to debug_xxx.cpp
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_LPC1768)
kenjiArai 4:76b3113c79ff 21
kenjiArai 4:76b3113c79ff 22 // Include ---------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 23 #include "mbed.h"
kenjiArai 4:76b3113c79ff 24 #include "debug_common.h"
kenjiArai 4:76b3113c79ff 25
kenjiArai 4:76b3113c79ff 26 // Object ----------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 27 DigitalOut myled1(LED1);
kenjiArai 4:76b3113c79ff 28 DigitalOut myled2(LED2);
kenjiArai 4:76b3113c79ff 29 DigitalOut myled3(LED3);
kenjiArai 4:76b3113c79ff 30 DigitalOut myled4(LED4);
kenjiArai 4:76b3113c79ff 31
kenjiArai 4:76b3113c79ff 32 // Definition ------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 33
kenjiArai 4:76b3113c79ff 34 // RAM -------------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 35
kenjiArai 4:76b3113c79ff 36 // ROM / Constant data ---------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 37
kenjiArai 4:76b3113c79ff 38 // Function prototypes ---------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 39 extern void cpu_inf (void);
kenjiArai 4:76b3113c79ff 40
kenjiArai 4:76b3113c79ff 41 //-------------------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 42 // Control Program
kenjiArai 4:76b3113c79ff 43 //-------------------------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 44 // Help Massage
kenjiArai 4:76b3113c79ff 45 void msg_hlp (void)
kenjiArai 4:76b3113c79ff 46 {
kenjiArai 4:76b3113c79ff 47 PRINTF(mon_msg);
kenjiArai 4:76b3113c79ff 48 put_rn();
kenjiArai 4:76b3113c79ff 49 PRINTF("1 - goto step1 -> no connection all pins");
kenjiArai 4:76b3113c79ff 50 put_rn();
kenjiArai 4:76b3113c79ff 51 PRINTF("2 - goto step2 -> connects pin_x and pin_y");
kenjiArai 4:76b3113c79ff 52 put_rn();
kenjiArai 4:76b3113c79ff 53 PRINTF("t - Check and set RTC");
kenjiArai 4:76b3113c79ff 54 put_rn();
kenjiArai 4:76b3113c79ff 55 PRINTF("x - Goto HW monitor");
kenjiArai 4:76b3113c79ff 56 put_rn();
kenjiArai 4:76b3113c79ff 57 PRINTF("q - Return to main");
kenjiArai 4:76b3113c79ff 58 put_rn();
kenjiArai 4:76b3113c79ff 59 }
kenjiArai 4:76b3113c79ff 60
kenjiArai 4:76b3113c79ff 61 // ---------- Program starts here! ---------------------------------------------------------------
kenjiArai 4:76b3113c79ff 62 void debug_interface(void)
kenjiArai 4:76b3113c79ff 63 {
kenjiArai 4:76b3113c79ff 64 char c;
kenjiArai 4:76b3113c79ff 65 char *ptr;
kenjiArai 4:76b3113c79ff 66 uint8_t quitflag;
kenjiArai 4:76b3113c79ff 67
kenjiArai 4:76b3113c79ff 68 BAUD(BAUD_RATE);
kenjiArai 4:76b3113c79ff 69 put_rn();
kenjiArai 4:76b3113c79ff 70 put_rn();
kenjiArai 4:76b3113c79ff 71 PRINTF("%s [Help:'?' key]", mon_msg);
kenjiArai 4:76b3113c79ff 72 put_rn();
kenjiArai 4:76b3113c79ff 73 get_freq(0);
kenjiArai 4:76b3113c79ff 74 for (;;) {
kenjiArai 4:76b3113c79ff 75 put_r();
kenjiArai 4:76b3113c79ff 76 PUTC('>');
kenjiArai 4:76b3113c79ff 77 ptr = linebuf;
kenjiArai 4:76b3113c79ff 78 get_line(ptr, sizeof(linebuf));
kenjiArai 4:76b3113c79ff 79 switch (*ptr++) {
kenjiArai 4:76b3113c79ff 80 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 81 // Debug Step1
kenjiArai 4:76b3113c79ff 82 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 83 case '1' :
kenjiArai 4:76b3113c79ff 84 put_r();
kenjiArai 4:76b3113c79ff 85 #if !defined(RTOS_H)
kenjiArai 4:76b3113c79ff 86 PRINTF("Enter Step1: no connection all pins");
kenjiArai 4:76b3113c79ff 87 put_rn();
kenjiArai 4:76b3113c79ff 88 quitflag = 0;
kenjiArai 4:76b3113c79ff 89 for (; quitflag != 0xff;) {
kenjiArai 4:76b3113c79ff 90 PRINTF("1>");
kenjiArai 4:76b3113c79ff 91 ptr = linebuf;
kenjiArai 4:76b3113c79ff 92 get_line(ptr, buf_size);
kenjiArai 4:76b3113c79ff 93 put_r();
kenjiArai 4:76b3113c79ff 94 switch(*ptr++) {
kenjiArai 4:76b3113c79ff 95 case 'l' :
kenjiArai 4:76b3113c79ff 96 myled1 = 1;
kenjiArai 4:76b3113c79ff 97 wait(0.1);
kenjiArai 4:76b3113c79ff 98 myled1 = 0;
kenjiArai 4:76b3113c79ff 99 myled2 = 1;
kenjiArai 4:76b3113c79ff 100 wait(0.1);
kenjiArai 4:76b3113c79ff 101 myled2 = 0;
kenjiArai 4:76b3113c79ff 102 myled3 = 1;
kenjiArai 4:76b3113c79ff 103 wait(0.1);
kenjiArai 4:76b3113c79ff 104 myled3 = 0;
kenjiArai 4:76b3113c79ff 105 myled4 = 1;
kenjiArai 4:76b3113c79ff 106 wait(0.1);
kenjiArai 4:76b3113c79ff 107 myled4 = 0;
kenjiArai 4:76b3113c79ff 108 myled1 = 1;
kenjiArai 4:76b3113c79ff 109 wait(0.2);
kenjiArai 4:76b3113c79ff 110 myled2 = 1;
kenjiArai 4:76b3113c79ff 111 wait(0.2);
kenjiArai 4:76b3113c79ff 112 myled3 = 1;
kenjiArai 4:76b3113c79ff 113 wait(0.2);
kenjiArai 4:76b3113c79ff 114 myled4 = 1;
kenjiArai 4:76b3113c79ff 115 PRINTF("Is LED on? -> enter y/n");
kenjiArai 4:76b3113c79ff 116 put_rn();
kenjiArai 4:76b3113c79ff 117 c = GETC();
kenjiArai 4:76b3113c79ff 118 if (c == 'y') {
kenjiArai 4:76b3113c79ff 119 PRINTF("Okay");
kenjiArai 4:76b3113c79ff 120 } else {
kenjiArai 4:76b3113c79ff 121 PRINTF("Are you sure? Check again!");
kenjiArai 4:76b3113c79ff 122 for (c = 0; c < 10; c++) {
kenjiArai 4:76b3113c79ff 123 myled1 = !myled1;
kenjiArai 4:76b3113c79ff 124 wait(0.1);
kenjiArai 4:76b3113c79ff 125 myled2 = !myled2;
kenjiArai 4:76b3113c79ff 126 wait(0.1);
kenjiArai 4:76b3113c79ff 127 myled3 = !myled3;
kenjiArai 4:76b3113c79ff 128 wait(0.1);
kenjiArai 4:76b3113c79ff 129 myled4 = !myled4;
kenjiArai 4:76b3113c79ff 130 wait(0.1);
kenjiArai 4:76b3113c79ff 131 }
kenjiArai 4:76b3113c79ff 132 myled1 = 1;
kenjiArai 4:76b3113c79ff 133 myled2 = 1;
kenjiArai 4:76b3113c79ff 134 myled3 = 1;
kenjiArai 4:76b3113c79ff 135 myled4 = 1;
kenjiArai 4:76b3113c79ff 136 put_rn();
kenjiArai 4:76b3113c79ff 137 PRINTF("Is LED on? -> enter y/n");
kenjiArai 4:76b3113c79ff 138 put_rn();
kenjiArai 4:76b3113c79ff 139 c = GETC();
kenjiArai 4:76b3113c79ff 140 if (c == 'y') {
kenjiArai 4:76b3113c79ff 141 PRINTF("Looks okay");
kenjiArai 4:76b3113c79ff 142 } else {
kenjiArai 4:76b3113c79ff 143 PRINTF("Please check LED line");
kenjiArai 4:76b3113c79ff 144 }
kenjiArai 4:76b3113c79ff 145 }
kenjiArai 4:76b3113c79ff 146 put_rn();
kenjiArai 4:76b3113c79ff 147 myled1 = 0;
kenjiArai 4:76b3113c79ff 148 myled2 = 0;
kenjiArai 4:76b3113c79ff 149 myled3 = 0;
kenjiArai 4:76b3113c79ff 150 myled4 = 0;
kenjiArai 4:76b3113c79ff 151 #elif
kenjiArai 4:76b3113c79ff 152 PRINTF("Not implement with RTOS");
kenjiArai 4:76b3113c79ff 153 #endif
kenjiArai 4:76b3113c79ff 154 break;
kenjiArai 4:76b3113c79ff 155 case 's' :
kenjiArai 4:76b3113c79ff 156 PRINTF("----- CPU CLOCK Information -----");
kenjiArai 4:76b3113c79ff 157 put_rn();
kenjiArai 4:76b3113c79ff 158 get_freq(1);
kenjiArai 4:76b3113c79ff 159 PRINTF("----- CPU TYPE Information ------");
kenjiArai 4:76b3113c79ff 160 put_rn();
kenjiArai 4:76b3113c79ff 161 cpu_inf();
kenjiArai 4:76b3113c79ff 162 break;
kenjiArai 4:76b3113c79ff 163 case '?' :
kenjiArai 4:76b3113c79ff 164 PRINTF("l - Check LED");
kenjiArai 4:76b3113c79ff 165 put_rn();
kenjiArai 4:76b3113c79ff 166 PRINTF("s - CPU system info & clock");
kenjiArai 4:76b3113c79ff 167 put_rn();
kenjiArai 4:76b3113c79ff 168 PRINTF("q - Return to all mode");
kenjiArai 4:76b3113c79ff 169 put_rn();
kenjiArai 4:76b3113c79ff 170 PRINTF("? - You know this");
kenjiArai 4:76b3113c79ff 171 put_rn();
kenjiArai 4:76b3113c79ff 172 break;
kenjiArai 4:76b3113c79ff 173 case 'q' : // quit
kenjiArai 4:76b3113c79ff 174 PRINTF("Back to all mode");
kenjiArai 4:76b3113c79ff 175 quitflag = 0xff;
kenjiArai 4:76b3113c79ff 176 break;
kenjiArai 4:76b3113c79ff 177 default:
kenjiArai 4:76b3113c79ff 178 PUTC('?');
kenjiArai 4:76b3113c79ff 179 put_rn();
kenjiArai 4:76b3113c79ff 180 }
kenjiArai 4:76b3113c79ff 181 }
kenjiArai 4:76b3113c79ff 182 put_rn();
kenjiArai 4:76b3113c79ff 183 break;
kenjiArai 4:76b3113c79ff 184 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 185 // check and set RTC
kenjiArai 4:76b3113c79ff 186 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 187 case 't' :
kenjiArai 4:76b3113c79ff 188 put_r();
kenjiArai 4:76b3113c79ff 189 chk_and_set_time(ptr);
kenjiArai 4:76b3113c79ff 190 break;
kenjiArai 4:76b3113c79ff 191 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 192 // help
kenjiArai 4:76b3113c79ff 193 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 194 case '?' :
kenjiArai 4:76b3113c79ff 195 put_r();
kenjiArai 4:76b3113c79ff 196 msg_hlp();
kenjiArai 4:76b3113c79ff 197 break;
kenjiArai 4:76b3113c79ff 198 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 199 // Go to special command
kenjiArai 4:76b3113c79ff 200 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 201 case 'x' :
kenjiArai 4:76b3113c79ff 202 mon_hw();
kenjiArai 4:76b3113c79ff 203 PRINTF("->Came back monitor\r\n");
kenjiArai 4:76b3113c79ff 204 break;
kenjiArai 4:76b3113c79ff 205 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 206 // Go back to main()
kenjiArai 4:76b3113c79ff 207 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 208 case 'q' : // Quit
kenjiArai 4:76b3113c79ff 209 PRINTF("\rReturn to main\r\n");
kenjiArai 4:76b3113c79ff 210 //PRINTF("cannot control anymore from here\r\n");
kenjiArai 4:76b3113c79ff 211 return;
kenjiArai 4:76b3113c79ff 212 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 213 // no support
kenjiArai 4:76b3113c79ff 214 //---------------------------------------------------------------------------------
kenjiArai 4:76b3113c79ff 215 default:
kenjiArai 4:76b3113c79ff 216 put_r();
kenjiArai 4:76b3113c79ff 217 PUTC('?');
kenjiArai 4:76b3113c79ff 218 put_rn();
kenjiArai 4:76b3113c79ff 219 break;
kenjiArai 4:76b3113c79ff 220 }
kenjiArai 4:76b3113c79ff 221 }
kenjiArai 4:76b3113c79ff 222 }
kenjiArai 4:76b3113c79ff 223
kenjiArai 4:76b3113c79ff 224 #endif // defined(TARGET_LPC1768)