To: All Participants
From: Sheng-Liang Song /*
* mbed Serial PC interface
* - a simple mbed
Shell program
* UART: input and put examples
*/
#include "mbed.h"
DigitalOut
myled(LED_GREEN);
Serial pc(USBTX,USBRX);
char
command[256];
int help(char* cmd);
int md(char*
cmd);
int mm(char* cmd);
unsigned int addr, len,
val;
int main(void) {
int rc=0;
int i=0;
int run=1;
pc.baud(115200);
help(NULL);
while (run) {
wait(0.5);
pc.printf("\r\nmbed %d %% ",i);
while(rc==0) {
if (pc.readable()) {
rc= pc.scanf("%s", command);
if (!strcmp("help",
command)) {
help(command);
}
else if
(!strcmp("stop", command)) {
run
= 0;
}
else
if(!strcmp("md", command)) {
pc.scanf("%X %X", &addr, &len);
md(command);
}
else if(!strcmp("mm", command)) {
pc.scanf("%X %X", &addr,
&val);
mm(command);
}
else
{
pc.printf("\r\nrc:%d please add
handle function for cmd[%s]!", rc, command);
}
}
}
rc=0;
i++;
myled = !myled;
}
return rc;
}
int help(char*
cmd)
{
char banner[] =
"\r\n# #
##### ##### ##### # # ###### ####### ######
"
"\r\n# # # # # # # # ## ##
# # # # #"
"\r\n# # # #
# # # # # # # # # #"
"\r\n# # # ##### # # # # ######
##### # #"
"\r\n# # # #
# # # # # # # #"
"\r\n# # # # # # # # # # # #
# # #"
"\r\n ##### ##### #####
##### # # ###### ####### ###### "
;
pc.printf("\r\n%s\r\n\r\
pc.printf("\r\nbanner: 0x%08X command: 0x%08X
help: 0x:%08X main:%08X\r\n", banner, command, help, main);
return 0;
}
int md(char* cmd)
{
unsigned int* p =(unsigned int*) addr;
unsigned int
i;
pc.printf("\r\nmd addr:%08X len:%04X\r\n",
addr, len);
for(i=0; i<len; i+=4) {
pc.printf("\r\n%08X: %08X %08X %08X %08X", &p[i],
p[i+0], p[i+1], p[i+2], p[i+3]);
}
return 0;
}
int mm(char* mm)
{
unsigned int* p
=(unsigned int*) addr;
pc.printf("\r\nmd addr:%08X
val:%04X\r\n", addr, *p);
*p = val;
pc.printf("\r\nmd addr:%08X val:%04X\r\n", addr, *p);
return 0;
}
0 件のコメント:
コメントを投稿