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

Committer:
va009039
Date:
Tue Feb 18 06:54:42 2014 +0000
Revision:
7:acfd2dbff157
Parent:
5:2774358f5e4f
run on FRDM-KL46Z.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 7:acfd2dbff157 1 // main.cpp 2013/9/23
va009039 7:acfd2dbff157 2 #if defined(TARGET_LPC1768)
va009039 0:27d35fa263b5 3 #include "Target2.h"
va009039 0:27d35fa263b5 4 #include "Flash.h"
va009039 1:eb30547ba84d 5 #include "Semihost.h"
va009039 0:27d35fa263b5 6
va009039 0:27d35fa263b5 7 LocalFileSystem local("local");
va009039 0:27d35fa263b5 8 Serial pc(USBTX, USBRX);
va009039 7:acfd2dbff157 9 SWD swd(p21,p22,p17); // SWDIO(dp12),SWCLK(dp3),nReset(dp23)
va009039 0:27d35fa263b5 10 Serial target_uart(p9,p10); // RXD(dp15),TXD(dp16)
va009039 0:27d35fa263b5 11
va009039 0:27d35fa263b5 12 void Terminal(Target2* target)
va009039 0:27d35fa263b5 13 {
va009039 0:27d35fa263b5 14 target->setup();
va009039 1:eb30547ba84d 15 Semihost semihost(target, &pc);
va009039 1:eb30547ba84d 16 semihost.mount("/local");
va009039 1:eb30547ba84d 17
va009039 0:27d35fa263b5 18 pc.printf("*** dumb-terminal ***\n\n");
va009039 0:27d35fa263b5 19 while(1) {
va009039 0:27d35fa263b5 20 if (target_uart.readable()) {
va009039 0:27d35fa263b5 21 pc.putc(target_uart.getc());
va009039 0:27d35fa263b5 22 }
va009039 0:27d35fa263b5 23 if(pc.readable()) {
va009039 2:32e9437348ad 24 target_uart.putc(pc.getc());
va009039 0:27d35fa263b5 25 }
va009039 2:32e9437348ad 26 if (semihost.poll() == Semihost::SYS_EXIT) {
va009039 2:32e9437348ad 27 break;
va009039 2:32e9437348ad 28 }
va009039 0:27d35fa263b5 29 }
va009039 2:32e9437348ad 30 exit(0);
va009039 0:27d35fa263b5 31 }
va009039 0:27d35fa263b5 32
va009039 0:27d35fa263b5 33 int main() {
va009039 0:27d35fa263b5 34 pc.baud(921600);
va009039 3:d7a7cde0bfb8 35 pc.printf("\ndumb-terminal with semihosting\n");
va009039 0:27d35fa263b5 36
va009039 0:27d35fa263b5 37 const char* filename = "/local/1114FN28.LPC";
va009039 0:27d35fa263b5 38 pc.printf("%s\n", filename);
va009039 0:27d35fa263b5 39
va009039 7:acfd2dbff157 40 Target2* LPC1114 = new Target2(&swd);
va009039 0:27d35fa263b5 41 LPC1114->setup();
va009039 0:27d35fa263b5 42 Flash flash(LPC1114, &pc);
va009039 3:d7a7cde0bfb8 43 flash.init();
va009039 2:32e9437348ad 44 if (flash.eraseAll()) {
va009039 2:32e9437348ad 45 flash.write(filename);
va009039 4:5e4107edcbdb 46 flash.verify(filename);
va009039 2:32e9437348ad 47 }
va009039 0:27d35fa263b5 48 target_uart.baud(9600);
va009039 3:d7a7cde0bfb8 49 LPC1114->SoftwareReset();
va009039 0:27d35fa263b5 50 Terminal(LPC1114);
va009039 0:27d35fa263b5 51 }
va009039 0:27d35fa263b5 52 #endif