自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 电路基础 --- 第八章 电磁基础

动生电产生电流的导线类似电源的效果,非关联。

2024-09-27 12:28:44 192

原创 电路基础 --- 第七章 三相电路

基础概念对称三相电源的连接对称三相负载的连接三相电路的对应关系三相电路的功率瞬时功率二表法测功率

2024-09-25 10:28:36 138

原创 电路基础 --- 第六章//RLC电路

RLC串联电路RLC串联电路的功率及功率因数RLC串联电路的谐振用例:电路的选择性RLC并联电路谐振电感电容并联的谐振LC并联电路与理想RLC并联电路的等效

2024-09-23 10:03:00 350

原创 电路基础 --- 第五章 储能元件//交流电

例题:

2024-09-17 18:04:46 171

原创 电路基础 --- 第四章 分析电路方法

对于叠加定理来说不一定要每个电源单独计算,也可以分成(多+多)的形式进行代数和计算受控源在电路中不进行叠加法运算,受控源在电路中起相应作用不起激励作用,但是受控量值要跟随控制量进行改变

2024-09-15 16:38:29 180

原创 电路基础 --- 第三章 // 分析电路方法

对于回路1来说电流源直接等于电流值,因此第一个方程不需要列KVL。

2024-09-12 10:10:52 138

原创 电路基础 --- 第二章 电阻电路的等效变换

以下是两种连接的转化及转化后的等效电阻值(红色为转化后)

2024-09-08 12:15:16 224

原创 电路基础笔记 --- 第一章

关于电路吸收及发出功率的判断:其实关于这个问题根据实际电流和电压更好判断,我们根据参考电压及参考电流再结合各自数值画出对于元件来说的实际电流方向和电位高低,在实际电流方向通过元件时如果电位变高则代表元件在产生功率,反之则表明在吸收功率结果:由此 我们又可以得到一个结论,在一个电路中我们提供多少功率就吸收了多少功率。

2024-09-07 12:02:30 777

原创 Linux笔记 --- 目录检索

Linux中的目录与windows的文件夹相似但是概念大相径庭,windows中子文件一定不会比母文件夹大,但在Linux目录中是可以实现的,目录是一种文件索引表,下图是分区和目录的关系Linux中目录是一组由文件名和索引号组成的索引表,目录下的文件的真正内容存储再分区中的数据域区域,目录中索引的每一项都被称为“目录项”,里面至少存放一个名字(不含路径)+索引号(分区唯一),当我们访问某一个文件的时候就是根据名字找索引号,再在i-node节点域中查找到对应的节点。

2024-08-14 16:55:19 186

原创 Linux笔记 --- 文件属性

属性结构体stat中有两个成员涉及文件的设备号,他们分别是 st_dev和 st_rdev,前者只对普通文件有效,它包含了普通文件所在的设备的设备号,因此这个成员对于特殊文件而言是无意义的。从上面的执行结果看到,在/dev下的文件没有“大小”的属性,而只有两个号码,比如文件tty,设备号为5,0,其中前面的5是所谓的主设备号,用来标识一种设备的类型,后面的0是所谓的次设备号,用来区分本系统中的多个同类设备。的属性,比如工程管理器make,他的工作原理就完全基于文件的时间戳上,判断文件的被。

2024-08-14 14:49:15 805

原创 Linux笔记 --- 标准IO

系统IO的最大特点一个是更具通用性,不管是普通文件、管道文件、设备节点文件、接字文件等等都可以使用,另一个是他的简约性,对文件内数据的读写在任何情况下都是带任何格式的,而且数据的读写也都没有经过任何缓冲处理,这样做的理由是尽量精简内API,而更加丰富的功能应该交给第三方库去进一步完善。

2024-08-13 16:49:37 1042

原创 Linux笔记 --- IO编程之文件操作

从效果来看,我们不仅可以通过lseek()来调整当前文件偏移量,甚至还可以可以将位置偏移量调整到文件之外,形成一个空洞,这种特性其实是非常重要的,它提供了可以在不同地方同时写一个文件的可能,对于一个较大的文件而言,我们可以通过在文件中定位到一个指定的地方,让多个进程同时在不同的偏移量处写入文件数据。上述代码将fd对应的文件的工作模式设置为所谓的异步方式,FIOASUNC就是其中的一个通用的命令字,而后续的变量on则是其所需要的对应的值。4,其返回值就是一个代表这个文件的描述符,是一个非负整数。

