- 博客(46)
- 收藏
- 关注
原创 【嵌入式领域芯片分类】CPU、MCU、MPU、SOC的区别与应用
在嵌入式系统领域,CPU、MCU、MPU和SOC是常见的专业术语,它们各自有不同的功能与应用范围,本文介绍了这四种芯片的特点和区别。
2024-11-24 15:06:11
1745
1
原创 【Linux】进程exec函数族以及守护进程
介绍了 exec 函数族的不同成员及其应用,并描述了创建守护进程的标准步骤,确保进程在后台独立运行。
2024-05-04 23:03:59
927
原创 【IO操作】标准IO和文件IO
主要介绍了标准 I/O 和文件 I/O 的区别,以及关于这两种 I/O 操作的详细介绍。标准 I/O 是基于 C 语言的库函数,而文件 I/O 是基于 Linux 系统调用的操作。文章分析了它们的区别,包括在跨平台性、系统调用频率以及文件描述符和文件指针等方面的不同。此外,文章总结了标准 I/O 和文件 I/O 中常用的函数、参数、返回值和常见用法,并提供了示例代码以便加深理解。
2024-05-02 23:03:46
1901
1
原创 【Linux】线程的创建、回收分离以及线程的同步互斥
线程编程中的一些关键概念和技术,多线程的创建和回收,介绍了使用函数创建和回收线程的基本流程。深入了解了互斥锁的用法,以及如何使用它来保护共享资源免受并发访问的影响。还研究了条件变量的意义和使用方法,以及如何与互斥锁配合使用,实现线程之间的同步与通信。最后,基于互斥锁和条件变量,演示了一个生产者-消费者模型的多线程示例,更好地理解多线程编程中常用的同步机制,以及如何正确地应用它们来构建高效、可靠
2024-05-01 12:39:06
1445
原创 【面试八股文之通信协议】
它使用两根传输线(SDA和SCL)进行数据传输,其中SDA(串行数据线)负责发送和接收数据,SCL(串行时钟线)用于数据同步。它使用两根传输线(TX和RX)进行数据传输,其中TX(发送线)负责发送数据,RX(接收线)负责接收数据。(1)上拉电阻:当IIC总线在空闲状态,SDA和SCL需要处于高电平状态,开漏输出无法输出高电平,使用上拉电阻可以完成高低电平之间的转换。(2)SPI概念:SPI是一种同步串行通信协议,用于在一个主设备(主控器)和一个或多个从设备之间实现全双工的高速数据传输。
2024-04-14 21:57:51
684
1
原创 【面试八股文之Linux系统编程】
死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。当多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进,这种情况就是死锁。死锁产生的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
2024-04-14 21:57:14
895
原创 【面试八股文之操作系统】
因此,操作系统需要提供访问这些内核态运行的程序的接口,这些接口的集合就叫做系统调用。(3)内核中的中断处理函数根据系统调用号,调用对应的内核函数(系统调用):内核中的中断处理函数会根据EAX寄存器中的系统调用号,在系统调用表中找到并执行对应的内核函数。(4)系统调用完成相应功能,将返回值存入EAX,返回到中断处理函数:内核函数执行完毕后,会将返回值存入EAX寄存器,并返回到中断处理函数。(5)返回到用户态的wrapper函数中:最后,控制权会返回到用户态的wrapper函数中,继续执行系统调用之后的代码。
2024-04-14 21:56:02
677
原创 【问题记录】Linux下克隆git项目到本地
(2)在询问是不是要把远端地址加入到konw_host中,如果直接回车,则默认没有权限写入,必须输入 yes才能正确写入 konw_host。删除.ssh下全部的文件,并重新设置用户名和邮箱再重新生成ssh公钥。linux下git生成公钥失败。
2024-01-16 11:28:36
690
3
原创 【嵌入式数据库之sqlite3】
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。IBM 的DB2是第一个具备网上功能的多媒体关系数据库管理系统,支持包Linux在内的一系列平台。在程序运行过程中,当需要进行数据库操作时,应用程序会首先尝试打开数据库,此时如果数据库并不存在,程序则会自动建立数据库,然后再打开数据库。mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,2008年被Sun公司收购,开放源码。Server是微软开发的数据库产品,主要支持windows平台。
2023-09-06 22:47:33
2676
47
原创 【进程的创建和回收】
目录 1.进程基础(1)进程概念和程序概念区别(了解)(2)进程内容(理解)(3)进程类型(理解)(4)进程状态图(理解)2.进程常用命令(1)查看进程信息(熟练)(2)进程相关命令(熟练) 3.进程的创建和结束(熟练)(1)子进程概念(2)子进程创建 – fork(3)子进程创建-fork-示例(4)父子进程 (5)一个父进程创建多个子进程(6)进程结束-exit/_exitⅠ.exit()Ⅱ._exit()Ⅲ._EXIT()4.进程的回收(熟练)(1)wait(2)waitpid 进程包含的内容:BSS
2023-08-10 18:11:07
315
22
原创 【队列上(顺序队列)】
队列是限制在两端进行插入操作和删除操作的线性表1.允许进行存入操作的一端称为“队尾”允许进行删除操作的一端称为“队头”当线性表中没有元素时,称为“空队”2.特点 :先进先出(FIFO)跟现实中排队是一样的3.队列的应用5.队列的操作包括创建队列 :CreateQueue ()清空队列 :ClearQueue (Q)判断队列空 :EmptyQueue(Q)判断队列满 :FullQueue(Q)入队 :EnQueue (Q , x)出队 :DeQueue(Q)
2023-06-18 02:15:06
145
1
原创 【初识数据结构】
目录一.学习数据结构的意义二.解读数据结构三.总结1.提高编程能力,使解决的现实问题抽象化成具体的程序实现方式;2.使程序的执行效率高,可维护性和可读性好,可复用性高。1.什么是数据结构(1)定义: 数据结构研究计算机数据间关系; 包括数据的逻辑结构和存储结构及其操作; (2)补充概念⭕数据(Data): 数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。 ⭕数据元素(Data Element): 数据元素是数据的基本单位,又称之为记录(Record)。一般,数据
2023-06-10 23:22:21
137
2
原创 【内存管理】
一次内存泄露危害可以忽略,但若一直泄漏,无论有多少内存,迟早都会被占用光,最终导致程序crash。(因此,开发中我们要尽量避免内存泄漏的出现),通常在运行大型应用或游戏时,应用或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。接下来把a初始化,就可以看到已经初始化过的data数据就是284字节了,未初始化bss数据就变成了4字节。⭕代码区: 存放函数体的二进制代码,由操作系统进行管理(cpu执行的机器指令,共享只读);不同区域存放的数据,赋予不同的生命周期,带来了更大的灵活编程;
2023-06-02 20:13:36
104
2
原创 【结构体嵌套、大小及位域】
1.含义一个结构体中成员可以是另外一个结构体2.语法结构struct 结构体名struct 结构体名 成员名;3.代码示例:这里以需要储存老师和学生的信息为例子,老师的部分信息和学生的部分信息需要存储的是一样的分析:⭕在储存学生和老师信息的时候,两者的部分信息是一致的,年龄和名字都需要储存,所以我们可以定义一个共同的结构体来储存年龄和名字,然后再在两者分别的结构体中引用这个相同信息的结构;⭕在引用结构体中的结构体成员时只需要用两个“ ..”就可以实现;
2023-05-31 15:16:06
460
1
原创 【结构体和结构体数组】
代码示例如下:分析:该结构体构造了一种数据类型,里面储存了学生成绩的信息,包括学号、名字、分数。stu可形象化为此时我们给予这个结构体的作用和意义,而stu1则是将该结构体的内容给到到具体的对象上。连起来解释就是,stu这个结构体是专门用来储存学生成绩信息的,而stu1则是一个具体的学生,struct stu stu1,就是表示储存了张三这个同学的成绩信息;
2023-05-28 16:51:49
134
原创 【shell函数】
这种方法是把函数的输出传递给了主程序的变量这种方式是得到上一条命令的退出状态在函数内部定义变量是默认为全局变量,加上local后就会成为局部变量
2023-05-25 08:46:22
81
原创 【Shell脚本编程(概念、变量、语句)】
Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件(),将一些 shell 的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能;2.shell脚本编写步骤需求分析>>>命令测试(提前在命令行测试命令)>>>>脚本编写>>>测试调优(1)第一个shell脚本文件分析:/bin/bash 解释表示使用的bin文件下的bash shell ,指定要执行脚本的解释器。
2023-05-23 23:01:56
222
2
原创 【递归函数和函数指针】
函数地址是一个函数的入口地址,函数名代表了函数的入口地址。当一个函数指针指向了一个函数,就可以通过这个指针来调用该函数,可以将函数作为参数传递给函数指针。 (* [] )( );1.定义:递归函数中是指一个函数直接调用或者间接调用了该函数自身的函数。(*)中*说明为指针,()不可以缺,表明指向函数的指针。其中,是指函数指针数组元数的个数 其它同普通的函数指针。 (*)();
2023-05-19 12:37:50
290
原创 【指针函数】
1.定义:一个函数的返回值为地址量(指针)的函数指针函数的定义的一般形式如下:<数据类型> * <函数名称>(<参数说明>){ 语句序列;示例程序:分析:在警告中可以看到,提示,程序执行的结果是乱码;mystring()是一个指针函数,返回的是数组的地址,但是,s数组是一个这个指针函数的局部数组,局部变量是分配在栈中的。当函数执行完后,地址仍然存在,但是地址内容已经被释放了。访问一段已经释放的内存是非法操作,所以是乱码,所以这个时候不能访问地址中的内容;
2023-05-18 22:57:38
202
原创 【函数的基本用法】
1.定义:函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。⭕一般形式如下: ( ){ 语句序列;return[()];2.。⭕return[()]语句中表达式的值,要和函数的保持一致。如无返回值应该写为void型;⭕是逗号”,”分隔的多个变量的说明形式 大括弧对 { },称为函数体;是大于等于零个语句构成的;3.
2023-05-18 01:18:32
154
原创 【void指针和const】
⭕主要介绍了const修饰指针的用法,有三种情况。还介绍了void指针的用法⭕思考 void指针有什么作用?main函数是否可以带参数(涉及到const指针)?
2023-05-16 12:36:34
528
原创 【多级指针】
⭕主要介绍了多级指针,包括定义、初始化、运算以及多级指针与指针数组⭕思考 多级指针在内存中占几个字节?多级指针加1,移动多少字节?(4,4)
2023-05-16 01:56:56
1136
1
原创 【指针数组】
⭕主要介绍了指针数组的用法,包括声明、初始化、赋值及指针数组如何访问二维数组等⭕思考 如何计算指针数组占用的内存空间?(用sizeof算出来都是4个字节)指针数组名加1,移动多少字节?(4个字节)指针数组名相当于什么样的指针?(相当于二级指针)存储数据的类型 * 变量名int*代表存储的是指针类型的数据,*q代表的是这是一个指针变量。
2023-05-15 02:01:11
151
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人