Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
read_uid.c
00001 /** 00002 * @file read_uid.c 00003 * @brief 00004 * 00005 * DAPLink Interface Firmware 00006 * Copyright (c) 2009-2016, ARM Limited, All Rights Reserved 00007 * SPDX-License-Identifier: Apache-2.0 00008 * 00009 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00010 * not use this file except in compliance with the License. 00011 * You may obtain a copy of the License at 00012 * 00013 * http://www.apache.org/licenses/LICENSE-2.0 00014 * 00015 * Unless required by applicable law or agreed to in writing, software 00016 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00017 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00018 * See the License for the specific language governing permissions and 00019 * limitations under the License. 00020 */ 00021 00022 #include "read_uid.h" 00023 #include "cortex_m.h" 00024 00025 #define IAP_LOCATION *(volatile unsigned int *)(0x10400100) 00026 static uint32_t command[5]; 00027 static uint32_t result[5]; 00028 typedef void (*IAP)(uint32_t[], uint32_t[]); 00029 00030 void read_unique_id(uint32_t *id) 00031 { 00032 #if defined(INTERNAL_FLASH) 00033 cortex_int_state_t local_state = cortex_int_get_and_disable(); 00034 00035 // readUID IAP call 00036 IAP iap_entry = (IAP)IAP_LOCATION; 00037 command[0] = 58; 00038 iap_entry(command, result); 00039 *id = result[1] ^ result[2] ^ result[3] ^ result[4]; 00040 00041 cortex_int_restore(local_state); 00042 #else 00043 // IAP commands are only supported for parts with on-chip flash. 00044 (void)command; 00045 (void)result; 00046 *id = 0xdeadbeef; 00047 #endif 00048 }
Generated on Tue Jul 12 2022 15:37:22 by
