Lines Matching +full:li +full:-
2 * Copyright (c) 2009-2022 Huawei Technologies Co., Ltd. All rights reserved.
9 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * Create: 2009-12-22
22 #include "./hw/armv7-m/prt_task.h"
41 #define OS_TSK_TCB_INDEX_BITS ((4 - OS_TSK_CORE_BYTES_IN_PID) * 8)
46 #define GET_HANDLE(pid) ((pid) & ((1U << OS_TSK_TCB_INDEX_BITS) - 1))
51 #define OS_HWI_HANDLE ((1U << OS_TSK_TCB_INDEX_BITS) - 1)
508 * OS_TSK_EVENT_PEND --- 任务阻塞于等待读事件。
515 * OS_TSK_EVENT_TYPE --- 任务读事件类型,0:ANY; 1:ALL。
522 * OS_TSK_QUEUE_PEND --- 任务阻塞与等待队列。
529 * OS_TSK_QUEUE_BUSY --- 队列正在读写数据。
865 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
881 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
897 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
914 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
978 * <li>任务创建时,会对之前自删除任务的任务控制块和任务栈进行回收,用户独立配置的任务栈除外。</li>
979 * <li>任务名的最大长度为16字节,含结束符。</li>
980 * <li>同一核内任务名不允许重复。</li>
981 * <li>若指定的任务栈大小为0,则使用配置项#OS_TSK_DEFAULT_STACK_SIZE指定的默认的任务栈大小。</li>
982 * <li>任务栈的大小必须按16字节大小对齐。确定任务栈大小的原则是,够用就行:多了浪费,少了任务栈溢出。</li>
983 * <li>具体多少取决于需要消耗多少的栈内存,视情况而定:函数调用层次越深,栈内存开销越大,</li>
984 * <li>局部数组越大,局部变量越多,栈内存开销也越大。</li>
985 * <li>用户配置的任务栈首地址需16字节对齐。</li>
986 * <li>用户配置的任务栈空间需由用户保证其合法性,即对可cache空间的地址用户需要保证其任务栈首地址及栈大小cache</li>
987 * <li>line对齐,系统不做对齐处理,并在使用后需由用户进行释放。</li>
988 * <li>任务创建时,任务创建参数中的任务栈大小配置建议不要使用最小任务栈大小OS_TSK_MIN_STACK_SIZE,</li>
989 * <li>该项只是包含任务上下文预留的栈空间,任务调度时额外的任务开销需要由用户自行保证足够的任务栈空间配置。</li>
1000 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1013 * <li>在osStart之前不能调用该接口。</li>
1014 * <li>若任务仍处于延时、阻塞态,则只是取消挂起态,并不加入就绪队列。</li>
1022 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1035 * <li>在osStart之前不能调用该接口。</li>
1036 * <li>若为当前任务且已锁任务,则不能被挂起。</li>
1037 * <li>IDLE任务不能被挂起。</li>
1045 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1058 * <li>若为自删除,则任务控制块和任务栈在下一次创建任务时才回收。</li>
1059 * <li>对于任务自删除,处理该任务相关的信号量和接收到的消息会强制删除。</li>
1060 * <li>任务自删除时,删除钩子不允许进行pend信号量、挂起等操作。</li>
1068 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1081 * <li>在osStart之前不能调用该接口。</li>
1082 * <li>硬中断处理中,或已锁任务,则延时操作失败。</li>
1083 * <li>若传入参数0,且未锁任务调度,则顺取同优先级队列中的下一个任务执行。如没有同级的就绪任务,</li>
1084 * <li>则不发生任务调度,继续执行原任务。</li>
1092 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1105 * <li>只是锁任务调度,并不关中断,因此任务仍可被中断打断。</li>
1106 * <li>执行此函数则锁计数值加1,解锁则锁计数值减1。因此,必须与#PRT_TaskUnlock配对使用。</li>
1113 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1126 * <li>在osStart之前不能调用该接口。</li>
1127 * <li>执行此函数则锁计数值加1,解锁则锁计数值减1。因此,必须与#PRT_TaskLock配对使用。</li>
1134 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1147 * <li>硬中断处理中,也可获取当前任务PID,即被中断打断的任务。</li>
1148 * <li>在任务切换钩子处理中调用时,获取的是切入任务的ID。</li>
1156 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1174 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1187 * <li>若获取当前任务的信息,则只在硬中断、异常的处理中才有意义,</li>
1188 * <li>由于任务切换时,上下文信息也保存在任务栈中,因此任务信息中的SP是保存上下文之后的实际的SP值。</li>
1197 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1216 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1229 * <li>在osStart之前不能调用该接口。</li>
1230 * <li>若设置的优先级高于当前运行的任务,则可能引发任务调度。</li>
1231 * <li>若调整当前运行任务的优先级,同样可能引发任务调度。</li>
1232 * <li>若任务发生优先级继承,或者任务阻塞在互斥信号量或优先级唤醒模式的信号量上,不可以设置任务的优先级。</li>
1241 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1254 * <li>用户应先判断PEND状态,状态为0表明任务没有被信号量阻塞。</li>
1264 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1277 * <li>在osStart之前不能调用该接口。</li>
1278 * <li>不能查询ID不合法的任务名。</li>
1279 * <li>若查询没有创建的任务名,查询失败。</li>
1288 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1301 * <li>不同钩子函数间执行的先后顺序,不应当存在依赖关系。</li>
1302 * <li>不应在任务切换钩子里进行可能引起任务调度的处理,如:任务延时、P信号量等。</li>
1308 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>
1324 * <ul><li>prt_task.h:该接口声明所在的头文件。</li></ul>