自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux内存管理之内存检测技术(slub_debug/kmemleak/kasan)

請參考https://www.cnblogs.com/arnoldlu/p/8568090.html

2020-12-21 16:14:20 677

转载 WLAN_1

https://blog.csdn.net/suiyuan19840208/article/details/17055875?utm_source=blogxgwz8

2020-11-19 19:19:29 546

转载 交叉编译iptables1.4.12的问题

https://blog.csdn.net/u013401853/article/details/77165405

2020-11-11 11:04:00 561

转载 WIFI系列协议--802.11ac--增强非常高吞吐量简称VHT--1Gbit

请参考:https://blog.csdn.net/qq_20677327/article/details/105728861

2020-11-04 20:30:09 1192

转载 使用iperf测试终端WiFi模块吞吐量

请参考https://blog.csdn.net/lyss918/article/details/76073746

2020-11-04 19:56:33 457

转载 Realtek WiFi调试命令

参见博客:https://blog.csdn.net/sky619351517/article/details/86633615

2020-11-03 10:56:40 1659

转载 WiFi-常用iwpriv命令

请参考博客:https://blog.csdn.net/bingyu9875/article/details/52833594

2020-10-26 17:59:48 1562

转载 WiFi beacon时槽

请参考博客:https://blog.csdn.net/weixin_40117614/article/details/90200380

2020-10-22 22:54:37 2733

转载 WiFi底层学习(一)iw工具

请参考博客:https://blog.csdn.net/qq_26602023/article/details/106115823?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-2-106115823.nonecase&utm_term=iw%E5%B7%A5%E5%85%B7%20wifi&spm=1000.2123.3001.4430

2020-10-22 21:36:49 514

原创 深入Linux内核架构—内存管理(四)

初始化内存管理在内存管理的上下文中, 初始化可以有多种含义。在许多CPU上,必须显式设置适于Linux内核的内存模型。例如,在IA-32系统上需要切换到保护模式,然后内核才能检测可用内存和寄存器。...

2020-10-03 17:45:48 165

原创 Omnipeek和 Iperf工具

Omnipeek是一款不错的网络报文扫描软件,它不仅可以扫描有线网络下的报文信息,还可以针对无线网卡进行监控和扫描。Iperf 是一个网络性能测试工具。

2020-09-23 15:54:27 177

原创 死锁的原因及处理方法

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。避免死锁:死锁的预防是通过破坏产生条件来阻止死锁的产生,但这种方法破坏了系统的并行性和并发性。死锁产生的前三

2020-09-18 09:31:44 852

转载 LCD驱动之接口分析

参考https://blog.csdn.net/shenlong1356/article/details/103669398

2020-09-15 18:16:34 245

转载 SDIO接口WiFi驱动分析

参考http://blog.chinaunix.net/uid-31087949-id-5760669.html

2020-09-15 18:15:43 569

转载 USB接口WiFi驱动分析

参考https://www.cnblogs.com/newjiang/p/5891106.html

2020-09-15 18:14:36 296

原创 使用ffmpeg获取一帧摄像头数据

https://blog.csdn.net/vblittleboy/article/details/19828327

2020-06-06 14:49:24 529

原创 利用ffmpeg将RTSP传输的h264原始码流保存到文件中

https://blog.csdn.net/qq_29350001/article/details/78214267

2020-06-06 14:47:34 633 1

原创 FFMPEG 从rtsp抓取流,转存为flv文件

https://blog.csdn.net/u010871058/article/details/72368274

2020-06-05 17:40:50 2754

原创 利用ffmpeg从RTSP服务器拉流并保存各种格式文件

https://www.jianshu.com/p/c8488537501b

2020-06-05 17:40:01 2985

原创 ffmpeg库简介

请参考https://www.cnblogs.com/CoderTian/p/9061976.html

2020-06-05 14:16:48 428

原创 ffmpeg-4.2.3编译

1、下载ffmpeg-4.2.3代码2、配置(编译静态库)./configure --target-os=linux --prefix=$(pwd)/temp --enable-cross-compile --arch=arm --cc=arm-hisiv300-linux-gcc --cross-prefix=arm-hisiv300-linux- --nm=arm-hisiv300-linux-nm --disable-shared --enable-static --enable-gpl --

2020-06-05 12:01:31 1909 1

原创 U-Boot启动过程

