首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Linux学习笔记12-主频和时钟配置实验程序

操作系统 337.01KB 5 需要积分: 1
立即下载

资源介绍:

Linux学习笔记12---主频和时钟配置实验程序
#include "bsp_clk.h" /* * @description : 使能I.MX6U所有外设时钟 * @param : 无 * @return : 无 */ void clk_enable(void) { CCM->CCGR0 = 0XFFFFFFFF; CCM->CCGR1 = 0XFFFFFFFF; CCM->CCGR2 = 0XFFFFFFFF; CCM->CCGR3 = 0XFFFFFFFF; CCM->CCGR4 = 0XFFFFFFFF; CCM->CCGR5 = 0XFFFFFFFF; CCM->CCGR6 = 0XFFFFFFFF; } /* * @description : 初始化系统时钟,设置系统时钟为792Mhz,并且设置PLL2和PLL3各个 PFD时钟,所有的时钟频率均按照I.MX6U官方手册推荐的值. * @param : 无 * @return : 无 */ void imx6u_clkinit(void) { unsigned int reg = 0; /* 1、设置ARM内核时钟为792MHz */ /* 1.1、判断当前ARM内核是使用的那个时钟源启动的,正常情况下ARM内核是由pll1_sw_clk驱动的,而 * pll1_sw_clk有两个来源:pll1_main_clk和tep_clk。 * 如果我们要让ARM内核跑到792M的话那必须选择pll1_main_clk作为pll1的时钟源。 * 如果我们要修改pll1_main_clk时钟的话就必须先将pll1_sw_clk从pll1_main_clk切换到step_clk, * 当修改完pll1_main_clk以后在将pll1_sw_clk切换回pll1_main_clk。而step_clk的时钟源可以选择 * 板子上的24MHz晶振。 */ if((((CCM->CCSR) >> 2) & 0x1 ) == 0) /* 当前pll1_sw_clk使用的pll1_main_clk*/ { CCM->CCSR &= ~(1 << 8); /* 配置step_clk时钟源为24MH OSC */ CCM->CCSR |= (1 << 2); /* 配置pll1_sw_clk时钟源为step_clk */ } /* 1.2、设置pll1_main_clk为792MHz * 因为pll1_sw_clk进ARM内核的时候会被二分频! * 配置CCM_ANLOG->PLL_ARM寄存器 * bit13: 1 使能时钟输出 * bit[6:0]: 66, 由公式:Fout = Fin * div_select / 2.0,792=24*div_select/2.0, * 得出:div_select= 66 */ CCM_ANALOG->PLL_ARM = (1 << 13) | ((66 << 0) & 0X7F); /* 配置pll1_main_clk=792MHz */ CCM->CCSR &= ~(1 << 2); /* 将pll_sw_clk时钟重新切换回pll1_main_clk */ CCM->CACRR = 0; /* ARM内核时钟为pll1_sw_clk/1=792/1=792Mhz */ /* 2、设置PLL2(SYS PLL)各个PFD */ reg = CCM_ANALOG->PFD_528; reg &= ~(0X3F3F3F3F); /* 清除原来的设置 */ reg |= 32<<24; /* PLL2_PFD3=528*18/32=297Mhz */ reg |= 24<<16; /* PLL2_PFD2=528*18/24=396Mhz(DDR使用的时钟,最大400Mhz) */ reg |= 16<<8; /* PLL2_PFD1=528*18/16=594Mhz */ reg |= 27<<0; /* PLL2_PFD0=528*18/27=352Mhz */ CCM_ANALOG->PFD_528=reg; /* 设置PLL2_PFD0~3 */ /* 3、设置PLL3(USB1)各个PFD */ reg = 0; /* 清零 */ reg = CCM_ANALOG->PFD_480; reg &= ~(0X3F3F3F3F); /* 清除原来的设置 */ reg |= 19<<24; /* PLL3_PFD3=480*18/19=454.74Mhz */ reg |= 17<<16; /* PLL3_PFD2=480*18/17=508.24Mhz */ reg |= 16<<8; /* PLL3_PFD1=480*18/16=540Mhz */ reg |= 12<<0; /* PLL3_PFD0=480*18/12=720Mhz */ CCM_ANALOG->PFD_480=reg; /* 设置PLL3_PFD0~3 */ /* 4、设置AHB时钟 最小6Mhz, 最大132Mhz (boot rom自动设置好了可以不用设置)*/ CCM->CBCMR &= ~(3 << 18); /* 清除设置*/ CCM->CBCMR |= (1 << 18); /* pre_periph_clk=PLL2_PFD2=396MHz */ CCM->CBCDR &= ~(1 << 25); /* periph_clk=pre_periph_clk=396MHz */ while(CCM->CDHIPR & (1 << 5));/* 等待握手完成 */ /* 修改AHB_PODF位的时候需要先禁止AHB_CLK_ROOT的输出,但是 * 我没有找到关闭AHB_CLK_ROOT输出的的寄存器,所以就没法设置。 * 下面设置AHB_PODF的代码仅供学习参考不能直接拿来使用!! * 内部boot rom将AHB_PODF设置为了3分频,即使我们不设置AHB_PODF, * AHB_ROOT_CLK也依旧等于396/3=132Mhz。 */ #if 0 /* 要先关闭AHB_ROOT_CLK输出,否则时钟设置会出错 */ CCM->CBCDR &= ~(7 << 10); /* CBCDR的AHB_PODF清零 */ CCM->CBCDR |= 2 << 10; /* AHB_PODF 3分频,AHB_CLK_ROOT=132MHz */ while(CCM->CDHIPR & (1 << 1));/ * 等待握手完成 */ #endif /* 5、设置IPG_CLK_ROOT最小3Mhz,最大66Mhz (boot rom自动设置好了可以不用设置)*/ CCM->CBCDR &= ~(3 << 8); /* CBCDR的IPG_PODF清零 */ CCM->CBCDR |= 1 << 8; /* IPG_PODF 2分频,IPG_CLK_ROOT=66MHz */ /* 6、设置PERCLK_CLK_ROOT时钟 */ CCM->CSCMR1 &= ~(1 << 6); /* PERCLK_CLK_ROOT时钟源为IPG */ CCM->CSCMR1 &= ~(7 << 0); /* PERCLK_PODF位清零,即1分频 */ }

