- 博客(79)
- 资源 (14)
- 收藏
- 关注
转载 Linux 2.6.32系统中基于dm6467平台ASOC架构的音频驱动
花了大概40天时间从零开始调音频驱动到目前的基本成功,中间也走了不少弯路,今天抽点时间把整个流程走下来,希望以后能作为参考。 1.dm6467平台sdk_3_10版本中使用到的audio模块框架采用asoc模式,asoc框架主要包含4部分内容: (1)codec模块驱动:如,visiondigi板子上采用tlv320aic23芯片,代码中文件tlv320
2014-03-27 10:32:22
806
转载 Linux时间函数
转载http://blog.csdn.net/water_cow/article/details/7521567系统环境:ubuntu10.04简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec
2014-03-18 13:41:09
710
转载 spi流程
开发板为sbc3530,芯片为ti的omap3530Mscpi主设备。/arch/arm/match-omap2/devices.cstatic struct omap2_mcspi_platform_configomap2_mcspi1_config = { .num_cs = 4,}; static struct resourceomap2_
2014-03-06 16:38:54
1622
转载 spi(5)参考资料
OMAP3630下的Linux SPI总线驱动分析(2)4 OMAP3630 SPI 控制器驱动 在Linux内核中,SPI 控制器驱动位于drivers/spi目录下,OMAP3630 的spi控制器驱动程序为omap2_mcspi.c。 SPI 控制器驱动的注册采用Platform设备和驱动机制。4.1 SPI 控制器的Platform devi
2014-03-06 16:26:02
1782
转载 spi(3)
浅析驱动注册函数driver_register()(转) int driver_register(struct device_driver * drv){ if ((drv->bus->probe && drv->probe) ||//drv和drv所属的bus之中只要1个提供该函数即可,否则也只能调用bus的函数,而不理会drv的 (drv->bu
2014-03-06 16:21:41
1828
转载 spi(2)pxe8311+spi-altera+m25p驱动设计
这个是也是网上转载过来的,流程很有用1. spi master设备相关数据static struct resource ninja_platform_resources[] = { [0] = { .flags =IORESOURCE_MEM, }};static struct platform_device ninja_platform_device = {
2014-03-06 16:12:06
870
转载 spi(1) platform_get_resource
这篇文章是转载别人的!用来参考spi驱动的这几天和小段研究了下platform_get_resource函数的使用,总结如下: 在platform机制下,板级文件BSP一般定义了设备的资源,在系统初始化的过程便对platform_device进行注册,接着注册platform_driver,两者都注册完毕之后哦,platform_driver便去probe,在pro
2014-03-06 16:10:23
727
转载 SPI内核驱动模型-dm8127
利用TI提供的已有SPI内核驱动模型,该方案需要我们了解内核的SPI驱动模型是如何实现的。3.1. SPI内核驱动模型在2.6的linux内核中,SPI的驱动架构可以分为如下三个层次:SPI 核心层、SPI控制器驱动层和SPI设备驱动层。Linux中SPI驱动代码位于drivers/spi目录。3.1.1. SPI核心层SPI核心层是Linux的SPI核心部分,
2014-03-01 10:50:47
2272
转载 make module失败的原因cc1: error: unrecognized command line option "-m64"
[root@localhost 123]# makemake -C /work/cs/YL-9G45/linux-2.6.30 M=/work/rootfs/123 modulesmake[1]: Entering directory `/work/cs/YL-9G45/linux-2.6.30' CC [M] /work/rootfs/123/test.occ1: erro
2013-12-14 14:17:51
3075
转载 pppd源码详解
前言:PPP(Point to Point Protocol)协议是一种广泛使用的数据链路层协议,在国内广泛使用的宽带拨号协议PPPoE其基础就是PPP协议,此外和PPP相关的协议PPTP,L2TP也常应用于VPN虚拟专用网络。随着智能手机系统Android的兴起,PPP协议还被应用于GPRS拨号,3G/4G数据通路的建立,在嵌入式通信设备及智能手机中有着广泛的应用基础。本文主要分析Linux
2013-11-26 17:24:22
9870
4
转载 Linux中的工作队列
工作队列的用处:工作队列的作用就是把工作推后,交由一个内核线程去执行,更直接的说就是如果您写了一个函数,而您现在不想马上执行它,您想在将来某个时刻去执行它,那您用工作队列准没错.您大概会想到中断也是这样,提供一个中断服务函数,在发生中断的时候去执行,没错,和中断相比,工作队列最大的好处就是可以调度可以睡眠,灵活性更好.内核定时器是不能进行睡眠的。那么我们所要做的就是利用工作队列.如
2013-11-22 13:05:18
1021
转载 中断和定时器不允许睡眠: BUG: scheduling while atomic: swapper/0/0x00000100
BUG: scheduling while atomic: swapper/0/0x00000100 Modules linked in: iqs316
2013-11-21 17:16:36
2206
转载 Linux内核模块时间同步函数汇总
在linux内核模块中能用到的函数比用户空间多,但是它的函数往往被用得很少。当然在内核中叶可以调用用户空间的函数只要直接调用系统调用的封装函数就行,如下:如调用long gettimeofday(struct timeval tv, struct timezone tz);函数可以直接调用封装体:_syscall1(long,gettimeofday, struct timeval,tv,
2013-11-21 14:28:34
946
转载 linux 拷贝远程文件
如果要从远程主机拷贝文件,必须用SCP命令,下面是SCP命令的用法。一、将本机文件复制到远程服务器上 #scp /home/administrator/news.txt root@192.168.6.129:/etc/squid /home/administrator/ 本地文件的绝对路径 news.txt 要复制到服务器上的本地文件 root 通过root用户登录到远程服
2013-11-20 15:36:39
987
转载 wait_event_interruptible_timeout和schedule_timeout的区别
上面提到的采用schedule()函数的解决方法之所以还不是最佳的,其根本原因在于调用schedule()函数的进程依然处于CPU的运行队列中。为了解决这个问题,此时应该能想到内核提供的另外一种可供设备驱动程序使用的调度类的基础设施:schedule_timeout。所以,如果一个延迟1 s的函数可以用下面的这样一个简单的代码段来实现:delay_1s() { set_curren
2013-11-19 15:02:27
2415
转载 linux设备驱动:poll和sellct
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2013-11-18 14:13:52
820
原创 对文件操作过程中的小心得
ch = fgetc(fp)是对fp文件进行去一个字符,但是要注意的是,ch读完之后,fp已经发生1个字节的偏移了,假如下面还要对fp进行操作,就需要重新进行fseek。fputc('\n', fp)写入一个字符到fp文件中,fgets读取一串字符:fgets(buf, 255, fp);读完整个文件返回NULL,fopen也是返回NULL(假如出错的话)。假如fegets读取小于一行的字
2013-11-15 16:07:10
585
原创 自旋锁和信号量的区别
信号量可能允许多个持有者,而自旋锁在任何时候只能允许一个持有者,当然信号量也有一个持有者的(就是互斥锁),允许多个持有者的是计数信号量。信号量适合保持时间较长的情况,而自旋锁适合于保持时间较短的,自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"因此而得名. (自旋锁不会睡眠,只会在那里不停的循环等待),而信号
2013-11-12 14:01:18
652
转载 3G模块PPPD拨号流程分析
1 案例描述现在公司的前端产品很多都使用3G模块来作为网络连接的接口,而3G拨号使用PPPD程序,了解拨号程序的流程对解决3G连接网络的问题会有很大的帮助,鉴于此重要性,对PPPD的拨号流程做一个简要的分析。因为PPPD程序不依赖与硬件平台,这里没有指定具体应用的场景,目的在于说明这个拨号程序的通用性。目前公司平台采用的这个程序的版本是ppp-2.4.3。本文只对PPP
2013-11-07 13:52:28
2214
原创 PPPOE和pppd的流程详解
一 终端 终端介绍 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。看下面一副图展示了计算机系统与终端之间得联系。 终端驱动程序的主要功能是在程序与相关设备之间进行数据传递。在一个LINUX内核自身的内部,终端基本上包括两个主要的软件部分:设备驱动程序和行规则(见下图)。 设备驱动程序是一个写到具体硬件上
2013-11-07 13:46:46
12795
1
原创 有关于指针和指针变量的错误的理解
从cdsn上看到这么一篇程序:#include struct S{int i;int *p;};void main(){struct S s;int *p=&s.i;p[0]=1;p[1]=2;s.p=p;s.p[1]=3; pritnf("aa");s.p[0]=4;}以下是自己加的打印信息: 1 #in
2013-10-29 16:35:33
786
转载 uboot-ping代码学习笔记
uboot-ping代码学习笔记2011-02-20, root最近这两天学习了uboot的ping源代码,现在做一下笔记。 uboot :v1.1.6 uboot从start.s启动后会跳转到lib_arm/board.c里的start_armboot函数,从这以后都 是C语言代码。start_armboot做了一些初始化化然后在死循环里
2013-10-28 14:44:08
792
原创 中断申请后在close(fd)之后,进行中断释放 free_irq,但是有一下报错
------------[ cut here ]------------WARNING: at kernel/irq/manage.c:1147 __free_irq+0x108/0x17c()Trying to free already-free IRQ 19Modules linked in: sar_adc hi3518_adec(P) hi3518_aenc(P) hi3518
2013-10-25 15:31:15
2092
2
原创 异步通知机制=====》》fasync
应用层中启用异步通知机制其实在应用层启用异步通知只三个步骤:1)signal(SIGIO, sig_handler);调用signal函数,让指定的信号SIGIO与处理函数sig_handler对应。2)fcntl(fd, F_SET_OWNER, getpid());指定一个进程作为文件的“属主(filp->owner)”,这样内核才知道信号要发给哪个进程。3)f_fla
2013-10-23 17:12:36
771
原创 ubuntu 桥接方式 设置静态ip
1.虚拟机设置桥接方式 2.修改文件/etc/network/interfaces3.文件/etc/resolv.conf 配置dns(与宿主电脑的一样)4.重启网络 sudo /etc/init.d/networking restart.
2013-10-22 16:31:28
644
原创 编译链接库的问题
gcc lib.c -c生成 lib.o编译库是ar -r lib.a lib.o, 这个时候要注意,一定是先生成*.o文件,在进行链接,其实库只是一个链接的过程的结果。然后gcc a.c lib.a -o hello最后就生成了hello可执行文件了。链接上了lib.a里面的函数了。
2013-10-16 16:42:59
539
原创 网络编程 socket 之 bind 函数
网络编程socket之bind函数摘要 :在套接口中,一个套接字只是用户程序与内核交互信息的枢纽,它自身没有太多的信息,也没有网络协议地址和端口号等信息,在进行网络通信的时候,必须把一个套接字与一个地址相关联,这个过程就是地址绑定的过程。许多时候内核会我们自动绑定一个地址,然而有时用户可能需要自己来完成这个绑定的过程,以满足实际应用的需要,最典型的情况是一个服务器进程需要绑定一个众所周知的地址
2013-10-11 18:28:31
763
原创 setsockopt函数使用
int setsockopt (SOCKET s, int level, int optname, const char FAR * optval, int optlen );The Windows Sockets setsockopt function
2013-10-11 18:23:29
1328
原创 insmod 驱动8191su或者rt3070报错
root@192:/mnt# insmod 87insmod: can't read '87': No such file or directoryroot@192:/mnt# insmod 8712u.ko 8712u: Unknown symbol usb_alloc_urb (err 0)8712u: Unknown symbol usb_free_urb (err 0)
2013-10-08 18:30:43
10255
原创 设置mac地址
*命令行设置mac地址 ifconfig eth0 down busybox ifconfig eth0 hwether 001122334455 (如果前两位不是偶数,可能会报错ifconfig: SIOCSIFHWADDR: Cannot assign requestedaddress,因为表示请求的MAC地址不是一个单播地址,要获得的第一个字节作为一个单播地址必
2013-10-08 14:34:56
1244
转载 转载别人的错误,自己提高
编程不经历错误或警告,怎能见彩虹,没有人能随随便便成为高手。身为程序员的我们,如果哪一天没有了错误或警告的提示,一定会有一种不祥的预感,对吧,都懂的。编程N年来,碰到过的问题多得自己都记不清了,你也一样,如果可以选择,我愿时光倒流,真希望都能记下来,现在就可以写本《错误集》了,。下面是我心情好时,有想法时,随手记下的几个错误或警告,遗憾的是,这些年,就记下那么几个而已,见笑了,希望能给像我一样在路
2013-09-26 16:59:37
1463
原创 虚拟机挂载新硬盘的方法
随着在虚拟机中存储的东西的逐渐的增加,虚拟机的硬盘也逐渐告急,因此急需拓展一块新的虚拟磁盘。以下便是在VMware 中添加新的虚拟磁盘的方法: 一、VMware新增磁盘的设置步骤(建议:在设置虚拟的时候,不要运行虚拟机的系统,不然添加了新的虚拟磁盘则要重启虚拟机)1、选择“VM”----“setting”并打开,将光标定位在hard Disk这一选项,然后点击下方的Add按钮
2013-09-24 19:31:06
1877
转载 SD存储卡系统物理层简化规范V2.00——汉化简化版
SD存储卡系统物理层简化规范V2.00——汉化简化版原文地址:http://wiki.emsym.com/wiki/SD%E5%AD%98%E5%82%A8%E5%8D%A1%E7%B3%BB%E7%BB%9F%E7%89%A9%E7%90%86%E5%B1%82%E7%AE%80%E5%8C%96%E8%A7%84%E8%8C%83V2.00%E2%80%94%E2%80%94%E6%B1%
2013-09-11 14:31:20
2632
原创 看sensor datasheet 里说到AE时,有个integration time 积分时间,当光源周期与integration time
integration time即积分时间是以行为单位表示曝光时间(exposure time)的,比如说INT TIM为159,就是指sensor曝光时间为159行,两者所代表的意思是相同的,都是表示sensor的曝光时间,但是integration time是一个相对的概念,即以行为单位,而每行所占的绝对时间与pclk的时钟频率和每一行包含多少pclk(即行长)有关;而exposure t...
2013-08-06 15:42:37
4643
1
转载 vsync, hsync, VBLANK
vsync: vertical synchronization, 指与显示器的帧数同步. 简单来说就是启用了vsync的渲染过程,帧数不会超过显示器的帧数, 一个同步会被执行. 同步的地方就是显示器扫描线结束最后一行扫描准备开始第一行扫描的地方.hsync: horizonal synchronization, 相比于vsync来说, 同步的单位从帧降到行,即是保证操作不是在扫描一行的中
2013-08-06 10:17:22
7515
原创 用wpa_cli工具时候报错
wpa_cli v0.7.3Copyright (c) 2004-2010, Jouni Malinen and contributorsThis program is free software. You can distribute it and/or modify itunder the terms of the GNU General Public License ver
2013-07-08 13:16:31
2013
1
原创 make: /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-: Command not found
这种错误有: 1.makefile中你定义的交叉工具 /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux- gcc这个中间加了空格。 2.就是etc/profile中没有添加路径
2013-06-27 12:55:54
3420
原创 编译海思3520内核时候报错drivers/mfd/ezx-pcap.c:205:2: error: implicit declaration of function 'irq_to_gpio' [-
以下的解决的办法Received: by 10.180.24.165 with SMTP id v5mr1627194wif.1.1344895802661; Mon, 13 Aug 2012 15:10:02 -0700 (PDT)MIME-Version: 1.0Path: q11ni115673333wiw.1!nntp.google.com!goblin2!gobli
2013-06-24 13:53:43
4276
cea861d,cea861d,cea861d,
2011-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