803 Star 2.4K Fork 1.2K

GVPHuawei LiteOS / LiteOS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
LiteOS_Standard_Library.md 205.46 KB
一键复制 编辑 原始数据 按行查看 历史
tinyfrog 提交于 2020-12-26 19:18 . update doc info

Huawei LiteOS 标准库

目 录

POSIX接口

POSIX支持接口

Huawei LiteOS提供一套POSIX适配接口,支持的接口参见下表。

头文件

接口名

类型

说明

mqueue.h

mq_close

消息队列

关闭消息队列

mqueue.h

mq_getattr

消息队列

获取消息队列属性

mqueue.h

mq_open

消息队列

打开消息队列

mqueue.h

mq_receive

消息队列

接受一个消息队列中的消息

mqueue.h

mq_send

消息队列

发送一个消息到消息队列

mqueue.h

mq_setattr

消息队列

设置消息队列属性

mqueue.h

mq_timedreceive

消息队列

定时接收消息

mqueue.h

mq_timedsend

消息队列

定时发送消息

mqueue.h

mq_unlink

消息队列

移除消息队列

pthread.h

pthread_attr_destroy

pthread

删除线程的属性

pthread.h

pthread_attr_getdetachstate

pthread

获取脱离状态的属性

pthread.h

pthread_attr_getinheritsched

pthread

获取任务调度方式

pthread.h

pthread_attr_getschedparam

pthread

获取任务调度参数

pthread.h

pthread_attr_getschedpolicy

pthread

获取任务调度策略属性,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR

pthread.h

pthread_attr_getscope

pthread

获取任务范围属性,Huawei LiteOS任务使用范围目前只支持PTHREAD_SCOPE_SYSTEM,不支持PTHREAD_SCOPE_PROCESS

pthread.h

pthread_attr_getstackaddr

pthread

获取任务堆栈的起始地址

pthread.h

pthread_attr_getstacksize

pthread

获取任务属性堆栈大小

pthread.h

pthread_attr_init

pthread

初始化任务属性

pthread.h

pthread_attr_setdetachstate

pthread

设置任务属性分离状态

pthread.h

pthread_attr_setinheritsched

pthread

设置任务调度方式

pthread.h

pthread_attr_setschedparam

pthread

设置任务调度参数,Huawei LiteOS设置任务优先级的参数值越小,任务在系统中的优先级就越高,与标准库函数相反。注意:需要将pthread_attr_t任务属性的inheritsched字段设置为PTHREAD_EXPLICIT_SCHED,否则设置的任务调度优先级将不会生效,系统默认设置为PTHREAD_INHERIT_SCHED

pthread.h

pthread_attr_setschedpolicy

pthread

设置任务调度策略属性,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR

pthread.h

pthread_attr_setscope

pthread

设置任务范围属性,Huawei LiteOS任务使用范围目前只支持PTHREAD_SCOPE_SYSTEM,不支持PTHREAD_SCOPE_PROCESS

pthread.h

pthread_attr_setstackaddr

pthread

设置任务堆栈的起始地址

pthread.h

pthread_attr_setstacksize

pthread

设置任务属性堆栈大小

pthread.h

pthread_cancel

pthread

取消任务,Huawei LiteOS仅支持先设置PTHREAD_CANCEL_ASYNCHRONOUS状态,再调用pthread_cancel取消任务

pthread.h

pthread_cond_broadcast

pthread

唤醒所有被阻塞在条件变量上的线程

pthread.h

pthread_cond_destroy

pthread

释放条件变量

pthread.h

pthread_cond_init

pthread

初始化条件变量

pthread.h

pthread_cond_signal

pthread

释放被阻塞在条件变量上的一个线程

pthread.h

pthread_cond_timedwait

pthread

超时时限内等待一个条件变量,当超时等待时间为相对时间,Huawei LiteOS不能处理早已超时的情况

pthread.h

pthread_cond_wait

pthread

等待一个条件变量

pthread.h

pthread_condattr_destroy

pthread

删除存储并使属性对象无效

pthread.h

pthread_condattr_getclock

pthread

获取任务时钟

pthread.h

pthread_condattr_getpshared

pthread

获取条件变量属性,Huawei LiteOS只支持获取PTHREAD_PROCESS_PRIVATE条件变量属性

pthread.h

pthread_condattr_init

pthread

