自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(463)
  • 资源 (24)
  • 收藏
  • 关注

原创 详解linux内核链表list_head及其接口应用

摘要:本文介绍了内核代码中经常使用的list_head链表的原理,及其它的各种接口函数(宏函数)的使用方法和技巧,对理解Linux内核数据结构和代码有较好参考意义。

2022-09-14 23:23:33 819 4

原创 虚拟机双网卡设置(外网+内网)

本文主要介绍了在开发过程中,实现开发板利用网线直连电脑实现开发工作,而电脑又可以通过另一个无线或有线网卡正常连接互联网。

2022-09-11 22:17:13 14036 2

原创 软考高级系统架构设计师你想知道的全在这

2021年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?今年刚参加完系分考试,不知道有没有通过,但感觉应该差不多,这里给自己点个赞!自软考系列文章发表之后有很多准备参加软考的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在优快云、简书、GITHUB等平台将我在工作、学习的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。

2020-11-12 23:00:28 14418 18

原创 2020软考高级系统分析师,你想知道的全在这

2020年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在优快云、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在

2020-08-16 22:36:29 4089 1

原创 2022年备考[嵌入式系统设计师]你准备好了吗?

2020年准备参加软考获取中级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在优快云、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在

2020-07-23 22:56:54 5223

原创 经典生产者-消费者问题解析

摘要:生产者和消费者问题在现实系统中是很普遍的。例如在一个多媒体系统中,生产者编码视频帧,而消费者消费(解码)视频帧,缓冲区的目的就是减少视频流的抖动。又如在图形用户接口设计中,生产者检测到鼠标和键盘事件,并将其插入到缓冲区中。消费者以某种基于优先级的方式从缓冲区中取出这些事件并显示在屏幕上。生产者和消费者模式共享一个有n个槽位的有限缓冲区。

2020-04-09 14:35:33 14982 2

原创 Linux下的网络编程看这篇就够了

【摘要】本文主要讲述了网络编程的基本概念,包括各种协议、地址、套接字等,重点叙述了套接字的地址结构、操作函数及其编程方法和示例。

2020-03-26 11:28:31 786

原创 Linux中的信号处理机制

信号就是一条消息,通知进程系统中发生了什么事,每种信号都对应着某种系统事件。一般的底层硬件异常是由内核的异常处理程序处理的,它对用户进程来说是透明的。而信号机制,提供了一种方法通知用户进程发生了这些异常。例如,一个进程试图除0,会引发内核向他发送SIGFPE信号;执行非法指令会引发SIGILL信号;非法内存访问引发SIGSEGV;当你从键盘上键入Ctrl + C会引发SIGINT;当某个子进程结...

2020-03-21 23:38:00 752

原创 一文了解FreeRTOS的中断设置

本文参考韦东山课程视频,以STM32F103芯片为例,讲述了FreeRTOS的中断体系结构,及配置系统的中断的相关函数和宏函数,对掌握RTOS 中断具有较好的参考借鉴意义。

2025-03-02 17:17:09 1054

原创 一文了解CortexM3_M4中断体系

文章讲述了ARM Cortex M3和M4体系架构下的中断体系架构,分析了各个相关寄存器的作用和使用方法。

2025-03-02 11:50:22 732

原创 使用HAL库对USART的初始化流程

【摘要】本文讲述了USART串口通信的基本概念,并以STM32F103为例,讲述了如何使用HAL库编写稳定的、以中断方式进行收发的串口使用方法。

2025-02-16 22:31:14 851

原创 一文了解IIC协议实现细节

【文章摘要】:本文 详细讲解了IIC协议的硬件实现细节和软件协议逻辑,读完之后会让你从物理层面了解其内部实现细节。

2025-02-14 17:18:58 710

原创 一文详解TCP网络拥塞控制方法

TCP 拥塞控制是 TCP 协议的核心,如果不了解 TCP 拥塞控制就相当于不理解 TCP 协议。本文将通过一些案例,介绍在 TCP 拥塞控制中我们要避免踩的一些坑,以及在 TCP 性能调优时需要注意的事项。因为在 TCP 传输过程中引起问题的案例有很多,我会把把这些案例和具体的知识点结合起来,这样在你明白了这些知识点后,案例的分析过程就相对简单了。在这些问题中,TCP 的拥塞控制就在发挥着作用。

2025-02-06 13:02:38 1021

转载 本地安装部署deepseek详细教程

今天转发一篇在本地电脑部署和运行deepseek,实现AI对话功能的短文,有需要的伙伴可以试一下。

