自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 声明v.s.定义

【代码】声明v.s.定义。

2024-04-18 20:10:34 260

原创 *a++

例如: *P++ 应该解释成 *(P++) ,即取P指向的对象,然后P自增1,虽然后自增++优先级高于*,但是后自增的特性决定了先对P进行运算,运算完成后再P自增1;(*P)++指先取P所指向的对象,然后对该对象加1,由于括号优先级高则先计算括号内部表达式,++运算符对括号这个数据整体起作用。*a++,++的优先级更高,所以a是指针,但是++是后自增,所以先取出a指向的对象,然后指针a++,总之++的是指针,而不是指针a指向的对象;(*a)++,是取出a指向的对象,并对这个对象的值++;

2024-04-12 07:37:22 189

原创 emplace_back与push_back异同

如果要将一个临时变量push到容器的末尾,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造,省去了拷贝的过程。

2024-04-09 11:26:07 158

原创 move

std::move的实现并没有交换内存的操作。std::move是。c++中move的使用 - Herio的文章 - 知乎。,只是转移,没有内存的搬迁或者内存拷贝。move 把左值变为右值。

2024-04-09 10:52:38 149

原创 优先级反转

当高优先级任务需要获得同步资源时(低优先级任务占有这个同步资源),临时提升低优先级任务的优先级=高优先级任务的优先级,让低优先级任务更快的执行并释放同步资源,释放同步资源后在恢复原来的低优先级。高优先级任务被低优先级任务阻塞,导致高优先级任务迟迟得不到调度,但其他中等优先级的任务却能抢到CPU资源,从现象上看,好像是中优先级的任务比高优先级任务具有更高的优先级。不管线程是否阻塞了高优先级线程的运行,只要线程访问共享资源都会提升线程的优先级。优先级天花板是当线程申请某个共享资源时,把该线程的优先级提升到。

2024-04-07 14:27:51 221 1

原创 c/c++ 随机数 rand() srand()

一般只需要在程序开始时调用srand函数一次即可,不需要在每次生成随机数之前都调用一次srand函数。srand(seed) 可以设置一个种子seed,当种子不一样的时候,随机数才不同。rand() 生成一个随机数,每次启动都是一样的。

2024-04-07 07:54:37 94

原创 emplace_back与push_back原理区别

push_back首先会利用传入的参数调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样会造成效率低下。原文链接:https://blog.csdn.net/TwoTon/article/details/122507898。emplace_back支持直接将构造函数所需的参数传递过去,然后构建一个新的对象出来,然后填充到容器尾部的。

2024-04-07 07:34:58 87

原创 JOS是微内核还是单内核?分别说一下这两个的优缺点?

L4必然不是最早的微内核,但是从1980年代开始,它是最早一批可以工作的微内核之一,并且它非常能展现微内核是如何工作的。在许多年里面它一直都有活跃的开发和演进。L4有15-20个变种,有一些从1980年代开始开发的项目现在还存在。L4是微内核简单,它只有7个系统调用,虽然其中有一些稍微有点复杂,但是它还是只有7个系统调用。然而现在的Linux,有大概350个系统调用。甚至XV6这个极其简单的内核,也有21个系统调用。从这个指标来看,L4更加简单。

2024-04-05 07:22:09 451

原创 为什么JOS操作系统是用C语言实现的,why not高级编程语言?

为什么JOS操作系统是用C语言实现的,why not高级编程语言?

2024-04-05 07:12:09 145

原创 MIT6.828 实验环境安装教程

make: *** [Makefile:382:install-datadir] 错误 1。Thanks:mit6.828环境搭建 - 人云我不亦云的文章 - 知乎。install: 无法创建目录 “/share”: 权限不够。

2024-04-04 13:03:49 130

原创 xc 3/28 笔试3

【代码】xc 3/28 笔试3。

2024-03-28 21:17:00 89

原创 CRC笔记

有了前面的表格,我们使用下面的函数就能计算长度为len的字符串msg的CRC32了,在循环中,将CRC的高八位所对应的数在CRC32表格中的结果与上次计算出来的CRC右移八位的结果进行异或,最后就得到了这个字符串的CRC结果了。如果我们要软件上实现CRC的话,要一位一位的做这些运算,效率是非常低的,所以我们就想能不能每8位计算一次,因为每个特定的数字与这个被除数的经过8次移位操作得到的异或结果都是相同的。CRC还有一种反转的情况,实际上反转和不反转没有什么太大的区别,主要是需求和标准的不同。

2024-03-21 09:34:04 438

原创 VSCode The preLaunchTask ‘C/C++: clang++ 生成活动文件‘ terminated with exit code -1

更改tasks.json文件里面的type为shell。选择g++,然后点回到text.c,按下F5.

2024-02-22 19:13:00 811

原创 mac下C、C++项目出现‘stdio.h’ file not found的解决方法

