自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

转载 PCI quirks.c介绍

在drivers/pci/quirks.c 中可以注册函数修复pcie的bug。例如  static void quirk_mellanox_tavor(struct pci_dev *dev)  {      dev->broken_parity_status = 1;   /* This device gives false positives */  }  DECLARE_PCI_FI...

2018-03-07 17:01:26 1984

原创 sudo后 环境变量被重置为默认

搞定了!在/etc/sudoers中修改:Defaults    env_reset为:Defaults    !env_reset这样,任何环境变量都可以通过sudo传进去了。

2015-03-09 15:21:46 3714 1

转载 Ubuntu下搭建tftp服务器最简单方法

今天开始调试ARM的板子,要通过tftp下载到板子上,所以又要配置tftp服务器,真的烦死了… (本人酷爱装系统,所以经常都要搞配置)因为之前已经在Ubuntu下搭建过很多次tftp服务器了,但是一直记不住那一个配置文件的名字(记性太差),所以每次都要百度。可是每次百度出来的结果都不一样,而且出入很大,有的过程相当的繁琐,不仅很麻烦,而且搞到最后还没有配置成功。所以干脆写个日志记下

2015-03-07 20:10:19 673

原创 linux内核版本检查脚本 git后导致内核版本发生变化

http://blog.chinaunix.net/uid-22028680-id-3190615.html在一次编译kernel版本的时候我突然发现,“2.6.35.7“的内核版本编译成功后生成的版本号变成了“2.6.35.7+”,百思不得其解为什么后面会多一个加号。一步一步的查找,我发现了问题所在,原来问题出现在linux的版本控制这一块。打开Makefile我们可以在文件的最上面可以

2015-03-06 17:39:29 754

转载 Linux - 如何查看USB设备信息

方法一:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus/usb.方法二:在shell中输入mount -t usbfs /proc/bus/usb /proc/bus/usb.前提是在编译内核时选中usb device filesystem。# cat   /proc/bus/usb /deviceT:  Bus=0

2014-12-31 15:44:10 1914

转载 arm-linux-gcc/ld/objcopy/objdump参数总结

arm-linux-gcc/ld/objcopy/objdump参数总结arm-linux-gcc -wall -O2 -c -o $@ $ -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 -Wall 指定产生全部的警告信息 -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高 -c 表示只要求编译器进行编译,

2014-12-29 21:03:25 719

原创 编译报undefined reference to `__aeabi_uldivmod'错误

编译内核时还有个错误undefined reference to `__aeabi_uldivmod',上网查了说是GCC4.3对代码的优化导致的。打开Makefile修改KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \                               

2014-11-21 16:35:27 17003 1

转载 浅谈 Linux 内核开发之网络设备驱动

浅谈 Linux 内核开发之网络设备驱动网络设备介绍网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口。众所周知,在 OSI(Open Systems Interconnection,开放网际互连)中,网络被划分为七个层次,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。我们所讲的网络设备也包括两个层次,一层叫做

2013-12-26 15:40:52 908 1

转载 BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明

ITU-R BT.601和ITU-RBT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准。严格来说,ITU-R BT.656应该是隶属ITU-R BT.601的一个子协议。ITU-R BT.601是演播室数字电视编码参数标准,而ITU-R BT.656 则是ITU-R BT.601附件A中的数字接口标准,用于

2013-12-06 15:37:39 5810

原创 linux I2C设备驱动

