AliOS Things内核API

更新时间:2018-10-19 11:29:34

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:需要释放的内存块

results matching ""

    No results matching ""