SylixOS的BSP开发实例之S3C2416 【第一篇】时钟配置
来源:互联网 发布:网络词吃狗粮的意思 编辑:程序博客网 时间:2024/05/22 15:52
由于本日志不能上传附件,所以 SylixOS 与 S3C2416的常用文档请参见pan.baidu.com/s/1bnwI77p。
在SylixOS的BSP中时钟的初始化文件位置在“bsp_zth2416\SylixOS\bsp\targetInit.c”中,其中“bsp_zth2416”为BSP工程名,其中通过RealCoder打开“BASE工程”与“BSP工程”如下图所示。
其中时钟配置说明如下图所示。
External Crystal 12M
MPLLCLK = 800M
EPLLCLK = 96M, ARMCLK = 400M, HCLK = 133M, DDRCLK = 266M, SSMCCLK = 66M, PCLK = 66M, HSMMC1 = 24M
ARMCLK = MPLLout / ARMCLK Ratio = MPLLout / (ARMDIV + 1) = 800 / 2 = 400MHz
HCLK = MPLLout / HCLK Ratio = MPLLout / ((PREDIV+1) * (HCLKDIV + 1)) = 800 / (3 * 2) = 133MHz
PCLK = HCLK / PCLKDIV = 133 / 2 = 66MHz
ARMDIV 1/1 = 3'b000 1/2 = 3'b001 1/3 = 3'b010 1/4 = 3'b011 1/6 = 3'b101 1/8 = 3'b111
PREDIV 2'b00 2'b01 2'b02 2'b03
HCLKDIV 2'b00 2'b01 2'b03
PCLKDIV 1'b0 1'b1
Page 89
PLL output frequency = 800MHz
ARMCLK = 400MHz, HCLK = 133MHz, PCLK = 66MHz, DDRCLK = 266MHz SSMCCLK = 66MHz
ARMDIV = 3'b001, PREDIV = 2'b10, HCLKDIV = 2'b01, PCLKDIV = 1'b1 HALKHCLK = 1'b1
PLL output frequency = 533MHz
ARMCLK = 266MHz, HCLK = 133MHz, PCLK = 66MHz, DDRCLK = 266MHz SSMCCLK = 66MHz
ARMDIV = 3'b0001, PREDIV = 2'b01, HCLKDIV = 2'b01, PCLKDIV = 1'b1 HALKHCLK = 1'b1
PLL配置函数如下:
/*********************************************************************************************************** 函数名称: pllInit** 功能描述: 初始化 PLL** 输 入 : NONE** 输 出 : NONE** 全局变量:** 调用模块:*********************************************************************************************************/static void pllInit (void){ volatile int i; /* * ARMCLK Ratio = (ARMDIV + 1) = 2 * HCLK Ratio = (PREDIV + 1) * (HCLKDIV + 1) = 6 * pCLK Ratio = (PCLKDIV + 1) = 2 * * ARMCLK = MCLK / ARMCLK Ratio = 400 MHZ * HCLK = MCLK / HCLK Ratio = 133 MHZ * PCLK = HCLK / pCLK Ratio = 66 MHZ * HALF(SSMC)CLK = HCLK / 2 = 66 MHZ */ rCLKDIV0 = (1 << 9) | /* ARMDIV */ (2 << 4) | /* PREDIV */ (1 << 3) | /* HALFHCLK */ (1 << 2) | /* PCLKDIV */ (1 << 0); /* HCLKDIV */ rLOCKCON0 = 0x00000E10; rCLKDIV1 = 1 << 4; /* USB 的固定时钟 48MHz */ rCLKSRC |= (3 << 7); /* 10 XTAL 11 EXTCLK */ rCLKSRC |= (1 << 6); /* EPLL Out */ rCLKSRC |= (1 << 4); /* MPLL Out */ rLOCKCON1 = 0x00001780; for (i = 0; i < 0x10000; i++) { }}CLOCK配置如下:
/*********************************************************************************************************** 函数名称: clockInit** 功能描述: 时钟初始化** 输 入 : NONE** 输 出 : NONE** 全局变量:** 调用模块:*********************************************************************************************************/static void clockInit (void){ /* * MCLK = 800 MHZ */ rMPLLCON = (0 << 24) | /* MPLL ON */ (400 << 14) | /* MDIV */ (3 << 5) | /* PDIV */ (1 << 0); /* SDIV */ /* * ECLK = 96 MHZ (48 MHz 晶振) * 这里各种依赖于ECLK的外设时钟不配置 * 由具体的驱动去配置 */ rEPLLCON = (0 << 25) | /* EPLL 在停止模式时关闭 */ (0 << 24) | /* 使能 EPLL */ (32 << 16) | /* MDIV */ (1 << 8) | /* PDIV */ (4 << 0); /* SDIV */ rEPLLCON_K = 0x0000; /* KDIV */ armAsyncBusMode(); /* 异步总线工作模式 */}
SylixOS技术讨论群(32537017) SylixOS开发者联盟群(216907470)
系统常用链接:
【1】系统主页 www.sylixos.com
【2】系统百科 wiki.sylixos.com/index.php/%E9%A6%96%E9%A1%B5
【3】系统下载 git.sylixos.com/cgit/
【4】系统论坛 bbs.sylixos.com/forum.php
【5】社区新闻 bbs.sylixos.com/forum.php
【6】清华镜像站点 coop.tuna.tsinghua.edu.cn/git coop.tuna.tsinghua.edu.cn/git (改版中)
【7】北邮镜像站点(建设中)
- SylixOS的BSP开发实例之S3C2416 【第一篇】时钟配置
- SylixOS的BSP开发实例之S3C2416 【第一篇】时钟配置
- SylixOS的BSP开发实例之S3C2416【前言】常用软件介绍
- SylixOS的BSP开发实例之S3C2416 【第五篇】S3C2416 启动模式之 NandFlash
- SylixOS的BSP开发实例之S3C2416 【第六篇】S3C2416 驱动之定时器
- SylixOS的BSP开发实例之S3C2416 【第四篇】S3C2416 的 GDB 初始化脚本
- SylixOS的BSP开发实例之S3C2416 【第三篇】S3C2416 寄存器描述
- SylixOS的BSP开发实例之S3C2416 【第二篇】内存映射与初始布局
- SylixOS ARM BSP 第一篇【文件结构】
- SylixOS 的 PCIe 驱动开发 【第一篇】PCIe 基础知识
- SylixOS BSP 开发连载
- SAP web 开发 (第一篇 bsp 开发 非mvc模式 )
- SylixOS DSP的BSP调试过程
- RN学习第一篇-开发环境的配置
- BSP开发入门之重要的配置文件
- 第一篇 Oracle数据库体系结构之实例
- 第一篇 javase时钟表
- 我的opengl之旅--第一篇 配置opengl
- 正则表达式 学习笔记
- [leetcode] 217.Contains Duplicate
- 冒泡排序
- 2012年5月SAT香港真题解析
- Jersery——RESTful Web Services in Java,RESTful服务,Jersey+Spring实现REST服务调用
- SylixOS的BSP开发实例之S3C2416 【第一篇】时钟配置
- PASSION之JS函数(function)
- #pragma comment 的作用
- 斯坦福《机器学习》Lesson6感想———1、函数间隔和几何间隔
- Jedis “Socket读取超时”导致“返回值类型错误”
- 对HtmlHelper扩展二:添加RadioButtonList、CheckBoxList
- Django开发实战之URLconf详解
- Serv-U 15 架设FTP文件服务器 图文教程
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序