打开Finder,command+shift+g,输入/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ 可以定位到头文件目录。3.将/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/下头文件软连接到/usr/local/include/下。我们进入/usr/local/include/发现确实没有stdio.h等头文件。

2024-02-22 18:55:04 1256

原创 cmake recode

3.在工程目录下创建arm-linux-setip.cmake(交叉编译用)2.在工程目录下创建CMakeLists.txt。在build目录下执行命令 cmake ..在build目录下执行命令 make。在build目录下执行命令 make。1. 创建build文件夹。在build目录下执行命令。

2024-01-30 21:17:18 374

原创 【转载】linux摄像头驱动

Linux摄像头驱动学习第一篇,对虚拟视频驱动Video Driver(vivid)进行测试、分析、编写。V4L2(Video for Linux two)是Linux内核中关于的内核,为上层的访问底层的视频设备提供了统一的接口。

2024-01-24 18:22:10 1891

原创 错误使用 gurobiGurobi error 10008: Unable to set parameter TuneTimeLimit to value -1 (minimum is 0)

【代码】错误使用 gurobiGurobi error 10008: Unable to set parameter TuneTimeLimit to value -1 (minimum is 0)

2024-01-18 14:57:10 1019 4

原创 Mac 安装Gurobi

然后输入 savepath 命令保存路径即可.

2024-01-17 14:37:05 771

原创 【无标题】leeched 415 字符串相加c++

链接:https://leetcode.cn/problems/add-strings/solutions/357938/zi-fu-chuan-xiang-jia-by-leetcode-solution/商业转载请联系作者获得授权,非商业转载请注明出处。来源:力扣(LeetCode)

2024-01-08 17:37:57 362

原创 回文链表 力扣234

【代码】回文链表 力扣234。

2024-01-03 15:41:25 384

原创 力扣面试题02.01.移除重复元素

用双指针,一个指针slow指向头节点p=head,第一层循环遍历链表,另外一个指针fast=slow用来遍历该指针后面的链表,第二层循环遍历slow后面的节点,比较后面节点的值与slow节点的值?如果相等就删除。不想的则使fast指向下一个节点。

2024-01-02 16:02:08 376

原创 中断&内核熵池 entropy pool

驱动程序可以通过 request_irq() 注册一个中断处理函数,并且激活给定的中断线,以处理中断。

2024-01-02 11:06:04 980

原创 实验2:内核链表

内核中定义的双向循环链表 /include/linux/types.h。

2023-12-24 21:43:40 344

原创 实验1:GCC编译

