自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (2)
  • 收藏
  • 关注

转载 probe函数调用

最近看到linux的设备驱动模型,关于Kobject、Kset等还不是很清淅。看到了struct device_driver这个结构时,想到一个问题:它的初始化函数到底在哪里调用呢?以前搞PCI驱动时用pci驱动注册函数就可以调用它,搞s3c2410驱动时只要在mach-smdk2410.c中的struct platform_device *smdk2410_devices {}中加入设备也会调用

2016-06-08 16:28:48 558

原创 tiny4412 lcd驱动问题记录

fbmem.c文件提供了framebuffer驱动程序的通用文件操作接口,自定义的framebuffer驱动程序可以使用fbmem.c中提供默认的接口。用EXPORT_SYMBOL导出到其他文件中应用s3c-fb.c是针对的三星开发板的lcd驱动文件接口(s3c_fb_probe等)。一下都是在友善tiny4412的linux3.5内核中移植lcd平台资源1.需要添加lcd的平台设

2016-06-08 16:27:54 1194

转载 ubuntu系統下配置nfs服務

#sudo apt-get install nfs-kernel-serverubuntu12.04中的已经是最新版本了,无需安装打开/etc/exports文件,在末尾加入:/home/kevin *(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:/home/kevin:要共享的目录

2016-06-03 10:59:16 364

原创 嵌入式linux系统下gsoap环境搭建和移植

http://www.cnblogs.com/coveted/p/3492342.html

2016-05-04 13:00:04 1962

原创 spi为例的时序讲解

