ARM 07(时钟)
1. PLL、Prescaler、PFD的作用分别是什么PLL锁存器PLL 是一个硬件模块其核心作用是将外部输入的低频时钟如 i.MX6ULL 的 24MHz 晶振倍频成芯片内部所需的高频时钟。PFD相位分数分频器PFD 不是一个独立模块它依附于特定的 PLL如 PLL2 和 PLL3。其作用是对 PLL 的输出频率进行调整。可以倍频/分频。Prescaler预分频器Prescaler 是一个通用的分频器其作用是在 PLL 或 PFD 产生的高频时钟基础上对其进行整数分频以产生更低、更精确的频率。2. SOC时钟配置你做了哪些工作IMX6ULL时钟树1. 配置ARM时钟 528MHZARM时钟配置首先需要让ARM内核工作在24MHZ避免ARM内核故障。1.先选择osc_clk让step_clk为24MZH(CCSR:step_sel)2.在将PLL1的输出改为step_clk让arm暂时共工作在24MHZ(CCSR:pll1_sw_clk_sel)3.配置PLL为1056注意设置倍频因子之前先把PLL之后的二分频设置好。4.最后改为PLL1_main_示例代码unsigned int t; //1.ARM时钟 CCSR:step_cel位清0 CCM-CCSR ~(1 8); //PLL1_Sw_clk_select:step_sel位置为1让arm暂时工作在24Mhz时钟下 CCM-CCSR | (1 2); t CCM_ANALOG -PLL_ARM; t ~(0x1114); t | (113); //先清0 t ~(0x7F0); t | (880); CCM_ANALOG -PLL_ARM t; //2分频 CCM-CACRR | (10); //再切换为PPL1输出 CCM-CCSR ~(1 2);2. 配置8个PFD时钟PLL2和PLL3的输出频率是固定的所以需要通过PFD配置时钟。PLL2的输出固定的528MHZ4个PFD的输出频率为├─► [PLL2] ──► 528_PLL ──┬─► PFD0 ──► 352MHz │ ├─► PFD1 ──► 594MHz │ ├─► PFD2 ──► 396MHz │ └─► PFD3 ──► 528MHz通过CCM_ANALOG-PFD_528寄存器来配置PLL3的输出固定的480MHZ4个PFD的输出频率为├─► [PLL3] ──► 480_PLL ──┬─► PFD0 ──► 720MHz │ ├─► PFD1 ──► 540MHz │ ├─► PFD2 ──► 508.2MHz │ └─► PFD3 ──► 454.7MHz通过CCM_ANALOG-PFD_480流程大致相同但倍频因子计算公式不同示例代码如下t CCM_ANALOG-PFD_528; //清零 t ~((0x3F0)|(0x3F8)|(0x3F16)|(0x3F24)); t ~((17)|(115)|(123)|(131)); t | (270)|(248)|(2416)|(3224); CCM_ANALOG-PFD_528 t; //3.PLL3PDF0、PDF1、PDF2、PDF3() t CCM_ANALOG-PFD_480; //清零 t ~((0x3F0)|(0x3F8)|(0x3F16)|(0x3F24)); t ~((17)|(115)|(123)|(131)); t | (120)|(188)|(1716)|(1924); CCM_ANALOG-PFD_480 t;3. 配置3个根时钟(PERCLK_ROOT、AHB_CLK_ROOT、IPG_CLK_ROOT )根时钟默认频率主要用途时钟源寄存器PERCLK_ROOT75MHzGPT 定时器、I2C、PWM 等OSC24M 或 IPG_CLKCCM_CBCMR1AHB_CLK_ROOT132MHzAHB 总线DDR、USB 等PLL2 / PERIPH_CLKCCM_CBCDRIPG_CLK_ROOT66MHzAPB 外设UART、GPIO 等AHB_CLK / 2CCM_CBCMR示例代码/* 配置 3 个根时钟 */ void clock_init_root(void) { /* 1. 配置 AHB_CLK_ROOT 132MHz */ /* 时钟源PLL2528MHz/ 4 132MHz */ CCM_CBCDR ~(0x07 25); // 清除 PERIPH_CLK_SEL CCM_CBCDR ~(0x07 10); // 清除 AHB_PODF CCM_CBCDR | (0x03 10); // AHB_PODF 3528/4 132MHz /* 2. 配置 IPG_CLK_ROOT 66MHz */ /* IPG_CLK AHB_CLK / 2 132/2 66MHz */ CCM_CBCDR ~(0x03 8); // 清除 IPG_PODF CCM_CBCDR | (0x01 8); // IPG_PODF 1132/2 66MHz /* 3. 配置 PERCLK_ROOT 75MHz */ /* 时钟源OSC24MPERCLK_PODF 不分频 */ /* 或者时钟源IPG_CLK66MHz */ CCM_CSCMR1 ~(1 6); // PERCLK_CLK_SEL 0使用 IPG_CLK CCM_CSCMR1 ~(0x3F 0); // PERCLK_PODF 0不分频 }3. GIC支持多少个优先级IMX6ULL中支持多少个优先级GIC V2架构优先级寄存器为 8 位最多支持256个优先级优先级数值越小优先级越高。i.MX6ULL 搭载的 Cortex-A7 内核集成 GIC v2硬件仅实现了优先级寄存器的高 5 位bit7~bit3低 3 位无效因此实际支持32 个优先级2^532。可通过 GICC_BPR 寄存器配置优先级分组划分抢占优先级与子优先级的位宽。