2025-02-04 11:12:59 2921

原创 Linux内核中有哪些配置项可以控制TCP收发包过程

TCP 收发包过程是最容易引起问题的地方之一,本文就来讲述TCP 数据在传输过程中会受到哪些配置项因素的干扰。是指数据到达网卡再到被应用程序开始处理的过程;则是应用程序调用发包函数到数据包从网卡发出的过程。TCP 收发包过程中容易发生的问题常有”网卡中断太多,占用太多 CPU,导致业务频繁被打断;应用程序调用 write() 或者 send() 发包,怎么会发不出去呢;数据包明明已经被网卡收到了,可是应用程序为什么没收到呢;

2025-01-29 14:48:22 1402

原创 TCP连接的建立和断开受哪些系统配置影响

如果你做过 Linux 上面网络相关的开发,或者分析过 Linux 网络相关的问题,那你肯定吐槽过 Linux 系统里面让人眼花缭乱的各种配置项,因为网络这一块涉及到的场景太多了,Linux 内核需要去处理各种各样的网络场景,不同网络场景的处理策略也会有所不同。而 Linux 内核的默认网络配置可能未必会适用我们的场景,这就可能导致我们的业务出现一些莫名其妙的行为。所以,要想让业务行为符合预期,你需要了解 Linux 的相关网络配置,让这些配置更加适 用于你的业务。

2025-01-28 16:03:21 1081

原创 内存泄漏的通用排查方法

本文聊一聊如何系统性地分析查找内存泄漏的具体方法,但不会具体到哪种语言和具体业务代码逻辑中,而是会从 Linux 系统上通用的一些分析方法来入手。这样,不论你使用什么开发语言,不论你在开发什么,它总能给你提供一些帮助。

2025-01-27 13:01:40 1393

原创 内核内存泄漏分析方法

如果你是一名应用开发者,那你对应用程序引起的内存泄漏应该不会陌生。但是,你有没 有想过,内存泄漏也可能是由操作系统(内核)自身的问题引起的呢?这是很多应用开发 者以及运维人员容易忽视的地方,或者是相对陌生的领域。然而陌生的领域不代表不会有问题,如果在陌生的领域发生了问题,而你总是习惯于分析 应用程序自身,那你可能要浪费很多的分析时间,却依然一无所获。所以,对于应用开发者或者运维人员而言,掌握基本的内核内存泄漏分析方法也是必需的,这样在它发生问题 时,你可以有一个初步的判断,而不至于一筹莫展。

2025-01-26 10:16:03 767

原创 Shmem:进程没有消耗内存,内存哪去了

有的内存泄漏会体现在进程内存里面,这种相对好观察些;而有的内存泄漏就很难观察了,因为它们无法通过观察进程消耗的内存来进行判断,从而容易被忽视,比如 Shmem 内存泄漏就属于这种容易被忽视的,本文我们重点来讲讲它。

2025-01-26 10:13:38 823

原创 如何预防内存泄漏导致的系统假死

内存泄漏是件非常容易遇到的事,但如果它不会给应用程序和系统造成危害, 那它就不会构成威胁。当然我不是说这类内存泄漏无需去关心,作为一名合格的程序员,还是需要彻底地解决掉它的。但有一些内存泄漏你却需要格外重视,比如说长期运行的后台进程的内存泄漏,这种泄漏日积月累,会逐渐耗光系统内存,甚至会引起系统假死。

2025-01-25 10:34:41 639

原创 进程的哪些内存类型容易引起内存泄漏

相信你在平时的工作中,应该遇到过下面这些场景: 伴随着服务器中的后台任务持续地运行,系统中可用内存越来越少; 应用程序正在运行时忽然被 OOM kill 掉了; 进程看起来没有消耗多少内存,但是系统内存就是不够用了;类似问题,很可能就是内存泄漏导致的。本文将带你了解进程的哪些内存类型最容易引起内存泄漏!

2025-01-22 22:58:00 783

原创 页缓存不当会产生哪些问题

前面几篇文章,我们讲了 Page Cache 的一些基础知识,以及如何去处理 Page Cache 引发的一些问题。今天我们来讲讲,如何判断问题是不是由 Page Cache 引起的。我们知道,一个问题往往牵扯到操作系统的很多模块,比如说,当系统出现 load 飙高的问题时,可能是 Page Cache 引起的,也可能是锁冲突太厉害,物理资源(CPU、内存、磁 盘 I/O、网络 I/O)有争抢导致的;也可能是内核特性设计缺陷导致的,等等。

2025-01-22 22:50:37 826

