自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020-12-19

Window下C++的线程同步demo今天考试自我感觉十分不理想,浏览了一下课程中就写的线程同步demo,提会了曾经的思维方式,发现我将约束(同步)抽象较高层次了,条件(顺序)约束需要往下分解才能直接用于实践指导!比如说:资源个数——初始值为n。开始活动的信号——初始值0/1。(以后来补充)对于资源个数,其实可以通过以不同角度去定义资源来广义地扩大适用范围。以后有思绪,再来补充吧!附上代码。一些简单的window API就不解释了。#include <stdio.h>#in

2020-12-19 21:20:45 69 1

原创 2020-12-07

ucosⅡ分析——同步机制  uCOS同步机制的硬件支持是一个比较坏的方案——关中断,不过由于uCOS的应用领域是单核的嵌入式实时机器,关中断的无法用于多核情况的弊端可以忽略;但关中断的时间消耗还是让效率有所下降(可能是成本较高导致原子操作的底层支持没有)!至于其实现方案和细节下面会仔细陈述;另外在最后讲述一些关键却零碎的关键点。1 实现的机制同步机制主要通过事件的释放和等待操作实现,(取消)挂起任务作为事件实现同步机制的补充。事件的具体实现一共有邮箱(mail box)、互斥锁、信号量、消息队列和标

2020-12-07 14:40:00 61

原创 2020-12-07

ucos Ⅱ 多道系统分析——任务管理1 进程存储和识别  uCOS的进程被命名为task,由OSTCB作为封装其的数据结构;而其在系统中的唯一标识是task的优先级(TCB中的OSTCBPrio属性),即一个优先级代表着一个任务,没有相同的优先级存在。而优先级高低的判断准则是值越小优先级越高,0是最高优先级。因此系统中的进程的最大数量由优先级最低决定。在1992-1999的版本中,最低优先级默认是12;不过具体值可以根据需求自行修改,只要不要高于63。而不能高于63的原因是受就绪队列存储的方式和数据类

2020-12-07 14:34:59 149

原创 2020-12-07

ucosⅡ总体分析  ucos一个嵌入式操作系统,它为用户程序提供了运行支撑服务的同时,也要提供作为嵌入式系统,启动用户程序的方式(毕竟大多嵌入式机器是没有鼠标、常规字母键盘的外设)。对于后者,我认为钩子函数是ucos系统启动机器创立用户进程的方式之一(目前不清楚有没有其它方式,在钩子函数模块简单陈述)。  而对于前者,uCOS为用户程序的运行提供底层支持。底层支持有各类硬件(外设)IO的封装服务和软件服务(多道环境和文件存储等等),不过ucos仅开源了多道和内存分配的C语言实现模块,而内存分配只有提供

2020-12-07 14:27:51 49

原创 2020-10-31

window API 中一些变量前缀的含义弄window线程的时候,看不懂window.h里面的一些变量为什么好多有一些相似的前缀,弄的好迷,最后百度到的内容。缘由:匈牙dao利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。匈牙利命名法a Array 数组b BOOL (

2020-10-31 20:30:22 51

原创 C++ 构造函数

构造函数派生类的构造函数执行先后原则是顶级基类到自身,自顶向下的总体过程。而有一些值得注意的“特殊情况”多继承的时候,构造函数执行的顺序是按类定义的时候基层的顺序,而不是构造函数的定义的顺序。class Derived : public Base1, public Base2 {}原因可能是编译器编译生成相应全局构造函数的时候,已类定义的顺序为基准当继承的父类是一个虚基类的派生类的时候,该虚基类的构造是由最后的派生类完成,即本身。这是为了避免重复构造虚基类。而这里就出现一个新的需要注意的问题——当所

2020-07-26 09:17:27 77

原创 C++ STL vector push_back

Vector push_back 执行过程push_back(a) 过程要分两种情况:当有定义a的拷贝构造器的时候 首先是调用a的拷贝构造器;如果还有成员变量没有被初始化,那么会继续调用成员变量的无参数构造器,例如int型会为0,指针为空。没定义拷构造器执行浅复制。但如果成员变量声明过拷贝函数,那么会自动调用成员变量的拷贝构造器。值得注意的是,指针类型的拷贝是就只是多出一个指针指向...

2020-03-01 13:24:58 218

空空如也

空空如也

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

TA关注的人

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