首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【IoT迷你赛】手把手系列-基于TOS & IoT Explorer的物联网智能闹钟实践

    image.png 开发实践 一、验证软硬件 1、编译操作系统代码 拿到操作系统源码和开发板后,将串口驱动,st-link驱动安装好之后,打开工程开始编译。...2、烧录:通过stlink下载程序到开发板 测试操作系统能否进行简单的任务创建,任务调度,栈空间分配等基本的RTOS操作。...于是不采用云函数,使用操作系统中与智能灯配套的微信小程序demo中的sdk。该sdk是根据官方的node.js的sdk进行修改做出的适配小程序的接口。...效果演示 视频时长5min 视频内容 写在最后 作为物联网行业的初学者,通过对这款智能闹钟的设计与开发,我对基于物联网开发平台的开发流程,操作系统的任务调度都有了清晰的认识。...虽然这是我第一次接触并使用物联网操作系统和物联网开发平台,但比赛周期中我在这两个环节花费的时间占比并没有很多,更多的时间是在实现业务逻辑,可见产品的易用性以及对开发效率的提升。

    4K183

    【IoT迷你赛】基于Tos开发板和Wi-Fi探针技术实现“无感体验”iot生活

    在前不久华为发布了基于鸿蒙系统的荣耀智慧屏,当时在网上也看了很多博主的体验视频,印象最深的一个地方是当使用者对这荣耀智慧屏喊一声“我回家了”,智慧屏就会自动开启窗帘、电灯、空气净化器等智能设备。...TencentOS tiny简介: TencentOS tiny是面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。...TencentOS tiny 可以有效减少开发人员在任务管理、硬件支持、网络协议支持、安全方案以及文件系统、 KV 存储、在线升级等常用功能组件相关的开发中所需要的时间和工作量,并且能够快速高效的实现设备的低功耗运行...开发板,tos开发板在收到指令后会根据指令内容来控制LED灯。...开发环节: 需要的硬件: TencentOS tiny开发板 ESP8266NodeMCU开发板 ESP-01联网模块(探针) 控制模块和LED灯的实现: 控制模块开发板:EVB_MX是腾讯物联网操作系统

    1.4K110

    【IoT迷你赛】TencentOS tiny学习源码分析(4)——消息队列

    所以在tos_config.h中会用以下宏定义: #if (TOS_CFG_QUEUE_EN > 0u) #define TOS_CFG_MSG_EN 1u #else #define TOS_CFG_MSG_EN...0u #endif 系统消息池初始化 在系统初始化(tos_knl_init())的时候,系统就会将消息池进行初始化,其中, msgpool_init()函数就是用来初始化消息池的,该函数的定义位于...*msg_queue) { TOS_PTR_SANITY_CHECK(msg_queue); #if TOS_CFG_OBJECT_VERIFY_EN > 0u if (!...TOS_CPU_CPSR_ALLOC(); k_msg_t *msg; #if TOS_CFG_OBJECT_VERIFY_EN > 0u if (!...写入消息的过程非常简单,直接通过msgpool_alloc()函数从消息池取出一个空闲消息,如果系统不存在空闲的消息,则直接返回错误代码K_ERR_MSG_QUEUE_FULL表示系统可用的消息已经被使用完

    52080

    RTOS内功修炼记(四)— 小小的时钟节拍,撑起了内核半边天!

    空闲任务 当系统中的所有任务都在延时列表中时,那就绪列表岂不是没有东西了???CPU岂不是凉了???待会用事实说话。...在每个时钟节拍来临的时候,对系统中存在的软件定时器一并进行处理。...时间片调度算法 时间片调度算法用来处理「系统中同时存在两个优先级相同的就绪任务,且都不让出CPU」的情况,分别按照任务设置的时间片tick数轮流执行。...可以看到两个任务都不让出CPU,因为两个任务的优先级想通过,所以系统依然根据设置的时间片tick数进行轮流调度运行,这也是进一步符合RTOS这种实时操作系统的调度要求。 10....③ 软件定时器采用回调函数模式时,执行回调函数的时候系统调度处于上锁状态,执行完毕之后才会解锁,「不用担心会发生任务切换」。

    1.1K12

    【IoT迷你赛】TencentOS tiny学习源码分析(5)——信号量

    信号量 信号量(sem)在操作系统中是一种实现系统中任务与任务、任务与中断间同步或者临界资源互斥保护的机制。在多任务系统中,各任务之间常需要同步或互斥,信号量就可以为用户提供这方面的支持。...通常一个信号量是有计数值的,它的计数值可以用于系统资源计数(统计)。 一般来说信号量的值有两种: 0:表示没有积累下来的post信号量操作,且可能有任务阻塞在此信号量上。...一般来说信号量多用于同步而非互斥,因为操作系统中会提供另一种互斥机制(互斥锁),互斥量的互斥作用更完善:互斥量有优先级继承机制,而二值信号量则没有这个机制,此外互斥量还拥有所有者属性,我们会在后续讲解。...在释放(post)信号量的时候能立即将等待的任务转变为就绪态,如果任务的优先级在就绪任务中是最高的,任务就能立即被运行,这就是操作系统中的“实时响应,实时处理”。...在操作系统中使用信号量可以提高处理的效率。

    61550

    【IoT迷你赛】TencentOS tiny学习源码分析(2)——调度器

    为了保证系统的实时性,系统尽最大可能地保证高优先级的任务得以运行。...因为PendSV都会涉及到系统调度,系统调度的优先级要低于系统的其它硬件中断优先级,即优先响应系统中的外部硬件中断,所以PendSV的中断优先级要配置为最低,不然很可能在中断上下文中产生任务调度。...函数将系统时基更新,具体见: __API__ void tos_tick_handler(void) { if (unlikely(!...(k_curr_task->prio); #endif } 不得不说TencentOS tiny源码的实现非常简单,我非常喜欢,在tos_tick_handler中,首先判断一下系统是否已经开始运行,如果没有运行将直接返回...,如果已经运行了,那就调用tick_update函数更新系统时基,如果使能了TOS_CFG_TIMER_EN 宏定义表示使用软件定时器,则需要更新相应的处理,此处暂且不提及。

    48331

    【IoT迷你赛】TencentOS学习源码分析(1)——task

    @toc 任务的基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元。...TencentOS tiny是一个支持多任务的操作系统,任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行,理论上任何数量的任务都可以共享同一个优先级,这样子处于就绪态的多个相同优先级任务将会以时间片切换的方式共享处理器...系统默认可以支持10个优先级,0~TOS_CFG_TASK_PRIO_MAX,这个宏定义是可以修改的,优先级数值越大的任务优先级越低,(TOS_CFG_TASK_PRIO_MAX - (k_prio_t...,任务的执行是由系统调度的。...当timeslice为0时,任务调度时间片会被设置为默认大小(TOS_CFG_CPU_TICK_PER_SECOND / 10),系统时钟滴答(systick)数 / 10。

    55220

    【IoT迷你赛】TencentOS学习源码分析(1)——task

    任务的基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元。...TencentOS是一个支持多任务的操作系统,任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行,理论上任何数量的任务都可以共享同一个优先级,这样子处于就绪态的多个相同优先级任务将会以时间片切换的方式共享处理器...系统默认可以支持10个优先级,0~TOS_CFG_TASK_PRIO_MAX,这个宏定义是可以修改的,优先级数值越大的任务优先级越低,(TOS_CFG_TASK_PRIO_MAX - (k_prio_t...,任务的执行是由系统调度的。...当timeslice为0时,任务调度时间片会被设置为默认大小(TOS_CFG_CPU_TICK_PER_SECOND / 10),系统时钟滴答(systick)数 / 10。

    52770

    AIoT应用创新大赛--我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发)

    背景 自从21年接触了OpenHarmony后,就对GN+Ninja的构建系统特别感兴趣,然后自己尝试着做了一个简化版的构建系统。...而本次比赛中,如果不考虑使用官方IDE的话,又不想用makefile(主要是不会写),所以还是尝试着用GN+Ninja完成了rt1062的构建系统。...GN + Ninja构建环境的优势 代码依赖树清晰明了 GN语法容易看得懂 构建脚本分工明确 编译参数可见 构建速度快 综上所述,GN + Ninja可以成为个人或者公司考虑新的构建系统时,一个非常优质的选择方案...对于不想了解细节的同学,只需要关注前面的内容即可,有兴趣了解GN构建系统的,可以往下看。...GN的组件依赖 GN构建系统,它的依赖树根节点是executable类型的对象,然后在这个对象的依赖组件上,延伸至末端组件。

    1.6K10

    TencentOS tiny RTOS快速入门

    1.3 总结 概念性总结: 多任务适合业务场景更加复杂的应用场景 多任务适合对实时响应要求更高的场景 使用总结: 详情请参考腾讯物联网终端操作系统开发指南.pdf文档 2、TencentOS tiny...软件定时器,顾名思义就是软件实现的定时器,它是和硬件定时器有本质区别的,软件定时器使用的是系统调度所依赖的嘀嗒定时器,也就是Systick来实现的,它主要解决一些不需要特别精准的定时触发场合,目前github...,这样我们就可以很方便的在任何一个地方对其进行读写操作,但如果在操作系统中却恰恰相反,这种奇怪的现象被称为不可重入,通常在操作系统里叫临界区资源,在字符串操作中,典型的不可重入函数是strtok,strtok...3.2.3、总结 概念性总结: 信号量可以用于实现任务间同步 信号量最典型的应用就是处理生产者与消费者的问题 使用总结: 详情请参考腾讯物联网终端操作系统开发指南.pdf文档 3.3、TencentOS...3.4.2、TencentOS tiny RTOS队列实践 关于怎么使用队列,可以参考腾讯物联网终端操作系统开发指南.pdf文档,但该文档的API过老,可能不适合现在的版本,于是找来了一个新版的API,

    2.8K70

    RTOS内功修炼记(二)—— 优先级抢占式调度到底是怎么回事?

    ,说完继续处理中断…… 所以说,无论任务的优先级有多高,它都没有中断高,「系统的PendSV异常优先级必须设为最低的」,以避免在外部中断服务函数中产生任务切换。...② 「用于指示系统目前所使用优先级的优先级表」。...,默认是系统定义的最大优先级。...系统中的就绪列表 系统中有多少条就绪列表呢? 对了,答案当然是:「仅有唯一的一条就绪列表」。...判断系统中该优先级是否第一次出现,如果是,则将优先级表中此优先级的标志位置1,表示系统中存在此优先级的任务,并重新赋值就绪列表中的最高优先级指示成员(注:优先级值越小,表示优先级越高): __STATIC_INLINE

    2.6K11

    【IoT迷你赛】TencentOS tiny学习源码分析(3)——队列

    队列的阻塞机制 举个简单的例子来理解操作系统中的阻塞机制: 假设你某天去餐厅吃饭,但是餐厅没菜了,那么你可能会有3个选择,你扭头就走,既然都没菜了,肯定换一家餐厅啊是吧。...中,使能队列组件的宏定义TOS_CFG_QUEUE_EN,使能消息队列组件宏定义TOS_CFG_MSG_EN,系统支持的消息池中消息个数宏定义TOS_CFG_MSG_POOL_SIZE。...#define TOS_CFG_QUEUE_EN 1u #define TOS_CFG_MSG_EN 1u #define TOS_CFG_MSG_POOL_SIZE...,而在系统初始化的时候就将这个大数组的各个元素串初始化,并挂载到空闲消息列表中k_msg_freelist,组成我们说的消息池k_msg_pool,而池中的成员变量就是我们所说的消息。...queue) { TOS_CPU_CPSR_ALLOC(); TOS_PTR_SANITY_CHECK(queue); #if TOS_CFG_OBJECT_VERIFY_EN >

    86220

    【IoT迷你赛】TencentOS tiny学习源码分析(2)——调度器

    为了保证系统的实时性,系统尽最大可能地保证高优先级的任务得以运行。...因为PendSV都会涉及到系统调度,系统调度的优先级要低于系统的其它硬件中断优先级,即优先响应系统中的外部硬件中断,所以PendSV的中断优先级要配置为最低,不然很可能在中断上下文中产生任务调度。...函数将系统时基更新,具体见: __API__ void tos_tick_handler(void) { if (unlikely(!...(k_curr_task->prio); #endif } 不得不说TencentOS tiny源码的实现非常简单,我非常喜欢,在tos_tick_handler中,首先判断一下系统是否已经开始运行,如果没有运行将直接返回...,如果已经运行了,那就调用tick_update函数更新系统时基,如果使能了TOS_CFG_TIMER_EN 宏定义表示使用软件定时器,则需要更新相应的处理,此处暂且不提及。

    50920

    腾讯云服务器操作系统TencentOS安装与体验

    BUGFIX NVME IO按比例隔离 3)性能优化 : 计算、存储和网络子系统均经过优化,包括:优化 xfs 内存分配,解决 xfs kmem_alloc 分配失败告警优化网络收包大内存分配问题,解决...4、系统安装过程截图 系统安装是通过解压sqfs文件的方式完成的 reboot -f重启 5、重启后进到登录界面 user: root password: Tlinux2019++ 6、配置...NAT模式,这里设置IP地址为192.168.150.25/24,网关192.168.150.2 7、SSH登录 查看/root/Changlog 8、内置tencentos-tools工具使用 1)tos...-h查看命令帮助 tos -h 例如 配置域名DNS服务器后 tos -cu检查系统更新 可以看到已经最新版本 2)tos -i tos -i ncdu #安装EPEL中的ncdu软件 3)tos...-b 备份系统 tos -b ?

    24.9K281231
    领券