自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法:链表环的相关证明

2024-06-26 18:03:39 105

原创 Linx性能优化学习笔记——CPU篇 02平均负载

通过对于平均负载的观察,我们可以观测内核的整体性能,若出现问题,需要进一步确定是由于某CPU的CPU或I/O占比较高导致,还是系统中有大量进程导致,可以借助mpstat命令观察CPU。对于特定进程,我们可以使用pidstat命令来确定该进程。分析出性能瓶颈后我们在做相应的处理。

2024-06-21 11:05:44 434

原创 RTK GPS定位原理与技术

rtk是在全球导航系统上的一个优化。原有GPS定位对民用的精度有限,rtk通过设置地面基准站,根据基准站实际的地理位置信息以及从卫星接收的信息,即可推算出偏差。流动站同时接受卫星信号和基准站信号,进行rtk定位解算,实现高精度定位,精度在cm到mm。

2024-05-27 20:37:10 1090

原创 设备树详解

设备树就是将设备信息按照树形的形式表示和使用。设备树是在3.x版本以后引入的,在其之前,ARM架构在和文件夹下存放描述硬件信息的文件,所有的设备信息都被硬编码在内核源码中,这样就会有一些问题:ARM的板级种类非常多,需要为每一个板级编写一份文件,随着ARM系列的逐渐发展,导致此类代码逐渐增多。然而这类代码对内核来说并没有太大意义,反而导致了内核臃肿;由于硬件信息硬编码进内核,如果需要修改硬件信息的话只能重新编译内核;

2023-12-30 13:13:26 1404

原创 uboot引导linux启动

uboot的使命在于启动操作系统,在uboot启动流程文章中,我们已经对uboot从复位到进入命令行模式的过程进行了一个梳理(),下面,我们主要讲解uboot启动linux操作系统的流程。

2023-12-25 18:11:16 1386

原创 uboot启动分析

uboot是一个操作系统引导程序,多用于嵌入式设备上linux操作系统的引导。它是一个裸机程序,启动流程对其他裸机系统的启动都具有参考意义。下面,我们一起学习一下uboot的启动流程。uboot的启动流程如下图所示:我们对启动流程进行分析时,首先需要分析其链接脚本uboot.lds,从中了解大概的镜像布局,来知道程序的入口,以及一些特殊的地址变量定义,段等。uboot程序的最开始为_start,从_start开始,是中断向量表的定义,这是大多数嵌入式裸机程序的共识,它们总是以复位中断为入口,进入整个系统。

2023-12-24 17:42:14 982 1

原创 字符设备驱动

字符设备驱动是一种驱动编写的框架,使用设备号来标识唯一的设备,cdev结构抽象为这个字符设备(主要包括操作函数),以文件的形式提供给用户空间。用户最直观的感受就是通过读写操作字符设备文件(设备节点),可以对应到内核驱动实现的文件接口函数。内核版本:4.1.15。

2023-12-13 15:59:21 111

原创 LDD3第十章中断处理

中断是一种硬件和内核通信的,内核不用专门以轮询或者什么样的方式去等待硬件时间的发生,当硬件事件发生的时候会通知内核。这样的技术解放了内核对于外部事件的监测,缓解内核和外部世界速度不匹配和外部世界不确定性等问题,对于内核编程和内核运行效率都有很大帮助。

2023-11-07 12:45:57 55

原创 LDD3 SCULL字符设备驱动搭建流程

本节对实现LDD3书中前六章的scull字符设备驱动的步骤进行了梳理。搭建步骤依据书中所讲内容,逐步完善。hello模块实现,设备驱动的基础入门scull裸机模块的实现,字符设备驱动开发方式pipe实现access.c实现我的实现在中,其中examples是官方例程,scull是我基于linux6.2的实现,scull/test是一些测试程序(文件忘记clean,如果文件太乱可以先make clean一下,使用时再make)。

2023-10-08 17:52:39 89 1

原创 Ubuntu上交叉编译diagnose-tools用户态程序

这个宏是工具pkg-config提供下的m4文件提供的。./configure时出现PKG_PROG_PKG_CONFIG和PKG_CHECK_MODULES报错的解决方案_configure.ac:32: error: macro pkg_prog_pkg_config _灵兮爸爸的博客-CSDN博客PKG_CHECK_MODULES未定义_pkg_check_modules(sqlite, sqlite3 >= 3.7.7)_yin138的博客-CSDN博客首先,下载pkg-config。

2023-09-17 10:43:45 149 1

原创 diagnose-tools软件包打包和安装源码分析

起源于我看到/usr/下有diagnose-tools目录,且可以执行diagnose-tools命令,但是在我理解的makefile中并没有做这些事情,我看用户态makefile只是在在目录下生成diagnose-tools可执行文件,内核态只是在目录下生成.ko可插入模块,不明白这里是怎么做的。他用的是dpkg和rpm两种方式安装。Ubuntu使用.deb格式软件包,其他使用.rpm(原因是红帽支持rpm,其他不支持)。

2023-07-12 18:34:43 140 1

原创 FreeRTOS入门笔记(任务管理,消息队列,信号量)

FreeRTOS操作系统支持多任务并发执行,可以看成每个任务可以写一个‘main’函数,在死循环里执行。

2023-03-23 15:15:58 972 2

原创 流水线杂谈

流水线处理器杂谈

2022-08-19 14:08:42 349 1

原创 STM32位段与位段别名区

1.位段解释:因为STM32是32位处理器,所以一般在存取数据时都规定以32位为内存地址进行操作。存储器中有两段地址比较特殊,它允许进行按位操作,称作位段。分别是:SRAM的前1MB内存,起始地址0x2000 0000;外设寄存器的前1MB内存,起始地址0x4000 0000;2.位段别名区:按位进行操作没有按照32位内存进行操作快,所以对于位段,将其映射到另一段地址上,将原来位段上的1bit映射为32bit(1bit膨胀为32bit,方便操作),这一段地址叫做位段别名区。对位段别名

2022-05-23 19:51:15 1638 5

原创 排序算法之快排

排序算法之快排

2022-04-18 23:41:51 691

原创 归并排序算法

一.算法思想理解1.归并排序算法用的是分治思想,就是把复杂的问题分成简单的问题来解决。2.解题思路:合并两个有序的数组大家应该都会吧(不难,后面也会讲哒),那么,我们如果将一个乱序数组从中间一直切分,一直切分到只有一个数时,这一个数组成的数组就可以看成是有序的,也就是到这一步我们的数组都是有序的了。然后我们再返回去,就是将这些有序的数组两两合并成新的有序数组,之后再合并,直到合并成了一个有序数组,就是我们的答案啦。我们来举个例子: ...

2022-03-30 21:20:39 348

空空如也

空空如也

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

TA关注的人

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