Debug tools / show registers, memory and system clock data

Dependencies:   mbed CheckRTC

Target mbed board

LPC1768
LPC1114FN28
ST Nucleo L152RE
ST NUcleo F401RE
ST Nucleo F411RE

Command structure

Top

1 - goto step1 -> no connection all pins
2 - goto step2 -> connects pin_x and pin_y (not impliment yet)
t - Check and set RTC
x - Goto HW monitor
q - Return to main

>1

l - Check LED
b - Check button
s - CPU system info & clock
o - CPU clock output (Bug fix, port_mco1_mco2_set() function. Thanks Topi Makinen on April 25th, 2015)

>x(Hardware level monitor)

m - Entry Memory Mode
m>? -> Aditinal functions can see by ?
r - Entry Register Mode
r>? -> Aditinal functions can see by ?
s - System Clock -> sf, System / CPU information -> sc
q - Quit (back to called routine)
p - Entry Port Mode
p>? -> Aditinal functions can see by ?

Usage

Please modify "mon_hw_config.h" file for your purpose.
Especially LPC114FN28 has small memory, you cannot run your own program together with this program.
You don't need any additional HW. Just connect with PC via terminal software.

CAUTION

Due to several CPU's and short development time, I cannot grantee the quality level and several functions are not available yet.
If you found the bug, please let me know. Thanks in advance.

Committer:
kenjiArai
Date:
Sun Apr 26 09:31:58 2015 +0000
Revision:
4:02980a730cfb
Parent:
2:b96103f9270e
Set output port PA8 & PC9 high speed mode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 2:b96103f9270e 1 /*
kenjiArai 2:b96103f9270e 2 * mbed Headder file for Hardware Monitor
kenjiArai 2:b96103f9270e 3 *
kenjiArai 2:b96103f9270e 4 * Copyright (c) 2014 Kenji Arai / JH1PJL
kenjiArai 2:b96103f9270e 5 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 2:b96103f9270e 6 * http://mbed.org/users/kenjiArai/
kenjiArai 2:b96103f9270e 7 * Created: June 1st, 2014
kenjiArai 2:b96103f9270e 8 * Revised: Nobember 2nd, 2014
kenjiArai 2:b96103f9270e 9 *
kenjiArai 2:b96103f9270e 10 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 2:b96103f9270e 11 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 2:b96103f9270e 12 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 2:b96103f9270e 13 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 2:b96103f9270e 14 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 2:b96103f9270e 15 */
kenjiArai 2:b96103f9270e 16
kenjiArai 2:b96103f9270e 17 // Object ----------------------------------------------------------------------------------------
kenjiArai 2:b96103f9270e 18 extern Serial pch(USBTX, USBRX);
kenjiArai 2:b96103f9270e 19
kenjiArai 2:b96103f9270e 20 // Definition ------------------------------------------------------------------------------------
kenjiArai 2:b96103f9270e 21 #define BAUD_RATE 9600
kenjiArai 2:b96103f9270e 22
kenjiArai 2:b96103f9270e 23 #define BAUD(x) pch.baud(x)
kenjiArai 2:b96103f9270e 24 #define GETC(x) pch.getc(x)
kenjiArai 2:b96103f9270e 25 #define PUTC(x) pch.putc(x)
kenjiArai 2:b96103f9270e 26 #define PRINTF(...) pch.printf(__VA_ARGS__)
kenjiArai 2:b96103f9270e 27 #define READABLE(x) pch.readable(x)
kenjiArai 2:b96103f9270e 28
kenjiArai 2:b96103f9270e 29 // Range check status
kenjiArai 2:b96103f9270e 30 #define ERR_NOTHING 0
kenjiArai 2:b96103f9270e 31 #define ERR_MODIFY_SIZ 1
kenjiArai 2:b96103f9270e 32 #define ERR_OUT_OF_RANGE 2
kenjiArai 2:b96103f9270e 33
kenjiArai 2:b96103f9270e 34 // Reg. Size
kenjiArai 2:b96103f9270e 35 #define SIZE8 8
kenjiArai 2:b96103f9270e 36 #define SIZE16 16
kenjiArai 2:b96103f9270e 37 #define SIZE32 32
kenjiArai 2:b96103f9270e 38 #define SIZE_FULL 32
kenjiArai 2:b96103f9270e 39 #define SIZE_X 32
kenjiArai 2:b96103f9270e 40
kenjiArai 2:b96103f9270e 41 // RAM -------------------------------------------------------------------------------------------
kenjiArai 2:b96103f9270e 42 extern char linebuf[];
kenjiArai 2:b96103f9270e 43 extern int buf_size;
kenjiArai 2:b96103f9270e 44
kenjiArai 2:b96103f9270e 45 #if USE_MEM
kenjiArai 2:b96103f9270e 46 typedef struct {
kenjiArai 2:b96103f9270e 47 int32_t mstr;
kenjiArai 2:b96103f9270e 48 int32_t msiz;
kenjiArai 2:b96103f9270e 49 int32_t mtmp;
kenjiArai 2:b96103f9270e 50 int32_t mold;
kenjiArai 2:b96103f9270e 51 uint8_t mflg;
kenjiArai 2:b96103f9270e 52 uint8_t mbhw;
kenjiArai 2:b96103f9270e 53 } MEMO;
kenjiArai 2:b96103f9270e 54 static MEMO mem;
kenjiArai 2:b96103f9270e 55 #endif
kenjiArai 2:b96103f9270e 56
kenjiArai 2:b96103f9270e 57 // Function prototypes ---------------------------------------------------------------------------
kenjiArai 2:b96103f9270e 58 extern void put_rn ( void );
kenjiArai 2:b96103f9270e 59 extern void put_r ( void );
kenjiArai 2:b96103f9270e 60 extern void put_lin ( void );
kenjiArai 2:b96103f9270e 61 extern void put_spc( uint8_t n);
kenjiArai 2:b96103f9270e 62 extern void get_line (char *buff, int len);
kenjiArai 2:b96103f9270e 63 extern int xatoi (char **str, int32_t *res);