Example #1
0
 def func_app2_swRel_read(self):
     try:
         objConn = ModFmptIhuCon.ClassConnProc()
         res = {}
         res['res'] = 1
         callRes = objConn.FuncReadRegister(
             ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['bootLoad2RelId'][0],
             ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['bootLoad2RelId'][1],
             ModFmptCom.GL_FMPT_bootcfg_bootLoad2RelId)
         if (callRes['res'] < 0):
             res['string'] = 'Exec err - func_app2_swRel_read failure in low layer.'
             res['res'] = callRes['res']
         else:
             res['res'] = 1
             res['value'] = callRes['value']
             res['string'] = 'Exec Res - func_app2_swRel_read'
     except Exception as err:
         print("Exec Err: func_app2_swRel_read!" + str(err))
         return ("Exec Err: func_app2_swRel_read!" + str(err))
     finally:
         return res
Example #2
0
    def func_fac_chk_chk(self):
        objConn = ModFmptIhuCon.ClassConnProc()
        res = {}
        res['res'] = 1
        oldChecksum = 0
        newChecksum = 0
        swLen = 0

        #Firstly read old checksum
        callRes = objConn.FuncReadRegister(
            ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadCheckSum'][0],
            ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadCheckSum'][1],
            ModFmptCom.GL_FMPT_bootcfg_facLoadCheckSum)
        if (callRes['res'] < 0):
            res['string'] = 'Exec err - func_fac_chk_chk failure in low layer.'
            res['res'] = callRes['res']
            return res
        else:
            oldChecksum = callRes['value']

        #Secondly read SW len
        callRes = objConn.FuncReadRegister(
            ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadLen'][0],
            ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadLen'][1],
            ModFmptCom.GL_FMPT_bootcfg_facLoadLen)
        if (callRes['res'] < 0):
            res['string'] = 'Exec err - func_fac_chk_chk failure in low layer.'
            res['res'] = callRes['res']
            return res
        else:
            swLen = callRes['value']

        #Thirdly read sw-body and caculate current checksum
        newCheckSum = 0
        segLen = ModFmptCom.GL_FMPT_MAX_LEN_FLASH_RAW_COMMAND_DATA
        segTotal = math.ceil(swLen / segLen)
        for segIndex in range(0, segTotal):
            outputData = {}
            if (segIndex == (segTotal - 1)):
                dataLen = swLen - segIndex * segLen
            else:
                dataLen = segLen
            segBase = segIndex * segLen
            callRes = objConn.FuncReadRegister(
                ModFmptCom.GL_FMPT_FLASH_ADDRESS_FACTORY_LOAD + segBase,
                dataLen, ModFmptCom.GL_FMPT_bootcfg_appImage)
            if (callRes['res'] < 0):
                res['string'] = 'Exec err - func_fac_chk_chk failure in low layer.'
                res['res'] = callRes['res']
                return res
            else:
                outputData = callRes['value']
                for i in range(0, dataLen):
                    newChecksum = (newChecksum +
                                   int(outputData[i], base=16)) & 0xFFFF

        #Forthly write back
        try:
            if (newCheckSum != oldChecksum):
                callRes = objConn.FuncWriteRegister(
                    ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadCheckSum'][0],
                    ModFmptCom.GL_FMPT_BOOT_CFG_ENG_ADDR['facLoadCheckSum'][1],
                    newCheckSum, ModFmptCom.GL_FMPT_bootcfg_facLoadCheckSum)
                if (callRes['res'] < 0):
                    res['string'] = 'Exec err - func_fac_chk_chk failure in low layer.'
                    res['res'] = callRes['res']
                else:
                    res['res'] = 1
                    res['value'] = callRes['value']
                    res['string'] = 'Exec Res - func_fac_chk_chk, new checksum rewrite!'
            else:
                res['res'] = 1
                res['value'] = newCheckSum
                res['string'] = 'Exec Res - func_fac_chk_chk, same checksum!'
        except Exception as err:
            print("Exec Err: func_fac_chk_chk!" + str(err))
            return ("Exec Err: func_fac_chk_chk!" + str(err))
        finally:
            return res