自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

转载 自旋锁与信号量

本文转自http://group.ednchina.com/1036/18550.aspxspinlock和semaphore的差别和应用这两天经常有同事在问spinlock和semaphore的相关问题,什么时候该用spinlock?什么时候该用semaphore?什么时候该用spinlock_irq?什么时候该用spinlock_irqsave?的确,对于初涉内核开发的人员来说,s

2013-09-05 17:18:32 654

转载 S3C6410 MFC H264 编码流程分析

转自:http://blog.sina.com.cn/s/blog_65f6a0520100rgg7.html在代码分析开始前需要对一个概念进行解释,就是MFC。Multi Format Codec的缩写,是ARM微处理器内部一种支持多种硬件编码方式的硬件电路,能够编码/解码MPEG-4/H.263/H.264(30fps)等多种格式的多媒体影像。TOP6410开发板使用的是ARM

2013-08-15 11:12:01 998

原创 找工作系列之华为机试2013.7.3

题目一:给一字符串,统计其出现过的字符,并输出。例如:输入:"abbccdeabf",输出:"abcdef"#include #include #include void stringFilter(const char* pInputStr , int inputLen,char* pOutputStr){ int table[256] = {0}; char* tmp

2013-07-03 19:58:17 1044

转载 使用libx264将I420编码为H.264

libx264 libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。代码要把一个I420视频文件编码为H264格式。I420是YUV中planar格式的一种,一张I420图片中有三个plane,分别存放整张图片的Y、U、V分量;采样比例为4:2:0,12bpp,Y:U:V的分量长度是4:1:1。头文件

2013-05-06 18:47:00 877

转载 x264编码学习

