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 0:d327c184e8bb 1 /*
kenjiArai 1:84813f6b798e 2 * mbed Application program for the ST NUCLEO Board
kenjiArai 0:d327c184e8bb 3 *
kenjiArai 0:d327c184e8bb 4 * Copyright (c) 2010-2014 Kenji Arai / JH1PJL
kenjiArai 0:d327c184e8bb 5 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:d327c184e8bb 6 * http://mbed.org/users/kenjiArai/
kenjiArai 0:d327c184e8bb 7 * Created: July 7th, 2014
kenjiArai 2:b96103f9270e 8 * Revised: Nobember 2nd, 2014
kenjiArai 0:d327c184e8bb 9 *
kenjiArai 0:d327c184e8bb 10 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 0:d327c184e8bb 11 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 0:d327c184e8bb 12 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:d327c184e8bb 13 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 0:d327c184e8bb 14 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:d327c184e8bb 15 */
kenjiArai 0:d327c184e8bb 16
kenjiArai 0:d327c184e8bb 17 // ROM / Constant data ---------------------------------------------------------------------------
kenjiArai 0:d327c184e8bb 18 char *const rgmsg0 = " 7, 6, 5, 4, 3, 2, 1, 0";
kenjiArai 0:d327c184e8bb 19 char *const rgmsg1 = "15,14,13,12,11,10, 9, 8,";
kenjiArai 0:d327c184e8bb 20
kenjiArai 0:d327c184e8bb 21 char *const cmsg0 = "Use MSI(internal RC)";
kenjiArai 0:d327c184e8bb 22 char *const cmsg1 = "freq=";
kenjiArai 0:d327c184e8bb 23 char *const cmsg2 = "Use HSI(internal RC/High speed)";
kenjiArai 0:d327c184e8bb 24 char *const cmsg3 = "Use HSE(External Xtal)";
kenjiArai 0:d327c184e8bb 25 char *const cmsg4 = "Use PLL with";
kenjiArai 0:d327c184e8bb 26 char *const cmsg5 = "??? following infromation is not valid !";
kenjiArai 0:d327c184e8bb 27 char *const cmsg6 = "clock freq. =";
kenjiArai 0:d327c184e8bb 28 char *const cmsg7 = "No clock";
kenjiArai 2:b96103f9270e 29 char *const cmsg8 = "Use LSE(external Xtal)=32768Hz";
kenjiArai 1:84813f6b798e 30 char *const cmsg9 = "Use LSI(internal RC/Low speed), RC=";
kenjiArai 0:d327c184e8bb 31 char *const cmsg10= "Use HSE(external Xtal & prescaler)";
kenjiArai 1:84813f6b798e 32 char *const cmsg11= "Power Control";
kenjiArai 0:d327c184e8bb 33
kenjiArai 0:d327c184e8bb 34 char *const imsg2 = "-->Control Reg.";
kenjiArai 0:d327c184e8bb 35 char *const imsg3 = "-->Status Reg.";
kenjiArai 0:d327c184e8bb 36 char *const imsg4 = "-->Data Reg.";
kenjiArai 0:d327c184e8bb 37 char *const imsg5 = "-->Baud rate Reg.";
kenjiArai 0:d327c184e8bb 38 char *const imsg6 = "-->Own address Reg.";
kenjiArai 0:d327c184e8bb 39 char *const imsg7 = "-->Clock control Reg.";
kenjiArai 0:d327c184e8bb 40 char *const imsg8 = "-->TRISE Reg.";
kenjiArai 0:d327c184e8bb 41
kenjiArai 0:d327c184e8bb 42 char *const rnmsg0 = " CR1--";
kenjiArai 0:d327c184e8bb 43 char *const rnmsg1 = " CR2--";
kenjiArai 0:d327c184e8bb 44 char *const rnmsg2 = " DR---";
kenjiArai 0:d327c184e8bb 45 char *const rnmsg3 = " SR---";
kenjiArai 0:d327c184e8bb 46 char *const rnmsg4 = " BRR--";
kenjiArai 0:d327c184e8bb 47 char *const rnmsg5 = " SR1--";
kenjiArai 0:d327c184e8bb 48 char *const rnmsg6 = " SR2--";
kenjiArai 0:d327c184e8bb 49 char *const rnmsg7 = " OAR1-";
kenjiArai 0:d327c184e8bb 50 char *const rnmsg8 = " OAR2-";
kenjiArai 0:d327c184e8bb 51 char *const rnmsg9 = " CCR--";
kenjiArai 0:d327c184e8bb 52 char *const rnmsg10 = " TRISE";
kenjiArai 0:d327c184e8bb 53
kenjiArai 0:d327c184e8bb 54 char *const pnmsg0 = "Port ";
kenjiArai 0:d327c184e8bb 55 // 0x00000000 0x0000 0x00000000 0x00000000 0x0000 0x0000
kenjiArai 0:d327c184e8bb 56 char *const pnmsg1 = "Mode Out-type Out-speed Pup/dwn Input Output";
kenjiArai 0:d327c184e8bb 57 char *const pnmsga = "GPIOA";
kenjiArai 0:d327c184e8bb 58 char *const pnmsgb = "GPIOB";
kenjiArai 0:d327c184e8bb 59 char *const pnmsgc = "GPIOC";
kenjiArai 0:d327c184e8bb 60 char *const pnmsgd = "GPIOD";
kenjiArai 0:d327c184e8bb 61 char *const pnmsge = "GPIOE";
kenjiArai 0:d327c184e8bb 62 char *const pnmsgh = "GPIOH";
kenjiArai 0:d327c184e8bb 63 char *const pnmsg2 = "Select GPIO";
kenjiArai 0:d327c184e8bb 64 char *const pnmsg3 = " All";
kenjiArai 0:d327c184e8bb 65 char *const pnmsg4 = "-->Output";
kenjiArai 0:d327c184e8bb 66 char *const pnmsg5 = "-->Input";
kenjiArai 0:d327c184e8bb 67 char *const pnmsg6 = "data";
kenjiArai 1:84813f6b798e 68
kenjiArai 1:84813f6b798e 69 // Here is redefine part (ST Nucleo F401RE needs here definition)
kenjiArai 1:84813f6b798e 70 #ifndef GPIO_Mode_IN
kenjiArai 1:84813f6b798e 71 #define GPIO_Mode_IN 0
kenjiArai 1:84813f6b798e 72 #define GPIO_Mode_OUT 1
kenjiArai 1:84813f6b798e 73 #define GPIO_Mode_AF 2
kenjiArai 1:84813f6b798e 74 #define GPIO_Mode_AN 3
kenjiArai 1:84813f6b798e 75 #endif
kenjiArai 1:84813f6b798e 76
kenjiArai 1:84813f6b798e 77 #ifndef GPIO_Speed_400KHz
kenjiArai 1:84813f6b798e 78 #define GPIO_Speed_400KHz 0
kenjiArai 1:84813f6b798e 79 #define GPIO_Speed_2MHz 1
kenjiArai 1:84813f6b798e 80 #define GPIO_Speed_10MHz 2
kenjiArai 1:84813f6b798e 81 #define GPIO_Speed_40MHz 3
kenjiArai 1:84813f6b798e 82 #endif
kenjiArai 1:84813f6b798e 83
kenjiArai 1:84813f6b798e 84 #ifndef GPIO_PuPd_NOPULL
kenjiArai 1:84813f6b798e 85 #define GPIO_PuPd_NOPULL 0
kenjiArai 1:84813f6b798e 86 #define GPIO_PuPd_UP 1
kenjiArai 1:84813f6b798e 87 #define GPIO_PuPd_DOWN 2
kenjiArai 1:84813f6b798e 88 #endif