芒果520
码龄14年
关注
提问 私信
  • 博客:555,537
    社区:76
    555,613
    总访问量
  • 154
    原创
  • 145,840
    排名
  • 372
    粉丝
  • 学习成就

个人简介:每天进步一点点

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2011-01-22
博客简介:

lx123010的专栏

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,244
    当月
    11
个人成就
  • 获得502次点赞
  • 内容获得98次评论
  • 获得2,915次收藏
  • 代码片获得900次分享
创作历程
  • 4篇
    2024年
  • 21篇
    2023年
  • 26篇
    2022年
  • 24篇
    2021年
  • 72篇
    2020年
  • 7篇
    2019年
  • 2篇
    2016年
成就勋章
TA的专栏
  • linux驱动
    13篇
  • Linux进程线程
    14篇
  • linux内存管理
    4篇
  • kernel
    26篇
  • 视觉
    13篇
  • Ubuntu系统配置
    13篇
  • linux系统调试
    9篇
  • 硬件设计
    13篇
  • SerDes
    10篇
  • imx8
    3篇
  • linux设备树
    4篇
  • tda2x调试
    2篇
  • s32kDS
    1篇
  • 算法
    1篇
  • linux并发控制
    10篇
  • linux C
    15篇
兴趣领域 设置
  • 数据结构与算法
    排序算法
  • 人工智能
    opencv计算机视觉图像处理
  • 嵌入式
    嵌入式硬件
  • 硬件开发
    驱动开发arm开发
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

linux进程间通信IPC方式

Linux环境下,进程地址空间相互独立、彼此隔离,因此进程间的数据不能直接访问。如果要交换数据,必须要通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷贝到内核缓冲区,进程B再把数据从内核缓冲区拷贝走,内核提供的这种机制称为进程间通信(IPC, InterProcess Communication)。在Linux下由很多种进程间通信的方式,分别是:匿名管道(PIPE)、命名管道(FIFO)、信号、共享内存、消息队列、信号量、UNIX域套接字。现在常用的进程间通信方式有:管道(使用简单)
原创
发布博客 2024.03.27 ·
875 阅读 ·
13 点赞 ·
0 评论 ·
30 收藏

进程上下文与中断上下文的理解

内核态:在内核空间执行,通常是驱动程序,中断相关程序,内核调度程序,内存管理及其操作程序。用户态:用户程序运行空间。(1)进程上文:是指进程由用户态切换到内核态是需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。(2)进程下文:其是指切换到内核态后执行的程序,即进程运行在内核空间的部分。
原创
发布博客 2024.03.27 ·
1125 阅读 ·
13 点赞 ·
0 评论 ·
14 收藏

互斥锁与信号量的区别

信号量与互斥锁都是用于多线程编程中,以实现资源共享和线程同步的机制,但它们在应用场景、实现方式和性能特点上有所不同。总结来说,信号量更侧重于资源共享和线程间的协作,而互斥锁更侧重于资源的安全访问和线程间的互斥。
原创
发布博客 2024.03.26 ·
2116 阅读 ·
25 点赞 ·
0 评论 ·
27 收藏

自旋锁和互斥锁的区别

