Merge pull request #304 from dg0tm/M17_AX25_FM

Fixing Arduino UUID support
This commit is contained in:
Jonathan Naylor 2020-11-28 12:13:35 +00:00 committed by GitHub
commit 4f3aa8b7e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 7 deletions

View File

@ -299,15 +299,19 @@ uint8_t CIO::getCPU() const
// Code taken from https://github.com/emagii/at91sam3s/blob/master/examples/eefc_uniqueid/main.c // Code taken from https://github.com/emagii/at91sam3s/blob/master/examples/eefc_uniqueid/main.c
void CIO::getUDID(uint8_t* buffer) void CIO::getUDID(uint8_t* buffer)
{ {
EFC->EEFC_FCR = (0x5A << 24) | EFC_FCMD_STUI; uint32_t status;
::memcpy(buffer, (void *)IFLASH_ADDR, 16U);
EFC->EEFC_FCR = (0x5A << 24) | EFC_FCMD_SPUI;
EFC1->EEFC_FCR = (0x5A << 24) | EFC_FCMD_STUI;
do { do {
status = EFC->EEFC_FSR ; status = EFC1->EEFC_FSR;
} while ((status & EEFC_FSR_FRDY) != EEFC_FSR_FRDY); } while ( (status & EEFC_FSR_FRDY) == EEFC_FSR_FRDY );
::memcpy(buffer, (void *)IFLASH1_ADDR, 16U);
EFC1->EEFC_FCR = (0x5A << 24) | EFC_FCMD_SPUI;
do {
status = EFC1->EEFC_FSR;
} while ( (status & EEFC_FSR_FRDY) != EEFC_FSR_FRDY );
} }
#endif #endif