当前位置: 首页 > news >正文

中山网站建设电话网站关键词太多

中山网站建设电话,网站关键词太多,杭州网站建设费用多少钱,网站备案查询1. Linux中断简介 1#xff09;中断号 linux内核中使用一个int变量表示中断号。 2#xff09;申请中断#xff1a; 该函数可以自动激活中断#xff0c;但是可能引起睡眠#xff0c;所以需要小心使用。 int request_irq(unsigned int irq, //要申请中断的中断号irq_ha…1. Linux中断简介 1中断号 linux内核中使用一个int变量表示中断号。 2申请中断 该函数可以自动激活中断但是可能引起睡眠所以需要小心使用。 int request_irq(unsigned int irq, //要申请中断的中断号irq_handler_t handler, //中断处理函数unsigned long flags, //中断标志-共享触发方式等const char *name, //中断名void *dev) //flags设置为共享时用dev区分中断一般是设备结构体3释放中断 该函数可以自动释放中断。如果是非共享的删除中断处理函数后还会禁止中断。共享中断只有在释放最后中断处理函数的时候才会被禁止掉。 void free_irq(unsigned int irq, void *dev)4中断处理函数 该函数可以自动释放中断。如果是非共享的删除中断处理函数后还会禁止中断。共享中断只有在释放最后中断处理函数的时候才会被禁止掉。 irqreturn_t (*irq_handler_t) (int, void *) //para1要处理的中断号 //para2一个通用指针与dev参数保持一致用于区分中断设备。 //返回值irqreturn_t是个枚举类5中断使能与禁止函数 //使能或禁止某一个中断 void enable_irq(unsigned int irq) //使能 void disable_irq(unsigned int irq) //禁止等到当前正在执行的中断处理函数完毕才返回 void disable_irq_nosync(unsigned int irq) //禁止不等待当前正在执行的中断处理函数完毕立即返回//使能/关闭全局中断使能/关闭处理器整个中断系统 local_irq_enable() local_irq_disable() //不同任务之间调用上述两个函数可能导致程序崩溃以下函数可以保存中断状态并恢复 local_irq_save(flags) local_irq_restore(flags)2. Linux中断的上半部和下半部 目的实现中断处理函数的快进快出。 上半部中断处理函数。将处理较快占用时间短的操作放到上半部。 下半部将比较耗时的工作放到下半部执行。 上半部和下半部的划分完全看驱动开发者意愿以下是一些参考划分依据 ①如果要处理的内容不希望被其它中断打断放到上半部。 ②如果要处理的任务对时间敏感上半部。 ③如果要处理的任务与硬件有关上半部。 ④其它下半部。 3. Linux中断的上半部和下半部处理方式 上半部处理方式直接写中断处理函数。 下半部处理方式软中断tasklet工作队列。建议使用tasklet。 1软中断   linux内核使用softirq_action结构体表示软中断。软中断一共有10个每个CPU处理自己触发的软中断但是软中断服务函数都是相同的。 ①注册软中断处理函数 void open_softirq(int nr, void (*action)(struct softirq_action *)) /* nr要开启的软中断可以去看interrupt.h中定义的NR_SOFTIRQS枚举类。 action软中断对应处理函数。 */②触发软中断 void raise_softirq(unsigned int nr③初始化软中断软中断必须在编译的时候静态注册。   可以看到会默认打开tasklet和高优先级软中断。 void __init softirq_init(void) {int cpu;for_each_possible_cpu(cpu) {per_cpu(tasklet_vec, cpu).tail per_cpu(tasklet_vec, cpu).head;per_cpu(tasklet_hi_vec, cpu).tail per_cpu(tasklet_hi_vec, cpu).head;}open_softirq(TASKLET_SOFTIRQ, tasklet_action);open_softirq(HI_SOFTIRQ, tasklet_hi_action); }2tasklet   linux内核使用tasklet_struct结构体表示tasklet。 struct tasklet_struct {struct tasklet_struct *next; /* 下一个 tasklet */unsigned long state; /* tasklet 状态 */atomic_t count; /* 计数器记录对 tasklet 的引用数 */void (*func)(unsigned long); /* tasklet 执行的函数 */unsigned long data; /* 函数 func 的参数 */ };①定义一个tasklet然后在驱动入口函数中初始化。 void tasklet_init(struct tasklet_struct *t, void (*func)(unsigned long), unsigned long data); /* t要初始化的tasklet functasklet处理函数 datafunc的参数 */ //也可以用宏定义实现一样的效果 DECLARE_TASKLET(name, func, data)②上半部调用tasklet void tasklet_schedule(struct tasklet_struct *t)3工作队列   工作队列在进程上下文执行将要推后的工作交给一个内核线程执行工作队列允许睡眠或重新调度。Linux内核使用work_struct结构体表示一个工作使用workqueue_struct结构体表示工作队列。   Linux内核使用工作者线程worker thread处理工作队列中的各工作。用worker结构体表示工作者线程。 ①实际开发中只需要自己定义work_struct也就是一个工作。然后初始化工作。 #define INIT_WORK(_work, _func) //或者用这个宏直接创建初始化工作 #define DECLARE_WORK(n, f)②调度工作 bool schedule_work(struct work_struct *work)工作的使用方式其实和tasklet差不多。 4. 设备树中断信息节点 dtsi中的中断控制器节点 intc: interrupt-controller00a01000 {compatible arm,cortex-a7-gic; //在内核源码中搜索即可找到GIC驱动文件#interrupt-cells 3; //GIC下设备的cells有3个分别表示中断类型中断号触发类型/PPI中断掩码。GPIO做中断控制器时cells2。interrupt-controller; //表明这是一个中断控制器节点reg 0x00a01000 0x1000, 0x00a02000 0x100; 7 };以一个具体外设的中断配置来看打开dtsfxls8471磁力计芯片其中断引脚连接到IMX6ULL的SNVS_TAMPER0这个引脚可以复用为GPIO5_IO00。所以这里可以使用gpio作为中断控制器。 fxls84711e {compatible fsl,fxls8471;reg 0x1e;position 0;interrupt-parent gpio5; //设置gpio5为中断控制器interrupts 0 8; //0表示gpio58表示低电平触发只有两个因为gpio做gic时cells2 };获取中断号 //从interrupts 属性中提取对应中断号 unsigned int irq_of_parse_and_map(struct device_node *dev, int index) /*dev设备节点 index索引号interrupts 属性可能包含多条中断信息通过 index 指定要获取的信息。 return中断号*///如果使用gpio可以用以下函数获取gpio对应中断号 int gpio_to_irq(unsigned int gpio) /* gpio要获取的gpio编号 returngpio对应中断号 */
http://www.sczhlp.com/news/277210/

