otpinfo.c

来自「M-System DOC(Disk on a Chip) Flash芯片的诊断工」· C语言 代码 · 共 61 行

C
61
字号
#include "otpinfo.h"
#include "unitinc.h"

#define OTP_NOT_USED -1

FLStatus DINFO_OTP(EXBYTE handle)
	{
	FLStatus Status = flOK;
	EXBYTE i;
	EXBYTE UniqueID[17];
	IOreq ioreq;

    DinfoPrint( EX_TEXT("\n OTP INFO.\n") );
  ExPrintLine( 11 );

	ioreq.irHandle = handle;
	Status = DINFO_flOTPSize(&ioreq);
	if(STATUS_OK)
	{
		/* irCount return the maximum capacity available (6K) */
        DinfoPrint( EX_TEXT("   OTP Size        :   %d Bytes\n"),ioreq.irCount);

		if (ioreq.irLength==OTP_NOT_USED)
            DinfoPrint( EX_TEXT("   OTP Used Size   :   OTP is Not Used\n"));
		else  /* This is the size of the cotp, which is saved after the lock byte in page 3e */
            DinfoPrint( EX_TEXT("   OTP Used Size   :   %d Bytes \n"),ioreq.irLength );

		if (ioreq.irFlags==LOCKED_OTP)
            DinfoPrint( EX_TEXT("   Lock Status     :   OTP is Locked\n"));
		else
            DinfoPrint( EX_TEXT("   Lock Status     :   OTP is not Locked\n"));

	}
	else if (Status==flFeatureNotSupported)
        DinfoPrint( EX_TEXT("   OTP Feature is Not Supported on this media\n"));
	else
        DinfoPrint( EX_TEXT("   Can't Access OTP area (with status %s)\n"),TranslateFLStatus(Status) );


	ioreq.irData = UniqueID;
	Status = DINFO_flGetUniqueID(&ioreq);
	UniqueID[16] = '\0';


	if(STATUS_OK)
		{
        DinfoPrint( EX_TEXT("   Unique ID       :   "));
		for(i=0;i<16;i++)
            DinfoPrint( EX_TEXT("%x "),UniqueID[i]);
        DinfoPrint( EX_TEXT("\n"));
		}
	else if (Status==flFeatureNotSupported)
        DinfoPrint( EX_TEXT("   Unique ID Feature is Not Supported on this media\n"));
	else
        DinfoPrint( EX_TEXT("   Can't Access Unique ID (with status %s)\n"),TranslateFLStatus(Status) );
	                                                   

	return Status;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?