【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 输出
相关推荐
M78佐菲4 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
洪核单片机6 小时前
DPJ-96基于STM32单片机wifi远程监控智慧教室 温湿度光照粉尘人数考勤
stm32·单片机·嵌入式硬件·智慧教室·教室人数考勤
m0_752753127 小时前
单片机基础知识
单片机·51单片机
天空'之城7 小时前
单片机基础核心知识点汇总(三十六)
单片机·嵌入式硬件
云泽8088 小时前
STM32 USART 详解(八):C I/O 串口重定向原理与实现
c语言·stm32·嵌入式硬件
Doraemomo9 小时前
IMX6ULL裸机开发——系统主频和时钟配置
arm开发·嵌入式硬件·makefile·imx6ull
深圳市恒锐丰科技杨生11 小时前
EG1192H 零功耗使能集成上管非同步降压 DC‑DC|屹晶 EGmicro
嵌入式硬件·硬件工程
星栖与芯12 小时前
LiteOS-M 切换汇编逐行图解(1):汇编是什么·寄存器与栈
汇编·stm32·嵌入式硬件·harmonyos·鸿蒙系统
xx~t13 小时前
嵌入式——单片机2
嵌入式硬件·学习·51单片机·串口·蜂鸣器
JNX_SEMI13 小时前
OC5138T 8V~100V超宽输入降压恒流驱动:覆盖12V汽车至72V电动车全场景
单片机·嵌入式硬件