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

alios thing 信号量_AliOS Things内核API相关推荐

  1. alios thing 信号量_信号量_AliOS Things内核_API参考文档_AliOS Things 文档_IoT物联网操作系统 - 阿里云...

    对于多任务,甚至多核的操作系统,需要访问共同的系统资源.共享资源包括软件资源和硬件资源,软件共享资源主要是共享内存,包括共享变量.共享队列等等,硬件共享资源包括一些硬件设备的访问,例如:输入/输出设备 ...

  2. alios thing 信号量_AliOS Things 技术架构-阿里云开发者社区

    技术架构总览 AliOS Things 是一款由阿里巴巴开发的轻量级物联网操作系统. 它在2017年杭州云栖大会中问世,并在同年10月20号于github:https://github.com/ali ...

  3. Windows内核API HOOK 之 Inline Hook

    来源:CSDN   作者:daiwen 名字起得好,Inline hook,乍一听,似乎很高深.此处的Inline,我以为,意指将汇编代码直接写入内核API的内存区域.Inline Hook不像用户态 ...

  4. alios thing 信号量_操作系统100问

    1.什么是微内核? 内容:微内核定义?微内核包括哪些功能?相对于宏内核,操作系统采用微内核由什么好处?主流的微内核技术有哪些?分别都有哪些应用? 2.什么是网络操作系统? 内容:网络操作系统是什么?其 ...

  5. linux vma,内存管理 – Linux内核API find_vma

    find_vma函数功能描述:find_vma( )函数根据一个属于某个进程的虚拟地址,找到其所属的进程虚拟区间,并返回相应的vma_area_struct结构体指针. find_vma文件包含 #i ...

  6. linux ns机制,Linux内核API ns_to_timespec

    ns_to_timespec函数功能描述:函数ns_to_timespec( )将参数表示的时间转换成用结构体timespec变量表示的时间,参数的时间单位是纳秒. ns_to_timespec文件包 ...

  7. linux irq 接口,中断机制 – Linux内核API irq_set_chip_data

    irq_set_chip_data函数功能描述:此函数是为irq_desc(结构体变量irq_desc的定义参见文件linux-3.19.3/include/linux/irqdesc.h)数组中对应 ...

  8. Linux内核wait,进程调度 – Linux内核API wait_for_completion

    wait_for_completion函数功能描述:此函数用于阻塞当前进程,等待其他进程的执行结束,被等待进程保存在输入参数的wait字段所代表的等待队列中,只有当等待队列中的进程被函数complet ...

  9. linux complete,Linux内核API complete_all

    complete_all函数功能描述:此函数主要用于唤醒等待队列中的所有的睡眠进程,并能更改等待队列被唤醒的次数,唤醒次数保存在参数的done字段中,函数设置字段done的值为在done原值的基础上加 ...

最新文章

  1. 初识java类的接口实现
  2. oracle 辅助实例,初学rman问题小记三:创建辅助实例遇到的ORA-01031
  3. CStopwatch详细用法
  4. android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
  5. FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
  6. 注释(Annotation)
  7. Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
  8. 【Android】关于Android控件EditText的属性InputType的一些经验
  9. PreparedStatement批量处理的一个Framework(原创)
  10. JS高级:事件冒泡和事件捕获;
  11. Blazor正式成为Microsoft官方.NET 和WebAssembly项目
  12. Oracle入门(十四.11)之使用显式游标属性
  13. jsonpath 判断是否包含_mysql json 判断某个key是否存在
  14. [原]那些年整理的Linux常用命令,简单明了
  15. ios开发之iOS 11 SDK 的新特性
  16. matlab陷波带阻滤波器,matlab陷波滤波器 陷波滤波器器应放在系统的闭环吗
  17. dota2服务器切换账号,畅爽竞技必看 DOTA2服务器选择指南
  18. mousetrap.js使用详解
  19. 苹果和虫子c语言编程题,虫子吃苹果:每天10分钟,锻炼少儿编程计算思维
  20. ImportError: Couldn‘t import Django

热门文章

  1. OTA升级常见问题及流程
  2. win10和win11系统qq远程不能控制(点不动)的终极解决方法
  3. PHPMailer 使用方法(支持群发):
  4. 你知道上海社保缴费基数吗?上海各类人员的社保缴费基数
  5. 团队的英文翻译缩写_动漫团队名称-团队英文名称~~人数不限的、 最好是** – 手机爱问...
  6. python pandas 增加一列_pandas删除行删除列增加行增加列的实现
  7. ceph监控管理平台calamari
  8. python定时更换mac 超美桌面背景
  9. 2023年会议教学庭审录像机产品分析
  10. 有 4 件事,我很后悔