uboot中系统时钟初始化函数:system_clock_init
时钟初始化函数内容如下:
/** system_clock_init: Initialize core clock and bus clock.* void system_clock_init(void)*/
system_clock_init:ldr r0, =ELFIN_CLOCK_POWER_BASE @0xe0100000/* Set Mux to FIN */ldr r1, =0x0str r1, [r0, #CLK_SRC0_OFFSET]ldr r1, =APLL_LOCKTIME_VALstr r1, [r0, #APLL_LOCK_OFFSET]/********lxg added*********************/ldr r0, =ELFIN_CLOCK_POWER_BASE @0xe0100000ldr r1, =MPLL_LOCKTIME_VALstr r1, [r0, #MPLL_LOCK_OFFSET]/********end*********************//* Disable PLL */
#if defined(CONFIG_CHECK_MPLL_LOCK)
retryloop:
#endifldr r1, =0x0str r1, [r0, #APLL_CON0_OFFSET]ldr r1, =0x0str r1, [r0, #MPLL_CON_OFFSET]ldr r1, =0x0str r1, [r0, #MPLL_CON_OFFSET]ldr r1, [r0, #CLK_DIV0_OFFSET]ldr r2, =CLK_DIV0_MASKbic r1, r1, r2ldr r2, =CLK_DIV0_VALorr r1, r1, r2str r1, [r0, #CLK_DIV0_OFFSET]ldr r1, =APLL_VALstr r1, [r0, #APLL_CON0_OFFSET]ldr r1, =MPLL_VALstr r1, [r0, #MPLL_CON_OFFSET]ldr r1, =VPLL_VALstr r1, [r0, #VPLL_CON_OFFSET]/*******lxg added***********************/ldr r1, =EPLL_VALstr r1, [r0, #EPLL_CON_OFFSET]/*******lxg added***********************/ldr r1, [r0, #CLK_DIV1_OFFSET]ldr r2, =CLK_DIV1_MASKbic r1, r1, r2ldr r2, =CLK_DIV1_VALorr r1, r1, r2str r1, [r0, #CLK_DIV1_OFFSET]ldr r1, [r0, #CLK_DIV2_OFFSET]ldr r2, =CLK_DIV2_MASKbic r1, r1, r2ldr r2, =CLK_DIV2_VALorr r1, r1, r2str r1, [r0, #CLK_DIV2_OFFSET]ldr r1, [r0, #CLK_DIV4_OFFSET]ldr r2, =CLK_DIV4_MASKbic r1, r1, r2ldr r2, =CLK_DIV4_VALorr r1, r1, r2str r1, [r0, #CLK_DIV4_OFFSET]ldr r1, [r0, #CLK_DIV6_OFFSET]ldr r2, =CLK_DIV6_MASKbic r1, r1, r2ldr r2, =CLK_DIV6_VALorr r1, r1, r2str r1, [r0, #CLK_DIV6_OFFSET]/*******end*****************//*******end*****************/
#if defined(CONFIG_EVT1)ldr r1, =AFC_ONstr r1, [r0, #APLL_CON1_OFFSET]
#endifmov r1, #0x10000
1: subs r1, r1, #1bne 1b#if defined(CONFIG_CHECK_MPLL_LOCK)/* MPLL software workaround */ldr r1, [r0, #MPLL_CON_OFFSET]orr r1, r1, #(1<<28)str r1, [r0, #MPLL_CON_OFFSET]mov r1, #0x100
1: subs r1, r1, #1bne 1bldr r1, [r0, #MPLL_CON_OFFSET]and r1, r1, #(1<<29)cmp r1, #(1<<29)bne retryloop/* H/W lock detect disable */ldr r1, [r0, #MPLL_CON_OFFSET]bic r1, r1, #(1<<28)str r1, [r0, #MPLL_CON_OFFSET]
#endifldr r1, [r0, #CLK_SRC0_OFFSET]//ldr r2, =0x10001111 //lxg changed.ldr r2, =0x00000111orr r1, r1, r2str r1, [r0, #CLK_SRC0_OFFSET]// added by terry 2012.12.4 for camera ldr r1, [r0, #CLK_SRC1_OFFSET]bic r1, r1, #(0xf<<12)orr r1, r1, #(0x1<<12) //0001 XusbXTIstr r1, [r0, #CLK_SRC1_OFFSET]#if defined(CONFIG_MCP_AC)/* CLK_SRC6[25:24] -> OneDRAM clock sel = MPLL */ldr r1, [r0, #CLK_SRC6_OFFSET]bic r1, r1, #(0x3<<24)orr r1, r1, #0x01000000str r1, [r0, #CLK_SRC6_OFFSET]/* CLK_DIV6[31:28] -> 4=1/5, 3=1/4(166MHZ@667MHz), 2=1/3 */ldr r1, [r0, #CLK_DIV6_OFFSET]bic r1, r1, #(0xF<<28)bic r1, r1, #(0x7<<12) @; ONENAND_RATIO: 0orr r1, r1, #0x30000000str r1, [r0, #CLK_DIV6_OFFSET]#elif defined (CONFIG_MCP_H)/* CLK_SRC6[25:24] -> OneDRAM clock sel = 00:SCLKA2M, 01:SCLKMPLL */ldr r1, [r0, #CLK_SRC6_OFFSET]bic r1, r1, #(0x3<<24)orr r1, r1, #0x00000000str r1, [r0, #CLK_SRC6_OFFSET]/* CLK_DIV6[31:28] -> 4=1/5, 3=1/4(166MHZ@667MHz), 2=1/3 */ldr r1, [r0, #CLK_DIV6_OFFSET]bic r1, r1, #(0xF<<28)bic r1, r1, #(0x7<<12) @; ONENAND_RATIO: 0orr r1, r1, #0x00000000str r1, [r0, #CLK_DIV6_OFFSET] #elif defined (CONFIG_MCP_B) || defined (CONFIG_MCP_D)/* CLK_SRC6[25:24] -> OneDRAM clock sel = 00:SCLKA2M, 01:SCLKMPLL */ldr r1, [r0, #CLK_SRC6_OFFSET]bic r1, r1, #(0x3<<24)orr r1, r1, #0x01000000str r1, [r0, #CLK_SRC6_OFFSET]/* CLK_DIV6[31:28] -> 4=1/5, 3=1/4(166MHZ@667MHz), 2=1/3 */ldr r1, [r0, #CLK_DIV6_OFFSET]bic r1, r1, #(0xF<<28)bic r1, r1, #(0x7<<12) @; ONENAND_RATIO: 0orr r1, r1, #0x30000000str r1, [r0, #CLK_DIV6_OFFSET]#elif defined (CONFIG_MCP_SINGLE)/* CLK_DIV6 *//*ldr r1, [r0, #CLK_DIV6_OFFSET]bic r1, r1, #(0x7<<12) @; ONENAND_RATIO: 0str r1, [r0, #CLK_DIV6_OFFSET]*/ //lxg mask#endif mov pc, lr
uboot中系统时钟初始化函数:system_clock_init相关推荐
- STM32F103之系统时钟初始化及延迟函数
本篇博文最后修改时间:2019年09月18日 15:16. 一.简介 本文以STM32F103编程为例,介绍STM32F103系统时钟初始化及延迟函数编写 二.实验平台 电脑平台:Windows7 6 ...
- 【pytorch 】nn.init 中实现的初始化函数 normal, Xavier==》为了保证数据的分布(均值方差一致)是一样的,类似BN
为什么要输入和输出的方差相同?有利于信息的传递 为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等.在考虑线性激活函数的情况下, 在初始化的时候使各层神经元的方差保持不变, 即使各层有着相同的 ...
- CC2530 系统时钟初始化
CC2530 系统时钟初始化 系统时钟 系统时钟是从所选的主系统时钟源获得的,主系统时钟源可以是 32 MHz XOSC 或 16 MHz RCOSC.CLKCONCMD.OSC 位选择主系 ...
- python中使用函数的优点_在python中使用自定义初始化函数而不是`__init__`的好处...
野外的一些API(例如setuptools内部)有类似的东西,他们使用它们的优势. __init__调用可以用于低级内部API,而公共构造函数被定义为类方法,用于构造对象的不同方式.例如,在 pkg_ ...
- 操作系统中系统时钟,硬件时钟(后备时钟,实时时钟),网络时钟 辨析
系统时钟,硬件时钟(后备时钟,实时时钟),网络时钟 辨析 1. 系统时钟 系统时钟即为我们看到的操作系统上显示的时间. 系统时钟在电脑开机的时候进行初始化,通过对硬件时钟的"拷贝" ...
- pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization...
本文内容: 1. Xavier 初始化 2. nn.init 中各种初始化函数 3. He 初始化 torch.init https://pytorch.org/docs/stable/nn.html ...
- OC语言中的便利初始化函数和便利构造器
便利遍历初始化函数与便利构造器(以Student类为例): main函数 Student.h(声明) ................... Student.m(实现) ............... ...
- Xilinx vivado DDR3 MIG IP核中系统时钟、参考时钟解释及各个时钟的功能详解
注:在使用xilinx的MIG 核时,会有许多关于时钟的配置,时间长了容易混淆,特意记录一下为以后快速回忆,如有错误请留言指正. 0.先贴出来DDR3的时钟树,这个图展示了参考时钟设置的强制规定. 1 ...
- Vue3.x中自定义时钟钩子函数(TypeScript语法)
钩子函数的运用能使我们的代码更加简洁且易于维护,那么在Vue3.x中钩子函数的编写方式是怎样的呢? 下面,我以一个点击获取当前时间的例子来记录钩子函数的编写过程. 创建hooks目录 一般 ...
最新文章
- echarts中树图的label的点击_ECharts 堆积木(砖块)游戏
- Appium 服务器参数
- excel操作的几种方法
- PCM信号是什么信号?
- git恢复删除前的版本
- 学习python 正则表达式——与你同行!
- python前端调用后端模型_【Python】【Flask】前端调用后端方法
- Using Sqoop 1.4.6 With Hadoop 2.7.4
- python日志模块----logging
- 复习PHP-语言参考-类与对象
- MVCJSONJQuery分页实现
- arcengine遍历图层组
- kettle 教程(一):简介及入门
- 制度罚则-- 日志规范
- 易经- 第一卦 乾卦
- 计算机报名照片没有重命名,电脑照片重命名怎么弄
- 快解析外网如何访问内网共享服务器
- Error:Execution failed for task ':app:compileDebugNdk'. Error: NDK integrat
- 【转载】【收藏】汽车电子expert成长之路公众号系列文章列表
- 计算机听课与评课活动记录表,听课 评课记录表参考