linux I2C设备驱动主要包括两部分:设备注册、驱动程序1、设备注册主要涉及到一个结构体和一个注册函数:struct i2c_board_info {char type[I2C_NAME_SIZE];unsigned shortflags;unsigned shortaddr;void *platform_data;struct dev_archdata

2013-12-05 17:25:00 842

原创 dm365 驱动gpio使用

1、为了方便使用ti内核中提供的配置引脚复用的函数davinci_cfg_reg(),首先在arch/arm/mach-davinci/dm365.c文件中static const struct mux_config dm365_pins[] = {数组添加如下内容:MUX_CFG(DM365,  GPIO84,         1,   16,    1,    1,     false)

2013-11-25 11:32:04 1831

转载 linux中shell变量$#,$@,$0,$1,$2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用

2013-11-20 10:58:11 768

转载 shell程序设计的语法--lt;条件测试>

条件测试是程序设计中不可缺少的一部分.以下就是shell程序设计中常见的条件测试方法.    “test”或”[ ]”命令:使用这二个命令用来测试条件是真还是假.使用方法:    if test –f file.c 或 if [ -f file.c ]    then … then …    fi fi    当条件满足(即为真)时,则执行then后面的语句.   

2013-11-20 10:42:29 1245

转载 PCB抗干扰设计原则(转)

一 电源线布置:1、电源线、地线的走向应与资料的传递方向一致。二 地线布置:1、数字地与模拟地分开。2、接地线应尽量加粗,致少能通过3倍于印制板上的允许电流,一般应达2~3mm。3、接地线应尽量构成死循环回路,这样可以减少地线电位差。三 去耦电容配置:1、印制板电源输入端跨接10~100μF的电解电容,若能大于100μF则更好。2、每

2013-11-14 11:32:32 7681

转载 模拟地与数字地、磁珠、电感

简单来说,数字地是数字电路部分的公共基准端,即数字电压信号的基准端;模拟地是模拟电路部分的公共基准端,模拟信号的电压基准端(零电位点)。一、分为数字地和模拟地的原因:      由于数字信号一般为矩形波,带有大量的谐波。如果电路板中的数字地与模拟地没有从接入点分开,数字信号中的谐波很容易会干扰到模拟信号的波形。当模拟信号为高频或强电信号时,也会影响到数字电路的正常工作。模拟电路涉及弱小信号

2013-11-14 11:30:13 7851

转载 Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。            于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。           后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比

2013-11-06 13:49:14 1209

原创 linux串口驱动

驱动结构主要包括下面三个部分:举例dm368串口驱动:包含主要三个文件:drivers/serial/serial_core.c、drivers/serial/8250.c、arch/arm/mach-davinci/serial.c1、serial.c程序是负责想系统注册串口设备。2、8250.c是serial.c注册的设备对应的驱动程序。3、serial_core.c设备无

2013-10-29 15:53:28 918

原创 linux 替换目录下所有文件中某个字符串命令

sed -i "s/5158/5147/g" `grep 5158 -rl ./tvp5147/`上面命令中,将./tvp5147目录下5158字符串换成5147,注意上面命令中的 `符号,是键盘上按键1旁边的那个按键。

2013-10-16 17:21:53 1259

原创 linux内核中,对读取文件的使用

由于内核中没有对应用编程中对文件的打开读写操作的函数,下面介绍一种方式来使得内核中可以对某个文件进行读写:定义一个静态常量数组,如下:static const UInt8 gVps_tvp5158Patch[] = {#include "vpsdrv_tvp5158Patch_v2_03_02.h"};再对整个数组中变量进行操作:Int32 Vps_tvp5158Pat

2013-10-12 11:10:22 938

转载 C语言宏的高级应用 #与##作用

关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP)          do{ if (EXP)                  fprintf(stderr, "Warning: " #EXP ""); } 

2013-10-09 10:33:37 653

转载 mcfw框架介绍

整体上mcfw框架如下图从中可见其层次是清楚的,link实在基本的驱动之上的,而mcfw是在link之上的api,是通过link来实现相应的功能.可见link是框架中承上启下的层次,通过link来实现具体的功能,所以对link进行深入的学习和了解,对于理解mcfw以及扩展其功能是至关重要的.link的主要功能包括视频的输入输出,视频的编解码,以及dsp算法等.ezs

2013-09-22 10:49:15 4544

原创 MTD NANDFLASH驱动相关知识介绍

MTD,Memory Technology Device即内存技术设备字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数据的基本单元不同。字符设备,以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系由字符设备的file_op

2013-09-04 14:24:34 4922

转载 struct nand_ecclayout 之解义 ,eccbytes,eccpos,eccfree

内核的nand flash驱动真可谓用“日新月异”来形容,今儿个刚写完的驱动,等到明天下个新内核放进去,又不好使了,shit!这里讨论下struct nand_ecclayout,即nand 的ecc布局问题,基于2.6.32-rc2.该结构体定义如下: struct nand_ecclayout {uint32_t eccbytes;    //表示使用几

2013-09-04 11:13:00 1163

原创 uboot命令

#define CONFIG_BOOTCOMMAND    "nboot 0x30400000 0 0x60000\;bootm"其中nboot是uboot指令--将nand flash中的内容加载到sdram中,0x30400000是拷到的sdram的地址,0是nand flash设备号,0x60000是内核在nand flash的地址。在通过bootm从0x30400000启动内核。

2013-09-02 13:55:47 3274

原创 编译RT5572 RT3572

问题一:scripts/Makefile.build:49: *** CFLAGS was changed in "/opt/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux/Makefile". Fix it to use EXTRA_CFLAGS.  Stop.解决方式:make  KBUILD_NOPEDANTIC=1Ther

2013-08-28 13:26:25 3610

原创 linux音频驱动架构

1、linux音频驱动架构分为3部分组成:硬件无关层(核心层ALSA)、板级音频数字接口层驱动(McASP、McBSP等)、外部codes驱动sound/soc/davinci/ti81xx-etv.c

2013-08-23 14:05:34 2045

原创 linux内存相关情况

Linux内核是如何知道物理内存大小的?在嵌入式系统中物理内存的实际大小是由bootloader传递给内核的,bootloader传递给内核的内存大小值是由开发人员根据内存的实际大小配置的,有改动就需要重新编译,而且并不是所有的物理内存内核都能用,有相当一部分内存会留给私有模块(像camera、gpu等),这些内存内核自身访问不到。uboot相关的linux内存配置:(

2013-08-22 15:09:25 740

转载 关于linux mmc/sd驱动程序架构

关于linux mmc/sd驱动程序架构今天花了时间简单看了mmc/sd部门内容和代码,我觉得形式上,这个部分和i2c非常相似系统也是分成core层,host层(对应i2c的adapter),设备层如果这样讲,那么core层主要功能应该是提供host注册,总线注册,设备注册的几个方法以及所谓sdio总线接口的算法了。host层已经是注册一个platform设备,其中应该提供主要sd

2013-08-16 13:29:43 734

原创 linux内核DMA内存分配

linux系统启动过程中,会初始化整个内核地址空间,将其划分为各个类型段,其中包括物理内存映射区(又称之为逻辑地址映射区)、虚拟内存分配区、高端页面映射区、系统保留映射区、DMA映射区(这个类似物理内存映射区,其映射的物理地址是连续的)这几个区域等等,linux内核在启动的时候通过arch/arm/include/asm/memory.h中的CONSISTENT_DMA_SIZE宏配置内核地址空间

2013-07-24 14:45:05 5017

转载 DCLK/HS/VS/DE信号介绍

只要是数字信号处理电路,就必须有时钟信号。在液晶面板中,像素时钟是一个非常重要的时钟信号。像素时钟信号的频率与液晶面板的工作模式有关,液晶面板分辨率越高,像素时钟信号的频率也越高。在一行内,像素时钟的个数与液晶面板一行内所具有的像素数量相等。例如,对于1024×768的液晶面板,一行有1024个像素,则在一行中(对应于有效视频区间)像素时钟的个数也是1024个。无论对TTL接口液晶面板,还

2013-06-18 09:38:50 13671

原创 BT656、601、BT1200、709

601是SDTV的数据结构 656是SDTV的interface709是HDTV的数据结构 1120是HDTV的interface

2013-04-15 14:41:01 2769

转载 USB_ModeSwitch 介绍

USB_ModeSwitch 介绍(转)1.简介usb_modeswitch是一个模 式切换工具,用于控制含有多个USB子设备的USB设备。如果你使用过3G的无线上网卡,你应该会很清楚的了解到这一点。具体点来说,目前一些新的USB 设备在内部含有windows驱动,当你第一次插入的时候,它作为一个闪存,并提示你安装驱动。在安装驱动之后,驱动会自动切换USB设备的模式

2013-04-08 10:23:32 10627

原创 dm8168 i2c不稳定问题

dm8168 有两个i2c通道,ti提供的内核只支持通过i2c0来访问挂载在i2c0_scl和i2c0_sda上的设备。所以如果调用ti内核i2c_transfer函数来访问i2c1上的设备会出现给人一种不稳定的现象,其实其本质根本就没有访问成功。要判断I2C问题是否是上面介绍的情况,只需要查看电路板设计原理图就行 。

2013-03-21 13:59:06 1666

转载 git ignore file, Git增加忽略文件

最简单的方法在项目根目录与.git目录同一位置创建一个文件: .gitignoretouch .gitignorevi .gitignore:wq注:如果要忽略的文件已被git管理,需要先移除,命令如下:e.g.:git rm -r --cached  WebRoot/WEB-INF/classes/**/*-r:递归git comm

2013-03-21 10:03:48 914

转载 使用 vimdiff 來呈現 Git diff 差異

原文地址:http://blog.longwin.com.tw/2009/11/vimdiff-vs-git-diff-2009/GIT diff 最近一次 commit 到此次更改的所有變動(進階參數, 暫時先不列入此範圍), 呈現結果跟一般 diff 差不多.註: 若於 .gitconfig 設定下述, 則可多加上顏色區別.[color]    diff = a

2013-03-21 10:02:25 2952

转载 linux中inittab文件详解

init的进程号是1(ps -aux | less),从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。理解Runlevel:  runlevel用来表示在init进程结束之后的系统状态,在系统的硬件中没

2013-03-18 11:23:28 828

转载 设置环境变量永久生效和临时生效 export PS1

source/etc/profile是让/etc/profile文件修改后立即生效,还有一种方法是:. /etc/profile注意:.和/etc/profile有空格linux中source命令source命令也称为“点命令”也就是一个符号(.).source命令通常用于重新执行刚修改的初始或文件,使之立即生效,而不必注销并重新登录。 一、Linu

2013-03-12 14:03:07 2286

原创 ssh移植 8168

1、下载下面3个文件  openssh-4.6p1.tar.gz    http://www.openssh.com/portable.html    openssl-0.9.8e.tar.gz    http://www.openssl.org/source    zlib-1.2.3.tar.gz    http://www.zlib.net

2013-03-01 14:30:42 632

翻译 High-DefinitionVideo Processing Subsystem (HDVPSS)

这一章介绍了高清视频处理子系统(HDVPSS)。2.1导论2.1.1 简介HDVPSS 使用TI开发的算法,灵活的复合和融合引擎,各种高质量外部视频接口,实现视频/图像显示和采集处理功能。2.1.3 缩略语名称定义 COMPCompositor复合器

2013-02-25 14:39:39 1664

转载 Dm8168 多核通信

2013-02-25 13:29:04 1292

空空如也

空空如也

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

TA关注的人

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