ARM设置时钟开关的方法(使用PLL)

第一步:观察下面代码中r2=0x10001111

ldr	r1, 0xE0100200
ldr	r2, =0x10001111
orr	r1, r1, r2                         //orr用于将r1中一些位置1
str	r1, [r0, #CLK_SRC0_OFFSET]

第二步:将0x10001111转换为二进制

ARM设置时钟开关的方法(使用PLL)_第1张图片

第三步:结合数据手册中寄存器的用法,如下图,根据上图可知将bit28、bit12、bit8、bit4、bit0设置为1;将bit24、bit20、bit16设置为0.(在下图中用红色笔将要设置的数值勾出来)。

ARM设置时钟开关的方法(使用PLL)_第2张图片

第四步:根据上图中以蓝笔画出来的各种MUX开关,在下图的时钟系统图中找到对应的MUX。然后根据设置的(bit28、bit12、bit8、bit4、bit0设置为1;将bit24、bit20、bit16设置为0)对MUX开关进行选择。如下图所示,用红线连接了时钟的选择流向。这样就设置了时钟的MUX开关。

ARM设置时钟开关的方法(使用PLL)_第3张图片

【补充】S5pv210各时钟的典型值:
     freq(ARMCLK)             = 1000 MHz
     freq(HCLK_MSYS)         = 200 MHz
     freq(HCLK_IMEM)         = 100 MHz
     freq(PCLK_MSYS)         = 100 MHz
     freq(HCLK_DSYS)         = 166 MHz
     freq(PCLK_DSYS)         = 83 MHz
     freq(HCLK_PSYS)         = 133 MHz
     freq(PCLK_PSYS)         = 66 MHz
     freq(SCLK_ONENAND)     = 133 MHz, 166 MHz

你可能感兴趣的:(ARM)