自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(32)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux的双网口(内网+外网)的IP报文转发

linux的双网口实现报文转发

2023-12-15 10:32:38 549 1

转载 KFIFO移植到应用程序中

内核的kfifo无锁缓存移植到应用程序中

2023-11-01 13:43:45 89

转载 Linux的路由配置

linux的路由配置

2023-11-01 10:56:56 61

转载 linux网络流量控制TC(Traffic Control)简介

Linux Kernel qdisk配置ingress和engress规则。

2023-11-01 10:54:26 95

原创 【Linux系统满足产品实时性需求】

linux系统实时性场景应用

2023-10-07 16:57:27 317

原创 修改kernel的spi驱动,cmd+addr+data时序连续以支持spiFlash的mtd设备

修改Linux系统kernel代码的spi驱动,以支持spiflash的mtd设备。

2023-07-17 17:14:03 232

原创 Linux的IPV4协议栈的多网口IP报文转发

Linux的IPV4协议栈的多网口IP报文转发

2022-06-22 08:46:27 1092 1

转载 SDIO 基础知识

SDIO卡SDIO卡是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备,目前根据SDIO协议的SPEC,SDIO接口支持的设备总类有蓝牙,网卡,电视卡等。SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速I/O能力。低...

2022-03-22 16:15:18 6848

原创 UBOOT-SPI-FLASH的驱动分析

spi_flash uboot 驱动

2022-02-16 15:23:34 1746

原创 Linux驱动emmc的8bits/4bits/1bits模式自动匹配优化

emmc驱动 kernel3.x

2022-01-29 09:33:49 3283

原创 PERF工具分析Linux程序性能

Perf的Linux程序性能分析

2021-12-22 17:18:57 311

原创 Linux-MDIO总线的read/write

linux mdio mii

2021-12-02 09:04:31 4089

原创 IMX6Q文件系统规划

Imx6q ramdisk

2021-11-30 11:06:02 266

原创 交换芯片CPSS-MARVELL 98DXX交换处理流程

CPSS 98DXX交换芯片数据转发流程

2021-11-30 10:55:43 1367

原创 网卡驱动分析--IMX6X

ETHER内核数据流处理--NXP_IMX6x系列eth的初始化:fec的probe后,进入ether的初始化流程fec_enet_init(dev);fec_enet_init()的主要工作如下:fec_enet_alloc_queue();创建queue等待队列,dma_alloc_coherent()创建一致性DMA地址。netdev->netdev_ops= ;netdev->ethtool_ops =填充netdev_ops和ethtool的ops.n

2021-05-20 10:42:06 332

转载 linux驱动框架--阻塞/唤醒

Linux 驱动框架---驱动中的阻塞 描述和API 阻塞IO和非阻塞IO的应用编程时的处理机制是不同的,如果是非阻塞IO在访问资源未就绪时就直接返回-EAGAIN,反之阻塞IO则会使当前用户进程睡眠直到资源可用。从应用场景来说两种方式分别适应不同的使用场景。而驱动开发不可避免的需要支持两种访问方式。如果不是采用现成的子框架而自己实现文件操作底层接口部分时就需要自己实现这一机制。文件的访问方式除了在打开文件时指定外还可以在打开以后通过fcnt和ioctl进行修改和获取。 ...

2021-05-08 09:56:30 331

原创 V4L2-虚拟摄像头驱动

【目的】在linux平台上创建虚拟摄像头设备/dev/video2,实现了V4L2的接口;【意义】1、熟悉V4L2的内核层面和驱动层面的一些接口操作; 2、原始数据的帧缓存自定义;【平台】ARM-IMX6Q硬件平台试验【驱动】 驱动的核心思想,就是queue入队列添加到queue出队列。 1、video_register_device()注册video设备:/dev/video2,初始化相关工作链表;...

2021-04-23 16:56:34 950

原创 ARM视频输入流的电子倍焦-SCALE裁剪

【目的】依赖平台硬件实现视频输入流的电子倍焦(SCALE裁剪)功能【平台】Imx6q GPU Gstreamer1.0【思想】电子倍焦,就是图像裁剪后的图像放大,放大可以使用软件算法,也可以使用硬件。【软件方法】gstreamer的plugin:videoscale可以用于视频图像裁剪,但是是基于软件的,会有如下弊端: 1、纯软件的视频处理,消耗cpu非常高; 2、某些场景下,比如物理地址连续的一些plugin,...

