首页 > 其他分享 >jz2400向内核申请中断

jz2400向内核申请中断

时间:2023-12-18 17:12:50浏览次数:25  
标签:中断 irq int num exit 内核 jz2400 printk include

/iqr_test irq_traditional/


#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/gpio.h>
#include <linux/delay.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <mach/hardware.h>
#include <linux/device.h>
#include <linux/sched.h>
#include <mach/regs-gpio.h>
#include <plat/gpio-fns.h>


int irq_num;

irqreturn_t irq_handler(int irq, void *args){
	printk(KERN_INFO "I am a irq_handler function\n");

	return IRQ_RETVAL(IRQ_HANDLED);
}
static int __init hello_init(void){
	int ret;

	irq_num = gpio_to_irq(S3C2410_GPF(0));
		printk(KERN_INFO "irq_num = %d\n", irq_num);
	ret = request_irq(irq_num, irq_handler, IRQF_TRIGGER_RISING, "irq_test", NULL);
	if(ret < 0){
		printk(KERN_INFO "request_irq failed\n");
	}
	return 0;

}

static void __exit hello_exit(void){

	free_irq(irq_num, NULL);

	printk(KERN_INFO "irq_exit\n");

	return;

}



module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");

标签:中断,irq,int,num,exit,内核,jz2400,printk,include
From: https://www.cnblogs.com/zxz-FINE/p/17911666.html

相关文章

  • Linux内核中的同步机制
    Linux内核中的同步机制是用来确保在多任务、多处理器环境下的并发操作的正确性和一致性。以下是一些主要的同步机制:原子操作:原子操作是不可分割的操作,也就是说,它们在执行过程中不会被中断。这对于保护共享数据非常关键,特别是在多处理器环境中。信号量(Semaphore):信号量是......
  • mmap内存映射 --- 字符设备驱动,用户空间和内核空间映射到同一个物理内存
    内存映射可实现用户程序对设备驱动内存的直接存取示例代码:驱动层#include<linux/init.h>#include<linux/module.h>#include<linux/miscdevice.h>#include<linux/fs.h>#include<linux/slab.h>//定义kmalloc接口#include<asm/io.h>//定义virt_to_phys接......
  • linux---内核笔记
    semaphore用于进程和进程之间的同步允许有多个进程进入临界区代码执行进程获取不到信号量锁会陷入休眠,让出cpu信号量本质是基于进程调度器,UP和SMP下的实现无差异。被信号量锁保护的临界区代码允许睡眠,这是和自旋锁最大的区别之一。不支持进程和中断之间的同步,这是和自旋锁......
  • arch启动virtualbox实例出现错误:内核驱动未安装
    参照https://cn.linux-console.net/?p=22258错误如下Kerneldrivernotinstalled(rc=-1908)TheVirtualBoxLinuxkerneldriveriseithernotloadedornotsetupcorrectly. Pleasetrysettingitupagainbyexecuting'/sbin/vboxconfig'asroot.......
  • Oracle内核技术揭秘 -- 存储结构
    区:表空间中的基本单位在Oracle11.2.0.3以上的版本中,创建新表默认不会分配区给这个表的,只有在插入了数据之后才会分配一个区给这个表空间。区是表空间中空间分配的基本单位,如果一个区的空间用完了,Oracle就会默认再分配一个区。Oracle专门设定了两种类型的表空间:统一大小表空间和......
  • FreeRTOS中的任务优先级与单片机中断优先级的异同深析
    引言:在实时嵌入式系统开发中,任务的优先级和中断的优先级是关键的调度和响应机制。FreeRTOS提供了丰富的任务调度功能,而单片机的中断系统也具有类似的机制。本篇博客将深入探讨FreeRTOS中的任务优先级与单片机中断优先级的异同,通过代码演示展示它们的工作原理和使用方式。任务优先......
  • 内部集成M0内核MCU Sub-1G 高性能低功耗的单片集成收发芯片DP4306F
    DP4306F是一款高性能低功耗的单片集成收发机,集成M0核MCU,工作频率可覆盖200MHz~1000MHz,支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率、频道选择以及数据包格式进行灵活配置,并......
  • 聊一聊 .NET高级调试 内核模式堆泄露
    一:背景1.讲故事前几天有位朋友找到我,说他的机器内存在不断的上涨,但在任务管理器中查不出是哪个进程吃的内存,特别奇怪,截图如下:在我的分析旅程中都是用户态模式的内存泄漏,像上图中的异常征兆已经明确告诉你了,不是用户态程序吃的内存,那就是内核态程序吃的,比如:某些驱动程序操......
  • UBUNTU 18.04.6编译linux内核make ARCH=arm menuconfig提示recipe for target ‘menuc
    UBUNTU18.04.6编译linux内核makeARCH=armmenuconfig提示recipefortarget‘menuconfig’failed:这是因为没有安装图形化Kernel配置工具。要么安装libncurses5-dev库,要么安装libncurses-dev这是因为没有安装图形化Kernel配置工具。要么安装libncurses5-dev库,要么安......
  • UBUNTU 18.04.6 在编译LINUX内核的时候执行MAKE ARCH=ARM SOCFPGA_DEFCONFIG提示Can't
     Intel针对SoCFPGA芯片提供的Linux源码中已经提供好了一个名为socfpga_defconfig的配置文件,我们对内核的配置和修改,建议基于此配置文件进行,因此在进行配置前,需要先将该配置文件导入到默认配置文件.config中,操作方法很简单。 在终端输入makeARCH=armsocfpga_defconfig......