semihost server example program

Dependencies:   SWD mbed USBLocalFileSystem BaseDAP USBDAP

/media/uploads/va009039/kl46z-lpc800-360x480.jpg

LPCXpresso
LPC11U68
LPCXpresso
LPC1549
FRDM-KL46ZEA LPC4088 QSB
app-board
LPC1768
app-board
LPC810LPC1114FN28
serverserverserverserverserverclientclient
SWDIOD12D12D12p25p21p4(P0_2)p12
SWCLKD10D10D10p26p22p3(P0_3)p3
nRESET
*option
D6D6D6p34p30p1(P0_5)p23
GNDGNDGNDGNDp1p1p7p22
3.3VP3V3P3V3P3V3p44p40p6p21
flash writeSW2(P0_1)SW3(P1_9)SW1p14
joystick
center
p14
joystick
center

client example:

Import programlpc810-semihost_helloworld

semihost client example program

main.cpp

Committer:
va009039
Date:
2013-09-11
Revision:
4:5e4107edcbdb
Parent:
3:d7a7cde0bfb8
Child:
5:2774358f5e4f

File content as of revision 4:5e4107edcbdb:

// main.cpp 2013/9/11
#if 1
#include "Target2.h"
#include "Flash.h"
#include "Semihost.h"

LocalFileSystem local("local");
Serial pc(USBTX, USBRX);
Serial target_uart(p9,p10); // RXD(dp15),TXD(dp16)

void Terminal(Target2* target)
{
    target->setup();
    Semihost semihost(target, &pc);
    semihost.mount("/local");

    pc.printf("*** dumb-terminal ***\n\n");
    while(1) {
        if (target_uart.readable()) {
            pc.putc(target_uart.getc());
        }
        if(pc.readable()) {
            target_uart.putc(pc.getc());
        }
        if (semihost.poll() == Semihost::SYS_EXIT) {
            break;
        }
    }
    exit(0);
}

int main() {
    pc.baud(921600);
    pc.printf("\ndumb-terminal with semihosting\n");

    const char* filename = "/local/1114FN28.LPC";
    pc.printf("%s\n", filename);
    
    Target2* LPC1114 = new Target2(p21,p22,p17, &pc); // SWDIO(dp12),SWCLK(dp3),nReset(dp23),Stream
    LPC1114->setup();
    Flash flash(LPC1114, &pc);
    flash.init();
    if (flash.eraseAll()) {
        flash.write(filename);
        flash.verify(filename);
    }
    target_uart.baud(9600);
    LPC1114->SoftwareReset();
    Terminal(LPC1114);
}
#endif