初始化条件变量属性

pthread.h

pthread_condattr_setclock

pthread

设置任务时钟

pthread.h

pthread_condattr_setpshared

pthread

设置条件变量属性

pthread.h

pthread_create

pthread

创建任务

pthread.h

pthread_detach

pthread

分离任务

pthread.h

pthread_equal

pthread

判断是否为同一任务

pthread.h

pthread_exit

pthread

任务退出

pthread.h

pthread_getschedparam

pthread

获取任务优先级及调度参数,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR

pthread.h

pthread_getspecific

pthread

获取调用线程的键绑定

pthread.h

pthread_join

pthread

阻塞任务

pthread.h

pthread_key_create

pthread

分配用于标识进程中线程特定数据的键

pthread.h

pthread_key_delete

pthread

销毁现有线程特定数据键

pthread.h

pthread_mutex_destroy

pthread

删除互斥锁

pthread.h

pthread_mutex_getprioceiling

pthread

获取互斥锁的优先级上限

pthread.h

pthread_mutex_init

pthread

初始化互斥锁

pthread.h

pthread_mutex_lock

pthread

申请互斥锁(阻塞操作)

pthread.h

pthread_mutex_setprioceiling

pthread

设置互斥锁的优先级上限

pthread.h

pthread_mutex_timedlock

pthread

申请互斥锁(只在设定时间内阻塞)

pthread.h

pthread_mutex_trylock

pthread

尝试申请互斥锁(非阻塞)

pthread.h

pthread_mutex_unlock

pthread

释放互斥锁

pthread.h

pthread_mutexattr_destroy

pthread

销毁互斥锁属性对象

pthread.h

pthread_mutexattr_getprioceiling

pthread

获取互斥锁属性的优先级上限

pthread.h

pthread_mutexattr_getprotocol

pthread

获取互斥锁属性的协议属性

pthread.h

pthread_mutexattr_gettype

pthread

获取互斥锁的类型属性

pthread.h

pthread_mutexattr_init

pthread

初始化互斥锁属性对象

pthread.h

pthread_mutexattr_setprioceiling

pthread

设置互斥锁属性的优先级上限

pthread.h

pthread_mutexattr_setprotocol

pthread

设置互斥锁属性的协议属性

pthread.h

pthread_mutexattr_settype

pthread

设置互斥锁的类型属性

pthread.h

pthread_once

pthread

一次性操作任务

pthread.h

pthread_self

pthread

获取任务ID

pthread.h

pthread_setcancelstate

pthread

任务cancel功能开关

pthread.h

pthread_setcanceltype

pthread

设置任务cancel类型

pthread.h

pthread_setschedparam

pthread

设置任务优先级及调度策略,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR

pthread.h

pthread_setschedprio

pthread

设置任务优先级

pthread.h

pthread_setspecific

pthread

设置线程数据

pthread.h

pthread_testcancel

pthread

cancel任务

sched.h

sched_get_priority_max

调度函数

获取系统支持的最大的优先级值

sched.h

sched_get_priority_min

调度函数

获取系统支持的最小的优先级值

sched.h

sched_yield

调度函数

使当前线程放弃占用CPU

semaphore.h

sem_destroy

信号量

销毁无名信号量

semaphore.h

sem_getvalue

信号量

获取指定信号量的值

semaphore.h

sem_init

信号量

初始化无名信号量

semaphore.h

sem_post

信号量

释放一个指定的无名信号量

semaphore.h

sem_timedwait

信号量

申请一个超时等待的无名信号量,当超时等待时间为相对时间时,Huawei LiteOS不能处理早已超时的情况

semaphore.h

sem_trywait

信号量

尝试申请一个无名信号量

semaphore.h

sem_wait

信号量

申请等待一个无名信号量

time.h

nanosleep

时间函数

进程以纳秒为单位休眠,但Huawei LiteOS目前只支持tick(默认10ms)休眠,第二个参数不支持,且传参所设置的秒数不能大于4292秒

time.h

timer_create

时间函数

创建定时器,只支持SIGEV_THREAD在线程内处理(Huawei LiteOS有两种实现方式,在线程或者在中断中处理timer的回调函数,具体采用哪种方式由宏开关LOSCFG_BASE_CORE_SWTMR_IN_ISR控制);clock_id只支持CLOCK_REALTIME

time.h

timer_delete

