![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
student project
Dependencies: mbed
Fork of myiot by
include/IAP/showDeviceInfo.cpp@5:f6a5fc6e1ddd, 2016-06-23 (annotated)
- Committer:
- William_HO
- Date:
- Thu Jun 23 05:17:36 2016 +0000
- Revision:
- 5:f6a5fc6e1ddd
Added an IAP example to read device ID and serial number.; For feature implement.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
William_HO | 5:f6a5fc6e1ddd | 1 | /** IAP demo : demo code for internal Flash memory access library |
William_HO | 5:f6a5fc6e1ddd | 2 | * |
William_HO | 5:f6a5fc6e1ddd | 3 | * The internal Flash memory access is described in the LPC1768 and LPC11U24 usermanual. |
William_HO | 5:f6a5fc6e1ddd | 4 | * http://www.nxp.com/documents/user_manual/UM10360.pdf |
William_HO | 5:f6a5fc6e1ddd | 5 | * http://www.nxp.com/documents/user_manual/UM10462.pdf |
William_HO | 5:f6a5fc6e1ddd | 6 | * |
William_HO | 5:f6a5fc6e1ddd | 7 | * LPC1768 -- |
William_HO | 5:f6a5fc6e1ddd | 8 | * Chapter 2: "LPC17xx Memory map" |
William_HO | 5:f6a5fc6e1ddd | 9 | * Chapter 32: "LPC17xx Flash memory interface and programming" |
William_HO | 5:f6a5fc6e1ddd | 10 | * refering Rev. 01 - 4 January 2010 |
William_HO | 5:f6a5fc6e1ddd | 11 | * |
William_HO | 5:f6a5fc6e1ddd | 12 | * LPC11U24 -- |
William_HO | 5:f6a5fc6e1ddd | 13 | * Chapter 2: "LPC11Uxx Memory mapping" |
William_HO | 5:f6a5fc6e1ddd | 14 | * Chapter 20: "LPC11Uxx Flash programming firmware" |
William_HO | 5:f6a5fc6e1ddd | 15 | * refering Rev. 03 - 16 July 2012 |
William_HO | 5:f6a5fc6e1ddd | 16 | * |
William_HO | 5:f6a5fc6e1ddd | 17 | * This main.cpp demonstrates how the flash can be erased and wrote. |
William_HO | 5:f6a5fc6e1ddd | 18 | * |
William_HO | 5:f6a5fc6e1ddd | 19 | * This program tries to... |
William_HO | 5:f6a5fc6e1ddd | 20 | * 0. read device ID and serial# |
William_HO | 5:f6a5fc6e1ddd | 21 | |
William_HO | 5:f6a5fc6e1ddd | 22 | * |
William_HO | 5:f6a5fc6e1ddd | 23 | * Released under the MIT License: http://mbed.org/license/mit |
William_HO | 5:f6a5fc6e1ddd | 24 | */ |
William_HO | 5:f6a5fc6e1ddd | 25 | |
William_HO | 5:f6a5fc6e1ddd | 26 | #include "mbed.h" |
William_HO | 5:f6a5fc6e1ddd | 27 | #include "IAP.h" |
William_HO | 5:f6a5fc6e1ddd | 28 | |
William_HO | 5:f6a5fc6e1ddd | 29 | #define MEM_SIZE 256 |
William_HO | 5:f6a5fc6e1ddd | 30 | |
William_HO | 5:f6a5fc6e1ddd | 31 | #if defined(TARGET_LPC176X) |
William_HO | 5:f6a5fc6e1ddd | 32 | #define TARGET_SECTOR 29 // use sector 29 as target sector if it is on LPC1768 |
William_HO | 5:f6a5fc6e1ddd | 33 | #elif defined(TARGET_LPC11UXX) || defined(TARGET_LPC11XX) |
William_HO | 5:f6a5fc6e1ddd | 34 | #define TARGET_SECTOR 7 // use sector 7 as target sector if it is on LPC11U24 |
William_HO | 5:f6a5fc6e1ddd | 35 | #define TARGET_EEPROM_ADDRESS 64 |
William_HO | 5:f6a5fc6e1ddd | 36 | #define TARGET_EEPROM_ADDRESS 64 |
William_HO | 5:f6a5fc6e1ddd | 37 | #elif defined(TARGET_LPC81X) || defined(TARGET_LPC82X) |
William_HO | 5:f6a5fc6e1ddd | 38 | #define TARGET_SECTOR 15 // use sector 15 as target sector if it is on LPC812 |
William_HO | 5:f6a5fc6e1ddd | 39 | #endif |
William_HO | 5:f6a5fc6e1ddd | 40 | |
William_HO | 5:f6a5fc6e1ddd | 41 | |
William_HO | 5:f6a5fc6e1ddd | 42 | |
William_HO | 5:f6a5fc6e1ddd | 43 | |
William_HO | 5:f6a5fc6e1ddd | 44 | void showDeviceInfo() |
William_HO | 5:f6a5fc6e1ddd | 45 | { |
William_HO | 5:f6a5fc6e1ddd | 46 | void memdump( char *p, int n ); |
William_HO | 5:f6a5fc6e1ddd | 47 | int isprint( int c ); |
William_HO | 5:f6a5fc6e1ddd | 48 | IAP iap; |
William_HO | 5:f6a5fc6e1ddd | 49 | int *serial_number; |
William_HO | 5:f6a5fc6e1ddd | 50 | printf( "\r\n\r\n=== IAP: Flash memory writing test ===\r\n" ); |
William_HO | 5:f6a5fc6e1ddd | 51 | printf( " device-ID = 0x%08X\r\n", iap.read_ID() ); |
William_HO | 5:f6a5fc6e1ddd | 52 | |
William_HO | 5:f6a5fc6e1ddd | 53 | serial_number = iap.read_serial(); |
William_HO | 5:f6a5fc6e1ddd | 54 | |
William_HO | 5:f6a5fc6e1ddd | 55 | printf( " serial# =" ); |
William_HO | 5:f6a5fc6e1ddd | 56 | for ( int i = 0; i < 4; i++ ) |
William_HO | 5:f6a5fc6e1ddd | 57 | printf( " %08X", *(serial_number + i) ); |
William_HO | 5:f6a5fc6e1ddd | 58 | printf( "\r\n" ); |
William_HO | 5:f6a5fc6e1ddd | 59 | printf( " CPU running %dkHz\r\n", SystemCoreClock / 1000 ); |
William_HO | 5:f6a5fc6e1ddd | 60 | printf( " user reserved flash area: start_address=0x%08X, size=%d bytes\r\n", iap.reserved_flash_area_start(), iap.reserved_flash_area_size() ); |
William_HO | 5:f6a5fc6e1ddd | 61 | printf( " read_BootVer=0x%08X\r\r\n", iap.read_BootVer() ); |
William_HO | 5:f6a5fc6e1ddd | 62 | |
William_HO | 5:f6a5fc6e1ddd | 63 | |
William_HO | 5:f6a5fc6e1ddd | 64 | } |
William_HO | 5:f6a5fc6e1ddd | 65 | |
William_HO | 5:f6a5fc6e1ddd | 66 | |
William_HO | 5:f6a5fc6e1ddd | 67 |