原创 Linux中的页缓存机制

Page Cache,又称pcache,中文名称为页高速缓冲存储器,简称页高缓。它是将磁盘上的数据加载到内存中,当系统需要访问这些数据时,可以直接从内存中读取,而不必每次都去读取磁盘。这种方式显著减少了磁盘I/O操作,从而提高了系统性能。Page Cache所占用的内存位于操作系统的内核空间中,通常与其他缓存层级(如CPU缓存、磁盘缓存)分开管理,这样的分层结构有助于提供不同层级的读取性能。

2025-01-22 22:47:23 1187

原创 Linux中的页缓存机制

PageCache,又称pcache,中文名称为页高速缓冲存储器,简称页高缓。它是将磁盘上的数据加载到内存中,当系统需要访问这些数据时,可以直接从内存中读取,而不必每次都去读取磁盘。这种方式显著减少了磁盘I/O操作,从而提高了系统性能。PageCache所占用的内存位于操作系统的内核空间中,通常与其他缓存层级(如CPU缓存、磁盘缓存)分开管理,这样的分层结构有助于提供不同层级的读取性能。

2025-01-18 22:54:22 1029

原创 一文搞清Linux中各种时间变量及其相互转换

本文旨在说明在Linux中各种时间相关的变量定义,以及他们之间的转换函数。

2024-10-17 00:04:30 749

原创 二叉树的介绍

本文讲述了二叉树的类型,及其两种表示方法(链式、数组式)和三种递归式遍历方法(前序、中序、后序);之后,介绍了二叉搜索树的常见操作(查找、插入、删除)及其应用(中序遍历二叉搜索树可以将节点按照升序进行排序,平均时间复杂度为log(n) )。

2024-08-24 23:42:41 1201 1

原创 谈谈hash算法

哈希算法的设计是一个需要考虑许多因素的复杂问题。然而对于某些要求不高的场景,我们也能设计一些简 单的哈希算法。:对输入的每个字符的 ASCII 码进行相加,将得到的总和作为哈希值。:利用了乘法的不相关性,每轮乘以一个常数,将各个字符的 ASCII 码累积到哈希值中。:将输入数据的每个元素通过异或操作累积到一个哈希值中。**旋转哈希 **:将每个字符的 ASCII 码累积到一个哈希值中,每次累积之前都会对哈希值进行旋转操作。

2024-08-24 16:14:34 937

原创 基础C语言知识串串香11☞宏定义与预处理、函数和函数库

源码.c——> (预处理)——>预处理过的.i文件——>(编译)——>汇编文件.S——>(汇编)——>目标文件.o->(链接)——>elf可执行程序预处理用预处理器,编译用编译器,汇编用汇编器,链接用链接器,这几个工具再加上其他一些额外的会用到的可用工具,合起来叫编译工具链(gcc就是一个编译工具链)。-E:只预处理不编译(执行头文件的扩展、宏替换、条件编译筛选、去掉注释等),生成.i文件-S:只编译不汇编(将C/C++语言程序翻译成汇编语言),生成.S文件-c。

2024-06-23 21:03:22 737

原创 grep常见用法

详尽分析了linux中grep命令的常见用法

2024-06-11 00:00:58 1429

原创 20_文件系统的制作 -JFFS2

JFFS2 文件系统是通过工具 mkfs.jffs2 将文件系统目录制成映像文件。制作工具mkfs.jffs2 需要编译 zhb 库和 mtd-utils,下面详细介绍其制作过程

2024-05-18 10:34:31 335

原创 19_文件系统的制作 -YAFFS2

如果开发板只有Nand Flash, 那么选择最合适的文件系统为YAFFS文件系统。例如,mini2440只有 Nand Flash 没有 Nor Flash,因此选择的文件系统为 YAFFS2 文件系统

2024-05-18 10:33:38 297

原创 18_文件系统的制作-Ramdisk

本文介绍如何制作文件系统。另外, 由于Busybox 集合了很多工具,编译起来也非常方便。在讲解制作文件系统的时候,也会介绍 busybox 的编译和安装过程;介绍制作文件系统时,会详细介绍 Ramdisk 、 YAFFS2、JFFS2 及其它文件系统的制作。

2024-05-12 16:18:16 127

原创 17_基于Flash和RAM的的文件系统选择

本文主要讲述在嵌入式系统中,常见的基于flash和内存(RAM)的文件系统类型,具体选择要结合实际需求灵活选配。

2024-05-12 16:16:57 298

原创 16_嵌入式文件系统选择

