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.h
- Revision:
- 2:32e9437348ad
- Parent:
- 0:27d35fa263b5
- Child:
- 3:d7a7cde0bfb8
--- a/Flash.h Mon Sep 02 17:33:08 2013 +0000 +++ b/Flash.h Thu Sep 05 09:34:12 2013 +0000 @@ -1,27 +1,42 @@ -// Flash.h 2013/9/1 +// Flash.h 2013/9/5 #pragma once #include "Target2.h" -#define IAP_CMD_PREPARE_SECTOR 50 -#define IAP_CMD_COPY_RAM_TO_FLASH 51 -#define IAP_CMD_ERASE_SECTOR 52 -#define IAP_CMD_BLANK_CHECK 53 -#define IAP_CMD_READ_PART_ID 54 -#define IAP_CMD_COMPARE 56 -#define IAP_CMD_REINVOKE_ISP 57 -#define IAP_READ_UID 58 - #define IAP_CCLK 12000 -#define IAP_CMD_SUCCESS 0 - class Flash { public: Flash(Target2* target, Serial* usbpc); bool write(const char* filename); bool eraseAll(); bool verify(const char* filename); - uint32_t remoteIAP(uint32_t cmd, uint32_t p0=0, uint32_t p1=0, uint32_t p2=0, uint32_t p3=0); + enum IAP_CMD { + PREPARE_SECTOR = 50, + COPY_RAM_TO_FLASH = 51, + ERASE_SECTOR = 52, + BLANK_CHECK = 53, + READ_PART_ID = 54, + READ_BOOT_CODE_VERSION = 55, + COMPARE = 56, + REINVOKE_ISP = 57, + READ_UID = 58, + }; + enum IAP_STATUS { + CMD_SUCCESS = 0, + INVALID_COMMAND =1, + SRC_ADDR_ERROR = 2, + DST_ADDR_ERROR = 3, + SRC_ADDR_NOT_MAPPED = 4, + DST_ADDR_NOT_MAPPED = 5, + COUNT_ERROR = 6, + INVALID_SECTOR = 7, + SECTOR_NOT_BLANK = 8, + SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION = 9, + COMPARE_ERROR = 10, + BUSY = 11, + ADDR_ERROR = 13, + }; + IAP_STATUS remoteIAP(IAP_CMD cmd, uint32_t p0=0, uint32_t p1=0, uint32_t p2=0, uint32_t p3=0); private: void _setup(); bool _write_to_ram(int addr, int size, uint8_t* buf);