![]() |
LPCOpen Platform
v1.03
LPCOpen Platform for NXP LPC Microcontrollers
|
Example description
This programming algorithm allows upload and download of data to and from the internal FLASH storage on LPC18xx and LPC43xx devices.
More information on using the DFU Utility can be found at the following links:
DFU Utility information
DFU Utility production programming API
Special connection requirements
There are no special connection requirements for this example.
Build procedures:
LPC18xx/43xx example quickstart for Keil uVision4
Supported boards and board setup:
Although this example includes a build target for only the Keil 1857 board, it should run on all 18xx or 43xx boards.
Keil 1857 evaluation boards
Submitting LPCOpen issues:
Community support for LPCOpen
Data Structures | |
| struct | SECTOR_INFO_T |
Typedefs | |
| typedef void(* | IAP )(uint32_t *, uint32_t *) |
Functions | |
| int32_t | progalgo_iflash_erase (uint32_t start, uint32_t size) |
| int32_t | progalgo_iflash_erase_all (void) |
| int32_t | progalgo_iflash_write (void *buff, uint32_t start, uint32_t size) |
| int32_t | progalgo_iflash_read (void *buff, uint32_t start, uint32_t size) |
| static int | progalgo_iflash_findbank (uint32_t addr) |
| static int | progalgo_iflash_progaddrvalid (uint32_t addr, uint32_t size) |
| static int | progalgo_iflash_find_sectorrange (uint32_t addr, uint32_t size, int *bank, uint32_t *secstart, uint32_t *secend, int *aligned) |
| static int | progalgo_iflash_prepwrite (uint32_t bank, uint32_t secstart, uint32_t secend) |
| static int | progalgo_iflash_erasesectors (uint32_t bank, uint32_t secstart, uint32_t secend) |
| static uint32_t | progalgo_iflash_getsize (int bank, uint32_t part_id2) |
| DFUPROG_REGION_T * | algo_flash_init (void) |
| Initializes device programming capability. | |
Variables | |
| static const SECTOR_INFO_T | sectorinfo [] |
| static IAP | iap_entry |
| static uint32_t | command [6] |
| static uint32_t | result [5] |
| static const PROGALGOS_T | palgos |
| static DFUPROG_REGZONE_T | pregions [PROGRAM_REGIONS] |
| static DFUPROG_REGION_T | dfuregion |
| static char | tempSTR [128] |
| #define CPUCLOCKFRQINKHZ 90000 |
Definition at line 113 of file dfuutil_programming_iflash_algorithm.c.
| #define DFU_BUFF_PROG_SIZE PAGE_SIZE |
Definition at line 158 of file dfuutil_programming_iflash_algorithm.c.
| #define FLASHMAXSIZE (512 * 1024) |
Definition at line 109 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_ADDR_ERROR 0x0D |
Definition at line 97 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_ADDR_NOT_MAPPED 0x0E |
Definition at line 98 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_BLANK_CHECK_SECS 53 |
Definition at line 74 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_BUSY 0x0B |
Definition at line 95 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_CMD_LOCKED 0x0F |
Definition at line 99 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_COMMAND_SUCCESS 0x00 |
Definition at line 84 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_COMPARE 56 |
Definition at line 78 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_COMPARE_ERROR 0x0A |
Definition at line 94 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_COUNT_ERROR 0x06 |
Definition at line 90 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_CRP_ENABLED 0x13 |
Definition at line 103 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_DST_ADDR_ERROR 0x03 |
Definition at line 87 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_DST_ADDR_NOT_MAPPED 0x05 |
Definition at line 89 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_ERASE_PAGE 59 |
Definition at line 80 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_ERASE_SECS 52 |
Definition at line 73 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_ERROR_SETTING_ACTIVE_PART 0x16 |
Definition at line 106 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INIT 49 |
Definition at line 70 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_BAUD_RATE 0x11 |
Definition at line 101 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_CODE 0x10 |
Definition at line 100 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_COMMAND 0x01 |
Definition at line 85 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_FLASH_UNIT 0x14 |
Definition at line 104 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_SECTOR 0x - 7 |
Definition at line 91 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_INVALID_STOP_BIT 0x12 |
Definition at line 102 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_LOCATION *((uint32_t *) 0x10400100); |
Definition at line 144 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_PARAM_ERROR 0x0C |
Definition at line 96 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_PREP_SECS 50 |
Definition at line 71 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_RAM_TO_FLASH 51 |
Definition at line 72 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_READ_BOOT_CODE_VER 55 |
Definition at line 76 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_READ_DEV_SERIAL_NUM 58 |
Definition at line 77 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_READ_PART_ID 54 |
Definition at line 75 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_REINVOKE_ISP 57 |
Definition at line 79 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_SECTOR_NOT_BLANK 0x08 |
Definition at line 92 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_SECTOR_NOT_PREPARED 0x09 |
Definition at line 93 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_SET_ACTIVE_FLASH_BANK 60 |
Definition at line 81 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_SRC_ADDR_ERROR 0x02 |
Definition at line 86 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_SRC_ADDR_NOT_MAPPED 0x04 |
Definition at line 88 of file dfuutil_programming_iflash_algorithm.c.
| #define IAP_USER_CODE_CHECKSUM 0x15 |
Definition at line 105 of file dfuutil_programming_iflash_algorithm.c.
| #define PAGE_SIZE 512 |
Definition at line 140 of file dfuutil_programming_iflash_algorithm.c.
| #define PROGRAM_REGIONS 2 |
Definition at line 169 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 143 of file dfuutil_programming_iflash_algorithm.c.
| DFUPROG_REGION_T* algo_flash_init | ( | void | ) |
Initializes device programming capability.
Definition at line 588 of file dfuutil_programming_iflash_algorithm.c.
| void dfuUtilSystemInit | ( | void | ) |
Very minor system initialization.
Definition at line 60 of file dfuutil_programming_iflash_systeminit.c.
Definition at line 383 of file dfuutil_programming_iflash_algorithm.c.
| static int32_t progalgo_iflash_erase_all | ( | void | ) |
Definition at line 440 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 363 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 254 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 201 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 560 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 344 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 220 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 548 of file dfuutil_programming_iflash_algorithm.c.
Definition at line 466 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 146 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 180 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 145 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 161 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 173 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 146 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 120 of file dfuutil_programming_iflash_algorithm.c.
|
static |
Definition at line 190 of file dfuutil_programming_iflash_algorithm.c.