自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux内核

从函数start_kernel开始单步调试。Linux内核态——>用户态。物理内存到虚拟内存的映射。

2026-09-17 11:08:57 18

原创 STM32问题

LED1为什么会亮?当我使用示波器的探头一头接到控制LED1的PC6引脚,一头接到板子的GND,默认的PC6引脚的状态会使LED1亮,原因是示波器的探头打到10x时,电阻很大,而PC6引脚不设置的状态默认为浮空输入(高阻态);意味着这个引脚与内部的电路几乎是断开的状态,对外部环境极其敏感,10x档位的探头,探头的金属尖端和里面的芯线之间串联了一个9MΩ的巨型电阻,普通导线连PC6与板子的GND,灯根本不会亮,示波器的探头因为内部有9MΩ的大电阻,不会把PC6短路到地;相反,它使引脚上的电压“浮起来”;

2026-08-07 15:22:04 232

原创 Linux基础知识记忆

2>(数字表示法)数字方式修改权限 :例如:修改chmod 777 hello。1>(符号表示法)rwx方式修改权限 :例如:chmod a-x hello/1、简化路径访问,方便打开缩短打开文件的时间;它只对文件起作用,不对目录起作用,不能对目录进行创建硬链接。修改其中一个文件的内容,链接的另一个文件的内容也改变;2、动态路径切换:通过修改软链接指向不同版本或路径;3、跨文件系统链接:如挂载设备的文件链接到本地目录;大文件或批量读写,文件IO通过手动优化(调整读写块大。需显式处理文件不存在、权限不足等。

2026-08-03 09:13:47 157

原创 STM32控制器

硬件优先级是判断:当有两个相同的软件优先级的请求,较低编号的通道比较高编号的通道有更高的优先权;STM32F407有2个DMA控制器,每个控制器有8个数据流,每个数据流有8个通道,1个数据流每次只能搬运1个通道的数据。在直接模式下,不允许与目标的传输数据宽度不同,两者必须相等,并由DMA_SxCR中的PSIZE位定义,MSIZE位无效。在DMA_SxNDTR寄存器中配置的要传输的数据项目数目的数据宽度等于外设总线的宽度(由PSIZE位配置决定宽度)DMA的仲裁器(处理事件的先后顺序)

2026-07-18 17:24:38 255

原创 PCB设计

中间层信号层-地/电源层,定长和底层各有一个参考平面(通常选择一个是地一个是电源)PCB叠层与各层详解。

2026-07-11 16:29:58 231

原创 复杂元器件

场效应晶体管根据结构不同分为结型场效应管(JFET)和金属-氧化物-半导体场效应管(MOSFET),以MOSFET为例,它有源级、栅极和漏极三个电极,通过栅极电压控制源级和漏极直之间的电流。P区会形成不能移动的负离子,N区会形成不能移动的正离子,形成内电场,方向由N指向P,P型半导体:掺入杂质(硼元素,最外层电子是3个,少了一个电子,形成共价键少一个电子形成空穴),使导电性能改变;多数载流子是电子,多余的是电子。集电结反偏,集电区和基区的少子也参与漂移运动,但它的数量很少,可以忽略不计(漏电流)、

2026-06-30 20:26:28 267

原创 电子学基础理论

100W的灯泡电流为1A;发光二极管的电流为20mA,单片机的电流为20mA;(20mA不足以驱动继电器的使用;通过增加晶体管或MOS管增大电流来实现驱动)电流的方向:规定以正电荷移动的方向为电流的流动方向(富兰克林提出);实际的电子(电子带负电)是从负极移动到正极。单个原子的电荷量:Qe = (-e) = -1.602×10^(-19)C。LM2596 :DC-DC转换器最大输出电流是3A。电荷:电荷是质点(理想化模型),带正负某一种电荷。通过改变物质的价电子形成新的物质。物质由分子、原子、离子构成;

2026-06-27 15:11:26 234

原创 电路板基础

EDA软件的电路设计(会导出网表:各种元器件连接关系的表格)--->绘制原理图封装(元器件接到引脚对应位置的确定叫封装)-->布局布线---->设计检查----->光辉输出(导出光辉数据文件,gerber文件)--->PCB加工(加工厂,工厂加工)晶体管/MOS作为常用的电路的开关(控制端口输出电流的大小:电流放大来实现控制电流与电压),驱动继电器或电机;集成器件:DC-DC电源芯片、LDO三端稳压器(低压差的线性稳压器)、复位IC(简单的是用阻容)、接口与隔离器件:总线型接口:485、CAN总线;

2026-06-27 14:33:38 191

原创 C语言:指针补充

即int[3][4];它等价于:int(*)[4];(指向一行4个int的行指针)int (*)[4]:只是一个8字节指针(64位),仅存行首地址,不分配数组空间。int arr[3][4]:栈上分配3行×4列连续内存,等价于一维数组。数组名会在绝大多数的表达式中隐式降级(数组名不显示)二维数组 int arr[3][4]降级是数据名的隐式降级。

2026-06-15 16:31:47 246

原创 Linux网络编程总结

异步:没有顺序,没有先后,而且还可以同时进行。同步:按顺序执行的操作,依次,不能同时。OSI七层协议模型(理想化网络协议)OSI七层路由器与交换机工作原理。OSI四层协议(标准网络协议族)请求引起阻塞的操作是同步IO。epoll多路复用--串讲。未引起阻塞的IO是异步IO。会阻塞的IO(5种中判断)

2026-06-07 11:47:54 96

原创 Linux数据库开发

结构化:通过特定的模型(关系模型、文档模型)去组织我们的数据;3、扩展型:关系型数据库:垂直扩展:增加单个服务器的性能;非关系型:增加水平扩展:通过增加更多的服务器来处理数据。4、适用场景:关系型:适用于复杂查询查询并要求严格我们数据完整性的应用;1、数据模型不同:关系模型:关系型:表格(固定的模式);非关系型:键值对、文档、图表(灵活数据模型)Sqlite(关系型数据库的标准的操作语言)(事务性比较强、数据一致性要求高的场景)2、事务处理不同:关系型数据库:ACID原则:原子性、隔离性、一致性、持久性。

2026-06-05 20:30:09 253

原创 Iinux:网络编程

电脑(私有IP)访问百度服务器(公网IP)---->这个公网IP不在本地网络;查询路由表找到默认网关----->通过ISP网络逐跳进行转发;封装帧--->在物理层中转换为电信号通过网线传输---->交换机处理将电信号还原成帧---->主机B接收信号,在物理层还原为帧;主机数为2^(32-26)-2=64-2=62;IPV4逻辑地址:IPV6是解决地址不够用的情况,地址枯竭问题,128位的地址。客户端通过访问不同的端口号去访问特定的一个服务(服务标识)子网的主机数量:2^(32-新掩码位数) -2;

2026-05-29 17:29:34 245

原创 进程线程考核

结合式的线程需要回收,使用phread_join函数回收,必须回收;任意两个线程可以相互回收:父回收子,子回收父;不回收会造成资源泄漏,产生线程僵尸,长期运行会耗尽系统资源,导致无法创建新线程(内存/资源泄漏 =互斥是一次只能由一个进程去执行资源,不能有其他的线程去执行;同步是协作执行资源,没有冲突,可以按顺序执行这个进程,有先后顺序;分离式不需要回收,系统自动回收,不能被join, 无需手动回收。另一种:(自己设置的:通过一个线程函数)一种:(被赶走的:创建之后再修改的)ld 链接错误(链接阶段);

2026-05-26 20:32:54 280

原创 C语言:结构体

/枚举作为一个类似结构体的东西,给里面的成员进行编号,默认从0开始编号;一般用枚举来限定它的选项选择用于项目中。

2026-05-15 19:59:17 28

原创 Linux:多进程多线程

隔离机制:将用户空间与内核空间进行隔离;//我们编写的数据放在用户空间,进程的管理是由task_struct这个结构管理,这个结构体放在内核空间;内核机制保证了系统的稳定性,互不干扰。程序(静态代码)-->加载到内存-->分配资源-->执行这个资源;这个执行过程就叫进程。程序与进程的区别:程序是静态代码(静态性);进程是动态执行过程(动态性)task_struct结构体管理 创建->运行->回收 这整个过程;什么是进程:进程是动态执行过程。等待CPU调度的进程叫作。

2026-05-14 20:30:44 100

原创 Linux:库的制作

r是核心:负责往静态库里添加 / 替换目标文件;-c是辅助:搭配-r实现静默创建库,避免多余输出;实际开发中,直接用ar -rc即可完成静态库的创建与更新。一般是直接使用ar -rc来完成创建静态库和更新静态库,不用分开执行例如;将file1.o file2.0 file3.o加到归档文件libmylib中;它是静默创建与更新;-r是核心:负责往静态库里添加 / 替换目标文件;-c是辅助:搭配-r实现静默创建库,避免多余输出;实际开发中,直接用ar -rc即可完成静态库的创建与更新。

2026-05-13 00:28:07 248

原创 文件IO概念

O_EXCL :和O_CREAT结合使用,如果文件不存在会创建文件;O_RDWR :以读写方式打开文件,文件。如果flags中写了O_CREAT,就必须填写第三个参数,第三个参数代表创建文件的权限。非负整数:通常是小数(如0、1、2),但可动态分配分配fopen()返回的新描述符;围绕文件描述符进行操作,相当于标准IO中的流(FILE *),文件描述符是正整数;唯一性:同一进程内,每个文件描述符对应唯一一个打开文件。打开文件,文件不存在打开失败。

2026-05-11 11:41:28 243

原创 Linux:标准IO

系统调用能提供给内核层与用户层打交道的接口。IO作用:是程序与外部环境交互的基础桥梁。

2026-05-07 20:27:01 506

原创 linux :Makefile

Makefile是一个文本文件,由目标(target)、依赖(prerequisites)、命令(commands)构成,这些元素共同组成"规则";make工具负责读取并解析Makefile文件,按照其中定义的规则执行项目构建操作;作用:自动化编译:Makefile核心语法基本规则三要素结构及说明格式:目标(target)、依赖(prerequisites)//接着按Tab键换行命令(commands)例如:hello hello.c。

2026-05-05 19:45:02 34

原创 Ubuntu:文本编辑、环境变量配置

1>命令模式:只能移动、复制粘贴,不能修改,或者输入等操作,无法直接输入文本。2>插入模式 :能修改和编辑文本内容 Ctrl+i或者Ctrl+o。3>底行模式:可进行保存文件:O、退出vim、查找替换等特殊命令。.o 目标文件 源代码经过编译但尚未链接的中间文件。.a 库文件 由目标文件构成的静态库文件、.cpp源代码 C++的源代码文件。.so 库文件 动态库文件。.c 源代码文件 C语言的源代码文件。gcc与gdb的使用。

2026-05-02 16:53:30 93

原创 Linux:常用基础命令行

加了-p是跳级创建,如果不加-p,就会报错提示没用这个文件路径用-rf就可以删除一个有目录内容的目录了,r代表递归,f代表强制安装中文语言包。

2026-04-26 18:58:28 102

原创 C语言:排序

2.快速排序(时间复杂度比冒泡小)

2026-04-25 17:23:18 42

原创 C语言:查找算法

1.查找算法一。

2026-04-24 14:39:53 585

原创 C语言:树和二叉树

比如在最短路径算法中,Djkstra算法生成的最短路径树就是一个典型的树结构。表达式树的每个节点表示一个操作符或操作数,叶节点通常是操作数,而内部节点是运算符。堆的节点遵循父节点和子节点之间的优先级规则。后序遍历:左右元素都访问完了才打印它本身,再回退,再看回退的这个节点的右子树,把右子树的所有内容都打印完了才打印它本身。数据库使用树结构(如B树、B+树)来实现高效的索引管理,帮助快速查询、插入、删除数据。哈夫曼编码是一种用于数据压缩的算法,它基于树形结构来生成最优的二进制编码。二叉树的顺序存储结构。

2026-04-21 18:21:50 41

原创 C语言:栈和队列

队列(queue)是一种先进先出(first in first out,FIFO)的线性表,它。3、浏览器历史管理:当用户访问新页面时,当前页面的地址被推入栈中,用户按“后退”4、广度优先搜索(BFS):在图的广度优先搜索算法中,队列用于储存待访问的结点。1、函数调用管理:栈用于管理函数调用,包括存储局部变量和返回地址。2、撤销操作:在文本编辑器或其他应该程序中,栈用于实现撤销操作。4、字符串反转:将字符串中的字符逐个推入栈中,然后再依次弹出。链队列——队列的链式表示。在表的一端进行插入,而在另一端。

2026-04-20 19:38:27 52

原创 C语言:链表

一个节点包括两个域:存储数据元素信息的域称为数据域:存储直接后继存储位置的域称为指针域。:一个链表前面有一个元素,后面也有一个元素,逻辑关系是线性的。L:link list head (头结点);加入新开辟的结点(插入数据)

2026-04-14 20:36:23 41

原创 C语言:指针

在某些应用中,程序需要临时存储大量数据(如文件数据、网络数据、日志数据等)。可以使用。

2026-04-10 20:33:45 671

原创 C语言:串讲复习

使用野指针的后果是什么?【不可预计的后果、可能产生严重的运行问题】避免使用野指针:创建指针时一定要做初始,当指针用完了就置NULL。double:4字节···//0x1004 int占4个字节。空指针:空指针不是赋值为0,而是一个void指针数据为0。实际加的是指针指向类型的字节大小的倍数。例如:int *p=0x1000;野指针:指针指向的空间是未知的。两个指针指向地址的大小比较。

2026-04-09 21:09:01 34

原创 C语言:函数

包含函数的具体实现,定义了函数的行为。格式:返回类型函数名(参数类型参数名,..//函数体,执行的操作return返回值;

2026-04-08 10:15:47 325

原创 C语言:变量

定义格式:<存储类型><数据类型>变量名=初始值;1、存储类型说明符:用于控制变量的存储位置、生命周期和作用域。auto:局部变量默认关键字(只能用于函数内或块内)static:声明为静态变量(生命周期为整个程序,但作用域受限)extern:声明为外部变量,全局变量的默认存储类型register:建议编译器将变量存储在寄存器中,以提高访问速度typedef:用于定义类型2.数据类型说明符:用于定义变量或函数的基本数据类型。int。

2026-04-02 20:17:48 425

原创 导论:为什么要学C语言

/声明每个函数的接口,存放在一个软盘,让其他函数直接调用,头文件不需要实现某个功能6、

2026-04-02 11:14:25 264

原创 main函数里面的参数的意义

命令行参数,在终端中的实现

2026-03-31 10:16:23 44

空空如也

空空如也

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

TA关注的人

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