自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(680)
  • 资源 (16)
  • 收藏
  • 关注

转载 vscode搭建linux内核开发环境

vscode在linux下搭建内核驱动开发环境一、前言Souce insight是一个阅读、开发linux内核驱动模块的好工具,但是Source insight是收费的软件,而且没有原生linux版本,要是想在纯linux环境下进行linux驱动开发,就只能wine+Source insight,而wine版的不好用容易卡死而且cpu占用还高,我就想到用开源跨平台的vscode进行linux内核开发,体验能否和source insight一样好呢?二、实践经过搜索和自己亲身实践,最后发现vs

2021-02-20 18:16:10 4237 1

转载 linux内核调试之 kdump安装配置

【1】Kexec 机制Kexec是实现 kdump 机制的关键,介绍kdump之前先介绍下linux kexec机制。kexec 是 Linux 内核的一个补丁,让您可以从当前正在运行的内核直接引导到一个新内核。起初是方便系统可以极其快速地重新启动,后来在crash dump领域得到新的应用。Kexec包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核(production kernel 或 first kernel)启动时将捕获内核(capture kernel 或

2021-02-20 18:11:51 1628

转载 linux内核调试之 crash分析dump文件

Linux 下也有众多的内存转储分析工具,lcrash、Alicia、Crash。Crash 是由 Dave Anderson 开发和维护的一个内存转储分析工具,目前它的最新版本是 5.0.0。 在没有统一标准的内存转储文件的格式的情况下,Crash 工具支持众多的内存转储文件格式:Live linux 系统 kdump 产生的正常的和压缩的内存转储文件 由 makedumpfile 命令生成的压缩的内存转储文件 由 Netdump 生成的内存转储文件 由 Diskdump 生成的内存转储文件

2021-02-20 18:10:40 3065

转载 QEMU搭建arm64 Linux调试环境

https://zhuanlan.zhihu.com/p/345232459简述本文记录了在ubuntu20.04上,使用QEMU搭建arm64 的Linux开发调试环境。可以方便得使用gdb调试内核,既可以作为学习linux kernel源码的实验环境,也可以用于ARM64内核驱动开发调试环境。版本和环境信息如下:平台:ubuntu20.04kernel版本:linux 5.10qemu版本:5.2.0qemu模拟环境:ARM64gcc version :10.2.0交叉编.

2021-02-20 18:06:45 2196 2

转载 手把手教你利用VS Code+Qemu+GDB调试Linux内核

背景一直以来,都对linux系统的理解都是在应用层面,看过了《UNIX环境高级编程》,对于系统中的一些模块的实现方法还缺乏深刻的认识,故想研究下Linux内核机制。单纯阅读源码还是不如一步一步调试内核理解深刻,对于调试内核的方法,网上也有不少,主要是利用Qemu+GDB对内核进行调试,但网上的资料大多零散,步骤记录不够详细,笔者在实现过程中走了很多弯路,而且直接利用GDB调试查看代码还不甚方便,所以这里使用VS Code+Qemu+GDB来进行Linux内核调试,记录过程中的主要步骤。环境由

2021-02-20 17:55:44 1849

转载 常用内存泄露检测手段 dmalloc, mpatrol mtrace memwatch  dbgmem valgrind Electric Fence

dmalloc用法快速入门原文链接常用内存泄露检测手段有1mtrace 2memwatch 3mpatrol 4dmalloc 5dbgmem 6valgrind 7Electric Fencedmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。dmalloc能够检查出直到程序运行结束还没有释放的内存,并且能够精确指出在哪个源文件的第几行。dmalloc 主页:http://dmalloc.com支持的平台:AIX, ...

2021-02-19 13:33:52 672

转载 tcmalloc浅析

最近学习了tcmalloc机制,它是go里面用到的内存分配机制。本文参考tcmalloc,加上一部分自己的理解。tcmalloc VS ptmalloc(glibc 2.3 malloc)  对于小内存来说,tcmalloc提供线程级别的内存分配,这样就减少了线程之间的竞争,ptmalloc2也提供线程级别分配,但是它的内存被分配到某个线程后就不能重新分配给别的线程,这造成了较大的资源浪费。对于大内存来说,tcmalloc也采用了细粒度且高效的分配策略。  在2.8 GHz P4环境下,tcmal

2021-02-19 13:31:07 696

转载 dlmalloc, ptmalloc,tcmalloc和jemalloc内存分配策略研究

https://cloud.tencent.com/developer/article/1173720最近看了glibc的ptmaoolc,Goolge的tcmalloc和jemalloc,顺便做了一点记录。可能有些地方理解地不太对,如有发现还请大神指出。操作系统内存布局各种malloc的内存分配管理方式离不开操作系统的内存布局策略。32位经典内存布局32位系统下经典内存布局如上,程序起始的1GB地址为内核空间,接下来是向下增长的栈空间和由0x40000000向上增长的...

2021-02-19 13:30:22 1179

原创 systemd自启动一个client

#!/bin/shset -ecd /usr/local/bin/QTAPP="abc.out"#QTAPPSTART="./${QTAPP} > /var/log/Xsession.log 2>&1"QTAPPSTART="./${QTAPP}"case "$1" in start) echo "====== Starting ${QTAPP} ======" export XDG_RUNTIME_DIR=/run/user/0...

2021-02-07 15:15:03 206

转载 Unwind 栈回溯详解---good 博主的博客都很详细且深入

https://blog.csdn.net/pwl999/article/details/107569603文章目录1. 历史背景 1.1 frame pointers 1.2 .debug_frame (DWARF) 1.3 .eh_frame (LSB) 1.4 CFI directives 2. .debug_frame (DWARF) 详解 2.1 Call Frame Table 2.2 Call Frame Instructions 2.3 I.

2021-02-06 17:40:02 1091

转载 ARM Linux启动流程分析——内核自解压阶段

https://blog.csdn.net/luckyapple1028/article/details/44726131本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。内核版本:Linux-3.12.35分析文件:linux/arch/arm/boot/compressed/head.S单板:...

2021-02-05 15:35:37 519

转载 ARM Linux启动流程分析——start_kernel前启动阶段(汇编部分)

https://blog.csdn.net/luckyapple1028/article/details/45287617本文整理了ARM Linxu启动流程的第二阶段——start_kernel前启动阶段(汇编部分),内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析Linux内核在自解压后到跳转运行start_kernel之前所做的主要初始化工作:包括参数有效性验证、创建初始页表和MMU初始化等。内核版本:Linux-3.12.35分析文件:arch/arm..

2021-02-05 15:32:50 617

转载 Linux设备驱动模块自加载示例与原理解析----good

https://blog.csdn.net/luckyapple1028/article/details/44261391本文介绍Linux设备驱动模块在设备注册时如何实现自动加载和创建设备节点。在Linux系统中,基于sysfs文件系统、设备驱动模型和udev工具可以实现在设备模块“冷、热”加载时自动加载设备对应的驱动程序,同时可以按需在/dev目录下创建设备节点。本文中我搭建好环境并写了两个简单的示例程序demo_device.c和device_driver.c来模拟“设备”与“驱...

2021-02-05 15:29:31 803

转载 eMMC之分区管理、总线协议和工作模式

一、eMMC 简介eMMC 是embedded MultiMediaCard的简称。MultiMediaCard,即MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的需求。eMMC 的整体架构如下图片所示:图片: eMMC 整体架构eMMC 内部主要可以分为Flash Memory、Flash Contro...

2021-02-03 17:49:54 1643

转载 深入理解uboot 2016 - 基础篇(处理器启动流程分析)

// -----------从零开始的UBOOT的学习1--UBOOT是用来干嘛的? 最近一段时间一直在做uboot移植相关的工作,需要将uboot-2016-7移植到单位设计的ARMv7的处理器上。正好元旦放假三天闲来无事,有段完整的时间来整理下最近的工作成果。之前在学习uboot时,在网上看了很多文章,很多都是基于老版本的的uboot,并且很多都是直接从代码开始分析,并没有将uboot与ARM处理器体系结构结合起来。毕竟很多时候做一件事情,你知道怎么去做这件事和你知道这件事为什么要这么...

2021-02-03 15:44:08 471

转载 《性能之巅》学习笔记之Dtrace good

前言:《性能之巅》这本书,从推荐序开始,就不停的给Dtrace打广告,按照书中的描述,这是一个非常高级的调试工具,可以用于排查难以定位的线上问题。看到cpu这章,讲了一个应用场景。如果一个进程pidstat显示sys的CPU使用率很高,可以通过dtrace -n 'profile-997 / pid == xxx / {@[stack()] = count();}'打印进程的内核栈信息,看cpu都消耗在了什么方法上。于是我就在我的Centos虚拟机上执行了一下这个命令,结果居然返回'invali

2021-02-02 17:44:58 1115 1

转载 Docker 背后的内核知识——Namespace 资源隔离

Docker 背后的内核知识——Namespace 资源隔离Docker 这么火,喜欢技术的朋友可能也会想,如果要自己实现一个资源隔离的容器,应该从哪些方面下手呢?也许你第一反应可能就是 chroot 命令,这条命令给用户最直观的感觉就是使用后根目录 / 的挂载点切换了,即文件系统被隔离了。然后,为了在分布式的环境下进行通信和定位,容器必然需要一个独立的 IP、端口、路由等等,自然就想到了网络的隔离。同时,你的容器还需要一个独立的主机名以便在网络中标识自己。想到网络,顺其自然就想到通信,也就想到了进程间

2021-02-02 16:58:41 672 1

转载 Docker 背后的内核知识——cgroups 资源限制

Docker 背后的内核知识——cgroups 资源限制上一篇中,我们了解了 Docker 背后使用的资源隔离技术 namespace,通过系统调用构建一个相对隔离的 shell 环境,也可以称之为一个简单的“容器”。本文我们则要开始讲解另一个强大的内核工具——cgroups。他不仅可以限制被 namespace 隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。在介绍完基本概念后,我们将详细讲解 Docker 中使用到的 cgroups 内容。希望通过本文,让读者对 Docker 有

2021-02-02 16:57:13 617

转载 gdb调试coredump(使用篇)

什么是coredumpCoredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照。操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个文件里。 该文件也是二进制文件,可以使用gdb、elfdump、objdump或者windows下的windebug、solaris下的mdb进行打开分析里面的具体内容。 注:core是在半导体作为内存材料前的线圈,当时用线圈当做内存材料,线圈叫做core。用线圈...

2021-02-01 11:06:06 767

转载 视频码流分析工具

发现了几个不错的码流分析工具,转载分享了。Elecard:http://www.elecard.com/en/index.htmlCodecVisa:http://www.codecian.com/Intel Video Pro Analyzer 2014:https://software.intel.com/en-us/media-solutions-portal该工具是专门针对最新的H.265和VP9的...

2021-01-29 17:25:09 2362

转载 PJSUA手册 --系列文章

https://blog.csdn.net/smllyy/article/details/40825595其中在pjsip-apps/src/下的PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现。它虽然只有很简单的命令行界面,但是功能齐全。PJSUA手册Pjsua是一个开源的命令行SIP UA(软电话),是PJSIP,PJNATH和PJMEDIA的实现。尽管它只是简单的命令行展现,但是它具有很多特性。简介...

2021-01-03 13:17:28 1413

转载 gstreamer插件指南

https://blog.csdn.net/sinat_28502203/article/details/46010485GStreamer插件开发指南(0.10.9.1)I.介绍GStreamer是一个用来创建流媒体应用程序的非常强大和通用的框架。GStreamer框架的许多优点来源于它的模块性 :GStreamer可以无缝地接纳新的插件模块。但是由于模块性和强大的功能通常以极高的复杂性为代价(例如CORBA),编写一个新的插件并不总是一件简单的事。本手册旨在帮助你了解GStre...

2020-12-22 20:26:56 1764

转载 gstreamer插件工作原理与流程分析

gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check。gst_init_check函数将用于初始化gstreamer函数库,建立内部的路径列表,注册内置元件以及加载标准p...

2020-12-22 20:24:53 857

转载 V4L2框架-videobuf2

阅读原文https://blog.csdn.net/u013904227/article/details/81054611本文介绍在 v4l2 框架之下的数据流交互的实现与使用,主要目的是实现一个能够进行用户空间与内核空间进行数据交互、数据流格式设置、数据流 buffer 申请与释放、数据流开启与关闭的 video 设备驱动。02 - V4L2框架-media-device01 - V4L2框架-v4l2 device00 - V4L2框架概述简介videobuf2 用于连接 V4L2 驱动层

2020-12-21 09:16:18 520

转载 【ATU Book-i.MX8系列】 NXP i.MX8M Mini DRM driver解析(Part 1)

https://www.wpgdadatong.com/cn/blog/detail?BID=B1134【ATU Book-i.MX8系列】 NXP i.MX8M Mini 環境建置https://www.wpgdadatong.com/cn/blog/detail?BID=B1389【ATU Book-i.MX8系列】 UUU(Universal Update Utility)https://www.wpgdadatong.com/cn/blog/detail?BID=B1870【ATU ..

2020-12-10 11:29:40 1955

转载 Gstreamer应用开发手册14:替换管道元件

https://zongxp.blog.csdn.net/article/details/105843651动态改变管道在本节中,我们讨论一些用于动态修改管道的技术。我们正在专门讨论在PLAYING状态下且不中断数据流的情况下更改管道。建立动态管道时,需要考虑一些重要事项:从管道中删除元件时,请确保未链接的pad上没有数据流,因为这将导致致命的管道错误。断开pad连接之前,请始终阻塞source pad(在推模式下)或sink pad(在拉模式下)。 将元件添加到管道中时,请确保在允.

2020-12-04 14:02:58 808

转载 使用udev实现显示器的热插拔和usb的自动挂载

udev:用来监听硬件设备是否发生改变,并可以给硬件设备命名 ,也可以在硬件发生改变之后执行脚本使用udev检测显示器是否发生变化,然后执行脚本,解决linux显示器热插拔问题先补充一点:[root@localhost ~]# cat /sys/class/drm/card0-VGA-1/statusconnectedconnectd 表示VGA口处于连接状态拔掉则显示disconnected 脚本里面可以通过这来判断显示器是否连接vim /etc/udev/rules.d/99.

2020-12-03 17:55:58 1446

转载 Libudev和sysfs指南

Libudev和sysfs指南 这是一篇译文,原文在:http://blog.csdn.net/fjb2080/article/details/7528894 在unix和类unix系统中,硬件设备可以通过/dev目录下的特殊文件进行访问,这些文件又被称为设备文件或设备节点。通过操作普通文件一样读写这些文件可以利用内核设备驱动程序与硬件设备通信,而这个过程不是读写磁盘上的数据,网上有许多描述/dev目录下文件细节的资源。以前,这些特殊文件是在系统安装的时候通过mkn...

2020-12-03 10:06:26 930

转载 解决linux kernel代码过大,source insight同步时间太长,垃圾文件过多的问题

概述我们做linux开发都会使用神器sourceinsight,单就我而言,不用它,我就看不懂代码。若是单片机代码,使用source insight也许不会有什么烦恼。但linux kernel开发使用source insight看代码就会发现1、添加一个source insight工程是多么的痛苦,建立一个工程是非常巨大的,关联所有变量的时间是消耗不起的,短则1 - 2小时,长则4 5个小时。至少对于我来说非常难受,而且有时候抽风一下变量没有关联上,又得重新同步一下。这之间将会花掉非常多的时间。

2020-12-01 19:25:26 2509 4

转载 linux DRM/KMS 测试工具 modetest、kmscude、igt-gpu-tools (一)

这里整理几个在学习Linux DRM/KMS中用到的工具,modetest、kmscude、igt-gpu-tools。简介:modetest是由libdrm提供的测试程序,可以查询显示设备的支持状况,进行基本的显示测试,以及设置显示的模式。kmscube是由mesa3d提供和维护,这是一个基于 KMS/GBM/EGL/OPENGL ES2.0 测试用例。kmscube is a little demonstration program for how to drive bar.

2020-11-13 09:47:18 8082

转载 Vulkan Driver for VC4(Raspberry Pi 3b) base on mesa

这是一篇关于在raspberry Pi 3b上移植实现vulkan 驱动的文章。经过一段时间的代码搬运,终于实现了零的突破,可以在树莓派3B上运行Vulkan triangle/texture。当然目前的情况是,仅仅能运行这两个demo,很多API都未实现,实现了的API也还有一大堆bug,总之这只是一个开始。之所以会在选择raspberry pi 3b是移植vulkan driver,是因为近段时间在学习GPU drivers(Mesa + DRM/KMS ),加之树莓派的GPU驱动是开源的.

2020-11-13 09:44:30 894

原创 Linux命令大全 https://man.linuxde.net/

Linux命令大全 https://man.linuxde.net/

2020-11-06 17:05:06 1353

原创 mp3 在线编辑, 音效下载

mp3 在线编辑:https://mp3cut.net/音效下载http://sc.chinaz.com/

2020-10-31 15:43:21 280

原创 udev笔记

selinuxhttps://www.cnblogs.com/mingfeng002/p/6933429.html inotify主要功能https://blog.csdn.net/zhangyifei216/article/details/51423580 进程概述和内存分配 mtrace mallinfoopenathttps://blog.csdn.net/tlight/article/details/41380177 SMACK简介#include <fnmatch.h.

2020-10-28 19:48:04 126

原创 ffmpeg 常用命令

./ffmpeg.exe -i video_SN00076_00002.mp4.repaired.h265 -codec copy -f mp4 video_SN00076_00002.mp4./ffmpeg.exe -i video_SN00001_00002.mp4.repaired.h265 -codec copy -f mp4 video_SN00001_00002.mp4.repaired.mp4.\ffplay.exe -f rawvideo -video_size 640x368..

2020-10-26 19:18:49 310

转载 GStreamer调试 参数与函数的使用

一、GStreamer的五个打印调试信息的函数:GST_LOG ()==>>5GST_DEBUG ()==>>4GST_INFO ()==>>3GST_WARNING ()==>>2GST_ERROR ()==>>1现摘录《GStreamer Plugin Writer's Guide》中23.2...

2020-10-24 10:56:01 943

原创 opengl es

https://app.diagrams.net/ 在线 visoDiagram Designerhttps://www.icode9.com/content-3-324122.html 学习笔记(02):OpenGL-Pixel Buffer Object实现快速内存数据到显存数据的传输https://blog.csdn.net/jeffasd/article/details/86073406 OpenGL Pixel Buffer Object (PBO)mrt 1...

2020-10-22 10:52:48 86

转载 gstreamer A/V同步技术

一、媒体流(streams )流线程中包含事件和缓存如下:-events-NEW_SEGMENT(NS)-EOS(EOS)*-TAG(T)-buffers(B)*其中标* 号的需要同时钟进行同步。典型的流如图1 所示:图1 媒体流组成图(1 )NEW_SEGMENT,rate, start/stop, time...

2020-10-19 19:31:07 659

转载 函数指针、回调函数与 GObject 闭包

本文原始出处:http://garfileo.is-programmer.com本文首先复习一下基于 C 语言函数指针和回调函数的概念,进而学习 GObject 闭包的用法。这些知识都与面向对象程序设计基本上没有什么关系。函数指针所谓函数指针,就是可以指向函数的指针,例如:? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

2020-10-19 19:27:20 194

转载 相见恨晚之gstreamer 核心源码source创建和识别typefind原理浅析(一)

一般情况下,用户打开一个多媒体文件,gstreamer首先需要知道文件的类型,然后创建相应的解码器来解析这个文件,最终实现播放这个文件。 一个实现流程实例如下:(1)app程序通知gstreamer会根据uri、文件路径,创建相应类型的src组件,一般为filesrc组件(element))(2)接着根据插件名创建type_find组件(3)将filesrc element与typefind element连接link起来,添加到一个gst...

