private int PSoC4_IsChipNotProtected() { int hr; string m_sLastError; //object flashProt, chipProt; byte[] flashProt, chipProt; byte[] data; //Chip Level Protection reliably can be read by below API (available in VIRGIN, OPEN, PROTECTED modes) //This API uses SROM call - to read current status of CPUSS_PROTECTION register (privileged) //This register contains current protection mode loaded from SFLASH during boot-up. hr = Programmer.PSoC4_ReadProtection(out flashProt, out chipProt, out m_sLastError); if (!IsSuccess(hr)) { return(E_FAIL); //consider chip as protected if any communication failure } data = chipProt as byte[]; //Check Result if ((data[0] & CHIP_PROT_PROTECTED) == CHIP_PROT_PROTECTED) { m_sLastError = "Chip is in PROTECTED mode. Any access to Flash is suppressed."; Log.PrintLog(this, m_sLastError, LogDetailLevel.LogRelevant); return(E_FAIL); } return(S_OK); }