基于泰凌微TLSR8258芯片的智能安全头盔解决方案开发之自制IOT微型OS操作系统
一 前记
泰凌微的芯片在国内应用非常广泛,825x作为一个出货的主力芯片,该芯片有着性价比高,功耗低,功能强大等特色。
非常适合做一些比较小的穿戴式设备,比如,手环,智能安全帽等。笔者对这颗芯片用了长时间,做了几款产品之后,越发
喜欢使用这颗芯片了。同时也发现了一些该芯片的不足之处。最大的缺陷就是该芯片的官方软件水平太差了。远没有把该芯片
的能力释放出来。为了多做一些好的产品,笔者的应对之道,就是先给这玩意装一个小的物联网操作系统,对这个系统的定义
是要比freerots还要小,占用资源小,主要应用在微型或者小型物联网设备上。
二 操作系统的价值
说起操作系统,它的价值是非常大的,说的简洁一些,它就是用户和芯片底层之间的沟通桥梁,让写应用软件的工程师合理,
合规的写出规范化的程序来。有了操作系统,芯片的资源可以合理利用,资源调配更合理,产品开发速度更快。
三 系统架构
针对此类小芯片,微型操作系统已经足够了。整个系统只需要消耗十几K的sram空间,可以说是精简到了极致。
这里主要做好以下几个事情。
A 内存管理
B 任务调度
其它的文件系统什么的了,这里可以直接不要,也不需要的。
该os是由两部分构成,一部分是os部分,负责底层的系统任务调度和分配,一部分是iot部分,负责物联网业务层的接口分配。
文件目录如下所示:


上面是os目录,下面是iot目录。
四 价值意义
其实,移植这么一个小系统,花费了我们很多时间,到底意义何在呢?笔者认为,主要有以下三个方面的意义吧,就如在深圳
经常吃的菜叫做一鱼三吃。
A 方便后续做产品解决方案:
有了这个操作系统加持,后面做产品,是水到渠成的事情,很多代码,改动几下即可完成了。
B 结合自身的开发板做成开源产品,源码全开发。
麻雀虽小,五脏俱全,适合物联网刚入门的学习和使用。
很多学生要学习物联网,可苦于没合适的教程和资料,希望这个开源的iot操作系统能给他们带去一些援助。
C 锻炼团队
团队开发人员新人不少,用这个操作系统规范他们的开发,他们会少犯很多错误,成长也比较快。
达到锻炼队伍的目的了。
笔者把公司根据此做IOT操作系统做的开发板放到某宝了,有兴趣的朋友欢迎前来观摩。
宝链接:
泰凌微TLSR8258 BLE5.0物联网IOT评估开发板产品级源码开放-淘宝网 (taobao.com)
基于泰凌微TLSR8258芯片的智能安全头盔解决方案开发之自制IOT微型OS操作系统的更多相关文章
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧
之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...
- [TLSR8267] 泰凌微 telink tlsr8267 ble ADC 用法浅谈
1.读 datasheet 在<DS_TLSR8267-E21_Datasheet for Telink BLE SoC TLSR8267.pdf>第11章详细介绍了ADC相关属性及参数. ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十五)——集中式接口文档实现
之前有小伙伴在评论区留言说如何集成swagger,最开始没有想透给了对方一个似是而非的回答.实际上后来下来想了一下,用.NET5 提供的Source Generator其实可以很方便的实现接口集成.今 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十六)——dapr+sentinel中间件实现服务保护
dapr目前更新到了1.2版本,在之前4月份的时候来自阿里的开发工程师发起了一个dapr集成Alibaba Sentinel的提案,很快被社区加入到了1.2的里程碑中并且在1.2 release 相关 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十七)——服务保护之动态配置与热重载
在上一篇文章里,我们通过注入sentinel component到apigateway实现了对下游服务的保护,不过受限于目前变更component需要人工的重新注入配置以及重启应用更新componen ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式
在之前的系列文章中聊过分布式事务的一种实现方案,即通过在集群中暴露actor服务来实现分布式事务的本地原子化.但是actor服务本身有其特殊性,场景上并不通用.所以今天来讲讲分布式事务实现方案之sag ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十八)——服务保护之多级缓存
很久没有更新dapr系列了.今天带来的是一个小的组件集成,通过多级缓存框架来实现对服务的缓存保护,依旧是一个简易的演示以及对其设计原理思路的讲解,欢迎大家转发留言和star 目录:一.通过Dapr实现 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(二十)——Saga框架实现思路分享
今天这篇博文的主要目的是分享一下我设计Saga的实现思路来抛砖引玉,其实Saga本身非常的类似于一个简单的工作流体系,相比工作流不一样的部分在于它没有工作流的复杂逻辑处理机制(比如会签),没有条件分支 ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统
本来想在Dpar 1.0GA时发布这篇文章,由于其他事情耽搁了放到现在.时下微服务和云原生技术如何如荼,微软也不甘示弱的和阿里一起适时推出了Dapr(https://dapr.io/),园子里关于da ...
随机推荐
- 自己封装的 Python 常用工具库(prestool)
一.安装 需Python 版本建议 3.7 以上 pip install --upgrade prestool 二.常用工具 from prestool.Tool import Tool tool = ...
- 洛谷P3046 海底高铁 巧用差分统计经过区间次数
洛谷P3046 海底高铁 -差分统计经过区间次数 题目贴在这里P3406 海底高铁 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析 本题题干很长,但是题意理解很简单.就是给定n ...
- CentOS7的udev的绑定规则
客户一套RAC环境是华为的存储,共享盘是/dev/sd*,咋一看还怀疑是没有进行多路径配置,实际和主机工程师是已经配置好的,我们使用upadmin show vlun命令可以查看到: [root@xx ...
- DbgridEh 导出 Excel 如果字段长度超过255会截断,那如何导出,另一种神奇的方法
由于DbgridEh 导出 Excel 如果字段长度超过255会截断,所以必须换一种方法来导出,百度 谷歌 看了上百帖,都是有这句: xlApp := CreateOleObject('Excel. ...
- ListView 判断有没有选中的行方法
ListView1.SelCount 返回选中行的行数 应该是 没有测试 但是测试了 如果没有选中行 返回0 如果选中一行了 返回1
- JS Leetcode 80. 删除有序数组中的重复项 II题解,常规解法与快慢双指针做法
壹 ❀ 引 今天的题目来自LeetCode80. 删除有序数组中的重复项 II,是一道难度中等,但实际挺简单的一道题,题目描述如下: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每 ...
- Codeforces Round #884 (Div. 1 + Div. 2) A-E
比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...
- 用 WebClient 代替 RestTemplate
RestTemplate是用于执行 HTTP 请求的同步客户端,通过底层 HTTP 客户端库(例如 JDK HttpURLConnection.Apache HttpComponents 等)公开一个 ...
- 正则表达式(Regular Expression)详解
1 前言 正则表达式主要用于复杂文本处理,如模式匹配.格式检验.文本替换等.常用的通配符有: ^, $, *, ., , -, +, ?, &, |, (), [], {} 2 String中 ...
- 使用CNN实现MNIST数据集分类
1 MNIST数据集和CNN网络配置 关于MNIST数据集的说明及配置见使用TensorFlow实现MNIST数据集分类 CNN网络参数配置如下: 原始数据:输入为[28,28],输出为[1,10] ...