【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 输出
相关推荐
fengfuyao9851 小时前
利用 STM32 和 ADS1256 进行高精度数据采集
stm32·单片机·嵌入式硬件
黑白园1 小时前
ADC读取XY二轴操纵杆数据通过I2C_GPIO模拟 控制0.96寸OLED显示
stm32·单片机·嵌入式硬件
一个平凡而乐于分享的小比特2 小时前
还在手动挡写单片机?MicroPython 一脚油门踩进 Python 硬件世界
单片机·嵌入式硬件·micropython
FreakStudio3 小时前
WIZnet-EVB-Pico2开始,用MicroPython玩转以太网开发
python·单片机·嵌入式·大学生·面向对象·技术栈·并行计算·电子diy·电子计算机
LCG元3 小时前
STM32实战:基于STM32F103的工业仪表数据采集(多路ADC)
stm32·单片机·嵌入式硬件
BT-BOX3 小时前
Stm32CubeMX+Proteus仿真--STM32外部中断
stm32·单片机·proteus
Wallystech-Linda5 小时前
DR9574 vs DR9574S — Choosing the Right IPQ9574 WiFi 7 Platform for Your Network
嵌入式硬件
森利威尔电子-5 小时前
森利威尔SL8700 降压型大功率 LED 恒流驱动器:5A/95%效率,支持 PWM/模拟调光
单片机·嵌入式硬件·集成电路·芯片·电源芯片
三佛科技-187366133975 小时前
GP8892SEH贴片SOP7省外围5V2A隔离型原边反馈芯片直接替代MT3723
单片机·嵌入式硬件
Quinn275 小时前
正点原子 STM32MP257 修复异核 FreeRTOS 例程 osDelay() 函数比 HAL_Delay() 延时快的问题
stm32·单片机·嵌入式硬件