да нет там никакой функции - три строчки на ассемблере :))
Read_CalibrationBYTES:
#warning "wrong ReadCalibrations!!" //неверно читаются калибровочные данные (какая-то фигня, м.б. с режимами NWM-контроллера??
// калибровочные байты системы тактирования считываются аппаратно сразу после сигнала RESET
// DFLLRC2M_CALB, DFLLRC2M_CALA - RC2M CLC
// OSC_RC32KCAL - RC32K CLC
// DFLLRC32M_CALB, DFLLRC32M_CALA - RC32M CLC
// остальные калибровочные константы нужно считывать и прописывать в соответствующие регистры "вручную".
;----------------------------
LDZ PROD_SIGNATURES_START+NVM_PROD_SIGNATURES_LOTNUM0_offset ;Установим в Z адрес первой считываемой константы в Signature Row
PUSH_TMP_SREG ;\ запомним статус прерываний
cli ;запретим на время выполнения LPM (на самом деле на всю процедуру) прерывания, как рекомендовано в даташите).
;---------------------------- Chip ID (Signature)
;.equ NVM_PROD_SIGNATURES_LOTNUM0_offset = 0x08 // Lot Number Byte 0, ASCII
S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row
lpm TMP,Z+
sts S_DevID0,TMP
;.equ NVM_PROD_SIGNATURES_LOTNUM1_offset = 0x09 // Lot Number Byte 1, ASCII
S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row
lpm TMP,Z+
sts S_DevID1,TMP
;.equ NVM_PROD_SIGNATURES_LOTNUM2_offset = 0x0A // Lot Number Byte 2, ASCII
S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row
lpm TMP,Z+
sts S_DevID2,TMP
;.equ NVM_PROD_SIGNATURES_LOTNUM3_offset = 0x0B // Lot Number Byte 3, ASCII
S_LDI NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc ;Активизация команды чтения Calibration Row
lpm TMP,Z+
sts S_DevID3,TMP
// ...
ну и дальше в таком духе :)
казалось бы чего там в трёх соснах плутать, однакож :((
такое впечатление, что адрес SignatureRow неверный. Вроде, как я понимаю, адрес у него действительно с нуля, но в своей выделенной области памяти, которая адресуется командой NWM контроллера (т.е. по нулевому адресу я должен вроде как читать CalibrationROW, а не флешь, как сейчас :((( но в ДШ на этот счёт ничего внятного :((