一、U-Boot工作过程U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:1、第一阶段的功能硬件设备初始化加载U-Boot第二阶段代码到RAM空间设置堆栈跳转到第二阶段代码入口 图1 U-Boot启动第一阶段流程2、第二阶段的功能初始化本阶段使用的硬件设备检测系统内存映射将内核从Flash读取到RAM中为内核设置启动参数调用内核U-Boot启动第二阶段流...

2020-05-28 16:00:16 270

原创 Android系统-Linux音频驱动架构

简介LINUX下音频驱动开发,要遵循标准的ALSA架构,下面分别从硬件架构、软件架构、驱动程序,3个方面分析。硬件架构硬件上音频总线接口有很多,如I2S、PCM、TDM、SLIMBUS等,以I2S为例分析:播放流程使用I2C对CODEC做初始化配置。 音频数据从外部flash读取到内存中。 数据经过DMA送到I2S的TXFIFO。 数据由TXFIFO送到CODEC硬件。 在CODEC硬件里,数据从数字信号转变成模拟信号。 模拟信号经过喇叭播放出来,就实现了声音的播放。.

2020-05-28 12:08:03 588

原创 深入Linux内核架构—内存管理(三)

一、页表层次化的页表用于支持对大地址空间的快速、高效的管理。考察具体的技术实现。页表用于建立用户进程的虚拟地址空间和系统物理内存之间的关联。到目前为止讨论的结构主要用来描述内存的结构(划分为结点和内存域),同时指定其中包含的页帧的数量和状态(使用中或空闲)。页表用于向每个进程提供一致的虚拟地址空间。应用程序看到的地址空间是一个连续的内存区。该表也将虚拟内存页映射到物理内存,因而支持共享内存...

2020-04-29 16:54:09 224

原创 深入Linux内核架构—内存管理(二)

一、(N)UMA 模型中的内存组织Linux支持的各种不同体系结构在内存管理方面差别很大。由于内核的明智设计,以及某些情况下插入的兼容层,这些差别被隐藏起来了。按照先前讨论过的,一个主要的问题是页表中不同数目的间接层。另一个关键是NUMA和UMA系统的划分。内核对一致和非一致内存访问系统使用相同的数据结构,针对各种不同形式的内存布局,各个算法几乎没有什么差别。在UMA系统上,只使用一个NU...

2020-04-28 12:01:03 251

原创 深入Linux内核架构—内存管理(一)

内存管理是内核最复杂同时也是最重要的一部分。特点在于非常需要处理器和内核之间的协作。本章从技术方面讲解具体的实现。一、概述内存管理的实现涵盖了许多领域:内存中的物理内存页的管理;分配大块内存的伙伴系统;分配较小块内存的slab、 slub和slob分配器;分配非连续内存块的vmalloc机制;进程的地址空间。Linux内核一般将处理器的虚拟地址空间划分为两个部分。底...

2020-04-20 17:35:36 407

原创 深入Linux内核架构-进程管理和调度(十三)—调度器增强

一、调度器增强到目前为止,只考虑了实时系统上的调度。事实上, Linux可以做得更好些。除了支持多个CPU之外,内核也提供其他几种与调度相关的增强功能。请注意,这些增强功能大大增加了调度器的复杂性,主要考虑简化的情形,目的在于说明实质性的原理,而不考虑所有的边界情形和调度中出现的奇异情况。1、SMP调度多处理器系统上,内核必须考虑几个额外的问题,以确保良好的调度。CPU负荷必须尽可...

2020-04-20 14:45:50 248

原创 深入Linux内核架构-进程管理和调度(十二)-实时调度类

一、实时调度类按照POSIX标准的强制要求,除了“普通”进程之外, Linux还支持两种实时调度类。调度器结构使得实时进程可以平滑地集成到内核中,而无需修改核心调度器,这是调度类带来的好处。实时进程的特点在于其优先级比普通进程高,对应地,其static_prio值总是比普通进程低。rt_task通过检查其优先级来证实给定进程是否是实时进程,而task_has_rt_policy则检测进程是...

2020-04-15 11:55:09 221

原创 Linux likely和unlikely的使用

一、源代码#include <linux/init.h>#include <linux/module.h>static int __init hello_init(void){ int a = 10; int b = 6; printk(KERN_INFO "hello_init.\n"); if(l...

2020-04-14 16:34:53 381

原创 深入Linux内核架构-进程管理和调度(十一)

4、选择下一个进程选择下一个将要运行的进程由pick_next_task_fair执行。代码流程图在图2-21给出。kernel/sched_fair.c如果nr_running计数器为0,即当前队列上没有可运行进程,则无事可做,函数可以立即返回。否则将具体工作委托给pick_next_entity。kernel/sched_fair.ckernel/sched_f...