时间函数

删除定时器

time.h

timer_getoverrun

时间函数

获取定时器超时次数

time.h

timer_gettime

时间函数

获得一个定时器剩余时间

time.h

timer_settime

时间函数

初始化或者撤销定时器

POSIX NP支持接口

Huawei LiteOS还提供了一套POSIX NP适配接口,来提供POSIX对SMP的支持。以下接口只有在开启多核模式下可以操作亲和性,在单核模式下直接返回ENOERR。

文件名

接口名

说明

pthread.h

pthread_attr_setaffinity_np

设置attr亲和性属性

pthread.h

pthread_attr_getaffinity_np

获取attr亲和性属性

pthread.h

pthread_setaffinity_np

设置pthread任务的亲和性

pthread.h

pthread_getaffinity_np

获取pthread任务的亲和性

POSIX不支持接口

Huawei LiteOS的POSIX接口中,有一些未支持,具体参见下表。

头文件

接口名

mqueue.h

mq_notify

pthread.h

pthread_atfork

pthread.h

pthread_attr_getguardsize

pthread.h

pthread_attr_getstack

pthread.h

pthread_attr_setguardsize

pthread.h

pthread_attr_setstack

pthread.h

pthread_barrier_destroy

pthread.h

pthread_barrier_init

pthread.h

pthread_barrier_wait

pthread.h

pthread_barrierattr_destroy

pthread.h

pthread_barrierattr_getpshared

pthread.h

pthread_barrierattr_init

pthread.h

pthread_barrierattr_setpshared

pthread.h

pthread_getconcurrency

pthread.h

pthread_getcpuclockid

pthread.h

pthread_mutex_consistent

pthread.h

pthread_mutexattr_getpshared

pthread.h

pthread_mutexattr_getrobust

pthread.h

pthread_mutexattr_setpshared

pthread.h

pthread_mutexattr_setrobust

pthread.h

pthread_rwlock_destroy

pthread.h

pthread_rwlock_init

pthread.h

pthread_rwlock_rdlock

pthread.h

pthread_rwlock_timedrdlock

pthread.h

pthread_rwlock_timedwrlock

pthread.h

pthread_rwlock_tryrdlock

pthread.h

pthread_rwlock_trywrlock

pthread.h

pthread_rwlock_unlock

pthread.h

pthread_rwlock_wrlock

pthread.h

pthread_rwlockattr_destroy

pthread.h

pthread_rwlockattr_getpshared

pthread.h

pthread_rwlockattr_init

pthread.h

pthread_rwlockattr_setpshared

pthread.h

pthread_setconcurrency

pthread.h

pthread_spin_destroy

pthread.h

pthread_spin_init

pthread.h

pthread_spin_lock

pthread.h

pthread_spin_trylock

pthread.h

pthread_spin_unlock

sched.h

sched_getparam

sched.h

sched_getscheduler

sched.h

sched_rr_get_interval

sched.h

sched_setparam

sched.h

sched_setscheduler

sem.h

semctl

sem.h

semget

sem.h

semop

semaphore.h

sem_close

semaphore.h

sem_open

semaphore.h

sem_unlink

signal.h

kill

signal.h

killpg

signal.h

psiginfo

signal.h

psignal

signal.h

pthread_kill

signal.h

pthread_sigmask

signal.h

raise

signal.h

sigaction

signal.h

sigaddset

signal.h

sigaltstack

signal.h

sigdelset

signal.h

sigemptyset

signal.h

sigfillset

signal.h

sighold

signal.h

sigignore

signal.h

siginterrupt

signal.h

sigismember

signal.h

sigpause

signal.h

sigpending

signal.h

sigprocmask

signal.h

sigqueue

signal.h

sigrelse

signal.h

sigsuspend

signal.h

sigtimedwait

signal.h

sigwait

signal.h

sigwaitinfo

signalfd.h

signalfd

C++兼容规格

下述表格为C++标准库/STL兼容规格。

说明: 支持异常和RTTI特性,其他特性由编译器支持;对于STL的特性,支持清单如下,其它特性暂不支持。

  • 支持语言支持功能

头文件

描述

<limits>

提供与基本数据类型相关的定义,例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数

<new>

支持动态内存分配

  • 支持工具函数

头文件

描述

<utility>

