ARM学习之时钟体系结构

出处:eefocus 发布于:2018-07-21 14:01:31

  今天在宿舍学习的是S3C2440的系统时钟体系,这部分的难点不是很多,所以相对来说轻松点,但还是把感悟记录下来吧。

  1.S3C2440的的时钟体系有哪些?它们分别有什么作用?

  答:以前一直有个小疑问,你说,这CPU运行那么快,外部的设备运行的就比较慢,那它们的时钟源怎么匹配呢?哦,今天算是差不多弄清楚了。因为它们有不同的时钟源。就S3C2440来说,

  它有三种时钟源:

  (1)FCLK:用于CPU核。

  (2)HCLK:用于AHB总线上的设备,比如CPU核存储器控制器、中断控制器、LCD控制器、DMA和USB主机模块等高性能的设备。

  (3)PCLK:用于APB总线上的设备,比如WATCHDOG、IIS、I2C、PWM定时器、MMC接口、ADC、UART、GPIO、RTC和SPI等低速设备。

  产生这些时钟源的简要流程可以这样描述:

  (1)系统刚上电的时候,FCLK即等于外部输入的时钟。一般是12M或者24M的晶振

  (2)然后用软件的方式打开MPLL(锁相环电路,用于提高系统时钟频率),把12M或者24M的时钟频率提高到100-400M(针对于S3C2440)。

  (3)再然后,通过设置一些寄存器,可以改变FCLK、HCLK、PCLk的时钟频率比例(比如说1:2:2)

  这样,其他的两个时钟源也就提高了。

  要明白的是,系统在运行的时候,是三个时钟源一起在工作,分别为不同的设备提供不同的时钟频率。当然,有些设备对这些频率还不是很“满意”、它会自己进行一些倍频或者分频的工作。

  2.本质上,定时器的工作原理是什么?

  答:定时器的工作原理简要说起来其实也很简单。就是利用系统给的时钟(一般是PCLK)进行计数,当数计满了,就会产生中断。我们想要所长时间进行中断,把这个数计算好就行了。

  其他:在敲代码的过程中,发现一个小问题。书上说:就是在CPU在转到中断服务的时候,LR保存的是前一个工作模式的的即将执行的地址,就中断而言,是当前PC+4。可是给的代码例程里计算返回地址的时候用的是SUB lr,lr,#4—–是lr-4,这不又回到需要中断的指令了。有问题。

  后来,查了一些资料才知道,可能是书上写错了,这是我摘自一篇博客的话:

  IRQ异常发生时,因为这个异常是在指令执行时候发生的,PC的值等于当前执行指令加8,然后将这个值保存在LR中。但是LR寄存器中保存的是PC+8,指向的是后面的第二条指令,如果不进行减4处理,将会漏执行一条指令,所以PC恢复的时候就需要LR减4,所以正常从子程序返回的时候会使用如:

  SUBS PC, LR,#4 返回到当前指令的下一条指令


关键词:ARM

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!