2020-10-19 19:25:52 515

NAU88L24_DesignUserGuide_rev1.7.pdf

NAU88L24

2021-03-12

TC358743.7z

TC358743 V1.1

2021-03-12

brezillon-drm-kms.zip

brezillon-drm-kms.pdf 介绍kms

2021-03-12

深入理解Linux虚拟内存管理CD.rar

深入理解Linux虚拟内存管理CD

2021-03-02

systemTap英文文档集合.7z

systemTap英文文档集合.7z

2021-02-26

dtrace 用户指南.zip

dtrace 用户指南 中文版

2021-02-26

Solaris动态跟踪指南.zip

Solaris动态跟踪指南 全面介绍D语言

2021-02-26

内核红黑树MAP--C语言

封装了linux 内核 红黑树,纯C语言,外层已经封装好了,直接使用,有压力测试,很不错

2019-01-17

FFmpeg Basics

Multimedia handling with a fast audio and video encoder Multimedia handling with a fast audio and video encode Multimedia handling with a fast audio and video encode Multimedia handling with a fast audio and video encoder

2017-12-01

Linux Media Subsystem Documentation

2017年 最新的 V4L2 规范 ,做 linux 摄像头的一定要看...........................................................................................................

2017-11-29

单独编译和使用 webrtc 音频回声消除模块

单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件)

2017-11-29

live555MediaServer

live555MediaServer 服务器 实现 RTSP流媒体,实现 RTSP流媒体

2017-10-10

高通 atheros ART 校准

高通 atheros ART 校准 资料合集

2016-12-23

输入方向的流量控制 .doc

Linux中的QoS分为入口(Ingress)部分和出口(Egress)部分,入口部分主要用于进行入口流量限速(policing),出口部分主要 用于队列调度(queuing scheduling)。 大多数排队规则(qdisc)都是用于输出方向的,输入方向只有一个排队规则,即ingress qdisc。ingress qdisc本身的功能很有限, 但可用于重定向incoming packets。通过Ingress qdisc把输入方向的数据包重定向到虚拟设备ifb,而ifb的输出方向可以配置

2016-11-08

DDR DDR2 DDR3设计总结指导手册

DDR DDR2 DDR3 Layout 详细 总结 经验

2016-10-27

QT编写的超市收银系统

QT 超市收银系统 可直接运行 给大家一个参考

2016-04-30

空空如也

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

TA关注的人

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