定义重载的关系运算符,简化关系运算符的写入,它还定义了pair类型,该类型是一种模板类型,可以存储一对值。这些功能在库的其他地方使用

<functional>

定义了许多函数对象类型和支持函数对象的功能,函数对象是支持operator函数调用运算符的任意对象

<memory>

给容器、管理内存的函数和auto_ptr模板类定义标准内存分配器

  • 支持字符串处理

头文件

描述

<string>

为字符串类型提供支持和定义,包括单字节字符串(由char组成)的string和多字节字符串(由wchar_t组成)

  • 支持容器类模板

头文件

描述

<vector>

定义vector序列模板,这是一个大小可以重新设置的数组类型,比普通数组更安全、更灵活

<list>

定义list序列模板,这是一个序列的链表,常常在任意位置插入和删除元素

<deque>

定义deque序列模板,支持在开始和结尾的高效插入和删除操作

<queue>

为队列(先进先出)数据结构定义序列适配器queue和priority_queue

<stack>

为堆栈(后进先出)数据结构定义序列适配器stack

<map>

map是一个关联容器类型,允许根据唯一键值,按照升序存储

<set>

set是一个关联容器类型,用于以升序方式存储唯一值

<bitset>

为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组

  • 支持迭代器

头文件

描述

<iterator>

给迭代器提供定义和支持

  • 支持算法

头文件

描述

<algorithm>

提供一组基于算法的函数,包括置换、排序、合并和搜索

  • 支持数值操作

头文件

描述

<complex>

支持复杂数值的定义和操作

<valarray>

支持数值矢量的操作

<numeric>

在数值序列上定义一组一般数学操作,例如accumulate和inner_product

  • 支持线程处理

头文件

描述

<mutex>

支持互斥锁的操作

<thread>

支持线程函数的操作

<condition_variable>

支持条件变量的操作

须知: Huawei Liteos提供的memory,uninitialized_fill函数存在内存泄露,慎用。

CMSIS接口

CMSIS v1.0

CMSIS v1.0接口官方手册中包含了接口声明、入参介绍、返回值类型、接口使用条件等详细介绍,下面简要介绍Huawei LiteOS适配CMSIS v1.0接口的情况。

CMSIS v1.0适配接口

LiteOS目前已支持大部分CMSIS v1.0接口,接口声明在compat/cmsis/1.0/cmsis_os1.h,接口说明详见下表:

接口名

类型

说明

osThreadCreate

任务/线程类接口

创建一个任务

osThreadGetId

任务/线程类接口

获取当前的任务句柄

osThreadTerminate

任务/线程类接口

终止某个任务

osThreadYield

任务/线程类接口

切换至同优先级的就绪任务

osThreadSetPriority

任务/线程类接口

设置任务优先级

osThreadGetPriority

任务/线程类接口

获取任务优先级

osDelay

延时类接口

任务延时处理

osTimerCreate

定时器类接口

创建定时器

osTimerStart

定时器类接口

启动定时器(若定时器正在计时会先停止该定时器)

osTimerStop

定时器类接口

停止定时器

osTimerDelete

定时器类接口

删除定时器

osSignalSet

信号类接口

设置信号

osSignalClear

信号类接口

清除信号

osSignalWait

信号类接口

等待信号

osMutexCreate

互斥锁类接口

创建互斥锁

osMutexWait

互斥锁类接口

获取互斥锁(阻塞等待)

osMutexRelease

互斥锁类接口

释放互斥锁

osMutexDelete

互斥锁类接口

删除互斥锁

osSemaphoreCreate

信号量类接口

创建信号量

osSemaphoreWait

信号量类接口

获取信号量(阻塞等待)

osSemaphoreRelease

信号量类接口

释放信号量

osSemaphoreDelete

信号量类接口

删除信号量

osPoolCreate

块状内存类接口

创建块状内存池

osPoolAlloc

块状内存类接口

申请内存

osPoolCAlloc

块状内存类接口

申请内存并清零

osPoolFree

块状内存类接口

释放内存

osMessageCreate

指针消息类接口

创建消息队列(不带内容,一般为数据指针)

osMessagePut

指针消息类接口

往消息队列里放入消息

osMessageGet

指针消息类接口

从消息队列里获取消息

osMailCreate

内容消息类接口

创建消息队列(带内容,可理解为在osMessage的基础上增加osPool)

osMailAlloc