相关新闻

Unity项目移植HarmonyOS实战:避坑指南与性能优化全解析

Unity项目移植HarmonyOS实战:避坑指南与性能优化全解析

1. 项目概述:当Unity遇上HarmonyOS 最近在HarmonyOS开发者社区里,看到不少关于“该应用已适配 HarmonyOS Next”的绿标讨论,热度很高。作为一个在Unity和移动端开发领域摸爬滚打了多年的老码农,我自然也按捺不住,想把手…

2026/7/23 5:16:15 阅读更多 →
buildroot添加自定义应用过程

buildroot添加自定义应用过程

---## 场景设定我们要为嵌入式系统添加一个名为 hello-buildroot 的应用,它会向控制台打印 "Hello from Buildroot!"。### 项目结构~/my_project/ ├── buildroot/ # Buildroot源码树 └── app_src/ # 外部应用源码└── hello-b…

2026/7/23 5:16:15 阅读更多 →
Unity游戏模组开发入门:BepInEx框架原理、安装与插件开发实战

Unity游戏模组开发入门:BepInEx框架原理、安装与插件开发实战

1. 项目概述:为什么BepInEx是Unity游戏模组开发的基石如果你玩过基于Unity引擎开发的PC游戏,尤其是那些在Steam创意工坊里拥有海量玩家自制内容的作品,你大概率已经间接接触过BepInEx了。它不是一个直接面向玩家的工具,而是连接玩…

2026/7/23 5:15:13 阅读更多 →

最新新闻

Unity地形旋转全攻略:一键处理高度图、纹理与植被数据同步

Unity地形旋转全攻略:一键处理高度图、纹理与植被数据同步

1. 项目概述:为什么我们需要旋转整个Terrain?在Unity3D的地形编辑和场景搭建中,我们经常会遇到一个看似简单却异常棘手的需求:将整个Terrain地形,连同它上面生长的树木、铺设的贴图、散布的细节草和岩石,一…

2026/7/24 6:23:05 阅读更多 →
多模态问答技术解析与应用实践

多模态问答技术解析与应用实践

1. 多模态模型问答技术解析上周在调试一个客户项目时,遇到个典型场景:用户上传的产品图片需要自动生成规格说明。传统单模态方案要么用CV识别物体,再用NLP生成文本,流程割裂导致信息丢失严重。这让我重新审视了多模态问答技术的价…

2026/7/24 6:23:05 阅读更多 →
基于YOLOv10的实时火焰检测系统设计与实现

基于YOLOv10的实时火焰检测系统设计与实现

1. 项目概述这个基于YOLOv10的火焰检测系统是我最近完成的一个计算机视觉项目,它能够通过摄像头、视频文件或静态图像实时检测火焰和火灾。作为一名长期从事目标检测开发的工程师,我发现现有的火焰检测方案要么精度不足,要么速度太慢&#xf…

2026/7/24 6:23:05 阅读更多 →
大语言模型系统指令设计原理与工程实践

大语言模型系统指令设计原理与工程实践

1. 系统指令(System Prompt)的本质解析在AI交互领域,系统指令(System Prompt)是对话初始阶段植入的"基因代码",它从根本上定义了AI助手的身份定位和行为范式。不同于用户直接输入的操作指令(User Prompt),系统指令更像是在对话开始…

2026/7/24 6:23:05 阅读更多 →
深度学习在音乐生成与编曲自动化中的应用实践

深度学习在音乐生成与编曲自动化中的应用实践

1. 项目概述作为一名长期从事音乐科技开发的工程师,我最近完成了一个融合深度学习与音乐处理的综合项目。这个系统能够实现从旋律生成到完整编曲的全流程自动化处理,同时集成了多种音乐格式的转换功能。在实际应用中,这套工具已经帮助独立音乐…

2026/7/24 6:23:05 阅读更多 →
深度学习神经网络调参实战技巧与优化策略

深度学习神经网络调参实战技巧与优化策略

1. 神经网络调参实战指南在深度学习项目中,调参往往是最耗时却又最关键的一环。我见过太多团队在数据准备和模型架构上花费大量精力,最后却因为调参不当导致前功尽弃。今天分享的这套调参方法论,是我从50多个实际项目中总结出的实战经验&…

2026/7/24 6:22:05 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