BC26 OpenCPU System API接口
System部分的API接口和RTOS常用的API接口类似。
BC26 OpenCPU SDK:https://github.com/sanjaywu/BC26-OpenCpu
1、重启系统
void Ql_Reset(u8 resetType);
- 入口参数:
resetType: 必须为0。
2、挂起当前任务直到时间超时
void Ql_Sleep(u32 msec);
入口参数:
msec:任务挂起的时间,单位:ms。
注意事项:任务挂起时间不能太长,否则任务会接收到很多消息而无法处理,导致系统自动重启。
3、获取SDK版本
s32 Ql_GetSDKVer(u8* ptrVer, u32 len);
入口参数:
ptrVer:保存SDK版本信息缓存区,要求至少20字节大小。
len:缓存区长度。返回参数:
获取成功:返回SDK版本信息长度。
获取失败:则返回错误码。
4、从当前消息队列获取消息,如果当前消息队列没有消息,则会处于等待状态
s32 Ql_OS_GetMessage(ST_MSG* msg);
入口参数:
ST_MSG:ST_MSG指针:
typedef struct {u32 message;u32 param1;u32 param2;u32 srcTaskId;
} ST_MSG;
- 返回参数:一直返回 QL_RET_OK。
5、在ISR中发送消息到其它任务(psm-eint回调除外)
s32 Ql_OS_SendMessageFromISR(s32 destTaskId, u32 msgId, u32 param1, u32 param2);
入口参数:
destTaskId: 发送消息到目的地任务的ID。
msgId: 消息ID,必须大于0xFF。
param1、param2: 发送给其它任务的参数返回参数:
OS_SUCCESS:发送成功。
OS_INVALID_ID:ID无效。
OS_MEMORY_NOT_VALID:内存不足。
OS_Q_FULL:消息队列已满。
6、在任务间发送消息。
s32 Ql_OS_SendMessage(s32 destTaskId, u32 msgId, u32 param1, u32 param2);
入口参数:
destTaskId: 发送消息到目的地任务的ID。
msgId: 消息ID,必须大于0xFF.
param1、param2: 发送给其它任务的参数返回参数:
OS_SUCCESS:发送成功。
OS_INVALID_ID:ID无效。
OS_MEMORY_NOT_VALID:内存不足。
OS_Q_FULL:消息队列已满。
7、创建互斥量
u32 Ql_OS_CreateMutex(void);
返回参数:
创建成功:互斥量句柄,Mutex Id。
创建失败:0。
8、获取互斥量
void Ql_OS_TakeMutex(u32 mutexId,u32 block_time);
入口参数:
mutexId:互斥量句柄。
block_time:阻塞等待互斥量时间,单位:ms。
9、释放互斥量
void Ql_OS_GiveMutex(u32 mutexId);
入口参数:
mutexId:互斥量句柄。
10、创建计数型信号量
u32 Ql_OS_CreateSemaphore(u32 maxCount,u32 InitialCount);
入口参数:
maxCount:可以达到的最大计数值。当信号量达到这个值时,就不能再“给定”。
InitialCount:创建时分配的信号量值。返回参数:
创建成功:信号量句柄。
创建失败:0。
11、获取计数型信号量
u32 Ql_OS_TakeSemaphore(u32 semId, u32 block_time);
入口参数:
semId:要获取的信号量句柄。
block_time:阻塞等待信号量时间,单位:ms。返回参数:
TRUE:在等待时间内获取信号量成功。
FALSE:在等待时间内获取信号量失败。
12、释放计数型信号量
void Ql_OS_GiveSemaphore(u32 semId);
入口参数:
semId:要释放的信号量句柄。
13、创建事件集,一个事件集有多个事件标志组成,每个事件集能包含10个事件标志
u32 Ql_OS_CreateEvent(void);
返回参数:
返回一个独一无二的事件集句柄。
14、等待事件
s32 Ql_OS_WaitEvent(u32 evtId, u32 evtFlag,u32 block_time);
入口参数:
evtId:要等待的事件集句柄。
evtFlag:获取到的事件标志值。
block_time:等待阻塞时间。返回参数:
获取事件成功:返回0。
获取事件失败:返回一个非0值。
15、发送事件标志
s32 Ql_OS_SetEvent(u32 evtId, u32 evtFlag);
入口参数:
evtId:要发送的事件集句柄。
evtFlag:要发送的事件标志值。返回参数:
发送事件成功:返回0。
发送事件失败:返回一个非0值。
16、设置错误码
s32 Ql_SetLastErrorCode(s32 errCode);
入口参数:
errCode:要设置的错误码。
返回参数:
QL_RET_OK:执行成功。
QL_RET_ERR_FATAL:设置错误码失败。
17、获取错误码
s32 Ql_GetLastErrorCode(void);
- 返回参数:调用任务的最后一个错误代码。
18、获取当前任务优先级
u32 Ql_OS_GetCurrentTaskPriority(void);
- 返回参数:任务的优先级大小,范围在200~255。
19、获取当前任务堆栈中剩余的字节数
u32 Ql_OS_GetCurrenTaskLeftStackSize(void);
- 返回参数:堆栈大小,范围在1024~10*1024
20、将数据保存到NVRAM里面,掉电不丢失
s32 Ql_SecureData_Store(u8 index , u8* pData, u32 len);
入口参数:
index:NVRAM块索引,1或2。
pData:要保存的数据,最多只能保存50字节。
len:要保存的数据大小。返回参数:
QL_RET_OK: 保存成功。
QL_RET_ERR_PARAM: 保存失败,参数无效。
21、从NVRAM里面读取数据
s32 Ql_SecureData_Read(u8 index, u8* pBuffer, u32 len);
入口参数:
index:要读取的NVRAM块索引,1或2。
pBuffer:保存读取到数据指针。
len:读取到的数据大小,最大50字节。返回参数:
QL_RET_OK: 读取成功。
QL_RET_ERR_PARAM: 读取失败,参数无效。
注意事项:OpenCPU设计了2块系统存储空间来备份关键用户数据。开发者可以指定第一个参数索引[1-2]来指定不同的存储块,每个存储块可以存储50字节的数据。
BC26 OpenCPU System API接口相关推荐
- BC26 OpenCPU Time API接口
BC26 OpenCPU 提供了时间相关的API接口,可以设置.获取本地时间,也可以将转换日历为秒或将秒转换为日历时间. BC26 OpenCPU SDK:https://github.com/san ...
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- 不使用jQuery对Web API接口POST,PUT,DELETE数据
前些天,Insus.NET有演示Web API接口的操作: <怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html ...
- 简单API接口签名验证
前言 后端在写对外的API接口时,一般会对参数进行签名来保证接口的安全性,在设计签名算法的时候,主要考虑的是这几个问题: 1. 请求的来源是否合法 2. 请求参数是否被篡改 3. 请求的唯一性 我们的 ...
- api接口返回动态的json格式?我太难了,尝试一下 linq to json
一:背景 1. 讲故事 前段时间和一家公司联调api接口的时候,发现一个奇葩的问题,它的api返回的json会动态改变,简化如下: {"Code":101,"Items& ...
- .NET Core使用swagger进行API接口文档管理
一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...
- api接口怎么用_API接口的使用我这里用java和python都写出来了
实现调用API接口-阿里云大学edu.aliyun.com python import urllib, sys import urllib.request import sslhost = 'htt ...
- java 新浪短网址生成器,新浪短链接接口被限制?最新新浪短网址api接口
背景 新浪短网址api是sina平台官对外公开的短网址生成接口,可以将长链接通过接口生成t.cn样式的短链接,可以说是非常好用的.但近期新浪官方开始对已经公布的接口做出了多重限制,很多之前能用的功能现 ...
- java获取api接口新浪数据,新浪短网址API接口的获取以及API接口的调用文档分享...
我们可能会收到类似于这样的短信,发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实现长链接 ...
- java 百度api接口开发_百度熊掌号使用Java工具类对接API推送接口进行文章推送实例详解...
对于java程序员来说,自己运维的百度熊掌号当然得使用java的方式去每天推送文章了.目前,百度推出了百度熊掌号服务.旨在更好的为站长服务.那么百度熊掌号如何通过推送API接口实现自动文章推送呢? 第 ...
最新文章
- linux运行炉石传说,使用Lutris在Linux上玩炉石传说
- 8种相似度度量方式的原理及实现【笔记自用】【1】
- Designing GANs:又一个GAN生产车间
- aspx是什么语言_什么是网页
- 课时106.边框练习(理解)
- 这篇纯数据分析文章被拒8次,发到行业顶刊
- 学习ActiveMQ(一):安装与启动
- 信息学奥赛一本通——1000:入门测试题目
- 10.众里寻他千百度- Find命令和文件后缀
- 解决 MyEclipse 的耗内存卡死的办法
- 常用CSS优化总结——网络性能与语法性能建议
- 读Windows核心编程-1-错误处理
- 易语言锐浪报表连接mysql_学习锐浪报表之MySQL连接字符串的实际操作步骤汇总...
- 哈理工OJ1219——结构体
- 将linux的系统时间EDT改为CST
- asciidoc_如何使用AsciiDoc创建博客
- 深度解读扫地机器人的导航原理
- Python获取二维数组的行列数
- WebGL技术,让你可以在浏览器编辑模型
- 数值计算方法(Numerical Methods)MATLAB实现(1)---Gauss消元法、Doolittle分解