当前位置:  技术问答>linux和unix

[求助]S3C2410移植Linux2.6.27 系统时钟慢8倍!

    来源: 互联网  发布时间:2016-05-04

    本文导语:  我为S3C2410平台成功移植了2.6.27内核,busybox和文件系统也都做好了,可是我发现系统中所有与时间有关的操作都不正确,延时大约慢8倍,例如,运行 “sleep 1s” 命令,时间为8秒,ping命令的时间间隔也为8秒 我估计是时钟参...


我为S3C2410平台成功移植了2.6.27内核,busybox和文件系统也都做好了,可是我发现系统中所有与时间有关的操作都不正确,延时大约慢8倍,例如,运行 “sleep 1s” 命令,时间为8秒,ping命令的时间间隔也为8秒

我估计是时钟参数不正确,但不知道应该如何修改,请朋友们指正,谢谢!

有没有人遇到同样的问题啊?这个问题实在是困扰我很长时间了~~~

|
请问 楼主的问题解决了没有?我也遇到同样的问题啊。我怀疑不是Bootloader那里设置有什么错误,因为同一个Bootloader我引导以前的内核linux2.6.25没有任何问题。而且新的内核2.6.27我跑另一个at91sam9260的板子一点问题都没有,怀疑针对2410和2440的有部分时钟代码作了修改。关键还是那个时钟心跳tick()跑的很慢,定时器4每次产生的中断好像都变慢了。

|
其中pll 包含两种: MPLL 主要应用于各种设备时钟的提供,将重点讨论
UPLL 应用于USB时钟频率应用,为48M

其中MPLL的设置主要依靠使用各种锁相环和分频器来改变输入原始的频率,经过锁相环之后可以提升频率,关于频率的选择主要依靠改变CPU寄存器实现,MPLLCON通过改变其中的参数设置即可
Mpll = (m * Fin) / (p * 2s)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
MPLL就是要得到的频率,我建议用参考手册给定的频率设置即可,标准之际。
接下来该设置各种设备的频率:

我所认为的MPLL分出三种模式:FCLK、HCLK、PCLK
这三种也应用于不同的场合,FCLK应用于CPU的时钟,HCLK用于AHB bus各种外围设备,PCLK 用于APB bus各种接口设备。
其中FCLK 应用就是MPLL的频率,一样的,不用设置的。
HCLK 可以设置为FCLK或FCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位HDIVN即可,其中HDIVN为0时对应FCLK,为1时对应FCLK/2
PCLK可以设置为HCLK或HCLK/2 ,即通过设置相应得寄存器CLKDIVN中的对应位PDIVN即可,其中PDIVN为0时对应HCLK,为1时对应HCLK/2

If HDIVN=1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions.
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
If HDIVN=1 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK. This feature can be used to change the CPU frequency as a half without affecting the HCLK and PCLK.
以上这段文字也是讲关于写协处理器来控制协调内部总线和外部总线的关系,不过原文有点不太明白,又不敢把错的意思表达出来,贻害众生,只好原文照搬后谈点看法,我感觉是当HCLK中设置为FCLK/2 时必须协调与内部总线关系,至于同步非同步还要通过协处理器来管理,这样就可以很好的协调各种总线的关系了,当出现HDIVN=1和CPU总线被设为快速非同步模式时,CPU(我认为是总线频率)可以完全依靠HCLK提供频率,因此将会改变CPU频率时不会影响到其它的变化。

今天看数据手册时有发现了几点没有发现的东西,主要是关于协处理器的。
ARM920T 竟然有两种输入时钟方式,FCLK 和BCLK ,其中BCLK 主要提供给AMBA
Bus的,可也可以通过选择协处理器的R1的NF,iA位来选择是否供是时钟给核ARM920T,才明白上面所述的
 

|
你的s3c2410的板子有没有其他的系统,比如wince,如果有的话看看里面的时钟是否也会有这样的问题,
如果有的话,则应该是硬件方面的问题了,
如果没有的话,应该是你的linux内核中的RTC驱动可能不是很正确,看看这部分的代码。

|
不过,我觉得这个问题是你的bootloader 出了问题

你到bootloader源码里找找 设置时钟的地方去检查一下 ,或许你就发现问题所以啦

Good luck

    
 
 

您可能感兴趣的文章:

  • 求助!!怎么在linux交叉环境下移植SOAP协议?
  • 求助!如何在linux中移植SOAP协议?有经验的朋友提供一点建议
  • 关于SNMP代理的移植【求助】
  • 求助:如何移植DM9000网卡驱动到linux2.6内核?
  • QT程序移植后字体显示不正常【求助】
  • (求助)MARVELL交换芯片驱动移植问题
  • 求助:程序移植,让程序拷过去就可以用
  • 高分求助,嵌入式LINUX内核移植问题
  • 求助c移植到c++时要注意的问题
  • 有谁做过minigui的移植?求助。。。(用的mini2440开发板)
  • 【继续100分求助】移植miniGUI,编译zlib库出错。
  • 求助:把Linux下的程序移植到windows
  • 移植LINUX程序时遇到的问题,求助!!!(急)
  • 求助:如何将2.6.30上的jffs2/MTD相关代码移植到2.6.14上
  • 【高分求助】移植miniGUI,编译zlib库出错。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 跪地求助: 使用s3c2410自带ad运行开始不间断采集数据,我的鼠标就不能动了
  • 【新手求助】关于2.6内核下S3C2410寄存器的访问方法(串口寄存器)
  • 在S3C2410上写基于linux 的IIC程序具体怎么写啊?(求助)
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3