在进行嵌入式系统开发过程中,文件系统的选择和制作与硬件条件息息相关。根据硬件(Flash 或 RAM)的特性来指定相应的文件系统,能够充分利用硬件资源及提高系统效率。因为目前大部分的嵌入式文件系统都是建立在 Flash 之上,下面介绍 Flash 硬件方案比较与 Flash 的特点。

2024-04-02 10:48:17 686

原创 15_Linux内核升级

如果这一步省略,会在移植到开发板后 Bootloader 引导时出现机器 ID 错误的现象。出错的 ID 号将以十六进制给出, 将其转化为十进制, 替换 mach-types文件中的对应项。这里移植后报的错误是 0xFB,即对应十进制 251。查看对 System Type(系统类型) 的修改情况以确认进行正确的配置。将所有文件复制到工作目录下,然后解压内核文件和编译器文件。实际上就是完成对内核的配置。编译内核生成映像文件。

2024-04-02 10:47:21 537

原创 14_Linux内核裁剪及编译

经过对内核的认识和对裁剪配置项的了解,接下来实际操作。针对 S3C2440 开发板进行裁剪 Linux 内核。

2024-03-26 13:13:09 1466

原创 13_Linux内核配置选项

内核配置通常是对内核支持的各个功能进行取舍配置,将配置的方案保存到 configure文件中。在编译内核的时候,就会根据此配置对内核进行取舍编译。

2024-03-26 13:12:01 1648

原创 12_Linux内核结构

Linux 内核主要的 5 个部分:**进程调度、内存管理、虚拟文件系统、网络接口、进程通信**。在系统移植的时候,它们是内核的基本元素,这 5 个部分之间的关系

2024-03-17 16:20:27 980

原创 11_BootLoader分析

【摘要】本文详细介绍了基于嵌入式系统中的 OS 启动加载程序 ―― ==BootLoader 的概念、软件设计的主要任务以及结构框架==等内容。 在拿到空PCB板之后,硬件工程师首先会测试各主要**线路是否通连**(各焊点是否有空焊、断接或短路的情况),然后逐个模块焊接上去。之后需要验证系统上电之后,CPU与各组件的**供电电压是否正常**,供给CPU的震荡电路能否能够**正常起振**,外部存储器能否**正常读写**。

2024-03-17 16:19:29 1157

原创 10.网络文件系统( NFS)使用

本文介绍 了网络文件系统NFS在嵌入式系统开发中的优点和使用方法

2024-03-10 21:38:48 2496 2

C语言+STM32+RTOS实现小型射击类游戏机项目

采用C语言在STM32单片机上运行FreeRTOS,实现一个可以3人同时玩的射击游戏机,提供了源代码和实现讲解。

2025-03-01

手撕Linux0.1.1内核代码

该资源专门为想把操作系统的设计思想啃下来,但又担心看不懂源代码的童鞋准备的,以Linux 0.11 核心代码为范本,源码级讲解操作系统如何启动、加载内核到内存管理、文件系统、进程管理、信号机制等原理,跟着敲学,达到自己编写极简Linux操作系统的能力。

2025-01-14

pandoc-3.1.11.1-windows-x86-64.msi

在 Typora 中,一些文件格式(包括 docx、odt、rtf、epub、LaTeX 和 wiki)的导入功能和导出功能是由一个名为 Pandoc 的第三方软件提供的。这些功能需要安装 Pandoc。Pandoc 是一个通用的文件文本转换器,Typora 用它来支持几种文件类型的文件导入/导出功能。

2025-01-01

先中后层序遍历算法图解及C实现代码,区分递归和非递归两种写法

先序遍历中序遍历后序遍历图解

2024-03-09

实现邻接矩阵存储图的深度优先遍历

C语言实现邻接矩阵存储图的深度优先遍历。

2023-02-09

该程序能求解n皇后问题,即在n*n方格棋盘上放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线

编写一个程序,求解n皇后问题,即在n*n方格棋盘上放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。其中: 1. 皇后个数n由用户输入,其值不能超过20,输出所有的解。 2.采用类似于栈求解迷宫问题的方法

2023-02-09

ctags-5.8源码包

最新ctags-5.8源码包,用于和vim搭配使用,实现在vim中通过点击函数名迅速查找函数的定义。

2022-09-05

计算机3级中关于嵌入式知识的详尽总结

计算机3级中关于嵌入式知识的详尽总结

2022-03-06

信息系统项目管理师考试论文范文集

软考高级中的大头就是论文了,必须得有大量项目经验,否则只能依靠背记常考方向的论文范文,有的放矢的去准备下午的论文。此资源提供了历年来的论文方向和范文供大家背记和准备。

