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 ), voidarg, 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 charname, 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 intactl_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, voidbuf, 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, voidmsg, 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, voidmsg, 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_tqueue)
描述
获取一个队列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 ), voidarg, 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_twork)
描述
运行一个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(voidmem, 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:需要释放的内存块