前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【IoT迷你赛】TencentOS_tiny 初体验

【IoT迷你赛】TencentOS_tiny 初体验

原创
作者头像
用户2719532
发布2019-08-28 22:41:53
2.4K0
发布2019-08-28 22:41:53
举报
文章被收录于专栏:腾讯云IoT

简述

平时工作太忙,只能周末抽时间体验下,windows程序员一枚,对硬件不是很懂,主要是想分析下TencentOS_tiny的代码,物联网操作系统包括AliosThings, FreeRTOS等,相比较于现代PC上的操作系统,因为没有MMU,所以不存在虚拟内存管理,也没有用户模式和内核模式之分,所有任务都在一个地址空间运行,通过时钟中断来调度不同的任务,再加上实现的物联网协议中间件及接云平台SDK,基本就包括了物联网操作系统的所有东西了。

启动流程分析

1. cpu复位后首先执行的是startup_stm32l431xx.s里面的Reset_Handler

2. Reset_Handler调用main函数

3. main函数实现位于BSP/Src/main.c中

board_init: 主要是外设初始化,包括UART,GPIO,OLED等

osKernelInitialize: 内核初始化,包括任务队列初始化,堆初始化,创建idle任务,定时器初始化等

osThreadCreate: 创建一个任务,任务入口为application_entry,也就是example目录下各个demo的入口点

osKernelStart: 上面创建了idle任务,以及demo的application_entry任务后,任务只是入了ready队列,还未开始调度,调用此函数后,此函数会从ready队列里取出任务优先级最高的任务,然后调用cpu_sched_start做调度

实验

不会写小程序,只做了一个环境监测,把光感,湿度和温度感应器的数据上报到云平台了

建议

1. 简化开发,构建,下载流程,比较喜欢命令行完成所有东西,keil的工程文件每个用户打开都会变,导致git仓库维护很麻烦。

2. 更合理的目录组织,现在添加一个demo,得在board目录下建个demo目录,然后还得在example下建个demo目录,不是很方便,考虑是不是应该将demo和board分开,比如hello_world这种demo应该是通用的,而不是特定于一个板子。

3. 修改产品名称,产品密钥和设备名称为什么要去修改sdk目录的文件呢,感觉这里也有点不合理。

4. iotexplorer能更完善一下,有的添加了模板后,标准功能一栏竟然是空的,还有我前几天的设备日志也搜索不到。

TencentOS_tiny加油!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简述
  • 启动流程分析
  • 实验
  • 建议
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档