首页 > 其他分享 >MTK之外部中断篇

MTK之外部中断篇

时间:2023-02-27 13:33:21浏览次数:37  
标签:EINT NO 中断 MTK state sleep eint SLEEP 外部


例子:添加一个按键,按下时响应中断函数,这里的功能为按下后系统进入睡眠。

1)在interface\hwdrv\Eint.h的eint_channel_type中添加

sleep_eint_chann

2)在custom\drv\misc_drv\CUSTOMER_BB\Eint_def.c中添加

extern const kal_uint8 SLEEP_EINT_NO;

kal_uint8    eint_sleep_handler = 0xFF;

注:一般都会有__CUST_NEW__这个宏定义,所以应在该宏条件下添加,最好先确认编译条件中是否有这个宏。

在函数custom_eint_get_channel的switch语句中添加
case sleep_eint_chann:
return ((kal_uint8)SLEEP_EINT_NO);
3)在custom\drv\misc_drv\CUSTOMER_BB\Eint_var.c中设定中断号,这里设置为EINT2
const unsigned char SLEEP_EINT_NO = 2;
4)在custom\drv\misc_drv\CUSTOMER_BB\auxmain.c的aux_task_main函数中注册中断
eint_sleep_handler = L1SM_GetHandle(); //获取睡眠控制句柄
L1SM_SleepDisable(eint_sleep_handler); //Disable睡眠
//注册睡眠模式处理外部中断
EINT_Registration(SLEEP_EINT_NO,
KAL_TRUE,
sleep_state,
SLEEP_EINT_HISR,
KAL_FALSE);

在该文件中实现中断函数:

kal_bool                 sleep_state = LEVEL_LOW;
extern const kal_uint8 SLEEP_EINT_NO;//外部中断号
void SLEEP_EINT_HISR(void);//中断函数
void SLEEP_EINT_HISR(void)
{
if(sleep_state == LEVEL_HIGH)
{
L1SM_SleepDisable(eint_sleep_handler);
}
else
{
L1SM_SleepEnable(eint_sleep_handler); //睡眠使能
}
sleep_state = !sleep_state;
EINT_Set_Polarity(SLEEP_EINT_NO, sleep_state);//设置中断方式
EINT_UnMask(SLEEP_EINT_NO);
}

标签:EINT,NO,中断,MTK,state,sleep,eint,SLEEP,外部
From: https://blog.51cto.com/u_15070324/6088360

相关文章

  • 8.3-中断与响应
    中断的基本概念是指CPU正常运行程序时,由于内部或者外部事件(或由程序,输入输出)引起CPU中断正在运行的程序,而转到为中断事件服务的程序中去,服务完毕,再返回原程序的这一过程......
  • uni-app:微信小程序:使用外部字体(hbuilderx 3.7.3)
    一,代码:在微信小程序中,字体文件不允许使用本地文件@font-face{font-family:"kaiti";src:url("https://spkf-zsxn-prod.s3.cn-north-1.amazonaws.com.......
  • stm32f407探索者开发板(十九)——外部中断实验-EXIT
    文章目录​​一、外部中断概述​​​​二、外部中断库函数设置​​​​2.1SYSCFG_EXTILineConfig(设置IO口与中断线的映射关系)​​​​2.2EXTI_Init(初始化中断线:触发方式等......
  • wget 下载中断了怎么办?
    命令:wget-t0-c<文件地址>-c表示断点续连-t表示断了会每经过几秒重新连接连接一次,0表示一直不断重连,有最大连接次数的。注意:记得在原来的目录下执行这个命令,......
  • 因外部依赖包内方法签名修改而导致线上NoSuchMethodError异常
    NoSuchMethodError异常问题描述修复大数据组件包包中的漏洞,将hive-common3.1.2版本升级到3.1.3,导致在连接hive表,查询schema时出现NosuchMethodError异常。报错堆栈信息......
  • 操作系统的中断、异常、和系统调用
    中断和异常的处理机制都具有硬件和软件的处理过程,合在一起才能完成操作系统的一个具体的服务为了区分异常、终端的来源,需要模拟出一个类似于键值对的数据,key是中断号或异......
  • 中断、异常、系统调用
    启动DISK:最开始时,OS存放在DISK中,再由BIOS提供相应的支持;BIOS:是指基本I/O处理系统;功能是在计算机开机之后,让计算机系统可以检测各种外设,进而去加载相应的软件去执行。Boo......
  • yolov5的训练中断恢复
    Yolov5的恢复训练使用自带参数-resume1.train.py文件中找到函数parse_opt,修改参数–resume的默认参数为Ture        2.runs/train/exp*/weights/路径......
  • linux中断处理总结
    ARM64中断处理过程:https://www.daodaodao123.com/?p=146上文总结了ARM64裸机中断处理的详细过程,这里主要总结下linux中断处理相关内容;0.为什么有中断?中断,本质上是外设发......
  • java高级开发一(javafx 外部类内部类)
    一.外部类和内部类1.外部类调用内部类(1)外部类方法为静态方法调用内部静态类可直接new类名()调用内部非静态类必须new外部类名().new内部类名()(2)外部类方法为非静......