28.8.1.2.2 Code
Copy-paste the following setup code to your user application:
Add to user application initialization (typically the start of main()):voidconfigure_eeprom(void){/* Setup EEPROM emulator service */enumstatus_code error_code = eeprom_emulator_init();if(error_code == STATUS_ERR_NO_MEMORY) {while(true) {/* No EEPROM section has been set in the device's fuses */}}elseif(error_code != STATUS_OK) {/* Erase the emulated EEPROM memory (assume it is unformatted or* irrecoverably corrupt) */eeprom_emulator_erase_memory();eeprom_emulator_init();}}#if (SAMD || SAMR21)voidSYSCTRL_Handler(void){if(SYSCTRL->INTFLAG.reg & SYSCTRL_INTFLAG_BOD33DET) {SYSCTRL->INTFLAG.reg |= SYSCTRL_INTFLAG_BOD33DET;eeprom_emulator_commit_page_buffer();}}#endifstaticvoidconfigure_bod(void){#if (SAMD || SAMR21)structbod_config config_bod33;bod_get_config_defaults(&config_bod33);config_bod33.action = BOD_ACTION_INTERRUPT;/* BOD33 threshold level is about 3.2V */config_bod33.level = 48;bod_set_config(BOD_BOD33, &config_bod33);bod_enable(BOD_BOD33);SYSCTRL->INTENSET.reg |= SYSCTRL_INTENCLR_BOD33DET;system_interrupt_enable(SYSTEM_INTERRUPT_MODULE_SYSCTRL);#endif}
configure_eeprom();
