自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

skdkjxy的专栏

好好工作,努力挣钱~柱子

  • 博客(88)
  • 资源 (22)
  • 收藏
  • 关注

转载 嵌入式 使用mp4v2将H264+AAC合成mp4文件

录制程序要添加新功能:录制CMMB电视节目,我们的板卡发送出来的是RTP流(H264视频和AAC音频),录制程序要做的工作是:(1)接收并解析RTP包,分离出H264和AAC数据流;(2)将H264视频和AAC音频以某种格式封装,最后存成文件,供用户查看。 第一步已经有部分代码可供参考,因此很快就完成了。第二步,我们决定封装成mp4,查找了一些资料后,决定使

2014-09-30 17:07:45 2473 5

转载 嵌入式 H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念1  MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding of audio-visual objects Part 12: ISO

2014-09-30 17:05:09 1288

转载 嵌入式 H264中的SPS、PPS提取与作用

使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两项从哪里获取呢?答案是从H264码流中获取.在H264码流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"为开始码的,找到开始码之后,使用开始码之后的第

2014-09-30 17:01:35 1428

转载 嵌入式 H264参数语法文档: SPS、PPS、IDR以及NALU编码规律

H.264码流第一个 NALU 是 SPS(序列参数集Sequence Parameter Set)对应H264标准文档 7.3.2.1 序列参数集的语法进行解析SPS参数解析// fill sps with content of p[cpp] view plaincopyint InterpretSPS (VideoParameters *p_Vid, DataPartition 

2014-09-30 16:59:17 4535

转载 嵌入式 网卡驱动PHY的id组成小结

