当前位置: 首页 > news >正文

【DAY34】基于 IMX6ULL 的嵌入式系统底层开发:中断、时钟与定时器配置

一、中断

CPU打断当前正在运行的程序,保存现场去处理紧急事件,处理结束后,回到保存的现场继续向下执行

中断流程

中断源发出中断请求。
CPU检查是否响应中断以及该中断是否被屏蔽。
检查当前产生的中断的中断优先级。
保护现场
执行中断服务函数
恢复现场

中断源:

1.配置中断触发方式:GPIOx_ICR2

GPIO1->ICR2 |= (3 << 4);

2.解除中断屏蔽:GPIOx_IMR

GPIO1->IMR |= (1 << 18);

3.判断中断状态

if((GPIO1->ISR &(1 << 18)) != 0 )

{

led_on();

GPIO1_ISR |= (1 << 18);

}

中断标记寄存器,写1清零(高电平,充电清零)

GIC

中断控制器GIC
GIC(Generic Interrupt Controller):通用的中断控制器

1.GIC初始化

GIC_Init();

2.设置GIC中断优先级

GIC_SetPriority(GIO_Combined_)

3.设置GIC中断使能

调用库中的函数

GIC_EnableIRQ

4.获取GIC寄存器组的基地址

mrc p15, 4, r0, c15, c0, 0

5.获取中断通知寄存器的值

C_IAR: base + ffset 0x200C

add r0, r0, 0x2000

ldr r1, [r0, 0x0C]

6.清除中断结束寄存器的标志

C_EOIR:bass + offset 0x2010

str r1, [r0, #0x10]

协处理器(coprocrssor\cp)

二、PLL、Prescaler、PFD

24MHz:1秒内有24*1000*1000个周期方波

1.PLL:锁相环电路(phare locked loop)

只能升频

倍频因子最小为1

2.Prescaler:预分频器

只能降频

3.PFD:相位分数分频器(Phase Fractional Divices)

可以升频、降频

配置

ARM PLL配置流程

  • 切换临时时钟源
  • 将PLL1短路,进入旁路模式
  • 让ARM暂时工作在24MHz
  • 设置PLL参数
    • ·据公式配置倍频因子
  • 退出旁路然后锁定
  • 切换到PLL 输出

IMX6ULL中有7个PLL、8个PFD

三、EPIT、GPT

EPIT(Enhanced Periodic Interrupt Timer)增强型周期中断定时器

GPT(General Purpose Timer):通用目的定时器
输入捕获和比较输出

特性EPIT(增强型周期中断定时器)GPT(通用目的定时器)
计数方向向下计数向上计数
时钟源IPG、IPG_32K、IPG_HIGHfreq(3 选)IPG、IPG_32K、IPG_HIGHfreq、外部时钟(4 选)
分频器12 位(1~4096 分频)12 位(1~4096 分频)
工作模式Set-and-forget(自动重载)、Free-runningRestart(重启)、Free-running(自由运行)
中断类型比较中断、计数到 0 中断溢出中断、2 路输入捕获、3 路输出比较
典型应用精准周期中断、定时任务调度延时函数、信号脉宽 / 频率测量、PWM 输出
http://www.jsqmd.com/news/567863/

相关文章:

  • 如何为AMD 780M APU解锁2-3倍AI性能?ROCmLibs-for-gfx1103终极优化指南
  • 如何高效使用SMUDebugTool:专业AMD Ryzen硬件调试与性能优化完全指南
  • ECE R79转向系统法规:从ACSF到ESF,智能驾驶的合规之路
  • cpo_fmd分解,冠豪猪优化算法(Crested Porcupine Optimization
  • FPGA时序约束实战:Set_Clock_Sense的精准控制与路径优化
  • 2026年,如何选择一家真正靠谱的智能水电气集中供料系统供应商? - 2026年企业推荐榜
  • 5个技巧教你突破百度网盘限制,高效获取资源的实用指南
  • SDMatte企业级落地方案:中小设计团队批量处理商品图,替代PS通道抠图的低成本路径
  • “多电机速度同步控制系统设计的sim程序与文章”
  • 深入解析Skywalking:企业级分布式追踪与性能监控实战指南
  • Vue3+Three.js实战:拆解Xtreme1点云标注工具的技术架构
  • Java基础实战:用快马平台快速构建学生成绩管理系统巩固核心知识
  • 嵌入式开发必看:MIPI C-PHY与D-PHY实战对比(附参数计算)
  • Qwen3-14B镜像效果:代码生成+注释补全+单元测试编写一体化
  • 别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!
  • AI Agent与传统RPA工具有什么本质区别?2026深度解析企业级智能体进化路径
  • 基于STM32F103主控与BMP085气压计、HMC5883L磁力计的九轴DMP解算与卡尔曼...
  • 数据恢复小白也能搞定!ReclaiMe Pro保姆级教程:从安装到找回误删文件(含RAID恢复)
  • 从VGG到ResNet:我是如何用PyTorch复现经典,并理解‘残差’如何拯救了深度学习的
  • comsol 双层结构曲界面声场仿真 聚焦探头(焦距60mm,晶片直径14mm)辐射声场在双层...
  • 收藏!Java开发者学大模型(LLM)不用转算法,2026最新学习指南(小白友好)
  • 把代码交给云端:Claude Code on the web 能帮开发者省下多少事?
  • 手把手教你用STM32CubeMX+Keil5玩转蓝桥杯G431开发板(附完整配置截图)
  • HC32L130 + DS18B20 粮仓温度监控系统
  • FastMind:比 LangGraph 更轻量的 Python Agent 框架
  • 如何通过OpCore Simplify实现智能自动化黑苹果配置:3大核心功能详解
  • 桌面图标杂乱如何高效管理?NoFences开源工具让文件归类效率提升60%
  • 2026贵阳奶油原木风装修机构深度测评:五强服务商与选型指南 - 2026年企业推荐榜
  • ai辅助开发:借助快马平台ai模型智能生成与优化openclaw抓取机器人架构图
  • League Toolkit:英雄联盟效率工具的全面解析与应用指南