liteos(华为liteos任务的关断)
本文目录
华为liteos任务的关断
摘要中断控制器:中断控制器是CPU众多外设中的一个,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU。可以通过对中断控制器编程实现对中断源的优先级、触发方式、打开和关闭源等设置操作。常用的中断控制器有VIC(Vector Interrupt Controller)和GIC(General Interrupt Controller),在ARM Cortex-A7中使用的中断控制器是GIC。
咨询记录 · 回答于2021-12-27
华为liteos任务的关断
不需要关断了?
需要
中断是指出现需要时, CPU暂停执行当前程序,转而执行新程序的过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的事务,此时, CPU暂时中止当前程序的执行转而处理这个事务,这个过程就叫做中断。
众多周知, CPU的处理速度比外设的运行速度快很多,外设可以在没有CPU介入的情况下完成一定的工作,但某些情况下需要CPU为其做一定的工作。
通过中断机制,在外设不需要CPU介入时, CPU可以执行其它任务,而当外设需要CPU时通过产生中断信号使CPU立即中断当前任务来响应中断请求。这样可以使CPU避免把大量时间耗费在等待,查询外设状态的操作上,因此将大大提高系统实时性以及执行效率。
示例有代码吗
接口名\x09描述LOS_HwiCreate\x09硬中断创建,注册硬中断处理程序LOS_IntUnLock\x09开中断LOS_IntRestore\x09恢复到关中断之前的状态LOS_IntLock\x09关中断hal_interrupt_mask\x09中断屏蔽(通过设置寄存器,禁止CPU响应该中断)hal_interrupt_unmask\x09中断使能(通过设置寄存器,允许CPU响应该中断)
与中断相关的硬件可以划分为三类:设备、中断控制器、 CPU本身。
设备:发起中断的源,当设备需要请求CPU时,产生一个中断信号,该信号连接至中断控制器。
中断控制器:中断控制器是CPU众多外设中的一个,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU。可以通过对中断控制器编程实现对中断源的优先级、触发方式、打开和关闭源等设置操作。常用的中断控制器有VIC(Vector Interrupt Controller)和GIC(General Interrupt Controller),在ARM Cortex-A7中使用的中断控制器是GIC。
CPU: CPU会响应中断源的请求,中断当前正在执行的任务,转而执行中断处理程序。
中断号:每个中断请求信号都会有特定的标志,使得计算机能够判断是哪个设备提出的中断请求,这个标志就是中断号。
中断请求:“紧急事件”需向CPU提出申请(发一个电脉冲信号),要求中断,及要求CPU暂停当前执行的任务,转而处理该“紧急事件”,这一申请过程称为中断申请。
中断优先级:为使系统能够及时响应并处理所有中断,系统根据中断时间的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。 Huawei LiteOS中所有的中断源优先级相同,不支持中断嵌套或抢占。
中断处理程序:当外设产生中断请求后, CPU暂停当前的任务,转而响应中断申请,即执行中断处理程序。
中断触发:中断源发出并送给CPU控制信号,将接口卡上的中断触发器置“1”,表明该中断源产生了中断,要求CPU去响应该中断,CPU暂停当前任务,执行相应的中断处理程序。
中断触发类型:外部中断申请通过一个物理信号发送到GIC,可以是电平触发或边沿触发。
中断向量:中断服务程序的入口地址。
中断向量表:存储中断向量的存储区,中断向量与中断号对应,中断向量在中断向量表中按照中断号顺序存储。
中断共享:当外设较少时,可以实现一个外设对应一个中断号,但为了支持更多的硬件设备,可以让多个设备共享一个中断号,共享同一个中断的中断处理程序形成一个链表,当外部设备产生中断申请时,系统会遍历中断号对应的中断处理程序链表。
中断底半部:中断处理程序耗时应尽可能短,以满足中断的快速响应,为了平衡中断处理程序的性能与工作量,将中断处理程序分解为两部分:顶半部和底半部。
顶半部完成尽可能少的比较紧急的任务,它往往只是简单地读取寄存器中的中断状态并清除中断标志位即进行“登记工作”,将耗时的底半部处理程序挂到系统的底半部执行队列中去。
Huawei LiteOS的中断机制支持中断共享:
中断共享的实现依赖于链表,对应每一个中断号创建一个链表,链表节点中包含注册的中断处理函数和函数入参。当对同一中断号多次创建中断时,将中断处理函数和函数入参添加到中断号对应的链表中,因此当硬件产生中断时,通过中断号查找到其对应的结构体链表,遍历执行链表中的中断处理函数。
Huawei LiteOS的中断机制支持中断底半部:
中断底半部的实现基于workqueue,在中断处理程序中将工作分为顶半部和底半部,底半部处理程序与work关联,并挂载到合法workqueue上。系统空闲时执行workqueue中的work上的底半部程序。
创建两个任务,并实现以下功能:
1.开机执行任务1,串口程序输出:任务1开始执行;
2.任务1执行时板载LED1点亮;
3.点击按键1,任务1结束执行,并输出任务1结束,LED1关闭,再次点击按键1,任务1打开。
4.点击按键2,执行任务2,并输出任务2开启。
5.任务2开启后,自动分配内存,串口输出:正在申请内存、内存申请成功。
6.再次点击按键2,任务2关闭,任务2关闭后,自动释放内存,串口输出:正在释放内存、内存释放成功。
7.无论任何时候,点击按键3,执行中断程序,串口输出:
(1)中断开启;
(2)开启定时器;
(3)开启LED2;
(4)定时器读秒,奇数关灯、偶数开灯。
8.定时器读至少4个数后,串口输出:
(1)关闭定时器;
(2)退出中断;
(3)重新执行前期未执行完成程序。
额外任务:点击按键4后,自动释放所有内存。
这个会?
创建两个任务,并实现以下功能:
1.开机执行任务1,串口程序输出:任务1开始执行;
2.任务1执行时板载LED1点亮;
3.点击按键1,任务1结束执行,并输出任务1结束,LED1关闭,再次点击按键1,任务1打开。
4.点击按键2,执行任务2,并输出任务2开启。
5.任务2开启后,自动分配内存,串口输出:正在申请内存、内存申请成功。
6.再次点击按键2,任务2关闭,任务2关闭后,自动释放内存,串口输出:正在释放内存、内存释放成功。
7.无论任何时候,点击按键3,执行中断程序,串口输出:
(1)中断开启;
(2)开启定时器;
(3)开启LED2;
(4)定时器读秒,奇数关灯、偶数开灯。
8.定时器读至少4个数后,串口输出:
(1)关闭定时器;
(2)退出中断;
(3)重新执行前期未执行完成程序。
额外任务:点击按键4后,自动释放所有内存。
这个会?
我再发点东西给您,你看有用没?
没用的话,我也就没办法了
开发流程修改配置项打开硬中断裁剪开关: OS_INCLUDE_HWI定义为YES.配置硬中断使用最大数: OS_HWI_MAX_USED_NUM.调用中断初始化Los_HwiInit接口。调用中断创建接口LOS_HwiCreate创建中断调用hal_interrupt_unmask接口使能指定中断。调用hal_interrupt_mask接口屏蔽指定中断。
本实例实现如下功能。关中断中断创建中断使能中断恢复中断屏蔽
前提条件:在los_config.h中,将OS_INCLUDE_HWI定义为YES。在los_config.h中,设置最大硬中断个数OS_HWI_MAX_USED_NUM。
代码实现如下:#include "los_hwi.h"#include "los_typedef.h"#define HWI_NUM_INT50 50void uart_irqhandle(int irq,void *dev){printf("\n int the func uart_irqhandle \n");}void hwi_test(){ int a = 1; UINTPTR uvIntSave; uvIntSave = LOS_IntLock(); LOS_HwiCreate(HWI_NUM_INT50, 0,0,uart_irqhandle,NULL);//创建中断 hal_interrupt_unmask(HWI_NUM_INT50); LOS_IntRestore(uvIntSave); hal_interrupt_mask(HWI_NUM_INT50);}
能不能帮我试试做出来?上面那个?
亲,这个没办法的
抱歉
亲,对不起了
评论收起
cubemax软件和liteos-studio的区别
cubemax软件和liteos-studio的相同点是:都是芯片配置软件。不同点是:cubemax软件是一款直接配置芯片参数的软件,它依靠linux系统建成,从而让用户可以在其他软件设计芯片。而liteos-studio不是基于linux的,是华为发布的敏捷网络3.0中的一个轻量级的物联网操作系统。掌握cubemax软件和LiteOS Studio的图形化调试能力是物联网开发的必备技能。
更多文章:
景深有什么用 景深作用及控制摄影景深方法?什么叫“景深效果”
2023年2月14日 06:15
三星gtn7100开不了机(三星note2 7100 不能开机)
2023年6月18日 01:50
诺基亚有独立音乐芯片的手机(诺基亚的手机有哪几款是有独立音乐芯片的)
2023年7月23日 13:20
旭日集团股份有限公司(中国航天科工集团航天晨光股份有限公司怎么样)
2024年6月26日 06:12
中画幅的富士GFX 50S怎么样?有用过富士中画幅相机的吗使用佳能相机的有必要换富士中画幅吗
2024年7月14日 08:25