2020-04-14 15:39:42 320

原创 linux内核中的likely()和unlikely()宏的作用

if(likely(x))等价于if(x),但是它告诉gcc,x取1的可能性比较大。if(unlikely(x))等价于if(x),但是它告诉gcc,x取0的可能性比较大。

2020-04-14 15:04:25 194

原创 深入Linux内核架构-进程管理和调度(十)

一、完全公平调度类核心调度器必须知道的有关完全公平调度器的所有信息,都包含在fair_sched_class中:kernel/sched_fair.c在先前的讨论中,已经看到主调度器调用这些函数,接下来将考察这些函数在CFS(完全公平调度)中的实现方式。1、数据结构首先,需要介绍一下CFS的就绪队列。回想一下,可知主调度器的每个就绪队列中都嵌入了一个该结构的实例:ker...

2020-04-13 17:41:22 152

原创 深入Linux内核架构-进程管理和调度(九)

一、处理优先级内核内部对优先级的处理相当复杂。1、优先级的内核表示在用户空间可以通过nice命令设置进程的静态优先级,这在内部会调用nice系统调用。进程的nice值在-20和+19之间(包含)。值越低,表明优先级越高。内核使用一个简单些的数值范围,从0到139(包含),用来表示内部优先级。同样是值越低,优先级越高。从0到99的范围专供实时进程使用。nice值[-20, +19]映...

2020-04-12 18:06:43 191

原创 深入Linux内核架构-进程管理和调度(八)

一、调度器的实现

2020-04-10 15:27:21 165

原创 深入Linux内核架构-进程管理和调度(七)

一、启动新程序通过用新代码替换现存程序,即可启动新程序。Linux提供的execve系统调用可用于该目的。1、execve的实现该系统调用的入口点是体系结构相关的sys_execve函数。该函数很快将其工作委托给系统无关的do_execve例程。fs/exec.cint do_execve(char * filename, char __user *__user *argv, ...

2020-04-03 11:32:25 203

原创 深入Linux内核架构-进程管理和调度(六)

一、内核线程内核线程是直接由内核本身启动的进程。内核线程实际上是将内核函数委托给独立的进程,与系统中其他进程并行执行(实际上,也并行于内核自身的执行)。内核线程称之为(内核) 守护进程。它们用于执行下列任务。周期性地将修改的内存页与页来源块设备同步(例如,使用mmap的文件映射)。如果内存页很少使用,则写入交换区。管理延时动作。实现文件系统的事务日志。基本上,有两种类型的内...

2020-04-02 17:26:17 144

原创 深入Linux内核架构-进程管理和调度(五)

在此讨论各个copy_xxx函数的概述其作用。kernel/fork.c如果CLONE_SYSVSEM置位,则copy_semundo使用父进程的System V信号量。...

2020-04-02 14:29:26 220

原创 深入Linux内核架构-进程管理和调度(四)

一、进程管理相关的系统调用讨论 fork 和 exec 函数族(用来用指定的程序替换当前进程的所有内容)系统调用的实现。通常这些调用不是由应用程序直接发出的,而是通过一个中间层调用,即负责与内核通信的C标准库。从用户状态切换到核心态的方法,依不同的体系结构而各有不同。用于在这两种状态之间切换的机制,并解释了用户空间和内核空间之间如何交换参数。就目前而言,将内核视为由C标准库使用的“程序库...

2020-01-20 16:17:10 247

原创 如何增加Ubuntu的虚拟内存

1、创建SWAP文件(我的/HOME比较大,所以就放在HOME下了),命令如下:mkdir swapcd swapsudo dd if=/dev/zero of=swapfile bs=1024 count=40665442、把生成的文件转换成SWAP文件sudo mkswap swapfilemkswap是在那个空白文件的基础上,建立swap的文件系统3、激活swap文件(可以用 ...

2019-12-24 13:46:58 1797 1

原创 Ubuntu 16.04 利用wine安装exe文件

(1)输入:sudo add-apt-repository ppa:ubuntu-wine/ppa添加wine的库,照提示按 回车 添加(2)输入:sudo apt-get update为了更新源,以便查找最新的软件(3)在完成源的更新后,输入:sudo apt-get install wine安装wine...

2019-11-22 14:59:28 821

空空如也

空空如也

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

TA关注的人

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