student project

Dependencies:   mbed

Fork of myiot by joseph chen

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?

UserRevisionLine numberNew 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