91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SylixOS 基于ZYNQ的時鐘頻率修改詳解

發布時間:2020-07-19 14:44:28 來源:網絡 閱讀:1104 作者:wy_study 欄目:建站服務器
  1. 概述

    本文檔以ZYNQ7000平臺為例,詳細介紹如何去修改ZYNQ的時鐘頻率。

     

  2. 時鐘頻率修改流程

    ZYNQ7000的時鐘頻率修改流程,如圖 2.1所示。具體步驟如下:

    步驟一:解除ZYNQ7000的寄存器寫鎖定;

    步驟二:向對應寄存器寫入我們需要設置的PLL倍頻值和PLL配置參數;

    步驟三:進行PLL的旁路模式轉換和軟件重啟,使我們剛剛設置的PLL倍頻值和PLL配置參數生效;

    步驟四:重新使寄存器處于寫鎖定狀態。

    SylixOS 基于ZYNQ的時鐘頻率修改詳解

    2.1 ZYNQ7000的時鐘頻率修改流程圖

    ZYNQ7000的ARM_PLL_CLK時鐘頻率修改的具體的代碼實現如程序清單 2.1所示。不同平臺的解除和鎖定寫鎖定的方式可能不同,對于ZYNQ7000平臺,需要寫入0xDF0D到SLCR_UNLOCK寄存器解除寫鎖定,寫入0x767B到SLCR_LOCK寄存器可以使相關寄存器的寫操作無效。

    程序清單 21 ZYNQ7000的時鐘頻率修改代碼

/*********************************************************************************************************
** 函數名稱: zynqPllFeedBackSet
** 功能描述: zynq的ARM_PLL_CLK時鐘倍頻設置
** 輸 入  : NONE
** 輸 出  : NONE
** 返  回  : NONE
*********************************************************************************************************/
VOID  zynqPllFeedBackSet (VOID)
{
    UINT32  uiClkCtrl;
    UINT32  uiFeedBackDiv;
    UINT32  uiNum;

    uiNum = read32(ZYNQ_SLCR + SLCR_LOCKSTA);
    if (0 != uiNum) {
       write32(SLCR_UNLOCK_MAGIC, ZYNQ_SLCR + SLCR_UNLOCK);             /*  寫入0xDF0D,解除寫鎖定      */
       uiNum = 0;
    }

    /*
     * 設置ARM_PLL的倍頻值
     */
    uiClkCtrl      = read32(ZYNQ_SLCR + ARM_PLL_CTL);
    uiFeedBackDiv  = uiClkCtrl &~ XZYNQ_SLCR_ARM_PLL_CTRL_PLL_FDIV_MASK;
    uiFeedBackDiv |= (SLCR_FEED_BACK_DIV_VALUE << XZYNQ_SLCR_ARM_PLL_CTRL_PLL_FDIV_OFFSET);
    write32(uiFeedBackDiv, ZYNQ_SLCR + ARM_PLL_CTL);

    /*
     * 設置ARM_PLL的配置參數
     */
    uiClkCtrl      = read32(ZYNQ_SLCR + ARM_PLL_CTL);
    write32(SLCR_ARM_PLL_CFG, ZYNQ_SLCR + ARM_CLK_CFG);

    /*
     * 進行PLL的旁路模式轉換和軟件重啟,使我們剛剛設置的PLL倍頻值和PLL配置參數生效
     */
    write32(SLCR_ARM_PLL_CTRL_BYPASS_FORCE | uiClkCtrl, ZYNQ_SLCR + ARM_PLL_CTL);
    write32(SLCR_ARM_PLL_CTRL_RESET | uiClkCtrl, ZYNQ_SLCR + ARM_PLL_CTL);
    read32(ZYNQ_SLCR + PLL_STATUS);
    write32(uiClkCtrl &~ SLCR_ARM_PLL_CTRL_RESET, ZYNQ_SLCR + ARM_PLL_CTL);
    write32(uiClkCtrl &~ SLCR_ARM_PLL_CTRL_BYPASS_FORCE, ZYNQ_SLCR + ARM_PLL_CTL);

    if (0 == uiNum) {
        write32(SLCR_LOCK_MAGIC, ZYNQ_SLCR + SLCR_LOCK);                /*  寫入0x760B,打開寫鎖定      */
        uiNum = 1;
    }
}




  1. PLL的頻率設置

    ZYNQ7000的時鐘頻率設置的參數列表,如圖 3.1所示。其中PLL_FDIV為PLL的倍頻值,PLL CP、PLL RES、LOCK CNT為PLL的配置參數。

    SylixOS 基于ZYNQ的時鐘頻率修改詳解

    SylixOS 基于ZYNQ的時鐘頻率修改詳解

    3.1 PLL頻率的參數設置列表

  2. 免責聲明

    內部交流文檔,僅針對ZNYQ相關平臺,若發現相關錯誤或者建議,請及時聯系文檔創建者進行修訂和更新。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扬中市| 卓尼县| 桃园市| 长乐市| 简阳市| 广州市| 大渡口区| 鹰潭市| 都昌县| 崇明县| 西吉县| 罗田县| 南投市| 平和县| 锦屏县| 阳泉市| 建阳市| 龙陵县| 昌黎县| 宜黄县| 江永县| 长沙市| 合阳县| 镇巴县| 三都| 吉木萨尔县| 本溪市| 松阳县| 如皋市| 新竹县| 米林县| 珠海市| 砀山县| 襄垣县| 仲巴县| 神农架林区| 桂林市| 泽州县| 三穗县| 绥滨县| 仁布县|