天嵌 ARM开发社区

 找回密码
 注册
查看: 2145|回复: 3

测试程序中这段程序的意思有高人可以告诉我什么意思吗

[复制链接]
magiclove444 发表于 2010-5-26 10:01:36 | 显示全部楼层 |阅读模式
static void cal_cpu_bus_clk(void)
{
        U32 val;
        U8 m, p, s;
       
        val = rMPLLCON;
        m = (val>>12)&0xff;
        p = (val>>4)&0x3f;
        s = val&3;

        //(m+8)*FIN*2 不要超出32位数!
        FCLK = ((m+8)*(FIN/100)*2)/((p+2)*(1<<s))*100;
       
        val = rCLKDIVN;
        m = (val>>1)&3;
        p = val&1;       
        val = rCAMDIVN;
        s = val>>8;
       
        switch (m) {
        case 0:
                HCLK = FCLK;
                break;
        case 1:
                HCLK = FCLK>>1;
                break;
        case 2:
                if(s&2)
                        HCLK = FCLK>>3;
                else
                        HCLK = FCLK>>2;
                break;
        case 3:
                if(s&1)
                        HCLK = FCLK/6;
                else
                        HCLK = FCLK/3;
                break;
        }
       
        if(p)
                PCLK = HCLK>>1;
        else
                PCLK = HCLK;
       
        if(s&0x10)
                cpu_freq = HCLK;
        else
                cpu_freq = FCLK;
               
        val = rUPLLCON;
        m = (val>>12)&0xff;
        p = (val>>4)&0x3f;
        s = val&3;
        UPLL = ((m+8)*FIN)/((p+2)*(1<<s));
        UCLK = (rCLKDIVN&8)?(UPLL>>1):UPLL;
}
czequn 发表于 2010-5-26 12:17:38 | 显示全部楼层
这个程序出自哪个例程的。至少你要说清楚出自哪里,有哪几句看不懂!不能这样随便一贴,谁都不清楚
 楼主| magiclove444 发表于 2010-5-26 21:19:59 | 显示全部楼层
2# czequn


也是哦,是出厂带的测试程序里面的,裸奔的程序里面几乎都有,应该是有关时钟管理方面的,但是我不理解这些语句到底是什么意思
zajiju 发表于 2010-5-27 21:19:01 | 显示全部楼层
是设置CPU的时钟吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-11-1 09:27 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表