- 博客(118)
- 资源 (1)
- 收藏
- 关注
原创 【操作系统】Linux进程管理和调试
在 Linux 中,可以通过以下方法查看。• 显示该进程打开的所有文件、网络连接等。• 支持鼠标操作,直接搜索 PID。:完整的命令行(包括参数):进程名称(短格式)
2025-04-01 22:19:26
84
原创 【操作系统】Linux&RT-Thread查看内存分布的方法
功能LinuxRT-Thread查看物理内存分布list_mem查看进程内存映射不支持(无进程概念)查看SLAB分配不支持(通常不使用SLAB)实时监控内存池信息无直接对应list_mempRT-Thread的内存查看功能相对简单,主要针对嵌入式系统的需求设计,而Linux提供了更全面的内存信息查看工具。加油💪。
2025-04-01 01:25:24
219
原创 【操作系统】内存泄漏 vs 内存碎片
内存泄漏→未释放内存→ 用工具检测,确保释放。内存碎片→分配失败→ 用内存池或优化分配策略。关键:合理管理内存,结合工具分析,避免长期运行问题!
2025-03-30 22:23:06
692
原创 【操作系统】内存管理: Buddy算法与Slab算法详解
是两种经典的内存管理策略,分别适用于不同场景。内存管理是操作系统核心功能之一,直接影响系统性能和稳定性。理解这两种算法,有助于优化。
2025-03-30 22:21:31
572
原创 【Linux】ELF、BIN、PBP、MAP文件查看
文件类型查看工具常用命令示例ELFreadelfobjdumpnmBINhexdumpobjdumpPBPpsp-unpackreadelfMAPcatlessgrep在Linux中,可以使用输出重定向或>>)将命令的结果保存到test.txt文件。文件类型命令示例(输出到test.txtELFBINPBPMAP。
2025-03-30 21:48:46
297
原创 【操作系统】软中断vs硬中断
(如键盘、网卡、磁盘)触发,通知 CPU 有紧急事件需要处理。(如系统调用、异常处理),用于请求内核服务或处理异常。是 CPU 响应外部事件的重要机制,分为。理解二者的区别,有助于优化。
2025-03-30 21:17:50
256
原创 【C语言】long vs int (数据范围\平台兼容性\性能优化)
场景推荐类型一般整数运算(循环、数组索引)int需要存储大数(超过 20 亿)long(64 位 Linux/macOS)或int64_t跨平台开发,确保 4 字节int32_t跨平台开发,确保 8 字节int64_t无符号整数或uint32_tuint64_t代码示例// 一般情况用 inti < count;i++) {// 大数用 int64_t(跨平台安全)// 明确需要 4 字节时用 int32_treturn 0;
2025-03-30 20:49:24
729
原创 MCU vs SoC
MCU(Microcontroller Unit,单片机)和SoC(System on Chip,片上系统)是两种不同的芯片类型,尽管它们都实现了高度集成,但在设计目标、功能复杂性和应用场景上存在显著差异。尽管MCU和SoC都实现了高度集成,但它们在设计目标、功能复杂性和应用场景上存在显著差异。,但SoC可以包含MCU的功能(如集成Cortex-M核用于实时控制)。
2025-03-23 19:08:40
599
原创 【操作系统】自旋锁和互斥锁
通过合理选择锁机制,可以在并发性能和资源利用率之间取得最佳平衡。自旋锁和互斥锁是用于多线程同步的两种常见锁机制,主要区别在于。根据实际场景选择锁机制,是高性能并发程序设计的核心技能之一。
2025-03-23 17:26:30
713
原创 【嵌入式狂刷100题】- 2操作系统部分
RTOS(Real-Time Operating System,实时操作系统)是一种专为实时应用设计的操作系统,能够确保任务在严格的时间约束内完成。它在嵌入式系统中广泛应用,特别是在对时间敏感的应用场景中,如工业控制、汽车电子、医疗设备等。RTOS 是嵌入式系统开发中不可或缺的工具,能够确保任务在严格的时间约束内完成。常用的 RTOS 包括 FreeRTOS、Zephyr、RT-Thread、µC/OS、VxWorks、QNX 和 ThreadX 等。
2025-03-23 14:31:09
1452
原创 【嵌入式狂刷100题】- 1基础知识部分
C语言是嵌入式系统开发中最常用的编程语言,因其高效、灵活、接近硬件且资源占用低,成为嵌入式领域的首选语言。在C语言中,位域通过结构体(structstruct {type:位域的类型,通常是或int。:位段的名称。width:位段的宽度(位数)。struct {// 1位,表示电源状态// 2位,表示模式// 1位,表示错误状态} status;在C语言中,可以使用sizeof运算符来获取各种数据类型所占的字节数。return 0;代码说明sizeof。
2025-03-22 22:07:02
906
原创 【操作系统】临界区(含特性、实现方式、应用场景、常见问题)
临界区是并发编程中保障数据一致性的核心机制,需根据场景选择锁、原子操作或硬件级保护。遵循最小化、无嵌套、防死锁的设计原则,可显著提升系统稳定性和性能。在实时嵌入式系统中,还需结合关中断、内存屏障等硬件特性实现高效同步。
2025-03-18 01:41:42
570
原创 【操作系统】双缓冲机制(含原理、优势、实现方式、应用场景)
双缓冲机制通过空间换时间实时性要求高:如音视频流、高速数据采集。数据生产与消费速度不匹配:如传感器数据采集与复杂算法处理。避免资源竞争:如多线程环境下的数据共享。
2025-03-18 00:02:42
1501
原创 【C语言】memset(含常见用途、注意事项)
场景 示例代码初始化数组 memset(arr, 0, sizeof(arr))清零动态内存 memset(ptr, 0, size * sizeof(int))初始化结构体 memset(&struct, 0, sizeof(struct))填充非零值 memset(arr, 1, sizeof(arr))通过 memset,可以快速初始化或填充内存区域,但需注意其按字节填充的特性。
2025-03-11 22:42:24
1235
原创 gdb调试以及常用相关工具(hexdump\objdump等)
什么是符号表符号表(Symbol Table)是在编译程序、链接程序以及调试程序等过程中用于存储和管理符号信息的数据结构。这里的符号可以是变量名、函数名、类名、标号等,以下从多个方面详细介绍符号表:基本概念在程序的编译和执行过程中,编译器和链接器需要知道各种标识符(符号)对应的地址、类型、作用域等信息,符号表就是用来存储这些信息的地方。它就像一个字典,将符号和与之相关的属性关联起来,方便编译器和其他工具在不同阶段进行查找、插入、删除和修改操作。
2025-03-10 22:47:46
1028
原创 【算法】哈希表详解
哈希表是一种高效的数据结构,适用于需要快速查找、插入和删除的场景。哈希函数和冲突解决方法是哈希表设计的核心。在实际应用中,哈希表被广泛用于字典、数据库索引、缓存等场景。
2025-02-26 23:36:51
580
原创 【C语言】Leetcode热题100 --更新中
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。遍历数组,对于每个元素 nums[i],计算 complement =解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。你可以按任意顺序返回答案。
2025-02-26 22:44:04
240
原创 【网络】TCP vs UDP详解( 含python代码实现)
TCP 适合对可靠性要求高的场景,如文件传输、网页浏览。UDP 适合对实时性要求高的场景,如视频流、在线游戏。选择 TCP 还是 UDP 取决于应用的具体需求。
2025-02-26 22:42:34
1246
原创 【通信协议】uart、i2c详解
1.串行,全双工,异步通讯2.空闲时,RXD和TXD默认高电平3.数据起始位为低电平4.串口发送数据过程中,低位在前,高位在后5.串口数据一般为8位6.串口可选择是否开启数据校验,校验位:单个字节数据校验,对数据中高低电平数据个数进行计数,常见的有奇偶校验7.停止位:高电平,一般有1,1.5,2位8.串口数据位数或者叫码元为固定9.串口传输速率:波特率,表示1秒传输数据位数。相同电平情况下,如低电平高电平。通过掐时间确认数据为01还是0011。10.累计误差消除:两个单片机通讯,波特率
2025-02-22 13:30:57
447
原创 【通信协议】同步vs异步
同步通信适合需要实时交互的场景,但发送方会阻塞。异步通信适合无需实时响应的场景,发送方可以继续执行其他任务,系统资源利用更高效。
2025-02-22 13:27:06
344
原创 GCC编译器(含预处理/编译/汇编/链接四阶段详解)
C 语言编译器用于把源代码编译成最终的可执行程序可安装mingw下载GCC编译器,进行操作练习在使用 GCC(针对 C 语言)或 G++(针对 C++ 语言)进行编译时,确实会经历。
2025-02-21 23:18:21
942
原创 linux常用命令合集
v:反向查找,只打印不匹配的行。-r:递归查找子目录中的文件。-i:忽略大小写进行匹配。-l:只打印匹配的文件名。-n:显示匹配行的行号。-c:只打印匹配的行数。
2025-02-20 10:49:00
1071
原创 DRAM vs SRAM
SRAM:功耗相对较高,由于触发器电路中晶体管数量较多,且需要持续供电来维持数据状态,所以在工作过程中会消耗较多的电能。SRAM:集成度较低,触发器电路由多个晶体管组成,占用的芯片面积较大,相同面积的芯片上能够集成的存储单元数量相对较少。SRAM:速度极快,由于其基于触发器的存储结构,数据的读写操作能够在极短的时间内完成,通常在几个纳秒(ns)级别。DRAM:集成度高,电容和相关的控制电路结构相对简单,占用的芯片面积小,能够在相同面积的芯片上集成更多的存储单元。
2025-02-19 14:14:24
344
2
原创 设备驱动程序
以编写helloworld程序为例。1.用ctrl+alt+T来打开终端2.要在某个文件夹里创建文本,首先要回到该文件夹的目录。如我在桌面(desktop)建立文本。 (在终端中输入)cd Desktop //然后按下回车3.创建文件夹(此步骤可跳过,但建议创建)mkdir 文件名4.建立文本gedit helloworld.c //然后按下回车,会跳出一个类似于windows的记事本5.往里面敲代码# include <stdio.h>int main(void) {pr
2022-10-09 17:11:24
552
原创 【计算机网络】-复习篇(含习题及答案)
@TOC1. 第一章 概述1.1 计算机网络在信息时代中的作用计算机网络是互连、自治的计算机集合网络包含 【电信网络、有线电视网络、计算机网络】Internet 译名两种 (因特网、互联网)互联网的两个基本特点 (连通性、共享性)连通性: 距离上连通共享性:是指资源共享 (信息共享、软件共享、硬件共享)互联网+ (指互联网+各个传统行业)1.2 互联网概述计算机网络: 由若干结点和连接这些结点的链路组成 【结点可以是 计算机、集线器、交换机、路由器 等】互连网: 网络的网络小
2022-10-09 16:59:26
435
原创 【剑指offer】队列&栈篇-含题目代码思路解析
/只有一个数字5表示从下标为5开始一直到结尾:sub1 = “56789”//从下标为5开始截取长度为3位:sub2 = “567”假设:string s = “0123456789”;
2022-09-28 17:18:07
555
原创 斐波那契数列
斐波那契数列【别名黄金分割数列、兔子数列】斐波那契数列的特点:第1,2两个数为1,1。从第三个数开始,该数是其前两个数之和。例如: 斐波那契数列:1,1,2,3,5,8,13,21,34,55,89…
2022-09-16 23:10:32
483
原创 牛客前端面试题库
题库知识点Cookie、SessionStorage、 LocalStorage都是浏览器的本地存储。共同点👇区别👇闭包的作用:延申变量的作用范围闭包带来的问题:由于垃圾回收器不会将闭包中变量销毁,于是就造成了内存泄露跨域是指浏览器的同源策略是不允许执行其他网站上的脚本,只要协议,主机地址,端口其中之一不同就算跨域解决方法👇定位方案是控制元素的布局,有三种常见方案:BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述定位方案的普通流。具有 BFC
2022-09-16 00:44:14
1125
原创 【vue】牛客专题训练02
vue无法监听数组变化的情况但是数组在下面两种情况下无法监听利用索引直接设置数组项时,例如arr[indexofitem]=newValue修改数组的长度时,例如arr.length=newLengthVue无法检测property的添加或移除。由于Vue会在初始化实例时对property执行getter/setter转化,所以property必须在data对象上存在才能让Vue将它转换为响应式的。
2022-09-05 11:06:36
609
2
高阶分解模型FM纯实现
2022-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人