流程:预处理(Pre-Processing)-->编译(Compiling)-->汇编(Assembling)-->链接(Linking)在这个阶段中,gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc把代码翻译成汇编语言。小写的s文件,在后期阶段不在进行预处理操作,所以我们不能在这里面写预处理(#if CONFIG_XXX)的语句在里面。大写的S文件,还会进行预处理、汇编等操作,所以我们可以在这里面加入预处理的命令。gcc -E 让编译器在预处理阶段就结束。

2023-12-24 21:33:56 308

原创 力扣438C++滑动窗口

【代码】力扣438C++滑动窗口。

2023-12-20 23:51:27 323

原创 C++PrimerPlus学习笔记 (Ch14包含)

Student类的成员函数可以使用string和valarray<double>类的公有接口来访问和修改name和scores,但在类的外面不可以,只能通过Student类的公有接口来访问name和score。使用其构造函数:可以创建长度为零的空数组,指定长度的空数组,所有元素都被初始化为指定值的数组,用常规数组中的值进行初始化的数组。valarray 被定义为一个模板类,以便处理不同的数据类型。代码重用的方法之一:一个类的成员是另一个类的对象——包含。size( ):返回包含的元素数。

2023-04-23 21:28:12 246 1

原创 C++PrimerPlus学习笔记 (Ch12返回对象)

返回对象

2023-04-16 15:53:54 52

原创 C++PrimerPlus学习笔记 (Ch12重载>>)

【代码】C++PrimerPlus学习笔记 (Ch12重载>>)

2023-04-12 10:19:23 98

原创 C++PrimerPlus学习笔记 (Ch12使用中括号访问字符)

重载中括号运算符

2023-04-12 10:12:42 58

原创 C++PrimerPlus学习笔记 (Ch12空指针)

空指针

2023-04-12 09:56:00 33

原创 C++PrimerPlus学习笔记(Ch12成员函数)

Note:默认的复制构造函数逐个复制非静态成员,(成员复制也称为浅复制),复制的是成员的值。【如果类中包含了使用new初始化的指针成员,应当定义一个复制构造函数,以复制指向的。(2)使用复制构造函数创建一个临时对象,然后通过赋值将临时对象的值复制到新对象中。(1)metoo是新创建的对象,被初始化为knot的值,使用复制构造函数。将一个对象复制到新创建的对象中,用于初始化,而不是常规赋值。当程序按值传递对象或返回对象时,都将使用复制构造函数。将已有对象赋值给另一个对象时,将只用重载的赋值运算符。

2023-04-12 09:42:02 40

原创 C++PrimerPlus学习笔记(Ch12 动态内存和类)

str成员指向new分配的内存,当StringBad队形过期时,str指针也过期,但是str指向的内存仍被分配,除非使用delete将其释放。删除对象可以释放对象本身占用的内存,但是不能自动释放属于对象成员的指针指向的内存。【字符串并不保存在对象中,字符串单独保存在堆内存中,对象仅保存了指出到哪里去查找字符串的信息】。静态类成员是单独存储的,不是对象的组成部分,因此可以在类声明之外用单独的语句初始化。(2)num_strings成员声明为静态存储类,类的所有对象共享一个静态成员。2.使用new的构造函数。

2023-04-12 08:23:38 40

原创 C++PrimerPlus学习笔记(Ch11 类的自动转换和强制转换)

通过构造函数Stonewt(double)创建一个临时的Stonewt对象,并将19.6作为初始化值。转换函数是类的成员函数的一部分。它需要通过类对象来调用,从而告知函数要转换的值。//使用构造函数Stonewt(double)将19.6转换成Stonewt。//只接受一个参数的构造函数定义了从参数类型到类类型的转换。//关闭了隐式转换,但仍然允许显式转换。从类类型的转换到相反的转换使用特殊的C++运算符函数——转换函数。//显式转换,有效。//显式转换,有效。构造函数只用于从某种类型到类类型的转换。

2023-04-11 19:53:40 64

原创 C++处理回车

处理回车

2023-04-07 10:03:45 146

原创 C++PrimerPlus学习笔记(Ch10 类作用域、抽象数据类型)

类作用域

2023-04-07 10:01:35 43

原创 C++PrimerPlus学习笔记(Ch10 this指针、对象数组)

this指针、类对象数组

2023-04-07 09:48:29 36

原创 C++PrimerPlus学习笔记(Ch10构造函数和析构函数)

构造函数、析构函数、const成员函数

2023-04-07 09:27:14 62

原创 C++PrimerPlus学习笔记(Ch10抽象和类)

使用类对象的程序都可以直接访问公有部分,但是只能通过公有成员函数或友元函数来访问对象的私有部分。公有成员函数是程序和对象的私有成员之间的桥梁,提供了对象和程序之间的接口。2.类是将抽象转换为用户定义类型的C++工具,将数据表示和操纵数据的方法打包。类声明:以数据成员的方式描述数据部分,以成员函数(方法)的方式描述公有接口;定义成员函数时,使用作用域解析运算符号(::)来标识函数所属的类;通过成员运算符(.)使用对象的成员函数:kate.show();类方法定义:描述如何实现类成员函数。

2023-04-07 08:59:09 97

原创 C++PrimerPlus学习笔记(Ch9内存模型)

extern、static两种用法、定位new

2023-04-05 20:38:56 170

原创 DMA直接存储器理论

DMA——一种硬件的方式在外设(Peripheral)和存储器(Memory),或者存储器和存储器之间传输数据,无需CPU干预,避免了CPU多次进入中断进行大规模数据拷贝,提高整体系统性能。控制器在同一时间接收到多个外设请求时,仲裁器将根据外设请求的优先级来决定响应哪一个外设请求。硬件优先级:当通道具有相同的软件优先级时,编号低的通道优先级高。M->M 无需配置,可以选择全部的通道和外设请求。控制器有两个分别对应于外设和存储器的仲裁器。个通道,每个通道有多个外设请求。级,低,中,高和超高。

2023-03-13 09:41:16 149

git qemu mit6.828

git qemu mit6.828

2024-04-04

USB camera project

USB camera project

2024-03-03

video2lcd app

video2lcd app

2024-02-12

测试移植tslib成功的rootfs、内核源码、韦东山项目1移植到正点原子imx6u-mini开发板源码

tslib libjpeg libfreetype libz libpng 库移植测试成功,将韦东山项目1移植到正点原子imx6ull开发板上,实测成功

2024-02-05

linux.tar.bz2

添加了移植库文件freetype2 tslib jpeg zlib png

2024-02-01

根文件系统,设备树,内核

能启动imx6ull-mimi emmc 4.3 800*480 的 nfs/rootfs 和 tftpboot/zImage dtb

2024-02-01

jpegsrc.v9b.tar.gz libpng-1.6.35.tar tslib-1.16.tar.gz zlib-1.2

tar -xzf xxxx.tar.gz

2024-01-30

由busybox构造的linux根文件系统最初版本

由busybox构造的linux根文件系统最初版本

2024-01-30

空空如也

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

TA关注的人

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