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

Revision:
11:ad8af1047350
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/SDStorage.h	Sun Feb 23 12:06:02 2014 +0000
@@ -0,0 +1,45 @@
+#include "mbed.h"
+#include "StorageInterface.h"
+#include "SWSPI.h"
+
+class SDStorage : public StorageInterface {
+public:
+    SDStorage(PinName mosi, PinName miso, PinName sclk, PinName cs);
+
+    virtual int storage_read(uint8_t* data, uint32_t block);
+    virtual int storage_write(const uint8_t* data, uint32_t block);
+    virtual uint32_t storage_sectors();
+    virtual uint32_t storage_size();
+
+    void attachEvent(void (*ptr)()) {
+        if (ptr != NULL) {
+            onUpdate = ptr;
+        }
+    }
+
+    int storage_initialize();
+
+protected:
+    int _cmd(int cmd, int arg);
+    int _cmdx(int cmd, int arg);
+    int _cmd8();
+    int _cmd58();
+    int initialise_card();
+    int initialise_card_v1();
+    int initialise_card_v2();
+    
+    int _read(uint8_t * buffer, uint32_t length);
+    int _write(const uint8_t *buffer, uint32_t length);
+    uint64_t _sd_sectors();
+    uint64_t _sectors;
+    SWSPI _spi;
+    DigitalOut _cs;
+    int cdv;
+
+    void (*onUpdate)();
+    void update() {
+        if (onUpdate) {
+            (*onUpdate)();
+        }
+    }
+};