2024-08-12 18:04:17 621

原创 Linux笔记 --- 队列

相较于栈,队列最大的不同就是其进出逻辑是先进先出,当我们严格对一个线性表做出这种限制的话这个表就被称为队列,入队的一端被称为队尾,出队的一端为队头队列同样可以分为顺序队列和链队。

2024-08-11 18:04:07 225

原创 Linux笔记 --- 栈

我们可以通过顺序存储的方式来实现栈逻辑,这种栈叫做顺序栈,也可以通过链式存储的方式实现,这种栈叫做链式栈,存储结构的异同不影响栈先进后出的特性。

2024-08-06 17:23:11 374

原创 Linux笔记 --- Linux内核链表

这样,链表的逻辑就被单独地剥离开来了,所带来的好处是巨大的:我们可以定义针对内核链表的基本操作并将之运用到任何类型的节点中,因为此时我们对链表的操作已经完全与数据无关,所有操作统一针对Linux标准抽象链表,可以适用任何类型数据的节点。而Linux内核链表则完美地避免了这种情况(广告时间),因为任何情形下对链表的操作都是统一的,跟具体的节点无关,一个节点如果处在一个复杂的关系网之中,Linux内核链表也很容易就可以解决,只需要在节点中镶嵌更多的“小结构体”即可,如图所示。

2024-08-06 14:14:21 302

原创 Linux笔记 --- 传统链表

传统的双向循环链表概念简单,操作方便,但存在有致命的缺陷,用一句话来概括就是:每一条链表都是特殊的,不具有通用性。换句话说,对于每一种不同的数据,所构建出来的传统链表都是跟这些数据相关的,所有的链表操作函数也都是数据相关的,换一种数据节点,则所有的操作函数都需要一一重写编写,这种缺陷对于一个具有成千上万种数据节点的工程来说是灾难性的,是不可接受的。对链表的操作,最基本的就是初始化空链表、创建新节点、插入节点、删除节点、移动节点、查找节点和遍历链表,下面先给出节点的设计代码,然后针对以上所述的操作各个击破。

2024-08-05 16:56:06 808

原创 Linux笔记 --- 高级议题

一般而言由于项目中文件较多所以建议用不同的文件夹存放不同类型的文件二进制的可执行文件用户自己写的头文件: 源文件那么在头文件和源文件分开放的时候要怎么编译呢因为很多头文件可能有很多其他头文件引用,因此为防止重定义要在头文件中加上下面的代码。

2024-08-02 10:38:25 537

原创 Linux笔记 --- 组合数据类型

简单的定义结构体的方法结构体中可以存放除了函数以外的任何数据类型的数据,在创建结构体时student被称为结构体模板名称,在c语言中设计者们想让我们使用结构体就跟使用普通变量无差别,因此结构体可以执行普通变量的所有操作,在此做一个示例上面的例子几乎将结构体的所有操作进行了一遍,因为结构体一般来说比较大,因此我们一般在函数调用结构体时传入地址以提高效率。

2024-08-01 15:50:56 544

原创 Linux笔记 --- 内存管理

域,对比其他区域的内存则不然,比如栈内存,栈的特点就是临时分配临时释放,一个变量如果是局部变量,他就会被定义在栈内存中,一旦这个局部变量所在的函数退出,不管你愿不愿意该局部变量也就会被立即释放,再如静态数据,他们都被存储在数据段,如前所述,这些变量将一直占用内存直到进程退出为止。堆内存的生命周期是:从malloc( )/calloc( )/realloc( )开始,到free( )结束,其分配和释放完全由我们开发者自定义,这就给了我们最大的自由和灵活性,让程序在运行的过程当中,以最大的效益使用内存。

2024-07-31 18:01:20 499

原创 Linux笔记 --- 指针+数组

指针这种数据类型的使用极其频繁并且也很复杂所以在此单开一个笔记记录指针的特殊使用方法。

2024-07-31 16:49:29 324

原创 Linux笔记 --- 控制流

逻辑: 程序中某一段代码需要满足一定的条件才会被执行语法:: 表达一种 , 如果条件满足 则 执行某个代码块: 表达一种 ,如果 条将满足则执行某个代码块 否则执行注意: if 语句可以单独使用, 但是else不可以单独只用, 必须在if后面配套使用。

2024-07-29 17:32:59 163

原创 Linux笔记 --- 运算符

