自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式面试真题——父子进程

在现实中,你生了五个儿女,你叫他们不能统一的叫儿子或者女儿,因为这样儿女不知道你叫的是哪个儿子哪个女儿,因此你需要叫他们大儿子,二儿子,大女儿来区分他们。时,子进程会复制父进程的文件描述符表,每个文件描述符指向内核中相同的文件表项(包含文件偏移量、状态标志等信息)。内核文件表项的引用计数减。值得注意的是,偏移量是在内核的文件表项中记录着的,文件表项是共享的,所以子进程对偏移量的修改会影响到父进程。之后,子进程是没有自己的代码和数据的,所以子进程会和父进程共享代码和数据,所以他们执行的是一样的内容。

2025-03-15 16:43:43 114

原创 嵌入式面试真题——上半部与下半部

其中每个队列都包含一个由等待调用的函数组成的链表。在下半部中,也可以使用自旋锁、信号量等,下半部的执行是可以睡眠的,因此在这里使用的锁机制可以是更灵活的选择,比如信号量和互斥锁(必须立即进行紧急处理的极少量任务放入在中断的顶半部中,此时屏蔽了与自己同类型的中断,由于任务量少,所以可以迅速不受打扰地处理完紧急任务。下半部是指中断处理的延迟部分,通常在中断处理完成后执行,用于处理较复杂的任务,避免中断处理时间过长。中断的代码延迟太长的时间,中断服务程序需要尽快运行,而且执行的时间越短越好,所以中断程序只。

2025-03-15 16:43:02 309

原创 嵌入式面试真题——内存分配函数

(用户空间存储以空间链表的方式组织(地址递增),每一个链表块包含一个长度、一个指向下一个链表块的指针以及一个指向自身的存储空间指针。需要分配物理连续的内存,因此在分配大块内存时可能会失败(因为找不到足够大的连续物理内存区域)。类型的指针,可以指向任何类型的内存块,但是在实际使用分配的内存块时,通常需要将。可以分配较大的内存块,因为它使用虚拟地址空间,只要有足够的可用物理内存即可。用于重新分配内存大小。只分配内存,不会初始化内存的内容,其中的值是未定义的。分配的内存可用于需要物理连续内存的硬件设备,而。

2025-03-15 16:40:59 143

原创 嵌入式面试真题——Linux内核空间与用户空间

种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断的处理机制基本上也是一致的。,它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到内核态的异常处理相关的程序中,也就是转到了内核态,比如缺页异常,除。来说,通过区分内核空间和用户空间的设计,

2025-03-14 19:06:50 702

原创 嵌入式面试真题——设备驱动匹配方法

平台,特别是在桌面和笔记本电脑上。它较为复杂,包含了丰富的系统管理和电源管理功能。开发人员无法修改,只能由主板供应商修改。表中的所有成员比较,查看是否有相同的条目,如果有的话就表示设备和此驱动匹配,设备和驱动匹配成功以后。类型的匹配,也就是设备树采用的匹配方式。的成员变量,此成员变量保存着驱动的。匹配表,设备树中的每个设备节点的。不存在的话就直接比较驱动和设备的。成员变量,顾名思义,保存了很多。字段匹配,如果第三种匹配方式的。驱动所支持的驱动类型。

2025-03-14 19:05:33 61

原创 嵌入式面试真题——SPI

反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。在什么时候为什么空闲,时钟相位来决定数据的采样时间是在第一个跳变沿还是第二个跳变沿。不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;如果有多个从设备,并且它们使用了不同的工作模式,那么主设备必须在读写不同从设备时需要重新修改对应从设备的模式。该引脚在从模式下发送数据,在主模式下接收数据。该引脚在主模式下发送数据,在从模式下接收数据。,是一种高速的,全双工,同步的通信总线。非常简单的硬件结构。作为主设备的输出,从设备的输入。

2025-03-14 19:04:33 108

原创 嵌入式面试真题——预处理命令

指令时,会输出指定的错误信息,并停止编译。这个指令通常用于在编译时检查代码中的错误或者警告信息。,它存在于程序的代码段,在实际程序中,它只是一个常数,当条件为真时,编译器会输出这条警告信息。条件不为真,则当前条件为真时,继续编译下边的代码。无论是否输出警告信息,程序都会正常编译和运行。:如果宏已经定义,则继续编译下边的代码。:如果宏没有定义,则继续编译下边的代码。如果条件为真,则继续编译下边的代码。语言中的一个预处理指令,用于在。编译时输出错误信息并停止编译。常量的生命周期止于编译期。

2025-03-14 19:03:47 67

原创 嵌入式面试真题——#与##

会将其左右两端的符号合成新的标识符,所以等价于。会将一个宏参数变成对应的字符串,所以等价于。会将一个宏参数变成对应的字符串,所以等价于。,即其允许宏定义从分离的文本片段创建。表示将一个宏参数变成对应的。表示将把位于他两端的。

2025-03-14 12:01:12 69

原创 嵌入式面试真题——extern “C“

编译器在编译过程中将函数名进行转换,以支持函数重载、命名空间、类等特性。的规则链接,从而避免了名称冲突或找不到符号的错误。(例如将函数的参数类型、类等信息加到函数名中),以。函数进行名称修饰,使其名称变得复杂,导致链接错误。是一个非常重要的概念,它用于指示编译器按照。语言中,函数名是简单的字符串(如。语言的方式进行处理。,否则可能会因为名称修饰(这个过程就是名称修饰。的名称修饰方式,而是按照。语言不支持类、函数重载等。块中的函数都不应该使用。符号的名称修饰和链接。程序中,如果需要调用。

2025-03-14 11:59:23 116

原创 嵌入式面试真题——extern

关键字将函数的可见性扩展到整个程序,因此可以在整个程序的任何文件中调用该函数,前提是这些文件包含该函数的声明。有了函数的声明,编译器就知道函数的定义存在于其他地方,然后继续编译文件。在函数声明的情况下,它还告诉程序参数、它们的数据类型、这些参数的顺序以及函数的返回类型。一个变量或者函数时,除了声明所做的一切之外,他还为该变量或函数。修饰变量同时进行初始化时,该变量同时也被定义。定义看作时声明的超集(或者声明是定义的子集)。(尤其是跨文件调用函数的时候,显式的使用。修饰变量时,该变量只被声明,而没有定义。

2025-03-14 11:58:44 79

原创 嵌入式面试真题——volatile

即使它前面的指令刚刚从该处读取过数据。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。读取数据,即使它前面的指令刚刚从该处读取过数据。的值,因而编译器生成的汇编代码会重新从。并行设备的硬件寄存器(如:状态寄存器)这时候编译器对代码进行优化,因为在(之后,这个值并没有被丢掉,而是在(的值,这样提高了效率。系统总是重新从它所在的内存读取数据。每次使用它的时候必须从内存中取出。的值没有发生改变,所以在(是随时可能发生变化的,声明的变量的值的时候,

2025-03-14 11:58:11 185

原创 嵌入式面试真题——static

语言中用于改变变量或函数的链接属性,使其仅在当前编译单元(通常是一个源文件)中可见。这意味着变量或者函数不能被同一作用域内的其他函数或代码访问,但可以被声明他的函数内的其他函数或代码访问。,结构体成员是依赖于具体结构体实例的,每个实例的成员是独立的,必须分配在每个结构体实例的内存中。想重复使用一个变量的时候,且不想将它声明为全局变量时,可以将其声明为局部静态变量。修饰的变量具有静态存储周期(即分配在全局或静态存储区),在程序的整个生命周期中存在。,这意味着这个变量或函数不能被其他的源文件中的代码访问。

2025-03-14 11:57:25 316

原创 嵌入式面试真题——忙等待和阻塞的区别

程序挂起:线程在等待期间不能执行其他任务,处于“暂停”状态。程序会暂停当前线程的执行,直到特定的条件满足或事件完成。实时响应快:由于程序一直在循环检查,能快速响应条件变化。的方式,程序会不断地循环检测某个条件是否满足。资源友好:减少CPU。资源浪费,影响其他任务的执行。资源,即使没有事件发生。:线程会进入休眠状态,:线程不断运行,占用。可以分配给其他任务。

2025-03-13 13:18:32 128

原创 嵌入式面试真题——Linux目录

虚拟文件系统,存储内核和进程信息,提供系统运行时信息。位于内存中,是系统运行时动态生成的。,存放大多数用户程序和工具,包括二进制文件、库、文档和其他资源,供所有用户共享。系统设备信息的虚拟文件系统,提供设备和内核信息,系统硬件与内核交互。普通用户的主目录,每个用户都有一个子目录,存放个人文件和配置。以文件的形式表示设备接口,提供与硬件或虚拟设备交互的接口。的快捷方式或一个单独的文件夹,系统提供的工具和命令(如。),或第三方库或工具链的头文件。日志文件,存储变化频繁的文件。存放共享的、与平台无关的数据。

2025-03-13 13:17:05 358

原创 嵌入式面试真题——FILE* 与int fd操作文件的区别

缓存提升性能,减少系统调用。

2025-03-13 13:15:38 137

原创 嵌入式面试真题——比特率与波特率

是通信系统中两个重要的参数,常用于描述数据传输速度,但它们的含义和计算方式不同。秒),它表示数据的实际传输速率,是一个直接反映传输数据量的参数。它反映信号状态变化的频率,而不是实际传输的比特数。八进制调制表示每个符号可以承载。在二进制调制中,每个符号携带。在四进制调制中,每个符号携带。:波特率是每秒钟传输的。比特率是每秒钟传输的。

2025-03-12 21:29:39 229

原创 Linux C CPU亲和性

多核CPU指定某个线程在某个核心上运行。

2024-11-19 16:15:30 245 1

原创 PID-C语言实现

pid-C语言 pid算法的c语言实现

2024-11-18 10:34:38 508

原创 基于固定大小的简单内存池实现

基于固定大小的简单内存池实现

2024-11-16 15:40:41 106

原创 nrf sdk_config.h all-in-one

或者直接在sdk直接查找:sdk/nrf5/config/nrf52832/config/sdk_config.h for nRF52832。nordic本身就提供的有all-in-one的sdk_config.h参见上边的链接。看到有人在售卖all-in-one的sdk,还不允许评论。

2024-07-10 17:21:45 374

原创 使用CMake编译内核模块代码和测试程序并复制到开发板

使用CMake编译内核模块代码和测试程序并复制到开发板

2024-04-20 20:58:19 823 2

空空如也

空空如也

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

TA关注的人

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