2021-04-16 09:04:57 330 1

原创 rtsp_server嵌入工程中,以支持多路视频流和在线配置编码格式

【目的】 onvif项目中嵌入rtsp_server服务,并且支持encode的配置,例如在线配置编码格式H264/MPEG4/JPEG等,配置编码图像质量等;【方法】 rtsp_server使用gstreamer1.0框架,参考gst-rtsp-server开源代码;使用arm平台硬件编码器VPU,并且动态替换元件以支持编码格式修改;【效果】 对于多路视频流,有2种创建rtsp_server的方法: 1、多线程,每...

2021-04-08 14:43:35 451 1

原创 ONVIF_SERVER的ARM平台C代码

一、ONVIF的调试: ONVIF官方给出的调试工具有ODM和ODTools,具体区别:ODM更加和onvif_client工具更加类似,可以面向用户操作;OTDTools更加面向debug,可以对每一项接口进行debug。 也可以用大厂给出的onvif_client或者网上开源的onvif_client工具进行调试;二、ONVIF_SERVER代码框架: 1、一般使用gsoap工具来生成代码框架,支持C/C++/phthon等多种语言。但是生产的只是...

2021-03-05 10:26:09 1104 1

原创 gstreamer1.0动态替换element

pipeline处于playing状态时,如果要动态替换element元件,而又不从新停止pipeline,开始pipeline,则会用到下面的动态替换element元件。element元件包括ending element和filter element,所以包括如下2类:一、filter element替换: 【原理】 处于非ending point的element元件,在替换某元件时,在unlink旧的元件,link新的元件之前,需要添加probe eos探针,eos信号给被替换元件的...

2021-03-05 10:02:29 756 1

原创 ARM-IMX6Q硬件视频流混合imxg2dcompositor

【目的】 硬件平台的视频流混合,方便讲2条视频流或者多条视频流混合输出为一条视频流,输出可以以RTSP形式输出,也可以直接显示LCD,也可以通过qmlglsink给qt的UI显示。【意义】 使用基于G2D的硬件视频流混合,比纯软件混合(比如gstreamer的videomixer)占用CPU资源要少的多。【硬件平台】 Imx6q-arm的硬件平台,video0和video1两个摄像头输入,其中video0是红外摄像头,DVP接IPU;video1是OV摄像头,MIP...

2021-02-05 15:09:10 1150 2

原创 linux网卡提供ioctl操作phy内核源码分析

MAC注册:./drivers/net/ethernet/freescale/fec_main.c注册mac驱动,compatible匹配dts里面的”fsl,imx6q-fec”的MAC设备,成功后->probe(fec_probe)中:struct net_device *ndev = alloc_ethrdev_mqs(); //创建net_devSET_NETDEV_DEV(ndev, &pdev->dev); //绑定net_dev到具体dev时钟资源get...

2021-01-22 15:44:15 859 1

原创 Qt+arm处理多路camera以及显示

qt采集摄像头视频并显示LCD的方案,基本如下3种:1、qt-widget v4l2: v4l2接口直接获取camera的qbuf,在timer中获取一帧数据后,添加上bmp头信息,然后通过imageWidget->setPixmap()来显示每帧图像;2、qt-widgetQcamera: qt使用qcamera空间,new QCameraViewfinder 用于LCD显示,new QCameraImageCapture 用于camera获取,SIGNAL...

2020-12-29 12:22:52 1442

原创 Gstreamer1.0+arm多路视频输入输出开发

一、背景: 【软件】ARM使用Imx6q,kernel使用4.9.88内核版本,从nxp官网获取yocto来编译整个BSP工程。rootfs使用包含qt5的版本,gstreamer1.0版本是1.12.2.NXP提供的yocto均为免费,其中我使用的是-b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xm这个版本的BSP。Imx6q支持的硬件IPU/VPU功能,在gstreamer中已经以插件和补丁形式提供支持。可以直接搜索:gst-inspect-...

2020-12-28 16:23:31 1905

原创 接口测试的对象化编程(X86的C)