内容消息类接口

申请内存(用于存放消息内容)

osMailCAlloc

内容消息类接口

申请内存并清零(用于存放消息内容)

osMailPut

内容消息类接口

往消息队列里放入消息

osMailGet

内容消息类接口

从消息队列里获取消息

osMailFree

内容消息类接口

释放已申请的内存

CMSIS v1.0不支持接口

接口名

类型

说明

osWait

延时类接口

等待任一信号或消息发生

CMSIS v1.0标准接口适配差异

考虑接口的易用性和Huawei LiteOS内部机制与CMSIS标准接口的差异,在适配CMSIS v1.0接口时,对部分接口进行了修改,详见下表:

接口名

类型

说明

osTimerStart

定时器类接口

增加一种定时器类型osTimerDelay,与osTimerOnce同为单次定时器,差别在于osTimerOnce超时后会删除定时器,但osTimerDelay不会,可以重复启动(osTimerStart)

osBinarySemaphoreCreate

信号量类接口

新增接口,用于创建二值信号量

CMSIS v2.0

CMSIS v2.0接口官方手册中包含了接口声明、入参介绍、返回值类型、接口使用条件等详细介绍,下面简要介绍Huawei LiteOS适配CMSIS v2.0接口的情况。

CMSIS v2.0适配接口

LiteOS目前已支持大部分CMSIS v2.0接口,接口声明在compat/cmsis/2.0/cmsis_os2.h,接口说明详见下表:

接口名

类型

说明

osKernelInitialize

内核类接口

初始化操作系统

osKernelGetInfo

内核类接口

获取系统版本信息

osKernelGetState

内核类接口

获取系统状态(osThreadState_t)

osKernelStart

内核类接口

启动操作系统

osKernelLock

内核类接口

锁内核(锁调度)

osKernelUnlock

内核类接口

解锁内核(解锁调度)

osKernelRestoreLock

内核类接口

恢复内核锁状态

osKernelGetTickCount

内核类接口

获取系统启动后时间(单位:tick)

osKernelGetTickFreq

内核类接口

获取每秒的tick数

osKernelGetSysTimerCount

内核类接口

获取系统启动后时间(单位:cycle)

osKernelGetSysTimerFreq

内核类接口

获取每秒的CPU cycle数

osThreadNew

任务/线程类接口

创建任务

osThreadGetName

任务/线程类接口

获取任务名

osThreadGetId

任务/线程类接口

获取任务句柄

osThreadGetState

任务/线程类接口

获取任务状态

osThreadGetStackSize

任务/线程类接口

获取任务栈大小

osThreadGetStackSpace

任务/线程类接口

获取未使用过的任务栈空间

osThreadSetPriority

任务/线程类接口

设置任务优先级

osThreadGetPriority

任务/线程类接口

获取任务优先级

osThreadYield

任务/线程类接口

切换至同优先级的就绪任务

osThreadSuspend

任务/线程类接口

挂起任务(恢复前无法得到调度)

osThreadResume

任务/线程类接口

恢复任务

osThreadTerminate

任务/线程类接口

终止任务(建议不要主动终止任务)

osThreadGetCount

任务/线程类接口

获取已创建的任务数量

osThreadFlagsSet

任务事件类接口

写入指定事件

osThreadFlagsClear

任务事件类接口

清除指定事件

osThreadFlagsGet

任务事件类接口

获取当前任务事件

osThreadFlagsWait

任务事件类接口

等待指定事件

osDelay

延时类接口

任务延时(单位:tick)

osDelayUntil

指针消息类接口

延时至某一时刻(单位:tick)

osTimerNew

定时器类接口

创建定时器

osTimerGetName

定时器类接口

获取定时器名称(目前固定返回NULL)

osTimerStart

定时器类接口

启动定时器(若定时器正在计时会先停止该定时器)

osTimerStop

定时器类接口

停止定时器

osTimerIsRunning

定时器类接口

定时器是否在计时中

osTimerDelete

定时器类接口

删除定时器

osEventFlagsNew

事件类接口

创建事件(与任务事件ThreadFlags的差别在于有独立的句柄和控制块)

osEventFlagsGetName

事件类接口

获取事件名称(目前固定返回NULL)

osEventFlagsSet

事件类接口

写入指定事件

osEventFlagsClear

事件类接口

清楚指定事件

osEventFlagsGet