相关文章:

  • 手机如何建设网站首页汝州住房和城乡建设网站
  • 从哪些方面评价一个企业的网站建设中国有限公司官网
  • 许昌市做网站公司做一家购物网站要多少钱
  • 自己做的网站别人那些网站做民宿
  • 网站备案教育审批号网站建设周期与进度安排
  • 做谷歌网站吗实训百度搜索引擎的总结
  • 学校网站建设与管理工作指令
  • 网站制作案例哪家强搭建网站是什么意思
  • 怎样做企业网站备案安徽门户网站建设
  • 网站开发php未来发展wordpress信息登记
  • 海口网站建设q479185700棒利用cms怎么做网站
  • 中上网站建设合肥网站优化哪家好
  • 电子商务网站建设结构分析啥是东莞网站优化推广
  • 如何判断网站是不是自适应景德镇网站维护
  • 单位网站开发费用是否计入无形资产广安网站建设公司
  • 贵州省建设厅建筑质监站网站公司网站推广计划书怎么做
  • 自己做电视视频网站网站建设公司如何推广
  • .net电子商务网站开发北京海淀区区号
  • 网站运营与管理的目的是小鱼儿外贸网站
  • 橄榄树网站建设请人做网站需要多少钱
  • 豆瓣中需要优化的网站标签昆明建设网站的公司
  • 深圳坪山网站建设上海关键词排名优化怎样
  • 上海专业网站建设公司电话西安浐灞生态区规划建设局网站
  • 网站备案 图标建一个商城型网站
  • 网页设计网站总结报告怎么写网站地址是什么
  • 网页设计与网站建设考试热点教学资源网站建设方案
  • 网站开发软件中文版ps手机网站制作
  • 网站模板怎么修改logo拓什么设计网站
  • 网站导航优化的描述天津高级网站建设
  • python3 网站开发实例太原seo代理商