自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32基础知识

内部的SRAM,是通常所说的内存,程序中的变量、堆栈等的开销都是基于内部SRAM,内核通过DCode总线来 访问它。DMA总线也主要是⽤来传输数据,这个数据可以是在某个外设的数据寄存器,可以在SRAM,可以在内部 FLASH。因为数据可以被Dcode总线,也可以被DMA总线访问,为了避免访问冲突,在取数的时候需要经过⼀个总线矩 阵来仲裁,决定哪个总线在取数。我们通常说的寄存器编程,即读写寄存器都是通过系统总线来完成的,系统总线主要是⽤来访问外设的寄存 器。-- 芯片的启动过程中对堆栈的初始化。

2023-08-27 16:53:29 75

原创 常见Linux嵌入式面试题--单片机C语言杂项知识点 二

(资源分配给进程,同一进程的所有线程共享该进程的所有资源。②结构体中,各成员各自占有一块内存,同时共存,在上述结构体中,由于DATE为8字节对齐,所以int car占8字节,其次DATE cow占16字节,最后double dog占8字节,一起占32字节,即sizeof(struct data)=32;⑤通信:由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现,也变得比较容易。① 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。

2023-08-22 10:49:17 86 1

原创 常见Linux嵌入式面试题--单片机C语言杂项知识点

注:inline作用:当在程序中调用一个内联函数时,是将该函数的代码直接插入到调用点,然后执行该段代码,所以在调用过程中不存在程序的跳转与返回问题,而对于普通函数的调用,程序是从主调函数点转去执行被调函数,待被调函数执行完毕后,再返回到主调函数的调用点的下一语句继续执行。先看未定义标识符p,p的左边是*,*p表示一个指针,跳出括号,由于[ ]的结合性大于*,所以*p指向一个大小为10的数组,即(*p)[10]。如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。内存自动申请自动释放。

2023-08-22 10:42:47 99 1

原创 常见Linux嵌入式面试题--链表

这些是链表的基本操作示例,可以根据需要进行修改和扩展。记得在使用完毕后释放链表所占用的内存,避免内存泄漏。// 指向下一个节点的指针。// 未找到要删除的节点。// 内存分配失败处理。// 节点创建失败处理。

2023-08-22 10:18:57 58 1

原创 常见Linux嵌入式面试题--常见算法

桶排序 | O(n + k) | O(n + k) | 稳定 || 归并排序 | O(n log n) | O(n) | 稳定 || 基数排序 | O(d(n + k)) | O(n + k) | 稳定 || 希尔排序 | O(n log n) | O(1) | 不稳定 || 快速排序 | O(n log n) | O(log n) | 不稳定 |

2023-08-22 08:19:57 94 1

原创 常见Linux嵌入式面试题--C语言杂项概念

当 C++ 代码与 C 代码进行混合编译时,可以使用 extern "C" 来告诉编译器将某段代码按照 C 语言的规则进行处理,避免了 C++ 的名称修饰和函数重载导致的链接错误。inline是 C 语言的关键字,用于声明内联函数。编译阶段:const 常量在编译时进行类型检查,具有更强的类型安全性,而 #define 宏定义是简单的文本替换,在预处理阶段进行,没有类型检查。- 内存对齐是为了提高访问效率和处理器的要求,结构体中的成员在内存中按照特定规则对齐,通常以成员大小或者指定的对齐值为基准进行对齐。

2023-08-21 15:19:43 76 1

原创 常见Linux嵌入式面试题--ARM单片机常见面试题

Ethernet:Ethernet使用至少四根线,包括一对差分信号线(TX+和TX-,或RX+和RX-),一根时钟线(CLK),以及一根地线(GND)。SPI:SPI通常使用四根线,包括一个主机输出从机输入的数据线(MOSI),一个主机输入从机输出的数据线(MISO),一个时钟线(SCK)用于同步数据传输时序,以及一个片选线(SS/CS)用于选择特定的从机。USB:USB通常使用四根线,包括两根用于双向数据传输的差分信号线(D+和D-),一根用于提供电源(VCC),以及一根地线(GND)。

2023-08-21 15:15:53 174 1

原创 常见Linux嵌入式面试题--Linux操作系统概念

中断是由外部事件触发的信号,用于中断当前正在执行的程序流程,以处理紧急或优先级较高的任务。堆的大小通常由操作系统管理,并通过特定的分配和释放方法(如malloc和free)来进行内存的分配和释放。操作系统会管理和切换用户态和内核态之间的转换,以确保系统的稳定性、安全性和资源的合理利用。- 内核(Kernel)是操作系统的核心部分,负责管理和控制计算机的硬件资源,提供各种系统服务和功能。堆的大小通常由操作系统管理,并通过特定的分配和释放方法(如malloc和free)来进行内存的分配和释放。

2023-08-21 14:59:26 222 1

原创 常见Linux嵌入式面试题--网络编程概念

MTU的常见值为1500是因为在以太网(Ethernet)中,定义了一种常用的帧格式,称为以太网帧(Ethernet Frame),其中数据字段的最大长度为1500字节。包头+包体:发送方在每个数据包的开头加上包头信息,包头中包含了数据包的长度等信息,接收方首先读取包头来获取数据包的长度,然后根据长度读取对应长度的数据。问题常见于基于流式传输的协议(如TCP),由于数据的发送和接收没有固定的边界,导致多个数据包被一次性发送或接收,造成粘包现象。是面向连接的协议,提供可靠的数据传输和错误检测机制。

2023-08-21 14:54:45 43 1

原创 常见Linux嵌入式面试题--进程线程的基本概念

由于线程共享同一进程的内存空间,因此可以直接访问共享的变量或数据结构,实现高效的通信。在选择线程通信的方式时,需要根据具体的应用场景和需求综合考虑数据量、性能要求、线程间关系以及对隔离性和同步机制的需求,以满足应用程序的要求。进程和线程的状态转换图中,阻塞状态发生在等待某个事件完成或资源可用时,就绪状态是指进程或线程已获取所有必需的资源,并等待被调度执行。资源剥夺策略:当某个进程(线程)无法获取所需资源时,可以主动抢占或回收其他进程(线程)占有的资源,以满足当前进程(线程)的需求。

2023-08-21 14:51:12 64 1

原创 嵌入式常见面试题 41~50

串行口结构:51单片机的串行口是一个可编程全双工的通信接口,具有UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收。时钟周期:也称为震荡周期,定义为时钟频率的倒数(时钟周期是单片机外接晶振的倒数,如12Mhz的晶振,它的时钟周期就是1/12us),它是单片机中最基本的、最小的时间单位。机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取指令、存储器读写等。(2)4KB的片内程序存储器ROM。(1) 单片机的程序存储器和数据存储器是分工的,前者为ROM,后者为RAM;

2023-08-21 14:23:45 22 1

原创 嵌入式常见面试题 31~40

定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。8.客户端浏览器解析HTML文件,根据文件内容获取CSS、JS等资源文件,将页面渲染展示给用户。4.客户端浏览器根据IP向服务器发起TCP三次握手,建立TCP连接。2.客户端浏览器将域名发送给DNS域名系统,请求解析。3.DNS解析域名得到相应的IP,返回给客户端浏览器。

2023-08-21 14:18:54 27 1

原创 嵌入式常见面试题 21~30

但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也跟着死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。而线程是共享进程中的数据,使用相同的地址空间,因此,CPU切换一个线程的花费远比进程小很多,同时创建一个线程的开销也比进程小很多。这样用户在线等待的时间太长,给用户一种卡死了的感觉(比如系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。(2)线程是程序执行的最小单位,也是处理器调度的基本单位,但进程不是,两者均可并发执行。

2023-08-21 14:14:39 30 1

原创 嵌入式常见面试题 11~20

它通过校验和,丢包时的重传控制,序号标识,滑动窗口、确认应答,次序乱掉的分包进行顺序控制实现可靠传输。即通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;进程有自己的地址空间,当一个进程建立,系统就会为它分配地址空间,而线程是共享进程的数据,使用相同的地址空间。const修饰的是p(即地址)是常量,不可改变,但是*p的值可以改变。线程之间的通信更加方便,同一进程下的线程共享全局变量,静态变量等,而进程通信需要以IPC方式进行。UDP支持一对一,一对多,多对一和多对多的交互通信方式。

2023-08-21 14:10:17 44 1

原创 嵌入式常见面试题 1~10

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。② 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。③ 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。3) 不存在指向空值的引用,但是存在指向空值的指针。1) 引用必须被初始化,指针不必。

2023-08-21 14:05:59 65 1

原创 Gitee代码提交

然后设置仓库的基本信息,如仓库名称,仓库介绍。(如需创建公开仓库,请在创建仓库后通过「仓库设置」修改为公开)此时我们来到了一个新的界面,来到此界面就说明我们已经在该账户下创建好了这个远程仓库了。此时我们回到Gitee的仓库,发现我们的代码已经成功提交到远程仓库。此时电脑本地出现的文件夹,就是我们克隆的远程仓库里面的文件夹。然后出现蓝字Sussess,说明我们已经成功提交到远程仓库。至此,我们就成功的将远程仓库克隆到电脑本地了。然后出现新界面,选择要上传的文件,然后点OK。首先,复制我们仓库的链接。

2023-08-11 14:15:20 566 1

空空如也

空空如也

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

TA关注的人

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