资源文件列表:

08_clk.zip 大约有46个文件
  1. 08_clk/
  2. 08_clk/Makefile 1.31KB
  3. 08_clk/bsp/
  4. 08_clk/bsp/beep/
  5. 08_clk/bsp/beep/bsp_beep.c 1.47KB
  6. 08_clk/bsp/beep/bsp_beep.h 538B
  7. 08_clk/bsp/clk/
  8. 08_clk/bsp/clk/bsp_clk.c 4.16KB
  9. 08_clk/bsp/clk/bsp_clk.h 139B
  10. 08_clk/bsp/delay/
  11. 08_clk/bsp/delay/bsp_delay.c 458B
  12. 08_clk/bsp/delay/bsp_delay.h 132B
  13. 08_clk/bsp/gpio/
  14. 08_clk/bsp/gpio/bsp_gpio.c 1.24KB
  15. 08_clk/bsp/gpio/bsp_gpio.h 680B
  16. 08_clk/bsp/key/
  17. 08_clk/bsp/key/bsp_key.c 1.33KB
  18. 08_clk/bsp/key/bsp_key.h 230B
  19. 08_clk/bsp/led/
  20. 08_clk/bsp/led/bsp_led.c 1.13KB
  21. 08_clk/bsp/led/bsp_led.h 163B
  22. 08_clk/clk.bin 837B
  23. 08_clk/clk.dis 13.75KB
  24. 08_clk/clk.elf 66.35KB
  25. 08_clk/imx6ul/
  26. 08_clk/imx6ul/MCIMX6Y2.h 3.29MB
  27. 08_clk/imx6ul/cc.h 771B
  28. 08_clk/imx6ul/fsl_common.h 7.52KB
  29. 08_clk/imx6ul/fsl_iomuxc.h 113.8KB
  30. 08_clk/imx6ul/imx6ul.h 134B
  31. 08_clk/imx6ul.lds 240B
  32. 08_clk/imxdownload2 16.99KB
  33. 08_clk/load.img 4.82KB
  34. 08_clk/load.imx 3.82KB
  35. 08_clk/obj/
  36. 08_clk/obj/bsp_beep.o 936B
  37. 08_clk/obj/bsp_clk.o 1.04KB
  38. 08_clk/obj/bsp_delay.o 904B
  39. 08_clk/obj/bsp_gpio.o 964B
  40. 08_clk/obj/bsp_key.o 1.2KB
  41. 08_clk/obj/bsp_led.o 932B
  42. 08_clk/obj/main.o 1.28KB
  43. 08_clk/obj/start.o 708B
  44. 08_clk/project/
  45. 08_clk/project/main.c 869B
  46. 08_clk/project/start.S 766B
0评论
提交 加载更多评论
其他资源 基于Spring Boot MybatisPlus 实现的学生社团管理系统.zip
基于Spring Boot MybatisPlus 实现的学生社团管理系统 项目介绍 选题背景: 浙大城市学院软件架构与应用开发大作业 功能需求: 社团管理(设置社团、查看社团和社团成员、停止社团、社长设置) 活动管理(新增活动、查看活动内容和活动参加成员、删除活动) 社团成员管理(社团招新、审核招新、社团成员退出) 普通同学(个人信息、活动报名、活动查询、社团报名) 公告管理(发布公告、修改公告、删除公告) author: wangYangKai email: 1592980573qq.com 项目结构 主应用入口 文件路径: .srcmainjavacneduzuccStudentAssociationManagementSystemApplication.java 功能: Spring Boot 应用的入口点,配置了 MyBatis 映射接口的扫描、Spring Boot 自动配置和 Swagger 文档生成。 配置类 文件路径: .srcmainjavacneduzuccconfigCrossConfiguration.java
和平无后_3.0(1).zip
和平无后_3.0(1).zip
20231113499_张钰萌_实验二.zip
20231113499_张钰萌_实验二.zip
中国通信英文版期刊LaTeX模板
《中国通信英文版》期刊LaTeX模板,目前保持一年更新一次的频率,上传版本为24年的最新版,里面包含作者投稿模板以及中英文的模板使用指南
nvidia-docker20.10.13-rpm
nvidia-docker20.10.13-rpm
基于协同过滤算法的小说推荐系统的设计与实现.zip
基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计),本资源中的源码都是经过本地编译过可运行的,通过毕业答辩得分90以上。 基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计) 基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计) 基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计) 基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计与实现+源代码+文档说明+PPT(毕业设计)基于协同过滤算法的小说推荐系统的设计
基于协同过滤算法的小说推荐系统的设计与实现.zip 基于协同过滤算法的小说推荐系统的设计与实现.zip 基于协同过滤算法的小说推荐系统的设计与实现.zip
stylus-1.5.51.zip
Stylus是一款能改变网站样式的样式管理器
CSDN新客户端.zip
CSDN新客户端.zip