2022-03-04

软考高项考前必须要会做的百题精讲

软考高项考前必须要做的近200道题,大数据分析自软考开考以来历年真题中出现频次最高的知识点,并精准预测2022年可能要考察的知识点集合,是您备考的重要参考资料。

2022-03-04

sscom_v5.13.1.rar

串口调试助手

2021-09-30

vspd_6.9.zip

虚拟串口工具VSPD

2021-09-30

华为官网精选案例(案例和论文参考学习).pdf

华为公司针对各个场景下的解决方案,是案例分析和论文写作的重要参考资料,特别适合无工作经验,论文写作缺少素材的同学。

2021-08-02

网络规划设计师历年真题09-19年.zip

关于软考网络规划师的历年真题,考试必须有的放矢,而历年真题是备考的绝佳资料。绝对的经验总结,亲历很多次考试,发现软考的真题重复率还是蛮高的。

2021-08-02

某赛网论文写作培训课件.zip

关于软考架构师的论文写作方法和技巧,涵盖架构师各个主题,备考论文必备。

2021-08-02

一百篇架构师论文范例(备考必备,备考必背!).rar

关于软考架构师的100篇论文范例,涵盖架构师各个主题,是备考架构师论文的不二选择,挑选几篇近两年热门的主题熟背熟写,方能在考试中2小时内完成论文,因为根本没时间现场考虑构思,只有行文流水才能完成2500字大关。血的教训!!!

2021-08-02

系统架构师历年真题(2009-2018)解析.zip

2009年到2018年软考高级系统架构师的真题和详细解析。考试必须有的放矢,而历年真题是绝佳的备考资料,没有之一!

2021-08-02

架构师考试考前模拟卷20套.zip

适合备考软考高级系统架构师的同学,用于检测或熟悉自己复习程度的。考卷为2020年某赛培训机构内部试题,具有一定的参考性和实用价值。

2021-08-02

2021年系统架构复习笔记(按章节).docx

复习笔记涵盖了近10年架构师考试历年真题所有知识点,并补充了XS培训班辅导资料内容,适合有一定基础但没有太多时间去翻阅教材、总结归纳的同学,帮你快速获得通过考试所需的知识储备。

2021-03-18

系统分析师核心考点归纳.pdf

主要总结了近10年来软考高级系统分析师和架构师历年真题和XS培训视频包含的所有知识点,适合有一定基础但没有太多时间阅读教程和总结背记历年真题的同学快速达到参加考试所需的知识储备。

2021-03-18

软考学习笔记(重要).docx

主要总结了近10年来软考嵌入式系统设计师历年真题所有考点,免去自己购买真题和总结背记的时间花销,适合有一定嵌入式基础,又没有太多时间完整看完教程和真题的同学。

2021-03-18

操作系统知识.pdf

计算机软件能力和技术测试考试中的操作系统知识,软考高级中系统分析师和架构师的必备知识点,需要的同学赶紧下载吧!!!!

2020-08-12

自写嵌入式系统设计师考试笔记.doc

我是去年考过的计算机技术与软件专业技术资格(水平)考试中的中级嵌入式系统设计师,成绩也不错,这是我看书,培训中总结的笔记,很重要,现在供大家下载。

2020-07-28

历年真题12-18.zip

计算机技术与软件专业技术资格(水平)考试2012年至2018年的下午考题,有需要的同学可以下载下来看看。做真题真的很重要的,重要的事情说3遍:做真题真的很重要的。做真题真的很重要的。做真题真的很重要的!

2020-07-28

RIO包-用于网络编程的健壮读写函数.md

它会自动处理你上下文中所述的不足值,提供了方便/健壮和高效的IO。 本代码分别提供了无缓冲和带缓冲的输入输出函数: 无缓冲:rio_readn和rio_writen 带缓冲:rio_readinitb、rio_readlineb、rio_readnb

2020-03-26

picgo_typora.zip

内含2个安装包,一个是Picgo-2.2.0 一个是typora。二者加起来可以方便的在利用typora编写markdown语法的文章时插入图片,便于多平台传递、查看markdown文章。

2020-03-25

一文教你如何构建静态链接库.md

主要描述如何构建自己的静态库。话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何去保存他们呢?今天我就告诉大家怎么办?

2020-03-19

一个实用高频基本电路集

对于学习高、射频的人来说非常有用哦,资源包含了许多通用和常见的基本高频电路设计单元和模块,特别适合初学者。

2010-11-17

空空如也

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

TA关注的人

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