【目的】 模块化编程设计中,对于模块提供的一些API接口,可能会在不同case下重复使用,case不同而调用顺序不同,或者说运行实例不同。为了增加代码的可视化和对象化设计,减少重复编码,这里使用数组来预定义api执行流程。【环境】 x86的64位dos环境下执行C代码。【方案】 给定的API接口,需要对其验证,不同case场合有不同的调...

2020-03-25 16:14:30 117

原创 SDM845的音频路径分析

【目的】 结合SDM845处理器的Android内核代码来静态分析deep_buffer spker的playback路径,涉及dts的解析,pcm fe->dai be->dai_link->codec->pa->spker的整个流程。【分析】1、PA wsa991x:static const struct snd_soc_dapm_rout...

2020-03-25 15:18:15 2500 1

原创 x86下xml文件解析C实现

【目的】 x86的64位的c工程的一个xml文件解析功能,能够解析xml的配置参数,以供程序其他模块使用。【方案】 1、使用第三方库tinyxml.dll,直接调用解析接口来使用; 2、自己写代码来实现对xml文件的解析,并使用list_head的双向链表存储xml中的所有元素。【实现】 1、使用linux内核数据结构...

2020-03-25 12:06:42 514

原创 MINGW64下的Makefile环境调用dll库

【前言】 X86的64位PC机上,一般使用eclipse+mingw的编辑和编译环境来实现无界面和有界面的开发工作,之前使用eclipse搭建环境需要用到dll库,而eclipse使用mingw编译环境对dll的支持不是很好,一直无法正常添加dll库到工程中去,所以摒弃了eclipse的编辑界面,直接使用Makefile+mingw64来编译链接,直接使用source insig...

2020-03-25 11:21:48 1811 1

转载 kdump分析三:解析kernel下的局部变量

Crash工具用于解析Vmcore文件,Vmcore文件为通过kdump等手段收集的操作系统core dump信息,在不采用压缩的情况下,其相当于整个物理内存的镜像,所以其中包括了最全面、最完整的信息,对于分析定位各种疑难问题有极大的帮助。配置kdump后,在内核panic后,会自动进入kump流程,搜集Vmcore。Crash工具即为专门用于分析vmcore文件的工具,其中提供了大量的实用分析...

2020-03-04 19:49:14 461

转载 Kernel Panic (Kdump) 解析实例之二:内存溢出

关于怎么打开core文件,参见上一篇,这里不罗嗦了。1) 首先,这个panic跟内存使用越界有关。先来看看导致panic的call trace和寄存器。RIP: 0010:[<ffffffff81237e71>] [<ffffffff81237e71>] elv_rqhash_add+0x81/0xa0RSP: 0018:ffff880142c7da68...

2020-03-04 19:40:57 687

转载 kdump使用实例一:内存越界

Kernel Panic (Kdump) 解析实例之一原创Red-White-Blue 最后发布于2013-09-27 23:02:29 阅读数 4256 收藏网络上已经有一些介绍如何配置kexec已产生kdump的文章。这里不重复介绍配置方法,而是介绍如何进行kdump文件解析。下面介绍的都是Linux内核产生的kdump,利用crash这一工具解析。关于crash这个工具支持哪些命令...

2020-03-04 19:31:09 520

RV_1126.rar

RV1109_1126 datasheet

2021-05-27

api自动化测试的case预定义

该代码通过预定义case方式提前约定API函数需要执行的顺序,单线程执行哪些api,多线程执行哪些api。

2020-03-25

xml文件解析的C代码实现

x86的c实现xml文件的解析与查询操作,并使用list_head双向链表来存储xml文件的所有元素。

2020-03-25

单向链表实现倒置,冒泡排序,插入排序,快速排序

单向链表实现倒置,冒泡排序,插入排序,快速排序,在linux下的gcc实现

2011-08-25

CC2430 ti自带程序示例

非常好的示例程序 包括灯控开关的绑定 无线抄表系统的组网

2009-10-28

液体腐蚀度检测同步显示

石油腐蚀度检测,电信号送ad0809转换后经c51处理,用lcd来显示.结果,电流与腐蚀度同步显示。

2009-03-19

空空如也

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

TA关注的人

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