semihost server example program
Dependencies: SWD mbed USBLocalFileSystem BaseDAP USBDAP
LPCXpresso LPC11U68 | LPCXpresso LPC1549 | FRDM-KL46Z | EA LPC4088 QSB app-board | LPC1768 app-board | LPC810 | LPC1114FN28 | |
---|---|---|---|---|---|---|---|
server | server | server | server | server | client | client | |
SWDIO | D12 | D12 | D12 | p25 | p21 | p4(P0_2) | p12 |
SWCLK | D10 | D10 | D10 | p26 | p22 | p3(P0_3) | p3 |
nRESET *option | D6 | D6 | D6 | p34 | p30 | p1(P0_5) | p23 |
GND | GND | GND | GND | p1 | p1 | p7 | p22 |
3.3V | P3V3 | P3V3 | P3V3 | p44 | p40 | p6 | p21 |
flash write | SW2(P0_1) | SW3(P1_9) | SW1 | p14 joystick center | p14 joystick center |
client example:
Import programlpc810-semihost_helloworld
semihost client example program
Diff: Flash.cpp
- Revision:
- 5:2774358f5e4f
- Parent:
- 4:5e4107edcbdb
- Child:
- 6:5da6ad51a18f
--- a/Flash.cpp Wed Sep 11 14:00:40 2013 +0000 +++ b/Flash.cpp Sat Sep 14 12:55:29 2013 +0000 @@ -121,11 +121,16 @@ return addr / 4096; } +static uint32_t LD32(uint8_t* buf) +{ + return buf[0] | buf[1]<<8 | buf[2]<<16 | buf[3]<<24; +} + bool Flash::_patch(uint8_t* buf, int size, int addr) { const int crp_start = 0x2fc; // Code Read Protection location if (crp_start >= addr && crp_start < addr+size) { - uint32_t pat = *reinterpret_cast<uint32_t*>(crp_start-addr+buf); + uint32_t pat = LD32(crp_start-addr+buf); if (pat != 0xffffffff) { // NO_CRP ? _pc->printf("\nCAUTION: CRP Pattern is not NO_CRP; %08x\n", pat); return false;