逻辑反&& 逻辑与 两者都为真则为真|| 逻辑或 两者有一真则为真在逻辑与的运算中,如果左边为假则直接判断为假,右边的表达式将不会执行在逻辑或的运算中, 如果左边为真则表达式直接判断为真, 右边的表达式将不会执行。

2024-07-29 14:47:10 365

原创 Linux笔记 --- 对数据类型不清楚的东西补充

所有的数据都会被转换成进行存储,如果。

2024-07-29 10:36:55 611

原创 Linux笔记 --- 程序入门

通常来讲我们都是使用这个符号来进行换行的操作,但是这个符号不仅仅是用于换行当打印语句后面没有换行符时 , 需要等待或者被或此时我们不使用换行符,在每次打印之后加入一个一秒的睡眠,此时使用gcc进行编译和输出,我们发现完全没有打印任何东西,因为此时没有足够的程序填满缓冲区同时程序也运行不到return中结束,因此在等待填满缓冲区,那么假如我们加上换行符此时再进行编译运行则就会以1秒的间隔输出内容了。

2024-07-27 17:53:09 282

原创 Linux笔记 --- WSL子系统环境搭建

在我们电脑任意盘位置创建sources.list文件并将软件源列表复制进去并保存。在运行后发现失败,原因是默认的软件源在国外的服务器,因此我们要进行软件源的更换。最后输入gcc -v检查是否安装成功,信息结尾出现版本号即可。首先在子系统中输入gcc,此时会提示。未安装但是可以用此命令安装,我们将此命令复制下来运行。我使用的是阿里云的软件源,参考这位老哥的博客。把修改之后的.list 文件覆盖原有的文件。首先我们先查看自己的版本号。

2024-07-26 17:56:21 271

原创 Linux笔记 --- 基础指令

快捷键打开终端:alt+ctrl+T。

2024-07-26 17:45:01 240

原创 Linux学习笔记 --- 环境配置

在成功装载Ubuntu系统后我们需要设置其与windows系统的共享文件夹,按照以下步骤操作。设置完共享文件夹后在终端执行以下命令查看是否成功设置。此时会出现这个解压包,将其复制到桌面上并提取出来。此时下方出现设置的共享文件夹名称则为成功设置。后续跳出的所有选择一律回车选择默认即可。点击更新VMware tools。

2024-07-26 15:39:26 223

原创 Linux笔记--vi编辑器

对于vi编辑器有这几种模式。

2024-06-15 18:49:40 395

原创 Linux笔记--权限与属性命令、查找指令、压缩命令、网络指令

使用ls指令查看详细信息时rwx分别代表读写执行三种权限,book代表book用户,对于权限来说三种权限分别代表二进制一位,即同时拥有rwx就是111,此时这个文件权限为775改变权限为rw-rwxr-w指令此时hello对于book用户就不可运行,此时需要使用其他用户运行还可以将所有用户执行权限都删除此时所有用户都不可执行,chmod还有以下用法还可以通过以下命令直接修改目录下所有文件的权限。

2024-06-15 15:50:01 414

原创 Linux笔记--ubuntu文件目录+命令行介绍

当我们在ubuntu中命令行处理位置输入ls后会显示出其所有目录,那么处理这些命令的程序就是中括号中为可选择填写,尖括号中为必须填写shell在接收到命令后会去PATH环境变量所指示的位置找,如果函数在环境变量知识的位置中有编译则就会执行。通过使用echo $PATH此指令即可查看PATH环境变量的值,我们编辑一个c语言程序放入ubuntu的桌面中在shell中输入。

2024-06-15 10:54:42 533

原创 RTOS笔记--资源管理

资源管理,其实就是前面介绍过的通知方式中的队列信号量互斥量等是如何访问临界资源的,如何做到完全互斥。在之前举过一个例子:当我们使用全局变量来进行互斥操作时,有可能在改写全局变量时被切换使得不再互斥,这个过程如下图:那么互斥量如何保证互斥访问的呢?

2024-06-14 11:32:53 329

原创 RTOS笔记--任务通知+软件定时器

对于之前使用过的几种互斥操作方式队列,互斥量,信号量,事件组,他们都是黑箱操作,对于写入和读取的任务来说并不知道对方是哪个任务,只是操作环形缓冲区和链表。而任务通知的方式就是通知方任务知道要通知具体哪个任务,所以在得到数据或者中断后直接通知接收任务,不需要使用环形缓冲区。每个任务都有一个结构体:TCB(Task Control Block),里面有 2 个成员:一个是 uint8_t 类型,用来表示通知状态一个是 uint32_t 类型,用来表示通知值:任务没有在等待通知,默认状态:任务在等待通知。

