ethernet mac address from serial number for DDKARM

Committer:
okini3939
Date:
Mon Sep 03 09:00:05 2012 +0000
Revision:
0:585e14a50a5b
1st build
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:585e14a50a5b 1 #include "mbed.h"
okini3939 0:585e14a50a5b 2
okini3939 0:585e14a50a5b 3 #define IAP_LOCATION 0x1fff1ff1
okini3939 0:585e14a50a5b 4 typedef void (*IAP_call)(unsigned int [], unsigned int []);
okini3939 0:585e14a50a5b 5
okini3939 0:585e14a50a5b 6 IAP_call iap_entry = reinterpret_cast<IAP_call>(IAP_LOCATION);
okini3939 0:585e14a50a5b 7 unsigned int IAP_command[ 5 ];
okini3939 0:585e14a50a5b 8 unsigned int IAP_result[ 5 ];
okini3939 0:585e14a50a5b 9
okini3939 0:585e14a50a5b 10 int IAP_read_serial( void ) {
okini3939 0:585e14a50a5b 11
okini3939 0:585e14a50a5b 12 IAP_command[ 0 ] = 58; // IAPCommand_Read_device_serial_number
okini3939 0:585e14a50a5b 13
okini3939 0:585e14a50a5b 14 iap_entry( IAP_command, IAP_result );
okini3939 0:585e14a50a5b 15
okini3939 0:585e14a50a5b 16 // return ( (int)IAP_result[ 0 ] );
okini3939 0:585e14a50a5b 17 return ( (int)IAP_result[ 1 ] ); // to return the number itself (this command always returns CMD_SUCCESS)
okini3939 0:585e14a50a5b 18 }
okini3939 0:585e14a50a5b 19
okini3939 0:585e14a50a5b 20 extern "C" void mbed_mac_address(char *s) {
okini3939 0:585e14a50a5b 21 char mac[6] = {0x02, 0x00, 0x00, 0x00, 0x00, 0x00};
okini3939 0:585e14a50a5b 22 int *serial = (int*)&mac[2];
okini3939 0:585e14a50a5b 23
okini3939 0:585e14a50a5b 24 *serial = IAP_read_serial();
okini3939 0:585e14a50a5b 25 memcpy(s, mac, 6);
okini3939 0:585e14a50a5b 26 }