事件类接口

获取当前事件值

osEventFlagsWait

事件类接口

等待指定事件

osEventFlagsDelete

事件类接口

删除事件

osMutexNew

互斥锁类接口

创建互斥锁

osMutexGetName

互斥锁类接口

获取互斥锁名称(目前固定返回NULL)

osMutexAcquire

互斥锁类接口

获取互斥锁(阻塞等待)

osMutexRelease

互斥锁类接口

释放互斥锁

osMutexGetOwner

互斥锁类接口

获取持有该互斥锁的任务句柄

osMutexDelete

互斥锁类接口

删除互斥锁

osSemaphoreNew

信号量类接口

创建信号量

osSemaphoreGetName

信号量类接口

获取信号量名称(目前固定返回NULL)

osSemaphoreAcquire

信号量类接口

获取信号量(阻塞等待)

osSemaphoreRelease

信号量类接口

释放信号量

osSemaphoreGetCount

信号量类接口

获取信号量的计数值

osSemaphoreDelete

信号量类接口

删除信号量

osMessageQueueNew

消息队列类接口

创建消息队列

osMessageQueueGetName

消息队列类接口

获取消息队列名称(目前固定返回NULL)

osMessageQueuePut

消息队列类接口

往消息队列里放入消息

osMessageQueueGet

消息队列类接口

从消息队列里获取消息

osMessageQueueGetCapacity

消息队列类接口

获取消息队列节点数量

osMessageQueueGetMsgSize

消息队列类接口

获取消息队列节点大小

osMessageQueueGetCount

消息队列类接口

获取当前消息队列里的消息数量

osMessageQueueGetSpace

消息队列类接口

获取当前消息队列里的剩余消息数量

osMessageQueueDelete

消息队列类接口

删除消息队列

CMSIS v2.0不支持接口

接口名

类型

说明

osKernelSuspend

任务/线程类接口

挂起内核阻止调度,一般用于低功耗处理,目前Huawei LiteOS已提供Tickless、Runstop等低功耗机制,暂未适配该接口

osKernelResume

任务/线程类接口

同上

osThreadJoin

任务/线程类接口

目前通过oSThreadNew创建的任务是相互解耦的,暂未适配该接口

osThreadExit

任务/线程类接口

Huawei LiteOS任务支持自删除,任务退出前不需要调用osThreadExit

osThreadEnumerate

任务/线程类接口

获取已创建的任务列表,目前未适配该接口,用户可以调用Huawei LiteOS的LOS_TaskInfoGet等维测接口获取任务状态

osMemoryPoolAlloc

块状内存类接口

接口需要支持超时时间内申请内存块,目前Huawei LiteOS暂未提供这种机制

osMemoryPoolFree

块状内存类接口

由于osMemoryPoolAlloc未实现,剩余osMemPool类接口暂不实现

osMemoryPoolGetCapacity

块状内存类接口

同上

osMemoryPoolGetBlockSize

块状内存类接口

同上

osMemoryPoolGetCount

块状内存类接口

同上

osMemoryPoolGetSpace

块状内存类接口

同上

osMemoryPoolDelete

块状内存类接口

同上

osMessageQueueReset

消息队列类接口

操作系统暂不提供清空队列接口,由用户对队列内容进行操作,避免资源泄漏或其他异常

CMSIS v2.0标准接口适配差异

考虑接口的易用性和Huawei LiteOS内部机制与CMSIS标准接口的差异,在适配CMSIS v2.0接口时,对部分接口进行了修改,详见下表:

接口名

类型

说明

osKernelGetTickCount

内核类接口

标准接口返回类型uint32_t,Huawei LiteOS适配为uint64_t

osKernelGetTick2ms

内核类接口

新增接口,用于获取系统启动后时间(单位:ms)

osMs2Tick

内核类接口

新增接口,用于毫秒与系统Tick转换

osThreadNew

任务/线程类接口

优先级范围仅支持[osPriorityLow3, osPriorityHigh]

osThreadSetPriority

任务/线程类接口

同上

osDelayUntil

延时类接口

标准接口入参类型uint32_t,Huawei LiteOS适配为uint64_t

C
1
https://gitee.com/LiteOS/LiteOS.git
git@gitee.com:LiteOS/LiteOS.git
LiteOS
LiteOS
LiteOS
master

搜索帮助