【转】ARM 时钟的三种模式
来源:互联网 发布:手机淘宝卖家推荐 编辑:程序博客网 时间:2024/06/03 18:21
来源 http://www.52rd.com/Blog/Detail_RD.Blog_syw501_21625.html
一.时钟模式
翻译了官网上的<ARM920T(Rev1)TechnicalReferenceManual>,将其中概念部分解释下:
首先,ARM920T处理器有两个功能时钟输入,分别是BCLK和FCLK,ARM920T内部由GCLK驱动,通过设置CP15寄存器1的nF位和iA位可以选择两种功能时钟输入和GCLK连接的方式。由于ARM920T是一种静态设计,可以随时停止所有时钟而不会破坏运行状态。
ARM920T处理器有三种时钟模式是:快总线模式;同步模式;异步模式
快总线模式:
GCLK选择BCLK时钟作为驱动,忽略FCLK时钟输入,即由BCLK时钟用来控制AMBAASB接口和内部arm920t处理器内核速度。
每次重启后,ARM920T都会在快总线模式下运行,这时由BCLK时钟驱动,一般快总线模式在启动代码时执行,然后由软件配置PLL产生高频的FCLK.并等PLL稳定后切换到同步或异步模式使用FCLK作为正常操作
同步模式
GCLK由BCLK时钟或者FCLK时钟驱动,但是BCLK和FCLK需要满足三个条件,一,FCLK比BCLK频率高,二,FCLK频率是BCLK的整数倍,三,无论BCLK怎么转变,FCLK频率都要高于BCLK。
BCLK用来控制AMBAASB接口,FCLK用来控制内部ARM920T处理器内核.当需要处理外部存储器时,内核或者持续用FCLK时钟驱动或者切换到BCLK时钟驱动。这和异步模式相同.
如,写缓存时GCLK连接到FCLK,非缓冲写时使用GCLK链接到BCLK上
另外,从FCLK切换到BCLK和从BCLK切换到FCLK的时间损耗是均衡的,损耗在0到内核重新同步的时钟间的一个相位之间,也就是说,从FCLK到BCLK切换时,会有从0到BCLK的的一个相位的损耗,从BCLK到FCLK有0到FCLK间的一个损耗。
异步模式
GCLK由BCLK或者FCLK驱动.FCLK和BCLK可以完全异步执行,只有一个约束:FCLK必须有比BCLK更高的频率
BCLK用来控制AMBAASB接口,FCLK用来控制内部ARM920T处理器内核.当需要处理外部存储器时,内核或者持续用FCLK驱动或者切换到BCLK驱动。
从FCLK切换到BCLK和从BCLK切换到FCLK的时间损耗是均衡的,损耗在0到重新同步时钟的一个周期之间
总结
处理器上电或重新启动时使用快总线驱动,由BCLK提供时钟
然后设置PLL使FCLK到达目标频率并稳定后通过设置CP15寄存器1来改变时钟驱动为同步驱动或者异步驱动或者同步驱动,
如果FCLK是BCLK的整数倍,采用同步模式
如果FCLK不时BCLK的整数倍,采用异步模式
无论时哪种驱动,处理器在和低速器件连接时都会降低速度,速度在FCLK和BCLK间切换运行。
二.协处理器
ARM920T处理器可以通过外部协处理器接口支持片上协处理器的连接.并支持所有的协处理器指令.
ARM920T有两个内部协处理器,
1.CP14用作debug控制
2.CP15用作存储器系统控制和测试控制.
功能很多,主要包括控制虚拟内存,上下文切换,数据终止查询,指令终止查询,向量地址切换,读取ID,测试等功能。
CP15处理指令
MCR{cond}p15,opcode1,Rd,CRn,CRm{,opcode2}
MRC{cond}p15,opcode1,Rd,CRn,CRm{,opcode2}
协处理器CP15有15个寄存器,但是不是每个都能进行读写,并且使用不同的操作码读写出来的数据可能不同,需要对照相应的Spec来使用。
外部协处理器(略)
不能使用CP14,CP15两个协处理器
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_syw501_21625.html
- 【转】ARM 时钟的三种模式
- Arm的时钟
- avr单片机三种时钟模式
- 【转】ARM Linux系统的时钟机制【修改版】
- ARM时钟
- 修改ARM linux的系统时钟和硬件时钟
- ARM嵌入式系统软件实时时钟的设计
- ARM Linux系统的时钟机制
- ARM Linux系统的时钟机制
- ARM Linux系统的时钟机制
- ARM Linux系统的时钟机制
- ARM的中断和时钟中断
- ARM Linux系统的时钟机制
- OK6410开发板ARM基本介绍(三)时钟管理
- arm的三种中断状态
- PIC单片机的时钟模式
- ARM处理器的7种运行模式
- arm的7种执行模式
- 使用Maven2进行单元测试
- 云计算的规范
- Linux驱动程序头文件
- Flume数据推送(Push)
- Lisp编程环境的搭建
- 【转】ARM 时钟的三种模式
- ARM体系结构与汇编100问(三)
- 85后大学生2800元起家创业 "捞偏门"年赚1500万
- 十五周作业1
- ARM启动代码分析
- 额,新闻新闻
- 深入理解Java调试体系
- 微博文摘——绩效考核对企业长期发展有很大的危害,你认可这个观点不
- samba服务器的安装配置