单CPU非抢占内核下:自旋锁会在编译时被忽略(因为单CPU且非抢占模式情况下,不可能发生进程切换,时钟只有一个进程处于临界区(自旋锁实际没什么用了)单CPU抢占内核下:自选锁仅仅当作一个设置抢占的开关(因为单CPU不可能有并发访问临界区的情况,禁止抢占就可以保证临街区唯一被拥有)多CPU下:此时才能完全发挥自旋锁的作用,自旋锁在内核中主要用来防止多处理器中并发访问临界区,防止内核抢占造成的竞争。
原创
发布博客 2024.03.26 ·
856 阅读 ·
12 点赞 ·
0 评论 ·
10 收藏

在驱动中创建sysfs接口、procfs接口、debugfs接口

/灯灭//灯亮这是怎么做到呢?实际上,这是因为在驱动中提供了sysfs接口给用户使用,使得用户可以通过cat或者echo命令来查看和修改驱动中某些变量的值。下面介绍驱动中创建sysfs接口的方法。
原创
发布博客 2023.08.26 ·
826 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

Linux系统调试之gdbserver远程调试程序

本篇讲解如何使用gdbserver对目标开发板上的程序进行远程调试。
原创
发布博客 2023.08.23 ·
2440 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Linux系统调试之stty修改串口波特率

Linux内核启动后,串口的波特率通常是115200或者9600,此时shellsttysttyset tty。即改变并打印终端行设置,用于检查和修改当前注册的终端的通信参数。
原创
发布博客 2023.08.23 ·
2408 阅读 ·
2 点赞 ·
0 评论 ·
11 收藏

内核编译机制

主要由Kconfig提供图形界面完成主要基于Kbuild编译系统,执行make完成编译主要也是基于Kbuild提供的脚本,然后执行make完成安装。
原创
发布博客 2023.08.22 ·
133 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

底层开发必知的内存结构概念

Linux中内存管理子系统使用节点(node)、区域(zone)和页(page)三级结构描述物理内存。
原创
发布博客 2023.08.21 ·
153 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux系统调试——核心转储(core dump)

本篇讲解Linux应用程序发生段错误时,如何利用core dump文件定位错误。
原创
发布博客 2023.08.19 ·
460 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux内核之神奇的系统请求键SysRq

Linux内核提供了一些与用户空间的通信机制,例如procfs接口和sysfs接口,大部分的这些接口都可以作为获取内核信息的手段。但除了这些接口,内核也提供了专门的调试机制——系统请求键SysRq。SysRq被内核称为“”,即“神奇的系统请求键简单来说,就是可以通过键盘的按键获取内核的信息,用于调试。相当于是一个快捷键。
原创
发布博客 2023.08.19 ·
296 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

内核配置知识

是菜单项;菜单项下面的是菜单的属性;菜单都是以config开头,中间有空格,后面大写的就是菜单项。tristate:表示提示信息,在配置菜单中显示的字符串depends:表示依赖于的选项(依赖的选项选上,才能选这个选项)select:表示本菜单选上后,自动选上的菜单Help:帮助文字;Kconfig的语法详细参考:Documentation/kbuild/kconfig-languages.txt。
原创
发布博客 2023.08.19 ·
148 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux内核入口函数——initcall

写过Linux驱动的人都知道宏,因为它声明了一个驱动的入口函数。除了宏,你会发现在Linux内核中有许多的驱动并没有使用上述举例的两个驱动入口分别使用了和来声明驱动入口,这些本质上都是对initcall的调用,也如此。
原创
发布博客 2023.08.18 ·
276 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux内核常用调试技巧汇总

通过调用关系看出,驱动入口函数hello_init,是由do_init_module调用do_one_initcall,然后再调用到了hello_init。WARN_ON()宏相对会好一些,不会触发panic()函数,使系统主动宕机,但会输出函数调用栈信息,提示开发者可能发生了一些不好的事情。printk打印是全局的,使用动态输出则可以有选择地输出某个模块或某个子系统的打印,pr_debug()就是使用了动态输出。在内核中经常看到BUG()和BUG_ON()宏,这也是内核调试常用的技巧之一。
原创
发布博客 2023.08.18 ·
291 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

内核调试之devmem直接读写寄存器

在Linux系统,如果我们想要访问某个寄存器,就需要写一个驱动程序,在驱动中映射寄存器地址,转为虚拟地址后就可以访问。但有时候,我们只是单纯想知道某个寄存器的值,不想这么麻烦,怎么办呢?Linux早就想到这一点了,于是提供了一个工具devmem,通过devmem就可以直接读写寄存器,devmem是一个命令,在shell中输入devmem命令就可以非常方便的读写寄存器。devmem是一个很常用的工具,主要给驱动开发人员在Linux应用层调试使用。
原创
发布博客 2023.08.18 ·
1329 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

Linux内核死锁检测工具——Lockdep

死锁是指两个或多个进程因争夺资源而造成的互相等待的现象,如进程A需要资源X,进程B需要资源Y,而双方都掌握对方所需要的资源,且都不释放,这会导致死锁。在内核开发中,时常要考虑并发设计,即使采用正确的编程思路,也不可能避免会发生死锁。递归死锁:如在中断延迟操作中使用了锁,和外面的锁构成了递归死锁。AB-BA死锁:多个锁因处理不当而引发死锁,多个内核路径上的锁处理顺序不一致也会导致死锁。Linux内核在2006年引入了死锁调试模块lockdeplockdep。
原创
发布博客 2023.08.18 ·
1319 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

Linux系统调试——valgrind内存泄露检测

代码可能存在怎么办?使用valgrind可以对代码进行内存泄露检测。
原创
发布博客 2023.08.18 ·
143 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux v4l2框架分析

Linux内核中关于视频设备驱动的框架,对上向应用层提供统一的接口,对下支持各类复杂硬件的灵活扩展;V4L2框架,主要包括v4l2-corevideobuf2等模块,这也是本文将要展开的内容,仅提纲挈领;
原创
发布博客 2023.06.30 ·
848 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

I2C总线协议详解

当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否 定应答位。在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前 要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来 数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。
原创
发布博客 2023.06.29 ·
169 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

详解20个常见的模拟电路

理想开关模型和恒压降模型:理想模型指的是在二极管正向偏置时,其管压降为0,而当其反向偏置时,认为它的电阻为无穷大,电流为零,就是截止。共集电极放大电路常作为电流放大器使用,它的特点是高输入阻抗,电流增益大,但是电压输出的帽度几乎没有放大,也就是输出电压接近输入电压,而由于输入阻抗高而输出阻抗低的特性,也常作为阻抗变换器使用。差分放大电路是直接耦合放大电路的基本组成单元,该电路对于不同的输入信号有不同的作用,对于共模信号起到很强的抑制作用,而对差模信号起到放大作用,并且电路的放大能力与输出方式有关。
原创
发布博客 2023.06.29 ·
1418 阅读 ·
1 点赞 ·
0 评论 ·
16 收藏
加载更多