【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-running Restart(重启)、Free-running(自由运行)
中断类型 比较中断、计数到 0 中断 溢出中断、2 路输入捕获、3 路输出比较
典型应用 精准周期中断、定时任务调度 延时函数、信号脉宽 / 频率测量、PWM 输出
相关推荐
国科安芯1 小时前
ASC8T245S 8通道电平转换设计实战:从系统架构到QFN24 Layout再到量产测试
网络·单片机·物联网·安全·fpga开发·系统架构
云栖梦泽2 小时前
将RAW打包成MIPI CSI2
linux·人工智能·嵌入式硬件
伟大的前程2 小时前
us级开定时器中断,单片机的开销大,改用轮询的方式
单片机·嵌入式硬件
ACP广源盛1392462567314 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
ShallWeL15 小时前
NVIDIA Jetson 早期系列演进
人工智能·嵌入式硬件·边缘计算·智能硬件
2501_9142459317 小时前
C语言与硬件交互:从GPIO到中断的嵌入式编程实践
c语言·单片机·交互
2401_8541515518 小时前
嵌入式 Bootloader 与 OTA 固件升级深度解析——从 Flash 分区到安全回滚
开发语言·stm32·单片机·嵌入式硬件·安全·php
炸膛坦客18 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
Yunhoa18 小时前
51单片机(DS18B20 数字温度传感器)
单片机·嵌入式硬件·51单片机
zlinear数据采集卡20 小时前
2mV纹波的代价:硬核拆解ZLinear模拟前端放大器与正负可调电源设计
arm开发·单片机·嵌入式硬件·fpga开发·架构·开源