未验证 提交 8fc6d453 编写于 作者: O openharmony_ci 提交者: Gitee

!1551 posix、cmsis和kernel相关对外接口文档更新

Merge pull request !1551 from LiteOS/master
......@@ -52,7 +52,7 @@ Hi3516开源板使用FAT文件系统,不允许该操作。
### LiteOS内核已支持哪几款芯片架构<a name="section1131661465417"></a>
LiteOS-M已支持risc-v、Cortex-m3\\m4\\m7\\m33、arm9,待支持c-sky、xtensa;LiteOS-A已支持armv7-a,待支持armv8-a,请关注开源社区更新。
LiteOS-M已支持risc-v、Cortex-m3\\m4\\m7\\m33、arm9c-sky、xtensa;LiteOS-A已支持armv7-a,待支持armv8-a,请关注开源社区更新。
## 三方组件<a name="section971818231178"></a>
......
......@@ -29,12 +29,15 @@ OpenHarmony LiteOS-M内核的时间管理提供下面几种功能,接口详细
| 功能分类 | 接口名 | 描述 |
| -------- | -------- | -------- |
| 时间转换 | LOS_MS2Tick | 毫秒转换成Tick |
| LOS_Tick2MS | Tick转化为毫秒 |
| OsCpuTick2MS | Cycle数目转化为毫秒,使用2个UINT32类型的数值分别表示结果数值的高、低32位。 |
| OsCpuTick2US | Cycle数目转化为微秒,使用2个UINT32类型的数值分别表示结果数值的高、低32位。 |
| | LOS_Tick2MS | Tick转化为毫秒 |
| | OsCpuTick2MS | Cycle数目转化为毫秒,使用2个UINT32类型的数值分别表示结果数值的高、低32位。 |
| | OsCpuTick2US | Cycle数目转化为微秒,使用2个UINT32类型的数值分别表示结果数值的高、低32位。 |
| 时间统计 | LOS_SysClockGet | 获取系统时钟 |
| LOS_TickCountGet | 获取自系统启动以来的Tick数 |
| LOS_CyclePerTickGet | 获取每个Tick多少Cycle数 |
| | LOS_TickCountGet | 获取自系统启动以来的Tick数 |
| | LOS_CyclePerTickGet | 获取每个Tick多少Cycle数 |
| | LOS_CurrNanosec |获取自系统启动以来的纳秒数|
| 延时管理 | LOS_UDelay |以us为单位的忙等,但可以被优先级更高的任务抢占|
| | LOS_MDelay |以ms为单位的忙等,但可以被优先级更高的任务抢占|
## 开发流程
......
......@@ -23,85 +23,85 @@ CMSIS-RTOS v2提供下面几种功能,接口详细信息可以查看API参考
| 功能分类 | 接口名 | 描述 |
| -------- | -------- | -------- |
| 内核信息与控制 | osKernelGetInfo | 获取RTOS内核信息。 |
| osKernelGetState | 获取当前的RTOS内核状态。 |
| osKernelGetSysTimerCount | 获取RTOS内核系统计时器计数。 |
| osKernelGetSysTimerFreq | 获取RTOS内核系统计时器频率。 |
| osKernelInitialize | 初始化RTOS内核。 |
| osKernelLock | 锁定RTOS内核调度程序。 |
| osKernelUnlock | 解锁RTOS内核调度程序。 |
| osKernelRestoreLock | 恢复RTOS内核调度程序锁定状态。 |
| osKernelResume | 恢复RTOS内核调度程序。(暂未实现) |
| osKernelStart | 启动RTOS内核调度程序。 |
| osKernelSuspend | 挂起RTOS内核调度程序。(暂未实现) |
| osKernelGetTickCount | 获取RTOS内核滴答计数。 |
| osKernelGetTickFreq | 获取RTOS内核滴答频率。 |
| 线程管理 | osThreadDetach | 分离线程(线程终止时可以回收线程存储)。(暂未实现) |
| osThreadEnumerate | 枚举活动线程。(暂未实现) |
| osThreadExit | 终止当前正在运行的线程的执行。 |
| osThreadGetCount | 获取活动线程的数量。 |
| osThreadGetId | 返回当前正在运行的线程的线程ID。 |
| osThreadGetName | 获取线程的名称。 |
| osThreadGetPriority | 获取线程的当前优先级。 |
| osThreadGetStackSize | 获取线程的堆栈大小。 |
| osThreadGetStackSpace | 根据执行期间的堆栈水印记录获取线程的可用堆栈空间。 |
| osThreadGetState | 获取线程的当前线程状态。 |
| osThreadJoin | 等待指定线程终止。(暂未实现) |
| osThreadNew | 创建一个线程并将其添加到活动线程中。 |
| osThreadResume | 恢复线程的执行。 |
| osThreadSetPriority | 更改线程的优先级。 |
| osThreadSuspend | 暂停执行线程。 |
| osThreadTerminate | 终止线程的执行。 |
| osThreadYield | 将控制权传递给处于就绪状态的下一个线程。 |
| 线程标志 | osThreadFlagsSet | 设置线程的指定线程标志。(暂未实现) |
| osThreadFlagsClear | 清除当前正在运行的线程的指定线程标志。(暂未实现) |
| osThreadFlagsGet | 获取当前正在运行的线程的当前线程标志。(暂未实现) |
| osThreadFlagsWait | 等待当前正在运行的线程的一个或多个线程标志发出信号。(暂未实现) |
| | osKernelGetState | 获取当前的RTOS内核状态。 |
| | osKernelGetSysTimerCount | 获取RTOS内核系统计时器计数。 |
| | osKernelGetSysTimerFreq | 获取RTOS内核系统计时器频率。 |
| | osKernelInitialize | 初始化RTOS内核。 |
| | osKernelLock | 锁定RTOS内核调度程序。 |
| | osKernelUnlock | 解锁RTOS内核调度程序。 |
| | osKernelRestoreLock | 恢复RTOS内核调度程序锁定状态。 |
| | osKernelResume | 恢复RTOS内核调度程序。(暂未实现) |
| | osKernelStart | 启动RTOS内核调度程序。 |
| | osKernelSuspend | 挂起RTOS内核调度程序。(暂未实现) |
| | osKernelGetTickCount | 获取RTOS内核滴答计数。 |
| | osKernelGetTickFreq | 获取RTOS内核滴答频率。 |
| 线程管理 | osThreadDetach | 分离线程(线程终止时可以回收线程存储)。 |
| | osThreadEnumerate | 枚举活动线程。(暂未实现) |
| | osThreadExit | 终止当前正在运行的线程的执行。 |
| | osThreadGetCount | 获取活动线程的数量。 |
| | osThreadGetId | 返回当前正在运行的线程的线程ID。 |
| | osThreadGetName | 获取线程的名称。 |
| | osThreadGetPriority | 获取线程的当前优先级。 |
| | osThreadGetStackSize | 获取线程的堆栈大小。 |
| | osThreadGetStackSpace | 根据执行期间的堆栈水印记录获取线程的可用堆栈空间。 |
| | osThreadGetState | 获取线程的当前线程状态。 |
| | osThreadJoin | 等待指定线程终止。 |
| | osThreadNew | 创建一个线程并将其添加到活动线程中。 |
| | osThreadResume | 恢复线程的执行。 |
| | osThreadSetPriority | 更改线程的优先级。 |
| | osThreadSuspend | 暂停执行线程。 |
| | osThreadTerminate | 终止线程的执行。 |
| | osThreadYield | 将控制权传递给处于就绪状态的下一个线程。 |
| 线程标志 | osThreadFlagsSet | 设置线程的指定线程标志。 |
| | osThreadFlagsClear | 清除当前正在运行的线程的指定线程标志。 |
| | osThreadFlagsGet | 获取当前正在运行的线程的当前线程标志。 |
| | osThreadFlagsWait | 等待当前正在运行的线程的一个或多个线程标志发出信号。 |
| 事件标志 | osEventFlagsGetName | 获取事件标志对象的名称。(暂未实现) |
| osEventFlagsNew | 创建并初始化事件标志对象。 |
| osEventFlagsDelete | 删除事件标志对象。 |
| osEventFlagsSet | 设置指定的事件标志。 |
| osEventFlagsClear | 清除指定的事件标志。 |
| osEventFlagsGet | 获取当前事件标志。 |
| osEventFlagsWait | 等待一个或多个事件标志被发出信号。 |
| | osEventFlagsNew | 创建并初始化事件标志对象。 |
| | osEventFlagsDelete | 删除事件标志对象。 |
| | osEventFlagsSet | 设置指定的事件标志。 |
| | osEventFlagsClear | 清除指定的事件标志。 |
| | osEventFlagsGet | 获取当前事件标志。 |
| | osEventFlagsWait | 等待一个或多个事件标志被发出信号。 |
| 通用等待函数 | osDelay | 等待超时(时间延迟)。 |
| osDelayUntil | 等到指定时间。 |
| | osDelayUntil | 等到指定时间。 |
| 计时器管理 | osTimerDelete | 删除计时器。 |
| osTimerGetName | 获取计时器的名称。(暂未实现) |
| osTimerIsRunning | 检查计时器是否正在运行。 |
| osTimerNew | 创建和初始化计时器。 |
| osTimerStart | 启动或重新启动计时器。 |
| osTimerStop | 停止计时器。 |
| | osTimerGetName | 获取计时器的名称。(暂未实现) |
| | osTimerIsRunning | 检查计时器是否正在运行。 |
| | osTimerNew | 创建和初始化计时器。 |
| | osTimerStart | 启动或重新启动计时器。 |
| | osTimerStop | 停止计时器。 |
| 互斥管理 | osMutexAcquire | 获取互斥或超时(如果已锁定)。 |
| osMutexDelete | 删除互斥对象。 |
| osMutexGetName | 获取互斥对象的名称。(暂未实现) |
| osMutexGetOwner | 获取拥有互斥对象的线程。 |
| osMutexNew | 创建并初始化Mutex对象。 |
| osMutexRelease | 释放由osMutexAcquire获取的Mutex。 |
| | osMutexDelete | 删除互斥对象。 |
| | osMutexGetName | 获取互斥对象的名称。(暂未实现) |
| | osMutexGetOwner | 获取拥有互斥对象的线程。 |
| | osMutexNew | 创建并初始化Mutex对象。 |
| | osMutexRelease | 释放由osMutexAcquire获取的Mutex。 |
| 信号量 | osSemaphoreAcquire | 获取信号量令牌或超时(如果没有可用的令牌)。 |
| osSemaphoreDelete | 删除一个信号量对象。 |
| osSemaphoreGetCount | 获取当前信号量令牌计数。 |
| osSemaphoreGetName | 获取信号量对象的名称。(暂未实现) |
| osSemaphoreNew | 创建并初始化一个信号量对象。 |
| osSemaphoreRelease | 释放信号量令牌,直到初始最大计数。 |
| | osSemaphoreDelete | 删除一个信号量对象。 |
| | osSemaphoreGetCount | 获取当前信号量令牌计数。 |
| | osSemaphoreGetName | 获取信号量对象的名称。(暂未实现) |
| | osSemaphoreNew | 创建并初始化一个信号量对象。 |
| | osSemaphoreRelease | 释放信号量令牌,直到初始最大计数。 |
| 内存池 | osMemoryPoolAlloc | 从内存池分配一个内存块。 |
| osMemoryPoolDelete | 删除内存池对象。 |
| osMemoryPoolFree | 将分配的内存块返回到内存池。 |
| osMemoryPoolGetBlockSize | 获取内存池中的内存块大小。 |
| osMemoryPoolGetCapacity | 获取内存池中最大的内存块数。 |
| osMemoryPoolGetCount | 获取内存池中使用的内存块数。 |
| osMemoryPoolGetName | 获取内存池对象的名称。 |
| osMemoryPoolGetSpace | 获取内存池中可用的内存块数。 |
| osMemoryPoolNew | 创建并初始化一个内存池对象。 |
| | osMemoryPoolDelete | 删除内存池对象。 |
| | osMemoryPoolFree | 将分配的内存块返回到内存池。 |
| | osMemoryPoolGetBlockSize | 获取内存池中的内存块大小。 |
| | osMemoryPoolGetCapacity | 获取内存池中最大的内存块数。 |
| | osMemoryPoolGetCount | 获取内存池中使用的内存块数。 |
| | osMemoryPoolGetName | 获取内存池对象的名称。 |
| | osMemoryPoolGetSpace | 获取内存池中可用的内存块数。 |
| | osMemoryPoolNew | 创建并初始化一个内存池对象。 |
| 消息队列 | osMessageQueueDelete | 删除消息队列对象。 |
| osMessageQueueGet | 从队列获取消息,或者如果队列为空,则从超时获取消息。 |
| osMessageQueueGetCapacity | 获取消息队列中的最大消息数。 |
| osMessageQueueGetCount | 获取消息队列中排队的消息数。 |
| osMessageQueueGetMsgSize | 获取内存池中的最大消息大小。 |
| osMessageQueueGetName | 获取消息队列对象的名称。(暂未实现) |
| osMessageQueueGetSpace | 获取消息队列中消息的可用插槽数。 |
| osMessageQueueNew | 创建和初始化消息队列对象。 |
| osMessageQueuePut | 如果队列已满,则将消息放入队列或超时。 |
| osMessageQueueReset | 将消息队列重置为初始空状态。(暂未实现) |
| | osMessageQueueGet | 从队列获取消息,或者如果队列为空,则从超时获取消息。 |
| | osMessageQueueGetCapacity | 获取消息队列中的最大消息数。 |
| | osMessageQueueGetCount | 获取消息队列中排队的消息数。 |
| | osMessageQueueGetMsgSize | 获取内存池中的最大消息大小。 |
| | osMessageQueueGetName | 获取消息队列对象的名称。(暂未实现) |
| | osMessageQueueGetSpace | 获取消息队列中消息的可用插槽数。 |
| | osMessageQueueNew | 创建和初始化消息队列对象。 |
| | osMessageQueuePut | 如果队列已满,则将消息放入队列或超时。 |
| | osMessageQueueReset | 将消息队列重置为初始空状态。(暂未实现) |
### 开发流程
......
......@@ -44,20 +44,23 @@ OpenHarmony LiteOS-M内核的中断模块提供下面几种功能,接口详细
| 功能分类 | 接口名 | 描述 |
| -------- | -------- | -------- |
| 创建、删除中断 | HalHwiCreate | 中断创建,注册中断号、中断触发模式、中断优先级、中断处理程序。中断被触发时,会调用该中断处理程序。 |
| HalHwiDelete | 根据指定的中断号,删除中断。 |
| 创建、删除中断 | LOS_HwiCreate | 中断创建,注册中断号、中断触发模式、中断优先级、中断处理程序。中断被触发时,会调用该中断处理程序。 |
| | LOS_HwiDelete | 根据指定的中断号,删除中断。 |
| 打开、关闭中断 | LOS_IntUnLock | 开中断,使能当前处理器所有中断响应。 |
| LOS_IntLock | 关中断,关闭当前处理器所有中断响应。 |
| LOS_IntRestore | 恢复到使用LOS_IntLock、LOS_IntUnLock操作之前的中断状态。 |
| | LOS_IntLock | 关中断,关闭当前处理器所有中断响应。 |
| | LOS_IntRestore | 恢复到使用LOS_IntLock、LOS_IntUnLock操作之前的中断状态。 |
| 使能和屏蔽指定中断 | LOS_HwiDisable | 中断屏蔽。(通过设置寄存器,禁止CPU响应该中断) |
| | LOS_HwiEnable | 中断使能。(通过设置寄存器,允许CPU响应该中断) |
| 设置中断优先级 | LOS_HwiSetPriority | 设置中断优先级。 |
| 触发中断 | LOS_HwiTrigger | 触发中断。(通过写中断控制器的相关寄存器模拟外部中断) |
| 清除中断寄存器状态 | LOS_HwiClear | 清除中断号对应的中断寄存器的状态位,此接口依赖中断控制器版本,非必需。 |
## 开发流程
1. 调用中断创建接口HalHwiCreate创建中断。
2. 调用TestHwiTrigger接口触发指定中断(该接口在测试套中定义,通过写中断控制器的相关寄存器模拟外部中断,一般的外设设备,不需要执行这一步)。
3. 调用HalHwiDelete接口删除指定中断,此接口根据实际情况使用,判断是否需要删除中断。
1. 调用中断创建接口LOS_HwiCreate创建中断。
2. 调用中断触发接口LOS_HwiTrigger触发中断。
3. 调用LOS_HwiDelete接口删除指定中断,此接口根据实际情况使用,判断是否需要删除中断。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
......@@ -101,7 +104,7 @@ static UINT32 Example_Interrupt(VOID)
HWI_ARG_T arg = 0;
/*创建中断*/
ret = HalHwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, arg);
ret = LOS_HwiCreate(HWI_NUM_TEST, hwiPrio, mode, (HWI_PROC_FUNC)HwiUsrIrq, arg);
if(ret == LOS_OK){
printf("Hwi create success!\n");
} else {
......@@ -109,11 +112,17 @@ static UINT32 Example_Interrupt(VOID)
return LOS_NOK;
}
/* 延时50个Ticks, 当有硬件中断发生时,会调用函数HwiUsrIrq*/
LOS_TaskDelay(50);
/*触发中断*/
ret = LOS_HwiTrigger(HWI_NUM_TEST);
if(ret == LOS_OK){
printf("Hwi trigger success!\n");
} else {
printf("Hwi trigger failed!\n");
return LOS_NOK;
}
/*删除中断*/
ret = HalHwiDelete(HWI_NUM_TEST);
ret = LOS_HwiDelete(HWI_NUM_TEST);
if(ret == LOS_OK){
printf("Hwi delete success!\n");
} else {
......@@ -132,5 +141,7 @@ static UINT32 Example_Interrupt(VOID)
```
Hwi create success!
in the func HwiUsrIrq
Hwi trigger success!
Hwi delete success!
```
......@@ -112,29 +112,31 @@ OpenHarmony LiteOS-M内核的任务管理模块提供下面几种功能,接口
| 功能分类 | 接口名 | 描述 |
| -------- | -------- | -------- |
| 创建和删除任务 | LOS_TaskCreateOnly | 创建任务,并使该任务进入suspend状态,不对该任务进行调度。如果需要调度,可以调用LOS_TaskResume使该任务进入ready状态。 |
| LOS_TaskCreate | 创建任务,并使该任务进入ready状态,如果就绪队列中没有更高优先级的任务,则运行该任务。 |
| LOS_TaskDelete | 删除指定的任务。 |
| | LOS_TaskCreate | 创建任务,并使该任务进入ready状态,如果就绪队列中没有更高优先级的任务,则运行该任务。 |
| | LOS_TaskDelete | 删除指定的任务。 |
| 控制任务状态 | LOS_TaskResume | 恢复挂起的任务,使该任务进入ready状态。 |
| LOS_TaskSuspend | 挂起指定的任务,然后切换任务。 |
| LOS_TaskJoin | 挂起当前任务,等待指定任务运行结束并回收其任务控制块资源 |
| LOS_TaskDelay | 任务延时等待,释放CPU,等待时间到期后该任务会重新进入ready状态。传入参数为Tick数目。 |
| LOS_Msleep | 传入参数为毫秒数,转换为Tick数目,调用LOS_TaskDelay。 |
| LOS_TaskYield | 当前任务时间片设置为0,释放CPU,触发调度运行就绪任务队列中优先级最高的任务。 |
| | LOS_TaskSuspend | 挂起指定的任务,然后切换任务。 |
| | LOS_TaskJoin | 挂起当前任务,等待指定任务运行结束并回收其任务控制块资源。 |
| | LOS_TaskDetach | 修改任务的joinable属性为detach属性,detach属性的任务运行结束会自动回收任务控制块资源。 |
| | LOS_TaskDelay | 任务延时等待,释放CPU,等待时间到期后该任务会重新进入ready状态。传入参数为Tick数目。 |
| | LOS_Msleep | 传入参数为毫秒数,转换为Tick数目,调用LOS_TaskDelay。 |
| | LOS_TaskYield | 当前任务时间片设置为0,释放CPU,触发调度运行就绪任务队列中优先级最高的任务。 |
| 控制任务调度 | LOS_TaskLock | 锁任务调度,但任务仍可被中断打断。 |
| LOS_TaskUnlock | 解锁任务调度。 |
| LOS_Schedule | 触发任务调度。 |
| | LOS_TaskUnlock | 解锁任务调度。 |
| | LOS_Schedule | 触发任务调度。 |
| 控制任务优先级 | LOS_CurTaskPriSet | 设置当前任务的优先级。 |
| LOS_TaskPriSet | 设置指定任务的优先级。 |
| LOS_TaskPriGet | 获取指定任务的优先级。 |
| | LOS_TaskPriSet | 设置指定任务的优先级。 |
| | LOS_TaskPriGet | 获取指定任务的优先级。 |
| 获取任务信息 | LOS_CurTaskIDGet | 获取当前任务的ID。 |
| LOS_NextTaskIDGet | 获取任务就绪队列中优先级最高的任务的ID。 |
| LOS_NewTaskIDGet | 等同LOS_NextTaskIDGet。 |
| LOS_CurTaskNameGet | 获取当前任务的名称。 |
| LOS_TaskNameGet | 获取指定任务的名称。 |
| LOS_TaskStatusGet | 获取指定任务的状态。 |
| LOS_TaskInfoGet | 获取指定任务的信息,包括任务状态、优先级、任务栈大小、栈顶指针SP、任务入口函数、已使用的任务栈大小等。 |
| LOS_TaskIsRunning | 获取任务模块是否已经开始调度运行。 |
| | LOS_NextTaskIDGet | 获取任务就绪队列中优先级最高的任务的ID。 |
| | LOS_NewTaskIDGet | 等同LOS_NextTaskIDGet。 |
| | LOS_CurTaskNameGet | 获取当前任务的名称。 |
| | LOS_TaskNameGet | 获取指定任务的名称。 |
| | LOS_TaskStatusGet | 获取指定任务的状态。 |
| | LOS_TaskInfoGet | 获取指定任务的信息,包括任务状态、优先级、任务栈大小、栈顶指针SP、任务入口函数、已使用的任务栈大小等。 |
| | LOS_TaskIsRunning | 获取任务模块是否已经开始调度运行。 |
| 任务信息维测 | LOS_TaskSwitchInfoGet | 获取任务切换信息,需要开启宏LOSCFG_BASE_CORE_EXC_TSK_SWITCH。 |
| 回收任务栈资源 | LOS_TaskResRecycle | 回收所有待回收的任务栈资源。 |
## 开发流程
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册