时序理解:SSn:这种电平表示一般为片选信号;从它的电平变低之后数据传输的时序看出。MISO:意思为主入从出,每一个类似的矩形方框,其实代表的是数据的电平高低(因为不知道电平的高低,所以把高电平、低电平都画出来了,中间的交表代表数据电平发生变化.方框中间的分界线前半部分方框代表数据准备阶段,等到电平变化,采集数据,为了避免干扰,所以电平变化之后,还需要保持一段时间,之所以有前后的电平保持阶段,

2016-04-28 18:23:53 1459

转载 spi时序的极性和相位

【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多

2016-04-28 17:13:27 1644

原创 网络通讯经常出现的问题

1:粘包:由于网络情况,出现前后两个包粘到一块。解决办法:制定好协议(包头,包尾,数据长度,校验);2:丢包:有时会出现丢包问题。解决办法:同步方式,发送完之后,给select设定监听超时时间,如果超时未收到回复,重新发送,尝试两三次,如果一直收不到,放弃发送。                     异步方式,开启三个进程:一个线程专门发送,               

2016-04-28 10:15:48 847

原创 多线程的理解

多线程可以并行执行,并且资源是共享的,所有线程的资源都在同一块内存区,对应的全局变量所有线程都是可见的。每个线程都操作同一块内存,都可以读写申请的全局变量多进程的话,不同的进程资源在不同的内存区,资源是独立的。每个进行都操作自己的内存块 可以说定义变量和之前没什么区别,不过可能会多个线程异步对他进行操作,那也就存在一些同步机制而已。 在没有多线程之前,如果想做并行计

2016-04-22 17:39:33 217

转载 s5pv210 jpeg硬件编码

做qt摄像头程序的时候发现yuv转rgb然后显示 效果很不好 所以考虑转jpg后显示 但是使用libjpeg发现格式怎么设置都不对 之前在Android上使用的函数拿过来都不能直接使用 所以还是研究硬编吧 这里使用的是广州斯道ICOOL210开发板 内核版本linux2.6.35前面的一些流程我就不上代码了标准的v4l2流程 格式设置为V4L2_PIX_FMT_YUYV即yuv422格

2016-04-21 17:17:52 596

原创 ubuntu下搭建qtcreator嵌入式qt編譯環境

一:sudo apt-get install libqt4-dev libqt4-dbg libqt4-gui libqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig如果設置的libqt4-sql改爲libqt4-sql-mysql將會安裝mysql數據庫,否則安裝sqllite數據庫。如果在安裝的過程中出現失敗,看其提示,

2016-03-17 23:25:36 765

原创 qt多线程编程出现QPixmap: It is not safe to use pixmaps outside the GUI thread问题

不要在主线程以外使用QPixmap这种情况下, 可以在非GUI线程中发送信号, 由它来通知GUI发生变化即可, 让GUI线程调用QPixmap的方法~`

2016-03-16 09:58:52 2468

原创 ubuntu开启nfs服务,并搭建gdbserver

安装nfs软件#sudo apt-get install nfs-kernel-server-------------------------------------------打开/etc/exports文件,在末尾加入:/home/xgc *(rw,sync,no_root_squash)注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定

2016-02-23 20:06:37 374

原创 需要学习的内容

1:live555的嵌入式linux移植,以及rtsp服务器搭建2:ffmpeg库的裁剪,以及音视频编解码,及转换,还有rtsp服务器搭建,及arm——linux系统下的移植。

2016-02-19 10:57:08 251

原创 usb mode waiting

nand启动运行superboot时,superboot会判断key1是否被按下,如果key1被按下则进入usb-mode

2016-01-19 16:43:26 623

转载 Qt USB通信--hidapi的使用

前面提到过Qt USB通信四种方案,这里详细介绍我使用的hidapi第三方库。  [html] view plaincopy从官网上下载到最新的压缩包hidapi-0.7.0.zip,解压后查看README.txt,里面介绍了三种Windows、Linux、MacOS三种平台下的编译方式:  [html] view plaincopy--

2016-01-13 08:34:02 2822

原创 友善之臂开发板启动脚本配置以及fa-network-service后台服务对网络的配置

涉及的文件/etc/init.d/rcS  :开机后会启动的脚本文件,里面会设置全局变量,挂载文件,创建目录和启动一些脚本和进程等/etc/init.d/ifconfig-eth0 :通过文件名就可以知道这个文件是设置网口eth0相关的mac地址,ip (eth0-setting中设置的)等/etc/eth0-setting ;这文件真正是设备网口相关信息的配置源文件,它会

2016-01-07 11:32:51 1714

原创 qt下信号发送机制

qt下信号发送机制:同一个信号,只有在上一次信号发送所执行的操作都执行完之后,第二次触发的信号才会被再次发送。例如我硬件连续发送两个数据,我触发两次信号,但是第一次信号发送出去之后,第二次信号是不会立马发送出去的,只有等第一次信号发送所要操作的任务完成之后。第二次的信号才会发送出去。

2015-12-21 10:34:44 2062

原创 arm+linux系统开机自动启动带串口qt应用程序遇到open_port error: Inappropriate ioctl for device

本人开发带串口的qt程序,但是到最后,挂到rsc启动脚本,(./应用程序 &)后台启动运行的时候运行到串口配置出现open_port error: Inappropriate ioctl for device;    但是我在命令行运行都是正常的,之后我改成前台启动(./应用程序),也可以正常运行。看到的朋友指点一下,为什么出现这种情况,正常情况应该后台自启动最好了???

2015-12-15 17:53:44 4054 2

原创 qt程序中hid问题记录

1:嵌入式下打开一个设备最好想好是那种方式打开(只读方式,读写方式,阻塞\非阻塞方式)。有一个项目,用到一个串口,两个hid方式的usb口,大体代码如下    FD_ZERO(&rd);    FD_SET(cd_fd, &rd);    printf("set cd fd\n");    FD_SET(rf_fd, &rd);        printf("set rf

2015-12-12 17:39:52 1260

转载 自己修改linux系统启动画面

制作开机Logo方法一:Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译具体方法:#pngtopnm logo_linux_clut224.png > l

2015-12-01 11:03:12 1729

原创 嵌入式Linux下使用crond服务(定期删除过期文件)

crond是一个服务,一个守护进程。crond 是linux用来定期执行程序的命令,crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。按照网上查找的资料执行时经常会碰到这种错误:crontab: chdir(/var/spool/cr

2015-11-28 16:24:20 509

转载 mfc下关于f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\occcont.cpp(926) 的奇怪问题

最近在配布一个程序到客户机上的时候,发现一个奇怪的问题。打开程序,无报错,但屏幕上没有任何显示,在任务服务器里,可以看到程序已经运行。在开发机上,却一点问题也没有。很郁闷的错误。开发环境是WindowsXP+VS2005,是使用MFC的基于Dialog的程序。客户机为HP的服务器,运行环境为Windows2003。原版系统,自动更新系统后,只安装了VC2005的运行环境Redistributa

2015-11-11 09:56:44 3718 3

转载 linux设备驱动之输入(input)子系统——核心层实现

/*************************************************************************************************************************************//* input.h */#ifndef _INPUT_H#define _INPUT_H/* *

2015-11-06 15:41:32 3000

转载 linux设备驱动之输入(input)子系统——数据结构与接口介绍

/****************************************************输入子系统****************************************************************//* *   输入设备(如按键、键盘、触摸屏、鼠标等)是典型的字符设备,其一般的工作机理是底层在按键、触摸屏等动作发生时产生一个中断(或驱动通过t

2015-11-06 15:36:48 256

转载 输入子系统--event层分析

#####################################################################################################早前曾研究了一下输入子系统的原理,给人的感觉是输入子系统很复杂.但其实内核开发者在这方面已经做得很完善了,输入子系统虽然错综复杂,但是只要我们领会了输入子系统的一些设计思想后,我们要使用它并

2015-11-06 15:25:20 185

转载 Linux输入子系统:输入设备编程指南 -- input-programming.txt

基本事件类型(types)~~~~~~~~~~~~~~~~~~~~~最简单的事件类型是EV_KEY,它用于键盘和按钮,它通过以下函数上报给input子系统:[cpp] view plaincopyinput_report_key(struct input_dev *dev, int code, int valu

2015-11-06 15:20:19 254

转载 Linux输入子系统:事件的编码 -- event-codes.txt

输入系统协议用类型types和编码codecs来表示输入设备的值并用此来通知用户空间的应用程序。这篇文档对这些类型和编码进行了说明并且指出什么时候和如何使用这些类型和编码。 一个单一的硬件事件可以产生多个输入事件,每个输入事件包含一个单一数据项的新的数据值。EV_SYN是一个特别的事件类型,它用来把同一时刻产生的多个输入数据分割为多个数据包。在下面的描述中,术语事件(event)是指一个涵

2015-11-06 14:41:36 241

转载 Linux输入子系统:input.txt

1. 简介~~~~~~~~~~~~~~~这时一组驱动的集合,它们可以用于所有的基于linux的输入设备,虽然目前它只是用于USB输入设备,将来(2.5、2.6版本)它们将会被扩展并替换掉现存的多数输入系统,这就是为什么它们被放在drivers/input/目录下,而不是drivers/usb/。 输入设备驱动的核心是input模块,它需要在其他输入模块之前被加载--它是输入

2015-11-06 14:40:23 314

转载 Linux如何查看与/dev/input目录下的event对应的设备

1. /dev/input目录    /dev/input目录下的事件都是在驱动中调用input_register_device(struct input_dev *dev)产生的。如我的盒子的/dev/input目录的内容如下:[cpp] view plaincopycrw-rw---- root     input     13,

2015-11-06 12:48:27 508

转载 linux驱动调试技巧:灌寄存器---------以mma7660为例

本文可以使用linux的cat echo命令直接设置mma7660的寄存器的值部分driver代码如下:static DEVICE_ATTR(mma7660_regs, S_IRUGO | S_IWUGO, show_7660regs, write_7660regs);//mma7660_regs对应着一个文件名字,show_7660regs, write_7660re

2015-11-06 11:21:14 355

原创 mma7660(gsensor)的hwmon驱动

gsensor驱动在系统中的层次如下图所示:Gsensor驱动(bma250为例子)" title="[转载]linux Gsensor驱动(bma250为例子)" style="margin:0px; padding:0px; border:0px; list-style:none">图中包含三个部分:hardware, driver, input:n

2015-11-06 11:13:25 1272

转载 Linux音频设备驱动

在Linux中,先后出现了音频设备的两种框架OSS和ALSA,本节将在介绍数字音频设备及音频设备硬件接口的基础上,展现OSS和ALSA驱动的结构。17.1~17.2节讲解了音频设备及PCM、IIS和AC97硬件接口。17.3节阐述了Linux OSS音频设备驱动的组成、mixer接口、dsp接口及用户空间编程方法。17.4节阐述了Linux ALSA音频设备驱动的组成、card和组件管

2015-11-04 14:10:44 746

转载 led子系统下应用层编程

看了这么多内核代码,终于要自己开始做驱动了.按照由易到难,由浅入深的顺序,就从LED开始.LED驱动可以说是hello world之后最简单的驱动模块了.如果自己写一个LED驱动那是很简单的,其实用linux内核中的leds子系统来做也是比较简单的,内核中的leds子系统是将led抽象成platform_device,并有leds_class.这样,在/sys/class/leds/目录下

2015-10-29 18:03:11 311

转载 usb读卡器

首先用  cat /proc/bus/input/devices 确定读卡器设备在系统里的注册信息cat /proc/bus/input/devicesI: Bus=0019 Vendor=0001 Product=0001 Version=0100N: Name="gpio-keys"P: Phys=gpio-keys/input0S: Sysfs=/

2015-10-28 17:05:04 1106

原创 libusb移植

进入libusb-1.0.8,交叉编译:    mkdir install    ./configure --build=i686-linux --host=arm-linux --prefix=`pwd`/install   make    make install说明一下:--build=i686-linux表示该软件在x86平台上被编译

2015-10-27 10:21:33 652

转载 linux系统修改启动logo的步骤

1:准备png图片;2:安装netpbmapt-get install netpbm3:制作 ppm图片保存一个png图片logo.png,按如下方式操作:#pngtopnm logo.png > linuxlogo.pnm# pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm# pnmtoplainp

2015-10-13 16:26:41 1404

原创 arm平台下linux系统时间设置

arm开发板上Linux下如何保存设置的系统时间?答:分以下步骤进行:(1)通过开发板控制台设置开发板的当前系统时间:date [MMDDhhmm[[CC]YY][.ss]]例如:date 010410462008(2)将系统时间写入RTC:hwclock -w读出检验一下,写入是否正确: hwclock -r(3)修改开发板根文件系统中的/etc/init

2015-10-12 11:39:29 722

转载 LCD驱动中pixclock的计算

在LCD驱动程序中,需要我们根据LCD datasheet来设置相应的参数,这些参数包括:pixclock,left_margin,right_margin,upper_margin,lower_margin,hsync_len,vsync_len,VBP,VFB,VSPW,HBP,HFP,HSPW。下图是典型的TFT LCD时序图:   __u32 pixclock; /*像素时钟(

2015-10-09 11:02:14 268

原创 dm368内核编译问题

1:首先在内核文件夹当中选择编译配置文件arch/arm/configs下选则davinci_dm368_ipnc_defconfig_nand(nandflash启动),davinci_dm368_ipnc_defconfig_nfs(nfs文件系统启动)2:make menuconfig保存退出3:make ARCH=arm CROSS_COMPILE=arm_v5t_le-

2015-09-30 18:04:00 565

原创 usb摄像头的录像时注意事项

v4l2 抓取的帧为 YUV422packed,但 ffmpeg 中 mpeg4 编码的输入帧格式为 YUV420planar,所以最终录像成视频的时候,要将 YUV422packed转换成 YUV420planar

2015-09-25 16:39:58 462

mfc硬件编解码入门学习好代码

arm平台下mfc编解码入门学习的好代码。

2016-04-27

ubuntu12.04及以上配置vim成c/c++,qtIDE开发环境

本文件是在ubuntu下配置vim,变成C/C++集成开发环境,实现代码自动补全,函数参数提示,代码跳转,文件列表和函数项显示等功能,在ubuntu12.04 和ubuntu14.04中测试通过,只需执行vim.sh脚本即可,注意脚本中的vim73代表的是ubuntu 12.04vim的目录,如果是在ubuntu14.04中使用,将vim73换成vim74即可

2015-01-04

空空如也

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

TA关注的人

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