主题 : 新手请教:S3C2440每条指令的执行时间是 1/FCLK 吗? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 8807
精华: 0
发帖: 5
金钱: 50 两
威望: 25 点
综合积分: 10 分
注册时间: 2009-09-07
最后登录: 2009-11-17
楼主  发表于: 2009-09-30 09:49

 新手请教:S3C2440每条指令的执行时间是 1/FCLK 吗?

管理提醒: 本帖被 qq2440 从 mini2440资料下载中心 移动到本区(2009-11-08)
在mini2440的2440test里,
FCLK为400M
那么:
void Delay(int tt)
{
    int i;
    for( ; tt>0; tt--)
    {
        for(i=0; i<2000; i++){}
    }
}
这个延时函数的延时时间是多少?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-09-30 10:52
每条指令的执行时间是不同的,具体的时间会根据操作CPU寄存器, 访问外部存储器或者外设寄存器的不同而不同. CPU的MIPS (Million instructs per second)值会比较有参考价值
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 55698
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
综合积分: 54 分
注册时间: 2011-09-22
最后登录: 2015-05-11
2楼  发表于: 2011-11-22 10:06

 回 1楼(kasim) 的帖子

while(1)
{
GPJDAT = 0x00000000;
Delay(5);
GPJDAT = 0xffffffff;
Delay(5);

}

GPIO口是属于APB总线的外设

执行这段语句的速度是由FCLK来决定,还是PCLK???
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2011-11-22 16:36

 回 2楼(zou_sky) 的帖子

虽然GPIO是外设,但这段代码是在CPU上执行的,所以还是由FCLK决定。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 55698
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
综合积分: 54 分
注册时间: 2011-09-22
最后登录: 2015-05-11
4楼  发表于: 2011-11-22 20:34

 回 3楼(kasim) 的帖子

谢谢!

从nanflash启动时,代码将会拷至SDRAM中执行,语句执行速度是不是由HCLK决定啊?

一片SDRAM的工作频率为133MHZ,使用两片16位SDRAM组成32位的目的就是提高频率吗?

设置    
    MPLLCON = 0X0007F021  ;    //FCLK = 405 MHZ    
    CLKDIVN = 0X0000000F ;    //HCLK =FCLK/3    PCLK=PCLK/2

测量SDRAM的时钟脚的频率约为12MHZ ,是什么原因啊?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2011-11-22 22:06

 回 4楼(zou_sky) 的帖子


从nanflash启动时,代码将会拷至SDRAM中执行,语句执行速度是不是由HCLK决定啊?

虽然SDRAM的频率是HCLK决定的,但拷贝代码的过程是在CPU上执行的,所以这个过程的速度大部分还是由FCLK的频率决定的。


一片SDRAM的工作频率为133MHZ,使用两片16位SDRAM组成32位的目的就是提高频率吗?

目的是为了在同样的工作频率下提高SDRAM的带宽(x2)


设置    
    MPLLCON = 0X0007F021  ;    //FCLK = 405 MHZ    
    CLKDIVN = 0X0000000F ;    //HCLK =FCLK/3    PCLK=PCLK/2

测量SDRAM的时钟脚的频率约为12MHZ ,是什么原因啊?

看起来是MPLLCON里的配置还没有生效,硬件实际使用的是上电后默认的频率,FCLK = HCLK = PCLK = 外部晶振的输入频率。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 55698
精华: 0
发帖: 27
金钱: 135 两
威望: 27 点
综合积分: 54 分
注册时间: 2011-09-22
最后登录: 2015-05-11
6楼  发表于: 2011-11-23 09:44

 回 5楼(kasim) 的帖子

一片SDRAM的工作频率为133MHZ,使用两片16位SDRAM组成32位的目的就是提高频率吗?

目的是为了在同样的工作频率下提高SDRAM的带宽(x2)

也就是一个时钟周期内传送的数据由2字节提高为4字节了,速度增加了而SDRAM的工作频率仍为133MHZ;
启动代码完成后,进入主函数,主函数的代码执行于SDRAM上,它的执行速度也就限于133MHZ啦??

MPLLCON里的配置还没有生效

测量过有PLL和无PLL的两种情况,GPIO口的输出脉冲频率是不一样的(倍数约为135/12)