AliOS Things内核API
更新时间:2018-06-20 13:57:20
1 系统相关
1.1 aos_reboot
定义描述:
函数原型 | void aos_reboot(void) |
---|---|
描述 | 重启单板 |
1.2 aos_get_hz
定义描述:
函数原型 | int aos_get_hz(void) |
---|---|
描述 | 返回系统每秒tick频率 |
返回值 | 类型:int |
函数原型
描述
返回值
1.3 aos_version_get
定义描述:
函数原型 | char *aos_version_get(void) |
---|---|
描述 | 返回内核版本号 |
返回值 | 类型:char *;例如:AOS-R-1.3.0 |
1.4 aos_now
定义描述:
函数原型 | long long aos_now(void) |
---|---|
描述 | 返回内核启动至今的ns数 |
返回值 | 类型:long long; |
1.5 aos_now_ms
定义描述:
函数原型 | long long aos_now_ms(void) |
---|---|
描述 | 返回内核启动至今的ms数 |
返回值 | 类型:long long; |
1.6 aos_msleep
定义描述:
函数原型 | void aos_msleep(int ms) |
---|---|
描述 | 将当前任务睡眠ms数 |
返回值 | Ms:睡眠ms数 |
1.7 aos_init
定义描述:
函数原型 | void aos_init(void) |
---|---|
描述 | 内核相关模块初始化 |
返回值 | 无 |
1.8 aos_start
定义描述:
函数原型 | void aos_start(void) |
---|---|
描述 | 内核启动进入任务调度 |
返回值 | 无 |
2 任务相关
2.1 aos_task_new
定义描述:
函数原型
|
int aos_task_new(const char *name, void (*fn)(void *), void *arg, int stack_size)
|
描述
|
动态创建一个任务,任务句柄不返回,创建完后自动运行; 采用默认优先级AOS_DEFAULT_APP_PRI(32); 受宏RHINO_CONFIG_KOBJ_DYN_ALLOC开关控制
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
name:任务名
|
fn:任务处理函数
|
|
Arg: 任务处理函数参数
|
|
stack_size:任务栈大小(单位:字节)
|
2.2 aos_task_new_ext
定义描述:
函数原型
|
int aos_task_new_ext(aos_task_t *task, const char *name, void (*fn)(void *), void *arg, int stack_size, int prio)
|
描述
|
动态创建一个任务,传入任务句柄,并指定优先级,创建完后自动运行受宏RHINO_CONFIG_KOBJ_DYN_ALLOC开关控制
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
Task:任务句柄
|
name:任务名
|
|
fn:任务处理函数
|
|
Arg: 任务处理函数参数
|
|
stack_size:任务栈大小(单位:字节)
|
|
Prio:任务运行优先级 (范围:0~ RHINO_CONFIG_PRI_MAX-2; RHINO_CONFIG_PRI_MAX-1为idle任务)
|
2.3 aos_task_exit
定义描述:
函数原型 | void aos_task_exit(int code) |
---|---|
描述 | 任务自动退出;受宏RHINO_CONFIG_KOBJ_DYN_ALLOC开关控制 |
返回值 | 无 |
入参 | code:参数无作用 |
2.4 aos_task_name
定义描述:
函数原型 | char *aos_task_name(void) |
---|---|
描述 | 返回任务名 |
返回值 | 类型:char *;任务名 |
入参 | 无 |
2.5 aos_task_key_create
定义描述:
函数原型 | int aos_task_key_create(aos_task_key_t *key) |
---|---|
描述 | 返回任务私有数据区域的空闲块索引 |
返回值 | 类型:int;成功或失败 |
出参 | Key: 任务私有数据区域的空闲块索引;范围0~RHINO_CONFIG_TASK_INFO_NUM-1;每索引块可存放一个void*地址 |
2.6 aos_task_key_delete
定义描述:
函数原型 | void aos_task_key_delete(aos_task_key_t key) |
---|---|
描述 | 删除任务私有数据区域的空闲块索引 |
返回值 | 无 |
入参 | Key: 任务私有数据区域的空闲块索引;范围0~RHINO_CONFIG_TASK_INFO_NUM-1; |
2.7 aos_task_setspecific
定义描述:
函数原型
|
int aos_task_setspecific(aos_task_key_t key, void *vp)
|
描述
|
设置当前任务私有数据区域的某索引空闲块内容;受宏RHINO_CONFIG_TASK_INFO开关控制
|
返回值
|
Int:成功或失败
|
入参
|
Key: 当前任务私有数据区域的空闲块索引;范围0~RHINO_CONFIG_TASK_INFO_NUM-1;
|
Vp: 需要存放进入任务私有空闲区域的地址指针
|
2.8 aos_task_getspecific
定义描述:
函数原型 | void *aos_task_getspecific(aos_task_key_t key) |
---|---|
描述 | 获取当前任务私有数据区域的某索引数据块内容;受宏RHINO_CONFIG_TASK_INFO开关控制 |
返回值 | Void*:私有区域某索引内容 |
入参 | Key: 任务私有数据区域的空闲块索引;范围0~RHINO_CONFIG_TASK_INFO_NUM-1; |
3 mutex互斥锁
整体受RHINO_CONFIG_KOBJ_DYN_ALLOC开关控制
3.1 aos_mutex_new
定义描述:
函数原型 | int aos_mutex_new(aos_mutex_t *mutex) |
---|---|
描述 | 动态创建一个mutex互斥锁 |
返回值 | 类型:int 返回成功或失败; |
入参 | mutex:互斥锁结构体指针;需要用户定义一个mutex结构体 |
3.2 aos_mutex_free
定义描述:
函数原型 | void aos_mutex_free(aos_mutex_t *mutex) |
---|---|
描述 | 释放一个mutex互斥锁 |
返回值 | 无 |
入参 | mutex:互斥锁结构体指针; |
3.3 aos_mutex_lock
定义描述:
函数原型
|
int aos_mutex_lock(aos_mutex_t *mutex, unsigned int timeout)
|
描述
|
加锁一个mutex互斥锁,并设置超时时间;获取不到锁,当前任务阻塞
|
返回值
|
类型:int 返回成功或失败;超时返回RHINO_BLK_TIMEOUT
|
入参
|
mutex:互斥锁结构体指针;
|
Timeout:传入0表示不超时,立即返回;AOS_WAIT_FOREVER表示永久等待;其他数值表示超时时间,单位ms
|
3.4 aos_mutex_unlock
定义描述:
函数原型 | int aos_mutex_unlock(aos_mutex_t *mutex) |
---|---|
描述 | 解锁一个mutex互斥锁,并唤醒一个高优先级阻塞任务 |
返回值 | 类型:int 返回成功或失败; |
入参 | mutex:互斥锁结构体指针; |
3.5 aos_mutex_is_valid
定义描述:
函数原型 | int aos_mutex_is_valid(aos_mutex_t *mutex) |
---|---|
描述 | 判断一个mutex互斥锁是否有效 |
返回值 | 类型:int 返回1表示有效,0表示无效 |
入参 | mutex:互斥锁结构体指针; |
4 sem信号量
整体受宏RHINO_CONFIG_KOBJ_DYN_ALLOC和RHINO_CONFIG_SEM开关控制
4.1 aos_sem_new
定义描述:
函数原型
|
int aos_sem_new(aos_sem_t *sem, int count)
|
描述
|
动态创建一个sem信号量
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
sem:信号量结构体指针;需要用户定义一个sem结构体
|
Count:此sem的初始计数值,此值大于0,才能获取到信号量,获取一次,count计数减1;
|
4.2 aos_sem_free
定义描述:
函数原型 | void aos_sem_free(aos_sem_t *sem) |
---|---|
描述 | 释放一个sem信号量 |
返回值 | 无 |
入参 | sem:信号量结构体指针; |
4.3 aos_sem_wait
定义描述:
函数原型
|
int aos_sem_wait(aos_sem_t *sem, unsigned int timeout)
|
描述
|
获取一个sem信号量;获取不到信号量,当前任务阻塞
|
返回值
|
类型:int 返回成功或失败; 超时返回RHINO_BLK_TIMEOUT
|
入参
|
sem:信号量结构体指针;
|
Timeout:传入0表示不超时,立即返回;AOS_WAIT_FOREVER表示永久等待;其他数值表示超时时间,单位ms
|
4.4 aos_sem_signal
定义描述:
函数原型 | void aos_sem_signal(aos_sem_t *sem) |
---|---|
描述 | 释放一个sem信号量,并唤醒一个高优先级阻塞任务 |
返回值 | 无 |
入参 | sem:信号量结构体指针; |
4.5 aos_sem_is_valid
定义描述:
函数原型 | int aos_sem_is_valid(aos_sem_t *sem) |
---|---|
描述 | 判断一个信号量sem是否有效 |
返回值 | 类型:int 返回1表示有效,0表示无效 |
入参 | sem:信号量结构体指针; |
4.6 aos_sem_signal_all
定义描述:
函数原型 | void aos_sem_signal_all(aos_sem_t *sem) |
---|---|
描述 | 释放一个sem信号量,并唤醒所有阻塞任务 |
返回值 | 无 |
入参 | sem:信号量结构体指针; |
5 event事件
整体受宏RHINO_CONFIG_EVENT_FLAG开关控制
5.1 aos_event_new
定义描述:
函数原型
|
int aos_event_new(aos_event_t *event, unsigned int flags)
|
描述
|
创建一个事件
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
event:event事件描述结构体指针;需要用户定义一个event结构体
|
flags: 此event事件的初始状态;通过int的32个bit的组合来表示事件
|
5.2 aos_event_free
定义描述:
函数原型 | void aos_event_free(aos_event_t *event) |
---|---|
描述 | 释放一个事件 |
返回值 | 无 |
入参 | event:事件描述结构体指针; |
5.3 aos_event_get
定义描述:
函数原型
|
int aos_event_get(aos_event_t *event,unsigned int flags,unsigned char opt,unsigned int *actl_flags,unsigned int timeout)
|
描述
|
获取一个事件,根据其是否满足flags标志;获取不到事件,当前任务阻塞
|
返回值
|
类型:int 返回成功或失败; 超时返回RHINO_BLK_TIMEOUT
|
入参
|
event:event事件描述结构体指针;
|
Flags:期望获取的事件标志,和opt参数关联
|
|
Opt:事件获取策略;RHINO_AND 0x02u:AND策略,Flags的每个非0bit位都在event中存在; RHINO_AND_CLEAR 0x03u: AND并清除策略,Flags的每个非0bit位都在event中存在;并清除event对应原始Flags数据; RHINO_OR:0x00u: OR策略,Flags中任意非0bit在event中存在; RHINO_OR_CLEAR:0x01u:OR并清除策略,Flags中任意非0bit在event中存在;并清除event对应原始Flags数据;
|
|
Timeout:传入0表示不超时,立即返回;AOS_WAIT_FOREVER表示永久等待;其他数值表示超时时间,单位ms
|
|
出参
|
actl_flags:如果返回成功,此参数表示该event的原始flag信息
|
5.4 aos_event_set
定义描述:
函数原型
|
int aos_event_set(aos_event_t *event, unsigned int flags, unsigned char opt)
|
描述
|
设置一个事件的flags标志;成功会释放阻塞任务
|
返回值
|
类型:int 返回成功或失败; 如果设置事件的新flags标志后,会唤醒等待该标志事件的阻塞任务
|
入参
|
event:event事件描述结构体指针;
|
Flags:设置的事件值
|
|
Opt:事件获取策略; RHINO_AND 0x02u:AND策略,event中的flags与入参flags取与操作; RHINO_OR:0x00u: OR策略,event中的flags与入参flags取或操作;
|
6 queue队列
整体受宏RHINO_CONFIG_BUF_QUEUE开关控制
6.1 aos_queue_new
定义描述:
函数原型
|
int aos_queue_new(aos_queue_t *queue, void *buf, unsigned int size, int max_msg)
|
描述
|
创建一个队列,指定缓冲区大小,以及最大数据单元大小
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
queue:queue队列描述结构体指针;需要用户定义一个queue结构体
|
buf:此queue队列的缓冲区起点
|
|
Size:此queue队列的缓冲区大小
|
|
max_msg:一次存入缓冲区的最大数据单元
|
6.2 aos_queue_free
定义描述:
函数原型 | void aos_queue_free(aos_queue_t *queue) |
---|---|
描述 | 删除一个队列,并释放阻塞在其中的任务 |
返回值 | 无 |
入参 | queue:queue队列描述结构体指针 |
6.3 aos_queue_send
定义描述:
函数原型
|
int aos_queue_send(aos_queue_t *queue, void *msg, unsigned int size)
|
描述
|
向queue内发送数据,并唤醒存在的第一个高优先级阻塞任务
|
返回值
|
类型:int 返回成功或失败
|
入参
|
queue:queue队列描述结构体指针;
|
Msg:发送数据起始内存
|
|
Size:发送数据大小
|
6.4 aos_queue_recv
定义描述:
函数原型
|
int aos_queue_recv(aos_queue_t *queue, unsigned int ms, void *msg, unsigned int *size)
|
描述
|
从queue内收取数据,如没有数据则阻塞当前任务等待
|
返回值
|
类型:int 返回成功或失败; 超时返回RHINO_BLK_TIMEOUT
|
入参
|
queue:queue队列描述结构体指针;
|
ms:传入0表示不超时,立即返回;AOS_WAIT_FOREVER表示永久等待;其他数值表示超时时间,单位ms
|
|
出参
|
Msg:返回获取到的数据的内存指针
|
Size:返回获取到的数据大小
|
6.5 aos_queue_is_valid
定义描述:
函数原型 | int aos_queue_is_valid(aos_queue_t *queue) |
---|---|
描述 | 判断一个队列queue是否有效 |
返回值 | 类型:int 返回1表示有效,0表示无效 |
入参 | queue:队列结构体指针; |
6.6 aos_queue_buf_ptr
定义描述:
函数原型 | void *aos_queue_buf_ptr(aos_queue_t *queue) |
---|---|
描述 | 获取一个队列queue的缓冲区起点 |
返回值 | 类型:void* 返回队列queue的缓冲区起点 |
入参 | queue:队列结构体指针; |
7 timer定时器
整体受宏RHINO_CONFIG_TIMER开关控制
7.1 aos_timer_new
定义描述:
函数原型
|
int aos_timer_new(aos_timer_t *timer, void (*fn)(void *, void *),void *arg, int ms, int repeat)
|
描述
|
创建一个定时器,并自动运行
|
返回值
|
类型:int 返回成功或失败
|
入参
|
timer:timer描述结构体指针;需要用户定义一个timer结构体
|
fn: 定时器处理函数
|
|
arg:定时器处理参数
|
|
ms:定时器超时时间(单位ms)
|
|
Repeat:周期或单次(1:周期,0:单次)
|
7.2 aos_timer_new_ext
定义描述:
函数原型
|
int aos_timer_new_ext(aos_timer_t *timer, void (*fn)(void *, void *),void *arg, int ms, int repeat, unsigned char auto_run)
|
描述
|
创建一个定时器,并设置是否自动运行
|
返回值
|
类型:int 返回成功或失败
|
入参
|
timer:timer描述结构体指针;需要用户定义一个timer结构体
|
fn: 定时器处理函数
|
|
arg:定时器处理参数
|
|
ms:定时器超时时间(单位ms)
|
|
Repeat:周期或单次(1:周期,0:单次)
|
|
auto_run:1表示自动运行,0表示需要调用start
|
7.3 aos_timer_free
定义描述:
函数原型 | void aos_timer_free(aos_timer_t *timer) |
---|---|
描述 | 释放一个定时器 |
返回值 | 无 |
入参 | timer:定时器描述结构体指针; |
7.4 aos_timer_start
定义描述:
函数原型 | int aos_timer_start(aos_timer_t *timer) |
---|---|
描述 | 启动一个定时器 |
返回值 | 类型:int 返回成功或失败; |
入参 | timer:定时器描述结构体指针; |
7.5 aos_timer_stop
定义描述:
函数原型 | int aos_timer_stop(aos_timer_t *timer) |
---|---|
描述 | 停止一个定时器 |
返回值 | 类型:int 返回成功或失败; |
入参 | timer:定时器描述结构体指针; |
7.6 aos_timer_change
定义描述:
函数原型
|
int aos_timer_change(aos_timer_t *timer, int ms)
|
描述
|
修改一个定时器周期
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
timer:定时器描述结构体指针;
|
Ms:新的定时器周期,单位ms
|
8 workqueue工作队列
整体受宏RHINO_CONFIG_WORKQUEUE开关控制
8.1 aos_workqueue_create
定义描述:
函数原型
|
int aos_workqueue_create(aos_workqueue_t *workqueue, int pri, int stack_size)
|
描述
|
创建一个工作队列,内部会创建一个任务关联workqueue
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
workqueue:工作队列描述结构体指针;需要用户定义一个workqueue结构体
|
pri: 工作队列优先级,实际是关联任务优先级
|
|
stack_size:栈大小,单位:byte字节
|
8.2 aos_work_init
定义描述:
函数原型
|
int aos_work_init(aos_work_t *work, void (*fn)(void *), void *arg, int dly)
|
描述
|
初始化一个work,暂不执行
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
work:work工作描述结构体指针;需要用户定义一个work结构体
|
fn: work回调处理函数
|
|
Arg:work回调处理参数
|
|
Dly:延迟处理时间,单位ms,0表示不延迟
|
8.3 aos_work_destroy
定义描述:
函数原型 | void aos_work_destroy(aos_work_t *work) |
---|---|
描述 | 删除一个work |
返回值 | 无 |
入参 | work:work工作描述结构体指针; |
8.4 aos_work_run
定义描述:
函数原型
|
int aos_work_run(aos_workqueue_t *workqueue, aos_work_t *work)
|
描述
|
运行一个work,使其在某worqueue内调度执行
|
返回值
|
类型:int 返回成功或失败;
|
入参
|
workqueue:工作队列描述结构体指针;
|
work:需要执行的工作描述结构体指针;
|
8.5 aos_work_sched
定义描述:
函数原型 | int aos_work_sched(aos_work_t *work) |
---|---|
描述 | 运行一个work,使其在默认工作队列g_workqueue_default内调度执行 |
返回值 | 类型:int 返回成功或失败; |
入参 | work:需要执行的工作描述结构体指针; |
8.6 aos_work_cancel
定义描述:
函数原型 | int aos_work_cancel(aos_work_t *work) |
---|---|
描述 | 取消一个work,使其从所在的工作队列中删除 |
返回值 | 类型:int 返回成功或失败; |
入参 | work:需要取消的工作描述结构体指针; |
9 内存
整体受宏RHINO_CONFIG_MM_TLF开关控制
9.1 aos_zalloc
定义描述:
函数原型 | void *aos_zalloc(unsigned int size) |
---|---|
描述 | 申请内存并清0 |
返回值 | 类型:void * 返回申请到的内存起始指针; |
入参 | size:申请内存大小,单位:byte字节 |
9.2 aos_malloc
定义描述:
函数原型 | void *aos_malloc(unsigned int size) |
---|---|
描述 | 申请内存,需要申请者清0 |
返回值 | 类型:void * 返回申请到的内存起始指针; |
入参 | size:申请内存大小,单位:byte字节 |
9.3 aos_realloc
定义描述:
函数原型
|
void *aos_realloc(void *mem, unsigned int size)
|
描述
|
重置一块内存区域大小
|
返回值
|
类型:void * 返回申请到的内存起始指针;
|
入参
|
Mem:需要重置的内存指针,如果是NULL,则同aos_malloc
|
size:重置内存大小,单位:byte字节 如果mem不为空: 如果size>原内存大小,原内存区域尾部有空闲可用内存,则直接使用,此时返回值等于入参mem;如果当前内存块尾部区域不够,则重新申请size大小的内存,并将原始数据拷贝新区域,并释放原始内存块,此时返回值是块新地址。
|
9.4 aos_alloc_trace
定义描述:
函数原型
|
void aos_alloc_trace(void *addr, size_t allocator)
|
描述
|
设置某块内存的owner
|
返回值
|
无
|
入参
|
addr:需要设置的内存块
|
allocator:表示某owner值
|
9.5 aos_free
定义描述:
函数原型 | void aos_free(void *mem) |
---|---|
描述 | 释放某块内存 |
返回值 | 无 |
入参 | mem:需要释放的内存块 |