本章描述了Exynos 4412 SCP的时钟管理单元(CMUs)。在Exynos 4412 SCP中,CMUs控制相位锁相环(PLLs),并为CPU、总线和单个ip的功能时钟生成系统时钟。它们还与电源管理单元(PMU)通信,以便在进入某些低功耗模式之前停止时钟,从而通过最小化时钟切换来降低功耗。

7.1时钟域

在Exynos 4412 SCP中,它将函数块彼此异步计时,以提供更广泛的操作频率选择。它还简化了物理实现。

  • CPU块由Cortex-A9 MPCore处理器、L2缓存控制器和CoreSight组成。它的工作电压为0.875 V-1.30 V。Cortex-A9 MPCore的工作频率为200MHz - 1.4 GHz,核心视程时钟最高可达200MHz。CPU块中的CMU (CMU CPU)为CPU块中的ip生成所有必要的时钟。它还为Cortex-A9 MPCore产生一定的控制信号。
  • DMC块由DRAM内存控制器(DMC)、安全子系统(SSS)和通用中断控制器(GIC)组成。DMC块中的CMU (CMU_DMC)生成400mhz DRAM时钟,200mhz与DRAM时钟同步的AXI总线时钟,100MHz时钟用于寄存器访问。它还为加速器相干端口(ACP)总线生成200mhz时钟,用于内存相干性检查并连接CPU和SSS总线主机。
  • 左总线和右总线块包含全局数据总线,它们的时钟频率为200mhz。全局数据总线在DRAM和各个子块之间传输数据。它还包含以100兆赫兹为时钟的全局外围总线。您可以使用100mhz时钟进行寄存器访问。
  • CMU TOP为所有剩余的功能块生成时钟,包括G3D、MFC、LCDO、ISP、CAM TV。FSYS, MFC, GPS, MAUDIO, danger和PERIR。它生成运行在400 / 200 / 160/ 133/ 100 MHz的总线时钟。它还生成各种特殊的时钟来操作Exynos 4412 SCP中的IPs
  • 另外,异步总线桥接被插入到两个不同的功能块之间。

做串口的时候所用时钟,时钟源还为外围总线提供时钟源

硬件来说,一共有三种:锁相环、选择器、分频器。

PLL结尾的:锁相 环,用于倍频

DIV:分频器

例如:

核心板中可以找到相应引脚:

APLL_CON0中:

MDIV [25:16] RWX PLL M Divide Value 0xC8
PDIV [13:8] RWX PLL P Divide Value 0x6
SDIV [2:0] RWX PLL S Divide Value 0x1

锁相环与时钟管理相关配置表:

以串口时钟为例分析:

回到第七章去找

我想从后往前找,看它的分频因子是多少,

试着搜索 divuart0后:

开始验证:

打印:

结果:

低四位 = 7

MOUTUART0 / (UART0_RATIO + 1) = MOUTUART0  / (7 + 1)

MOUTUART0取决于 八位选择器的输出 ,存在于与这个寄存器相关的某一个区域:搜索MUXUART0

结果:

我们打印这个寄存器的值:

结果:

选择的时钟源即为:SCLKMPULL_USER_T

打印第四位,查看结果:

结果:

下面打印一下

结果:

找完一圈,找到了

即,800 / 8 = 100 MHz

至此,分析出了UART的时钟源为100MHz

注意:以上是在bootloader层面去验证,如果从事bootloader的设计的话,要自己设置这些寄存器得到想要的时钟频率。

exynos4412—CMU裸板复习的更多相关文章

  1. exynos4412—UART裸板复习

    我们通过RS232来做实验. 通过电平转换芯片, 连接至核心板: 即:GPA0_0  GPA0_1     配置引脚为串口专用模式: 然后看 ULCONn  [31:0]       0x3 设置串口 ...

  2. S5PV210裸板驱动:启动

    以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法 ...

  3. 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结

    1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...

  4. 裸板驱动总结(makefile+lds链接脚本+裸板调试)

    在裸板2440中,当我们使用nand启动时,2440会自动将前4k字节复制到内部sram中,如下图所示: 然而此时的SDRAM.nandflash的控制时序等都还没初始化,所以我们就只能使用前0~40 ...

  5. uboot-tiny4412启动流程(下)----如何将自己的裸板测试程序加入uboot中启动测试

    今天在工作上搞了一天高通的芯片uboot程序,目的是希望将一个裸板的程序移植到uboot中,并且开机让它运行.这个芯片是NXP4330,目前是高通的一个芯片,基于ARM-contexA9架构,那么就跟 ...

  6. 关于在arm裸板编程时使用printf问题的解决方法

    在ARM裸板驱动编程中,是不允许程序直接调用C库程序的.为什么呢?因为此时kernel还没有被加载,所以在封装在kernel层的C库的API是用不了的,那怎么办? 在开发过程中,printf的功能我不 ...

  7. 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远 ...

  8. [转载非常好的文章]JLink+GDBServer调试S3C6410裸板的初始化代码 For OK6410开发板

    要调试裸板,有两种初始化方法,一个是用烧好的uboot初始化,再有就是直接用JLink+GDBServer初始化.代码参考了网上的资料,根据手头的OK6410开发板做了修改.整体代码如下: # Con ...

  9. Mini2440 通过 SPI 操作 OLED (裸板下使用 SPI 控制器)

    在裸板下使用 SPI 的话,有两种方法可选: 使用 IO 口模拟 SPI 进行操作 使用 SPI 控制器进行操作 这里我们选用控制器的方式,简单方便. 初始化 SPI static void SPIC ...

随机推荐

  1. 如此繁荣的移动webapp开发市场:总结当下的一些移动web开发套件

    写在前面: 因为移动市场的盛行带动了移动社交.移动购物.手游.智能化硬件等多个新兴领域.智能终端硬件水平越来越高,运行其上的web浏览器能力也越来越强,加上HTML5\JS\CSS的蓬勃发展,Web已 ...

  2. 使用TFHpple解析html

    使用TFHpple解析html https://github.com/topfunky/hpple 前期准备工作 引入静态库文件 添加库文件的 header search paths(注意,必须选中 ...

  3. 修改UIView的backedlayer为CAShapeLayer

    修改UIView的backedlayer为CAShapeLayer 什么叫backedlayer呢?backedlayer指的是一个View在创建好的时候就已经帮你创建好了一个与View大小一致的CA ...

  4. Python实例---游戏人生[类的学习]

    # -*- coding:utf-8 -*- # ##################### 定义实现功能的类 ##################### class Person: def __in ...

  5. August 30th 2017 Week 35th Wednesday

    A lion does not concern himself with the opinion of sheep. 狮子可不会在意绵羊是怎么想的. As a sheep, you must run ...

  6. stderr: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

    错误提示: (1). stderr: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer direc ...

  7. scala当中的文件操作和网络请求

    1.读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: Buffere ...

  8. pythone 请求响应字典

    _RESPONSE_STATUSES = { # Informational 100: 'Continue', 101: 'Switching Protocols', 102: 'Processing ...

  9. UVA529 Addition Chains

    嘟嘟嘟 还是\(IDA*\). 这道题是\(ZOJ\)的加强版,\(n\)从\(100\)扩大到了\(10000\),所以必须有非常给力的剪枝才能过. 除了迭代加深,还要加上估价函数:对于当前数\(x ...

  10. Kali-linux无线网络嗅探工具Kismet

    如果要进行无线网络渗透测试,则必须先扫描所有有效的无线接入点.刚好在Kali Linux中,提供了一款嗅探无线网络工具Kismet.使用该工具可以测量周围的无线信号,并查看所有可用的无线接入点.本节将 ...