定位到x264_encoder_encode这个函数,这个函数应该是H264编码最上层的函数,实现编码一帧视频。在进行下一步分析之前有必要了解,控制X264编码的全局性结构体x264_t,这个结构体控制着视频一帧一帧的编码,包括中间参考帧管理、码率控制、全局参数等一些重要参数和结构体。下面是x264_t这个结构体的定义(这里仅对几个关键的结构和变量进行分析):struct x264_t{

2013-05-06 14:34:18 908

转载 mpeg压缩输入格式---打包模式和平面模式

版本 v1.0,存在内存问题在 void v4l2_process_image(struct buffer buf)中对 v4l2 采集来的一帧进行处理,存在 struct buffer buf 中buffer 结构定义为:struct buffer {void *    start;size_t   length;};buffer.start 为 YUV422 格

2013-04-22 16:08:27 743

原创 ubuntu10.04安装编译ffmpeg

参考官方说明文档:https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuideLucid--(1)和网友博客基于v4l2的webcam应用, 本地预监(编译过程)--(2),在ubuntu10.04上搭建ffmpeg开发环境并编译运行网友sunkwei的代码成功基于v4l2的webcam应用, 本地预监--(3)。   一.参照(1)

2013-04-17 16:54:39 1178

转载 堆和栈的区别(转过无数次的文章)

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2013-01-29 10:10:48 378

原创 QT按键过快时按键音延迟播放的问题解决

QT按键增加按键音代码功能,代码如下:void QKeyPushButton::mouseReleaseEvent(QMouseEvent *event){    QPushButton::mouseReleaseEvent(event);    mplay->execute(program,arguments); //此处调用"aplay click.wav"播放按键音文件}

2013-01-24 12:06:05 3247

转载 typedef int(init_fnc_t) (void) 和 typedef int(*init_fnc_t) (void);

typedef int(init_fnc_t) (void);这个就是一个取别名的过程。我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a;这个时候我们的MyInt 就和int是一样的意思。而对于函数的申明我们通常会这样申明:int InitFunction() (void);此时表示申明了一个函数名为Init

2013-01-15 09:53:29 1438

转载 Linux后台运行进程

转自:http://www.ningoo.net/html/2008/how_to_run_processes_on_background_in_linux.html在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:$ ./test.sh &[1] 17208$ jobs -l [1]+ 17208 Runn

2012-12-27 11:04:00 493

转载 Sitara升级U-Boot那些事(支持ubifs)

转自http://bbs.21ic.com/icview-300872-1-1.html基于Sitara的产品,大家都会用到比较大的Flash,不管你用没用,反正我用了。文件系统做出来还是比较胖的。好多人习惯性的沿用了用惯了的JFFS2来生成要烧写的文件。这样的交给生产线时不可避免的可能出现如下问题:1. JFFS2的image是与文件系统大小一比一的,32MB的文件系统就对应32

2012-11-12 15:13:17 1882

原创 QProcess调用外部程序:QProcess::start与QProcess::execute

QT提供了一个QProcess类用于启动一个外部程序并与之通信。QProcess::start()与QProcess::execute()都能完成启动外部程序的任务,二者有什么区别呢?区别在于start()是非阻塞的,而execute()是阻塞的。专业点讲,execute()=start()+waitforFinished()。下面是一个按键的槽函数,它响应按键的按下动作: QStrin

2012-11-01 16:16:51 27434 1

原创 linux内核导出符号

Linux 2.6系统的"/proc/kallsyms"文件对应着内核符号表,它记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名);     //只适用于包含GPL许可权的模块;符号必须在模块文件的全局部分导出,不能在函数中导出,这是因为上述这两个宏将被扩展成一个特殊用途的声明

2012-10-29 11:34:01 2725

转载 linux内核知识之工作队列(workqueue)

工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。    数据结构:struct work_struct { atomic_long_t data;#define WORK_STRUCT_PENDING 0

2012-10-23 17:13:33 1020

原创 alsa编程之播放"嘀嘀"音

项目要求A8板子能够不间断的发出"嘀嘀"音,类似于万用表表针短接的情形。这样的话可以有两种方案:(1)录制一个较长时间的"嘀嘀"音音频文件,用mplayer播放;(2)用户空间编程直接向缓冲写入一3K Hz左右的的PCM数据,循环播放。在这里采用方案(2).下面是代码。#include #include #include #define BUFF_SIZE 2048int main

2012-10-08 09:09:09 587

转载 ALSA之snd_kcontrol探究

转自http://blog.csdn.net/sepnic/article/details/6150723#commentscontrol控制接口控制接口对于许多开关(switch)和调节器(slider)应用广泛,它能被用户空间存取,从而读写CODEC相关寄存器。control的主要用于mixer。它用snd_kcontrol_new结构体描述。snd_kcont

2012-09-09 19:11:52 854

转载 【转】ALSA(lib和util)交叉编译与测试

情况简介ALSA 是目前 Linux 系统上大量采用的音频设备库,通过 Alsa 架构能分离驱动和应用的开发。 Alsa 为上层提供API 的同时,也为下层提供了接口,在内核配置的时候指定“支持 Alsa” 就能得到内核支持,具体位置为:Menuconfig -> Device Drivers -> Sound card support -> Advanced Linux Sound Ar

2012-08-28 20:25:15 529

转载 简述amixer及其用法

alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作。amixer,是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式去配置你的声卡的各个选项。对于amixer的使用,你首先需要搞

2012-08-28 19:40:46 542

原创 U-boot显示LOGO之LOGO篇

U-boot显示开机LOGO的功能实现后,我们不仅要问:LOGO文件有什么样的格式限制(如图片格式?size?)LOGO文件在程序中是如何解码如何调用的?带着这样的问题我们进入精彩的u-boot代码。    我们将目光定位到 tools/bmp_logo.c文件,答案在此揭晓。在文件中main()函数中,我们浏览代码不难发现,这个程序的功能就是将u-boot系统某一目录下的特定bmp格式的图片

2012-06-27 10:36:23 3018

原创 AM3517开发板bootloader启动流程分析

一、启动流程系统完整启动流程分为4个阶段:ROM Code---àx-loader---àu-boot---àLinux系统。二、各阶段详细分析2. 1 ROM Code        该阶段代码固化在芯片内部ROM中,TI不开源。AM3517支持多种方式的启动,并且可以设置启动顺序,设置功能是通过7个引脚sys_boot0~sys_boot6电平来控制的,其中sys_boot

2012-06-26 10:39:06 2715 1

转载 ubuntu安装tftp

tftp 设置1、安装 tftp        apt-get install tftp-hpa tftpd-hpatftp- hpa是客户端,tftpd-hpa是服务器端2、配置 TFTP   gedit /etc/default/tftpd-hpa编辑tftpd-hpa# /etc/default/tftpd-hpaTFTP_USERNAME="

2012-06-04 11:34:32 477

转载 ubuntu 10.04安装 kscope

1.安装kde环境支持:sudo apt-get installkdelibs    (解决kde-config not found)sudo apt-get install xorg-dev  (解决error:can't findX includes?)sudo apt-get install kdelibs4-dev kdelibs4c2a (解决no KDE headers

2012-05-30 20:15:12 849

原创 ubuntu构建QT4.8.0开发环境

1.tar zxvf qt-everywhere-opensource-src-4.8.0.tar.gz -C .   ,得到qt4.8.0源码文件包,cp -r qt-everywhere-opensource-src-4.8.0/ qt4.8.0-for-arm2.cd qt-everywhere-opensource-src-4.8.0/,开始配置编译PC版本QT:  (1)./co

2012-05-30 15:00:18 1559

原创 天漠SOC8200(TI AM3517 ARM芯片)u-boot增加开机logo

经过两个星期的努力,终于初步搞定了位开发板的uboot增加开机logo,此中酸甜苦辣,最终转化为调通那一刻的巨大喜悦,废话不多少,转入正题。uboot增加开机logo的思路其实很简单,写好lcd控制器的底层代码,然后填充一个叫GraphicDevice的结构体,并在/include/configs/am3517_evm.h中增加与显示logo相关的宏。在/drivers/video目录下增

2012-05-11 14:56:46 2319 4

原创 am3517 lcd 裸机代码

#include #include #include #include #include #include #include #include #include #include #include "lcd.h"#define        LCD_Y_SIZE    480#define        LCD_X_SIZE    640

2012-05-07 22:05:18 979

转载 Qt中的 QString和QByteArray

最近在用Qt做串口数据收发方面的实验,经常用到像QString和QByteArray一类的字符处理类,因此在这里做一个总结,文章有点凌乱,希望见谅。       先要说的是QString。      之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结构来实现的。

2012-04-11 23:09:48 611

转载 制作文件系统的JFFS2镜像

一、环境Ubuntu 10.04U-Boot 1.3.3(支持tftp)二、过程1、制作jffs2镜像需要使用mkfs.jffs2工具,首先 安装mkfs.jffs2工具   sudo apt-get install mtd-tools2、退到已做好的rootfs目录的上一级   ~/rootfs$ cd ..   #mkfs.jffs2 -r rootfs -o

2012-03-13 22:21:20 1164

原创 am3517开发板移植qt4.8及支持中文

准备工作:需要编译QT4.8的ARM版本及tslib-1.4 1. 在文件系统 /opt 目录下新建一文件夹 mkdir qt-4.8 2. 把之前编译完成的 qt-4.8-arm 版本下 lib/ 和 plugin/ 文件夹复制到 /opt/qt-4.8,将之前编译好的tslib-1.4文件夹里lib目录下的东东拷贝到文件系统/lib目录3. 从网上下载文泉驿字库文件 wqy-z

2012-03-12 11:27:50 1713

QT写的串口助手带软键盘

QT写的带软键盘的串口助手,成功移植到arm板子

2012-03-09

空空如也

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

TA关注的人

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