自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux:LCD驱动开发

实际上上边这两种接口的实质是一样的,这两种接口都可以归入一个标准:MIPI标准MIPI表示“Mobile Industry Proc8080essor Interface”,即移动产业处理器接口,是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。主要是手机内部的接口(摄像头,显示器接口,射频/基带接口)等标准化,从而减少手机内部接口的复杂程度及增加设计的灵活性对于LCD,MIPI可以分为3类:既可以是Bus(总线),就是既能发送命令,常用的8080接口就是属于DBI接口。

2024-09-28 14:37:21 1359 4

原创 自旋锁,信号量,互斥量的实现

数据结构:根据前面的分析,我们可以基本推断出spin lock的实现。首先定义一个spinlock_t的数据类型,其本质上是一个整数型(对该数值的操作需要保证原子性),该数值表示spin lock是否可用。初始化的时候被设定为1.当thread想要持有锁的时候调用spin_lock函数,该函数将spin lock按个证书值减去1,然后进行判断如果等于0,表示可以获取spinlock,如果时负数,则说明其他thread的持有该锁,本thread需要spin。

2024-08-28 19:11:11 1403 1

原创 Linux:core dump文件到底是什么

core dump文件是指在程序崩溃或异常时,操作系统将程序的内存信息,寄存器状态,堆栈信息等保存到文件中以便进行调试和分析的文件。core dump文件通常包含了程序崩溃时的全部状态信息们可以帮助程序员快速定位程序崩溃的原因并进行修复。

2024-08-27 16:35:44 1848 1

原创 Linux:什么是信号

1.输入命令,在Shell下启动一个前台进程2.用户按下Ctrl-C,键盘输入产生一个硬件中断3.如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断4.终端驱动程序将Ctrl-C解释成一个SINGINT信号,记得该进程的PCB中(也可以说发送了一个SIGINT信号给该进程)

2024-08-25 18:09:32 1224

原创 原子操作,自旋锁,信号量,互斥量

Linux内核提供了很多类型的锁,它们可以分为两类:1. 自旋锁 2.睡眠锁。

2024-08-22 21:21:51 1163

原创 同步与互斥(进程、线程)

同步:是指散步在不同任务之间的若干程序片段,它们的运行必须严格按照规定的某种先后 次序来运行,这种先后次序依赖于要完成的特定的任务,最基本的场景就是任务之间 的依赖,比如A任务的运行依赖于B任务产生的数据。

2024-08-22 13:51:37 1084

原创 AT&T汇编

2.对于双操作数指令:源操作数可以是寄存器操作数,内存操作数和立即数,目的操作数可 以是寄存器操作数和内存操作数。在AT&T中,寄存器前面要加上"%", 而在立即数前面需要加上"$", 在AT&T中,十六进制立即数前面需要加上"0x",段寄存器是存放段地址的,要将段地址送入,必须以通用寄存器为中间桥梁,即通过通用寄存器将数据传送到DS,SS,ES段寄存器中。内存操作数是指操作数存放在内存中,其操作是往内存中写数或从内存中取操作数,CPU与内存打交道是通过内存地址完成的。通用寄存器可以装操作数。

2024-08-16 18:11:22 456

原创 Linux内联汇编

指定编译器将函数的代码插入到调用者的代码中,直到实际调用的位置,这些函数是内联函数。与宏有一些相似之处,它的好处是可以减少函数调用的开销,如果任何实际参数是常量,则他们的已知值可能允许在编译时进行简化,因此不需要包含所有内联函数的代码内联汇编其实就是编写为内联函数的汇编程序,为什么使用它呢,因为它能够操作并使其输出在C变量的上可见,调用asm关键字,声明其为内联函数。

2024-08-14 14:10:31 1419

原创 Linux虚拟内存(页,页框,页表,MMU)

传统计算机虚拟内存技术寻址空间/寻址能力:对于程序计数器位32位的处理器来说,它的地址发生器所能发出的寻址数量为二的32次 = 4G ,于是这个处理器所能访问的最大内存空间就是4G。在计算机技术中,这个值就叫做处理器的寻址空间或寻址能力一般来说,为了充分利用处理器的寻址能力,就应该按照处理器的最大寻址来为其分配系统的内存,这样处理器发出的每一个地址就都会有一个正式的物理村塾单元与之对应,同时每一个物理存储单元都有唯一的地址与之对应。

2024-08-03 03:28:37 1114

原创 Linux休眠与唤醒中环形缓冲区

在进行休眠与唤醒实验是由于每次按下按键g_key的值将会被覆盖,所以引入环形缓冲区来存放每次按下按键的数据。2.如果不为空,将此时的按键值赋为当前读索引为r的下标对应的环形缓冲区数组的数据。只要环形缓冲区数组不为空。就一直处于唤醒状态,然后一直遍历数组中的值,直到其为空。2.如果没有满,将此时的按键值写入到环形缓冲区数组中。在应用程调用read函数时,通过驱动函数。1.判断环形缓冲区数组是否满了。1.判断环形缓冲区数组是否为空。3.将写指针指向下一个位置。3.将读指针指向下一个位置。

2024-07-31 02:17:44 502

原创 DECLARE_WAITQUEUE函数解析

DECLARE_WAITQUEUE函数使用过程中遇到的各种困惑

2024-07-31 01:54:48 1015

原创 Linux系统下x86和ARM的区别

1.x86架构下的平板,ipad,智能手机,这些平台上的程序都是移动环境下的应用,大多功能单一,没有什么计算可言。ARM处理器本身定位于嵌入式平台,应付与轻量级,目的单一的程序,现在应用于移动设备更是得心应手,x86定位于桌面和服务器,这些平台上横夺应用都是计算密集型的,所以将二者作比较是不合理的。

2024-07-21 14:18:03 3464

原创 韦东山Linux Study2(编译bootloader,内核,buildroot)

1.下载代码因为win11 使用Ubuntu18.04时WIFI一直检测不到驱动,升级内核版本也无济于事,所以改用Ubuntu22.04(在使用时也出现了大大小小的问题),特写此篇文章记录一下1.下载代码。

2024-07-21 13:27:30 630 1

空空如也

空空如也

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

TA关注的人

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