zoukankan      html  css  js  c++  java
  • TC275的overlay的使用示例-用于XCP标定

    void Ovc_SetBlock(uint8 whichBlock, uint8 redirectionSelect, uint32 ramBaseAddr,uint32 flashBaseAddr, OVC_overlayMemSize size)
    {
        //    Ifx_CPU * core;
        Ifx_OVC_BLK_OTAR otar;    /* Target Base Address(Flash) */
        Ifx_OVC_BLK_OMASK omask; /* Overlay Block Size */
        Ifx_OVC_BLK_RABR rabr;  /* Redirection Base Address(also called Overlay Memory, in RAM) */
    
        otar.U = 0u;
        //    otar.B.TBASE = flashBaseAddr; //20200330. maybe no need to do bit shift.
        otar.B.TBASE = flashBaseAddr >>5; //20200330. seems must do bit shift.
    
        omask.U = 0u;
        omask.B.OMASK = size;
    
        rabr.U = 0;
        rabr.B.OMEM = redirectionSelect;    /*Select redirect memory*/
        rabr.B.OBASE = ramBaseAddr>>5;    /*Select overlay block base address*/
    
        MODULE_OVC0.BLK[whichBlock].RABR.U = rabr.U;
        MODULE_OVC0.BLK[whichBlock].OTAR.U = otar.U;
        MODULE_OVC0.BLK[whichBlock].OMASK.U = omask.U;
    }
    void Ovc_EnableCore(uint8 core_id)
    {
        Ifx_SCU_OVCCON ovccon;
        Ifx_SCU_OVCENABLE ovcenable;
        uint16 password = IfxScuWdt_getCpuWatchdogPassword();
        /*Disable overlay in SCU*/
        IfxScuWdt_clearSafetyEndinit(password);
        ovccon.U    = MODULE_SCU.OVCCON.U;
        ovcenable.U = MODULE_SCU.OVCENABLE.U;
        ovccon.B.DCINVAL       = 1;
    
        //add switch case if needed.
        ovcenable.B.OVEN0 = 1;
        ovccon.B.CSEL0 = 1;
    
        //Ifx_Ssw_DSYNC();
        MODULE_SCU.OVCCON.U    = ovccon.U;
        MODULE_SCU.OVCENABLE.U = ovcenable.U;
        IfxScuWdt_setSafetyEndinit(password);
    }
        Ovc_EnableCore(0u);
        Ovc_DisableBlock(0u, 0u);
    //    Ovc_SetBlockTestCase0(Redirect_To_LMU, LMURAM_OVERLAY_START_ADDR, CAL_PFLS0_NC_START_ADDR);
        Ovc_SetBlockTestCase0(Redirect_To_LMU, CAL_LMURAM_NC_START_ADDR, CAL_PFLS0_NC_START_ADDR, Ovc_OverlayMemSize_16KB);
        Ovc_EnableBlock(0u);
  • 相关阅读:
    Todo
    我的类
    Python socket编程之七:多窗口的应用
    iOS与PHP/Android AES128 ECB NoPadding加密
    JSONModel简便应用
    iOS开发系列--UITableView全面解析
    常用方法
    OC和C++混编
    数据层
    block
  • 原文地址:https://www.cnblogs.com/praiseslow/p/12738090.html
Copyright © 2011-2022 走看看