自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 LiteOS内核开发(七)

本章将介绍LiteOS内核中的软件定时器1. 基本概念与简介软件定时器是为了满足在实际设计中硬件定时器数量不足,而开发出的使用软件来模拟定时器功能。基于系统Tick时钟中断,在经过特定的Tick后,会触发用户自定义的回调函数(类似硬件的中断服务函数)。一般来说,软件定时器回调函数的上下文是任务,且回调函数也要快进快出,且回调函数中不能有任何阻塞任务运行的情况,容易造成执行混乱。LiteOS下软件定时器有以下功能:创建软件定时器,启动软件定时器,停止软件定时器,删除软件定时器,获取软件定时器剩余T

2022-04-16 15:19:16 594

原创 LiteOS内核开发(六)

本章将介绍LiteOS内核中的信号量模块1.基本概念与简介是任务间通信的一种重要方式,ipc的一种,可以实现任务间同步或者共享资源的互斥访问,而每个信号量数据结构中都具有一个表示目前可以共享的资源量计数,当这个数值为0时,表示该信号量不可获取,可能存在等待该信号量的任务;这个数字为正时,表示当前信号量可以获取。如之前所说,信号量可以有同步和互斥两种目的:以同步为目的的信号量,计数初始值为0,某任务因为无法获取信号量资源而挂起,只有等待其他任务或中断执行完毕,释放资源到信号量中,该任务才得以就绪.

2022-04-16 15:11:41 611

原创 LiteOS内核开发(五)

本章将介绍LiteOS内核中的消息队列模块1. 基本概念消息队列是IPC的一种,也是一种常用于任务间进行通信的数据结构,消息队列通过接收任务或者中断的不固定长度消息,根据不同的接口来确定消息是否存放在队列空间中。任务可以从队列中读取消息,当队列中没有消息时,挂起读取任务;当出现新消息时,挂起的任务被唤醒并处理新的消息。任务也可以往队列中写入内容,当消息队列已满时,挂起写入任务,当队列中有空闲时,挂起的写入任务被唤醒并写入消息,若将读写任务的超时时间设置为0,则在不满足条件时直接退出,而不是挂起.

2022-04-16 15:01:03 426

原创 LiteOS内核开发(四)

本章将介绍LiteOS内核的中断功能1. 基本概念与简介中断主要指的是,CPU暂停执行手头的任务,转向执行新任务的过程。在实际的场景中往往是外设的一些任务完成需要CPU的参与,外设就会向CPU发射中断信号以中断CPU当前任务响应外设的需求。与中断相对立的方式是轮询,即CPU主动去查询外设的状态,以做出反应。与轮询这种方式相比,中断可以使得CPU避免花费大量时间查询,等待外设状态,可以提高系统的实时性和执行效率。中断的运作与三种硬件相关:设备、中断控制器、CPU本身设备本身是中断源,负责产生中

2022-04-16 13:21:33 3240

原创 LiteOS内核开发(三)

本章将介绍LiteOS内核的内存管理模块1.基本概念与简介内存管理也是操作系统重要的组成部分,在程序运行过程中,常常需要为不同任务提供内存资源,涉及到内存的初始化,分配,释放等操作,因此为了高效地进行这些操作,我们也需要一套内存管理系统。LiteOS内存管理系统主要提供动态内存管理和静态内存管理两种管理方式。对于动态内存管理,其主要运作机制是当需要动态分配内存时,系统从动态内存池中选取一块较大的连续内存,按照要求用户要求,从中选取任意大小的内存块分配给等待资源的任务,当该任务不再需要内存块时,.

2022-04-16 12:55:45 3215

原创 LiteOS内核开发(二)

本章将介绍LiteOS内核中的任务管理模块1. 基本概念从系统上来说,任务是资源竞争的最小单元,可以使用或等待CPU的系统资源,独立运行。HUWEI LITEOS可以给用户提供多个任务,实现任务通信和切换。任务管理是LiteOS不可裁剪极小内核的一部分功能,主要支持任务的创建,删除,延迟,挂起,恢复等功能,同时支持锁定和解锁任务调度。支持抢占式调度和时间片轮转。2. 相关属性任务状态:一般来说,一个任务可以具有为几种不同的状态,即就绪态,阻塞态,运行态和结束态,这四种状态之间的转换关系如

2022-04-16 12:15:49 852

原创 LiteOS内核开发(一)

之前学习LiteOS内核的基本结构和应用的时候,我们通过一张LiteOS内核系统的结构图了解到其基本结构。 其中,Huawei LiteOS基础内核包括不可裁剪的极小内核和可裁剪的其他模块。极小内核包含任务管理、内存管理、中断管理、异常管理和系统时钟。可裁剪的模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。 这些模块协同工作,使得LiteOS内核能够完成许多事情。同时,Huawei LiteOS支持 UP(单核)与 SMP(多核)模式,即支持在单核或者多核的环境上运行。...

2022-04-15 22:05:29 1617

原创 华为LiteOS操作系统基础知识入门与内核移植

LiteOS操作系统是华为在2015年发布的一个轻量级的面向物联网的操作系统,同时也是华为物联网1+2+1物联网解决方案的组成部分,此操作系统具备零配置,自发现,自组网的特点,让LiteOS的终端物联能够自动接入支持的网络,使得硬件开发变得更加简单,对于开发者来说也有很强的便利性。本文章将对LiteOS操作系统基本结构及应用场景进行简单介绍,最后介绍如何移植LiteOS内核。1. LiteOS内核结构简介HUWEI LiteOS内核结构如图所示,其内核主体可分为硬件抽象层,基础内核和扩展内核

2022-04-15 11:34:44 5945

原创 C语言面向对象编程基础(三)

在了解面向对象编程思想后,这一章将着重说明对面向对象编程的三要素如何在C语言中实现,同时与C++编程相对比。1. 封装的实现1.1封装在C++中的实现封装最重要的特性是隐藏内部信息和方法,使用者一般只能看到对外提供的接口和公开信息,在面向对象的编程语言C++中,一般通过类关键字class+访问修饰符(private/public/protected)实现,例如在类的public部分定义对外可用的接口函数,但是对于重要的,不希望被外部改变的数据,放在private部分。#include &.

2022-04-14 16:57:08 639

原创 C语言面向对象编程基础(二)

承接上一篇,在了解了一些C语言中有关面向对象编程的基础知识后,本章主要讨论面向对象编程的一些基础概念和思想。1.起源在面向对象的编程方式出现以前,主流的编程方式是将一个任务分解成多个执行步骤,以函数的形式来对这些步骤进行描述,最后在主函数中执行这些执行步骤,达到理想的编程目的,也就是面向过程的编程思想。但这种方式存在诸多弊端:一旦涉及的数据很多,很复杂,把所有函数数据放在一个程序文件里面就会使得代码的可读性和可维护性变差,尤其是当需要添加新的功能的时候,编程的效率便会下降。这种情况下,为了解决在大.

2022-04-14 15:41:30 152

原创 C语言面向对象编程基础(一)

C语言一般被认为是一种常用的面向过程的编程语言,但是实际上作为最经典的编程语言,C语言也具有面向对象编程的能力,本系列将就C语言面向对象的编程方式进行一些探讨,同时也包含相关的一些基础的C语言知识。

2022-04-14 15:20:34 486

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除