网卡驱动首先要理解几个基本概念(....)BYTE 8-bitFIFO  先进先出缓存MAC  媒体访问控制(MAC)位于链路层的底部,基于共享信道的各种网络都有MAC子层.MAC子层可提供广播,组波,点对点通信服务,是无连接的数据报服务MII  MII (Media Independent Interface(介质无关接口);或称为媒体独立接口RMII 简化媒体独立接口

2014-09-30 16:33:44 6452

转载 嵌入式 linux下kernel代码中设备驱动模型之device-driver

前面我们分析了device、driver、bus三种类型,主要是三者的注册与注销,在sysfs中的目录与属性文件创建等内容。本节就来详细分析下,在设备注册到总线上时,总线是如何为其寻找对应的驱动的;在驱动注册到总线上时,总线又是如何为其寻找对应的设备的。本节的实现代码集中在drivers/base/bus.c和drivers/base/dd.c中。先来回忆下,在device_reg

2014-09-30 16:06:24 1155

转载 嵌入式 linux下kernel代码中设备驱动模型之driver

上节我们分析设备驱动模型中的device,主要是drivers/base/core.c,可以说是代码量最大的一个文件。本节要分析的驱动driver,就要相对简单很多。原因也很简单,对于driver,我们能定义的公共部分实在不多,能再sysfs中表达的也很少。本节的分析将围绕drivers/base/driver.c,但头文件仍然是include/linux/device.h和drivers/bas

2014-09-30 16:03:43 1124

转载 嵌入式 linux下kernel代码中设备驱动模型之bus

前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev

2014-09-30 16:03:43 894

转载 嵌入式 linux下kernel代码中设备驱动模型之device

linux的设备驱动模型,是建立在sysfs和kobject之上的,由总线、设备、驱动、类所组成的关系结构。从本节开始,我们将对linux这一设备驱动模型进行深入分析。     头文件是include/linux/device.h,实现在drivers/base目录中。本节要分析的,是其中的设备,主要在core.c中。struct device {      struct de

2014-09-30 16:01:18 1176

转载 嵌入式 linux下kernel代码中更强的链表klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三者不同,但hlist和klist都可以看成是从list_head中发展出来的,用于特殊

2014-09-30 15:58:25 742

转载 嵌入式 linux下kernel代码中原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前

2014-09-30 15:55:35 1453

转载 嵌入式 linux下kernel代码中设备驱动模型的基石kobject

之前我们分析了引用计数kref,总结了sysfs提供的API,并翻译了介绍kobject原理及用法的文档。应该说准备工作做得足够多,kobject的实现怎么都可以看懂了,甚至只需要总结下API就行了。可我还是决定把kobject的实现代码从头分析一遍。一是因为kobject的代码很重要,会在设备驱动模型代码中无数次被用到,如果不熟悉的话可以说是举步维艰。二是为了熟悉linux的编码风格,为以后分析

2014-09-30 15:55:26 743

转载 嵌入式 linux下kernel代码中记录生命周期的kref

kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。kref的头文件在include/linux/kref.h,实现在lib/kref.c。闲话少说,上代码。s

2014-09-30 15:54:15 780

转载 嵌入式 linux下kernel代码中连通世界的list

在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。struct list_head {      struct list_head *next, *prev;  };  这是链表的元素结构。因为是循环链表,表头和表中节点都是这一结构。有prev和

2014-09-30 15:52:39 701

转载 嵌入式 linux下kernel中kobject之kobject_uevent.c文件分析

struct      kset_uevent_ops {       int                 (*filter)(struct kset *kset, struct kobject *kobj);          //过滤函数,kset中的kobj是否需要处理       const char      *(*name)(struct kset *kset, struc

2014-09-30 15:48:25 877

转载 嵌入式 linux中kernel代码/lib/kobject.c文件分析

本文件的函数列表:char *kobject_get_path(struct kobject *kobj, gfp_t gfp_mask)获取指定kobject的完整路径名 void kobject_init(struct kobject * kobj)初始化kobj(引用为1,链表为空,设置kset宿主) int kobject_add(struct kobj

2014-09-30 15:36:41 1039

转载 嵌入式 linux中kernel代码/lib/klist.c文件分析

小结: 下面这个图应该能说明全部问题 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@函数列表: void       klist_init初始化klist,主要操作是挂空k->k_list,初始化k_lock锁,挂上get和put函数 void       klist_add_h

2014-09-30 15:02:39 956

转载 嵌入式 linux中probe函数中传递的参数来源(上)

上一篇中,我们追踪了probe函数在何时调用,知道了满足什么条件会调用probe函数,但probe函数中传递的参数我们并不知道在何时定义,到底是谁定义的,反正不是我们在驱动中定义的(当然,驱动中也不会定义设备的详细信息),但也不是在我们设备信息定义时的结构体。这就相当于武林绝学中只打通了任脉,而督脉还没打通,要想成为武林高手还差一步,本文就致力于打通我们设备驱动probe函数的任督二脉,做到正向逆

2014-09-30 14:59:13 2101

转载 嵌入式 linux中probe函数传递参数的寻找(下)

通过追寻driver的脚步,我们有了努力的方向:只有找到spi_bus_type的填充device即可,下面该从device去打通,当两个连通之日,也是任督二脉打通之时。先从设备定义去查看,在mach-smdk6410.c中定义了硬件设备信息,从这作为突破口。/* for mx25lx*/static void cs_set_level(unsigned line_id, int

2014-09-30 14:58:51 905

转载 嵌入式 probe()函数是什么时候被调用,设备和驱动是怎么联系起来的

probe()函数是什么时候被调用,设备和驱动是怎么联系起来的??   platform_add_devices(ldd6410_devices, ARRAY_SIZE(ldd6410_devices));  //这是bsp中添加所有的设备--》 platform_device_register(devs[i]);//注册平台设备---》platform_device_add(pdev);将平

2014-09-30 14:54:17 1136

转载 嵌入式 uboot中ethernet网口实现分析

一、底层接口封装假如要为图中设备编写驱动,首先要做什么?我认为应该是对各个器件进行抽象,也就是把可能的各种操作封装成接口并把需要的数据封装成结构体。这样作有两个好处,一是可以不再考虑器件的实现细节,直接调用接口就可完成各种操作;而是通过对接口的测试,可以较早的完成对器件的验证。以上图为例,包含两个器件,MAC与PHY。PHY需要的接口也是读写寄存器的接口与数据寄存器基址。c

2014-09-29 15:10:19 2030

转载 服务器 使用libevent和libev提高网络应用性能

首先附上libevent官网地址:libevent官网地址,点击打开

2014-09-28 10:33:10 912

转载 服务器 介绍一个C++的ORM工具ODB

前段时间了解了下ORM(对象关系映射),然后就找了下C++的ORM框架,发现真的是很少,主要就下面几种名称开源License需要特定的框架支持支持Qt支持Boost支持MySQL支持PostgreSQL支持SQLite支持XML支持Oracle支持MSSQL Server支持ODBC

2014-09-28 10:23:47 2433

转载 嵌入式 解决编译warning:warning: ‘MeteringUnit::voltage_gain_’ will be initialized after [-Wreorder]

问题:环境:ubuntu 12.04,g++版本4.6.3,编译目标文件时出现warnings:[plain] view plaincopyprint?u1204@u1204-zhw:~/hwsvn/2sw/4prj_mips/UCP_rt5350/src/trunk$ make clean;make  rm -f *.o local_c

2014-09-26 16:05:52 1353

转载 嵌入式 MP4文件格式详解结构概述

一、基本概念1、 文件,由许多Box和FullBox组成。2、 Box,每个Box由Header和Data组成。3、 FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags。4、 Header,包含了整个Box的长度size和类型type。当size==0时,代表这是文件中最后一个Box;当size==1时,意味着

2014-09-26 09:21:48 1099

转载 嵌入式 libevent功能使用简介

1. 介绍    libevent是一个用来开发可扩展的网络服务器的事件通知函数库。当一个文件描述符上的特定事件发生或是一个超时时间到达后,libevent API提供一种执行回调函数的机制。而且,libevent还支持基于信号或定期超时的回调功能。    libevent旨在替换在原有事件驱动网络服务器事件循环而设计的。应用程序仅仅需要调用event_dispatch(),然后动

2014-09-25 21:40:24 1535

原创 嵌入式 G711A编码音频转码为AAC过程代码示例

/*Author : kjTime : 2014-09-25Function :joseph aac, g711a changover aac*/#include #include #include  #include #include #include #include  #include #include #include

2014-09-25 20:33:02 5217 4

原创 嵌入式 不同平台编译faac出错"mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’"

编译FAAC-1.28时遇到错误:mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)’解决方法:从123行开始修改此文件mpeg4ip.h,到129行结束。修改前:#ifdef __cplusplusextern "C" {#endifchar *strc

2014-09-24 21:47:38 3186 2

原创 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

Uboot_Kernerl_Add_Watch_Dog:U-Boot 2010.06 (Nov 01 2013 - 15:28:44)DRAM:  128 MiBCheck spi flash controller v350... FoundSpi(cs1) ID: 0xEF 0x40 0x18 0x00 0x00 0x00Spi(cs1): Block:64K

2014-09-24 20:01:15 8751

转载 嵌入式 linux设备和驱动加载的先后顺序

Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢。Linux系统使用两种方式去加载系统中的模块:动态和静态。静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载核心进程(/init/main.c)kernel_inità do_basic_setup()àdo_initcalls()该函数中会将在_

2014-09-24 19:47:52 1191

转载 嵌入式 Linux内核中的printf实现

从main.c中的printf开始读这个函数。首先看printf函数的定义:1 static int printf(const char *fmt, ...)2 {3     va_list args;4     int i;5 6     va_start(ar

2014-09-23 17:44:50 1022

转载 嵌入式 中断服务子程序注意事情

中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。__interrupt double compute_area (double radius) {   

2014-09-23 17:16:45 2900

转载 嵌入式 linux(test命令)

每一种条件语句的基础都是判断什么是真什么是假。是否了解其工作原理将决定您编写的是质量一般的脚本还是您将引以为荣的脚本。Shell 脚本的能力时常被低估,但实际上其能力的发挥受制于脚本撰写者的能力。您了解得越多,您就越能像变戏法似地撰写一个文件来使任务自动化和简化您的管理工作。在 shell 脚本中进行的每一种操作(除最简单的命令编组之外)都需要检查条件。所有的 shell 脚本“逻

2014-09-22 20:55:15 837

原创 嵌入式 iptables静态编译与动态编译

iptables的移植    Linux下支持netfilter机制的配置工具就是iptables,它也就相当与一个应用程序,可以对netfilter进行配置(包过滤规则,NAT等等)。所以要实现netfilter(iptables)就要从两方面来着手:1)内核支持netfilter;2)用户层的iptables配置命令。1)        编译内核,支持netfilter 在

2014-09-22 20:32:58 5400 3

转载 嵌入式 iptables防火墙实际使用案例解析

一、代理服务器架设的位置实验环境如下:1)局域网网段:192.168.1.0/24,该网段内有2台服务器和1台客户端(1)WEB服务器:192.168.1.3/24(2)FTP服务器:192.168.1.2/24(3)客户端:192.168.1.5/242)局域网与外网之间是通过安装有CentOS的防火墙相连,防火墙有两块网卡(1)eth0:192.168.1.254/

2014-09-19 14:21:25 1281

转载 嵌入式 iptables防火墙选项参数介绍和配置实例

iptables的5个规则链:PREROUTINGFORWARDPOSTROUTINGINPUTOUTPUTiptables的3个规则表:5个规则链分别包含在3个规则表中filter:针对包过滤   INPUT、 FORWARD、 OUTPUTnat:   地址转换     PREROUTING、POSTROUTING 、OUTPUTmangle: 

2014-09-19 14:19:56 1203

转载 嵌入式 iptables防火墙配置规则实例分析

我们来配置一个filter表的防火墙。  (1)查看本机关于IPTABLES的设置情况  [root@tp ~]# iptables -L -n  Chain INPUT (policy ACCEPT)  target     prot opt source               destination  Chain FORWARD (policy ACCEPT)

2014-09-19 14:17:51 726

转载 嵌入式 iptables防火墙详细配置演示

iptables详细配置实例 我们来配置一个filter表的防火墙。(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot

2014-09-19 14:15:11 806

转载 嵌入式 iptables防火墙常用配置规则实例

iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。咋一看iptables的配置很复杂,掌握规律后,其实用iptables完成指定任务并不难,下面我们通过具体实例,学习iptables的详细用法。1.删除已有规则在新设定iptables规则时,我们一般先确保旧规则被清除,用以下命令清除旧规则:iptables -F(or iptables --flu

2014-09-19 14:14:36 1154

转载 嵌入式 iptables设置图文详解

Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则。即表包含若干链,链包含若干规则。  (一)三种表为:filter   nat  mangle 1、filter:处理与本机有关的数据包,是默认表,包含有三种链:input   output forward 2、nat表:与本机无关。主要处理源与目的地址IP和端口的转换。有三种链:prerouting  po

2014-09-19 14:11:56 1254

osd bmp demo

我把部分代码摘到附件中了,FYI 多路码流添加osd的demo,可以下载,但请不要照搬代码,更不要随意传播,谢谢!

2015-06-25

boost中文手册C++

boost中文手册C++ boost库让我们更快、更好地使用C++进行大型系统或者服务器开发工作,提高工作效率,很值得一看!

2015-05-21

tracepoint_lttng使用详解

tracepoint_lttng使用详解,主要是对函数耗时进行定性的统计,对性能优化方案有着举足轻重的效果!LTTng 是一个 Linux 平台开源的跟踪工具,是一套软件组件,可允许跟踪 Linux 内核和用户程序,并控制跟踪会话(开始/停止跟踪、启动/停止事件 等等)。这些组件被绑定如下三个包: •LTTng-tools:库和用于跟踪会话的命令行接口 •LTTng-modules:允许用 LTTng 跟踪 Linux 的 Linux 内核模块 •LTTng-UST:用户空间跟踪库

2015-03-23

lz4-r127.tar.gz

这个源码很不好早,,在此提供给大家参考和使用

2015-03-10

oracle多实例创建和DataGuard配置DEMO

oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦

2015-03-05

多路径multipath配置文档和相关概念

一、什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

2015-01-07

paxos 算法 分析

很不错的paxos算法分析文档,值得一看,虽不能深入研究,但是可以初步了解!

2014-12-17

ceph-fs-rpm-build

对于,在redhat或者centos上进行建立rpm,可以说是一个必备的技能,由于项目需求,需要进行rpm包建立,故记录了rpm建立过程,供大家参考!

2014-12-08

centos7 ceph0.87

编译0.87版本ceph源码,并在centos7上成功搭建集群,并测试存储,包括相关rpms以及codes和最新ceph.conf

2014-11-24

vimrc_best

很好,我的用的很舒服,给大家看看,虽然我也从别的地方收集的,但是觉得对大家有帮助,所以分享一下!

2014-11-20

vimrc 配置文件

vimrc配置文件,精华配置,不错!

2014-11-20

centos_netcard_bonding

给大家分享一下,我成功配置的双网卡聚合的示例demo,其实就是相关的配置文件,只要放在对应的目录下就可以了

2014-11-19

Apache2-http-conf

Apache2-http-conf,可以实现在x86以及Linux下实现http上传或者下载服务

2014-10-24

aac+h264封装MP4

aac+h264封装MP4,适用于我们项目的平台,需要使用的朋友可以修改相关参数,有问题可以反馈给我skdkjxy@163.com,谢谢

2014-10-23

uboot-hi3518c配置表

uboot-hi3518c配置表(适用本项目平台),这是仅适用RMII 网络模式!

2014-10-09

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

2014-09-30

使用 libevent 和 libev 提高网络应用性能

使用 libevent 和 libev 提高网络应用性能

2014-09-28

odb示例DEMO

odb示例DEMO,仅供大家参考交流……

2014-09-28

C/C++面试题

经典嵌入式、笔试面试题目大全,这里包含了面试笔试的程序题目,和一些关键字的解析

2013-01-10

空空如也

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

TA关注的人

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