- 博客(67)
- 收藏
- 关注
原创 Cortex-M4架构
一条指令的执行可以分解为多个阶段,各个阶段使用到的硬件不同,这样指令执行就可以重叠,可以多条指令并行处理。在CPU正常执行过程中,外部发生了随机事件,CPU需要暂时中止正在执行的程序转而去处理所发生的事件。处理完成后,再返回到原来被中止的程序继续执行。
2024-04-08 14:56:47
1710
原创 Day02嵌入式---按键控灯
按键控制灯开关是一种常见的嵌入式系统示例项目,它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键,可以控制LED的开关状态,从而实现灯的亮灭控制。
2023-11-26 11:08:32
1002
原创 Day01 嵌入式 -----流水灯
嵌入式系统中的流水灯是一种常见的示例项目,通常用于演示嵌入式系统的基本功能和控制能力。流水灯由多个发光二极管(LED)组成,这些LED按照一定的顺序依次点亮和熄灭,形成一种像水流一样的流动效果。
2023-11-21 11:08:25
1492
原创 Linux Day16 多线程的一些常见问题
代码从主程序开始执行,执行到线程函数时,创建线程,进入fun()后,加锁,打印“fun lock”,随后睡眠5秒,我们知道多线程是有并发这个特性,这个时候就会继续主函数,进行fork,这个时候我们发现打印了"child 准备lock",注意此时我们线程函数中的锁还没有解,就有了一个新的锁,说明父进程和子进程的锁不是共用一个锁,此后5秒睡眠时间结束,这时继续执行多线程函数,解锁打印“fun unlock”,但是我们发现一件事:此函数阻塞了。: 是在fork返回之前,在子进程上下文中被执行。
2023-09-18 23:40:52
226
原创 Linux Day11---mbash项目(二)
观看本文之前请先阅读Linux Day10的相关内容,实现了Linux Day10剩下的命令函数
2023-08-24 16:57:20
633
原创 Linux Day08
有第一个可知,没有free,进程结束后,所有分配给该进程的资源都被回收。如果申请空间大于物理内存空间+虚拟内存空间,那么申请空间将失败。父进程堆区申请的空间复制后,子进程也会有一份,也需要释放?没有free,进程结束后,所有分配给该进程的资源都被回收。② 申请的空间 < 物理内存空间 + 虚拟内存空间。前面的内存为实际内存,后面的交换空间为虚拟内存。父进程在堆区申请的空间,也会被复制到子进程中。当申请空间d大于内存时,使用内存+虚拟内存。子进程是子进程的空间,父进程是父进程的空间。
2023-08-11 11:29:36
259
原创 C++继承相关内容(三)
前情概要:无论是公有继承还是私有继承,派生类的方法是可以访问自身的公有,保护和私有的,还可以访问基类的保护和公有的。在派生类中,基类的保护类似于公有,是可以访问的。但是在外部环境中是不可以访问保护和私有属性的对象或方法。
2023-06-08 12:09:58
1178
原创 C++继承相关内容(二)
系统在调用派生类的拷贝构造的时候,会先去构建父类,这个我们在上一节说过,因为这里并没有明确派生类中Person这个不具名对象的值,所以调用了Person父类中的空参构造,因此此时值为0;如果我们此时明确指出Person的值与student中的值是一致的,那么就可以实现。系统在调用Student的拷贝构造时发现不存在,会默认的给出一个拷贝构造函数,这个函数里可以调用父类的拷贝构造函数,因此是可以的。这里我们必须明确在派生类的构造函数中指出派生类中的不具名对象的值等于所引用的值,会出现切片现。
2023-06-06 17:58:07
562
原创 动态规划刷题篇【Day01】
假设原始答案为ar[0],计算ar[0]和ar[0]+ar[1]哪个大,如果后者大,将其值存入数组,否则新数组该位仍为ar[0]。输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。因为新数组保存的是每次得到的最优解,遍历该数组得到最大的数,就是该问题的解。要求:时间复杂度为 O(n)O(n),空间复杂度为 O(n)O(n)进阶:时间复杂度为 O(n)O(n),空间复杂度为 O(1)O(1)选取子问题里面的最优解即和最大。
2023-05-08 23:46:32
481
原创 c++基础学习Num04
如果按照上述方法打印二维数组将会得到三个一维数组的地址,因为基于范围的for是将ar[i]提取出来,依次迭代,由于上述二维数组是一个三行4列即由三个一维数组构成,所以打印的三个一维数组的地址。*s+1---> *s解引用变成一级指针,一级指针+1代表p0这个一级指针刚开始存储a0这个整型变量的地址,+1后就是a1这个变量的地址,偏移量是int类型,四字节。p+1-->指针由ar0指向ar1 ,*(p+1)指针指向数组ar1中的元素, *(p+1)+2指针就指向ar1[2],通过解引用对值进行修改。
2023-05-05 21:03:21
433
原创 0-1背包
否则:分两种情况:如果选择当前物品,则对应的当前背包容量减去当前物品重量,价值加上当前物品价值,如果不选择,则从第i+1开始选,需要对这两种情况的价值进行比较,去最大的结果。Xi表示第i物品,用1表示选了该物品,用0表示未选该产品,那么Xi*vi就是所选物品的价值,求和后就是选了的总价值。2.设计基本元素后,我们从最简单情况开始,当i==n时表示只有一个元素,我们只需要判断他的重量与当前背包容量,如果小于当前容量则可以存放,如果大于则不能。注意:i是一个区间:i,i+1,i+2,....,n;
2023-04-14 00:33:28
109
原创 泛型顺序栈设计
在学习数据结构前面的链表,栈,队列的时候我们往往是只能解决一种数据类型的问题,比如用到的数据是int类型,设计出来的就是只能解决int这一类型的,如果想要解决char等类型就需要重新写。因此泛型编程就诞生了。C语言中的泛型编程是用我们前面所讲的void*无类型指针去实现的,将最后强制转化成我们想要的类型即可。当然如果你学过c++,其实就是模板。在开始今天的真实内容前我们先来。
2023-04-05 14:50:35
198
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人