2024-06-09 09:06:29 865

原创 RTOS笔记--信号量+互斥量+事件组

信号量是一个特殊的队列,但并不涉及数据传输,因此不需要读写位置和发送者列表,但是多了一个最大计数值。个人理解:信号量类似一个加入了保护机制的全局变量,不会因为中断切换的原因而导致数据出错。信号量的操作分为:take和give,当信号量为0时,take操作可以延迟,但是give操作不可以延迟,当信号量有数字后将会唤醒take操作取出信号量,cnt--

2024-06-08 11:07:13 510

原创 RTOS笔记——队列

队列的本质就是环形缓冲区,在环形缓冲区的基础上增加了一些保护措施和阻塞唤醒机制,而因为增加了保护机制因此环形缓冲区中有读写位置和数据个数:有任务AB,任务B需要等待任务A计算获取数据后再运行,任务B读队列为空时进入休眠,设置等待时间,在等待时间内任务A计算完成将数据放置于缓冲区就会将B唤醒,如果等待时间超时则由tick中断自动唤醒并返回错误。任务A写队列但是有可能队列已经满了,可以在队列满的时候设置阻塞时间,在任务B读取一个数据后将会唤醒任务A,也可以超时后tick中断唤醒并返回错误。

2024-06-07 09:52:10 261

原创 RTOS笔记--空闲任务+同步与互斥

当我们创建的任务中的函数不是死循环退出后将会进入prvTaskExitError错误函数中,这个函数将会关闭所有中断导致所有任务无法运行,如果任务想要退出只能通过自杀或者他杀的方式vTaskDelete()空闲任务的作用就是给死去的任务收尸,但是空闲任务的优先级为最低,因此如果其他任务一直占据资源的话空闲任务没有收尸的机会在大量任务自杀后将会产生内存不足的问题,因此想要让空闲任务能有时间运行需要养成良好的编程习惯:1.事件驱动。

2024-06-04 15:56:51 273

原创 RTOS笔记--任务状态与调度

在FREERTOS中定义一个。

2024-06-03 11:46:26 1005

原创 RTOS笔记--任务

任务涉及到三个部分:1.做何事(函数) 2.栈和TCB结构体 3.优先级对于栈和TCB结构体的分配有两种方式:1.malloc/静态 2.动态每个函数中最多使用R4-R11以及LR共9个寄存器需要保存入栈,当有5级调用关系时最大需要使用到的栈深度为5*9*4=180字节单个函数中定义的局部变量也会入栈保存,局部变量越大需要的栈的深度越深,局部变量占据的栈的深度取决于变量类型和数量。现场固定占据16*4=64字节的深度。

2024-06-02 16:11:36 150

原创 RTOS笔记绍--堆和栈

而堆在分配释放过程中会涉及链表操作的部分,每分配一个堆就需要设置一个堆头,用于储存堆起始位置和大小,而想要进行空闲管理则需要一个全局结构体用于储存下一个空闲地址位置及其大小。在跳转后优先保存LR,在函数b执行完后属于函数b的栈被收回再次作为函数c的栈保存LR,因此可以使得LR不被覆盖。在代码汇编跳转时,每个函数都会在开头将LR中的值保存到栈中,因此BL跳转指令记录的LR和PC不会被覆盖。:堆即是一块空闲内存,我们可以管理这块内存,从内存中取出一部分,用完后可以再释放掉。

2024-06-01 15:43:21 312

原创 RTOS笔记--创建多任务程序+ARM架构简单介绍

我们所使用的ARM芯片属于精简指令集计算机(RISC)所使用的指令比较简单,有以下特点:1.对内存只有读和写的功能2.数据的运算是在CPU内部实现的3.复杂度小,易于设计如图,在单片机中数据保存在内存中,指令保存在flash中,CPU从flash得到指令开启执行,而cpu中有许多寄存器用于保存数据,部分寄存器还有特殊功能:R13 (SP):栈指针R14 (LR):用于保存返回地址R15 (PC):程序计数器,表示当前指令地址,写入数值即可跳转读地址"R1+4",得到的4字节数据存入R0。

2024-05-31 16:55:02 270 1

原创 机智云连接笔记--4.13

RST接高电平。

2024-04-13 15:55:56 192

空空如也

空空如也

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

TA关注的人

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