美文网首页
毕设日记(一)

毕设日记(一)

作者: 正源君 | 来源:发表于2021-04-01 14:52 被阅读0次

毕设选题:基于Lite OS的多协议环境检测与控制系统

开学一个月了,毕设就完成了开题报告,并没有着手进行开发,同时研究生复试还没通知。那就先准备毕设吧!因为之前学着做过一个智慧农业的实践,并没有代码编写,跟着跑了一遍的样子。现在回头复习。

硬件上我选用的小熊派的开发套件,E53系列的扩展板还有一系列的通信模组。主要参考资料来源有:小熊派开发板资料、华为Lite OS论坛及Lite OS开发资料、微信公众号Lite OS物联网操作系统。

先照着公众号的入门基础回顾一下

1、开发环境配置,

主要有4个开发环境可以用于开发配置,适用于arm系列中STM32等的Keil5(需破解、导入适合小熊派开发的STM32L431RCT硬件库、配置和生成C代码生成的图形化工具STM32CubeMX(包含所有STM32系列芯片,但需安装Java环境JRE)、华为自家的Lite OS Studio(IOT Studio)、微软集成开发的VIsual Studio Code(不是Visual Studio)

2、物联网操作系统

运行在终端上,对终端进行控制和管理,并提供统一接口的操作系统软件。或者说,满足物联网需求的服务软件平台

3、下面引入正题华为Lite OS:华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。

主要介绍五大内核模块

a、任务管理

任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。

Huawei LiteOS是一个支持多任务的操作系统,一个任务就表示一个线程,任务之间可以进行切换和通信。LiteOS的任务管理模块提供任务创建、删除、延时、挂起和恢复、更改任务优先级、锁定任务调度和解锁任务调度、根据任务控制块查询任务 ID、根据 ID 查询任务控制块信息等功能。

LiteOS内核是抢占式调度内核,所以高优先级的任务可以打断低优先级任务,低优先级任务必须在高优先级任务阻塞或结束后才能得到调度,同优先级任务会进行时间片轮转调度。优先级表示任务执行的优先顺序,决定了在发生任务切换时即将要执行的任务。LiteOS中的任务一共有32个优先级 (0-31),最高优先级为 0,最低优先级为31。

每一个任务都含有一个任务控制块(TCB)。TCB 包含了任务上下文栈指针(stack pointer)、任务状态(包括就绪、运行、阻塞、退出4种状态)、任务栈大小(任务栈里保存着局部变量、寄存器、函数参数、函数返回地址等)、任务优先级、任务ID、任务名等信息。TCB相当于每个任务在内核中的身份证,可以反映出每个任务运行情况。

在任务模块初始化时,系统会先申请TCB需要的内存空间。如果任务初始化成功,则系统对TCB内容进行初始化。用户创建任务时,系统会将任务栈进行初始化,预置上下文。此外,系统还会将“任务入口函数”地址放在相应位置。这样在任务第一次启动进入运行态时,将会执行“任务入口函数”。

信号量(Semaphore)是一种实现任务间通信的机制,可以用于任务之间同步或临界资源的互斥访问。

信号量可以被任务获取或者申请,不同的信号量通过信号量索引号来唯一确定,每个信号量都有一个计数值和任务队列。通常信号量的计数值表示有效的资源数,即剩下的可被占用的互斥资源数。当任务申请(Pend)信号量时,如果申请成功,则信号量的计数值递减,如申请失败,则挂起在该信号量的等待任务队列上,一旦有任务释放该信号量,则等待任务队列中的任务被唤醒开始执行。

互斥锁(mutex)又称互斥型信号量,是一种特殊的二值信号量,用于实现对共享资源的独占式处理。互斥锁主要使用在多任务环境下,此时往往存在多个任务竞争同一共享资源的应用场景。另外,Huawei LiteOS通过优先级继承算法,解决了信号量存在的优先级翻转问题。

任意时刻互斥锁只有两种状态:开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权。当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有,所以其他任务此时访问这个公共资源将会被阻塞,直到互斥锁被持有该锁的任务释放后,其他任务才能重新访问该公共资源。

相关文章

  • 毕设日记(一)

    毕设选题:基于Lite OS的多协议环境检测与控制系统 开学一个月了,毕设就完成了开题报告,并没有着手进行开发,同...

  • 毕设毕设

    最近某些人又要被逼疯了。 因为一个两个字的东西,“毕设”,最近全宿舍都在每天做毕设,因为要交稿的日期将近。 每当截...

  • 毕设

    告别这美好的2个月 又让我重回大学时光

  • 毕设

    辛追穿着汉服,睡在河边,狼狈不堪。恰逢一个担着蔬菜的汉子(利仓穿越至现代的人),将他救起,他将她带到家里,照顾贴切...

  • 毕设

    2.毕业设计环节中的具体工作内容(包括原始数据、技术、工作要求等): 主要功能: 详细的礼物分类,解决送礼物难...

  • 毕设

    弹指一挥间,一周过去了。毕业设计也要接近最后的尾声,只剩下最后的毕业答辩。 过去人们常说:The knowledg...

  • 毕设

    这几天还在杭州 因为药面试 但是回来后 也考虑果毕设 之前问了哥哥 我做的这个系统要有传照片 穿视频等等 类似于Q...

  • 菜瓜的毕设日记

    2020年2月5日 纠结了很久的点击TextView跳转,最后发现是一个很简单的问题。怎么发现的呢?这个问题说来话...

  • 毕设总结(一)

    前言 本科毕业设计答辩到此结束,在此我要特别感谢王老师,感谢她在我做毕设期间不厌其烦地教我项目中的原理以及如何应用...

  • 2022-01-14【关于记录】【毕设】【rpc零容忍】

    关于记录 记日记(笔记)能够提升一个人的自我觉察和复盘的能力。 为什么要记录? 最近做毕设实在有些心烦意乱,毕设这...

网友评论

      本文标题:毕设日记(一)

      本文链接:https://www.haomeiwen.com/subject/ybazhltx.html