自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (18)
  • 收藏
  • 关注

转载 Linux 准确延时

应用层:   #include     1、unsigned int sleep(unsigned int seconds); 秒级   2、int usleep(useconds_t usec);              微秒级:1/10^-6    #define _POSIX_C_SOURCE 199309   #include    3、int nan

2015-02-05 09:34:38 1301

转载 U盘文件只读的解决办法

已经有大概一个月时间U盘出现文件系统只读的问题了。症状为无法删除U盘中现有文件,无法向U盘拷贝新的文件。但不知道是什么原因。今天下决心解决这个问题。       首先是在google和baidu上搜索相关资料,有价值的有以下几个:       1. http://blog.163.com/cobyeah@126/blog/static/1401376532011379455

2015-02-02 16:39:25 7608

转载 v4l2使用技巧

V4L2 较 V4L 有较大的改动,并已成为 2.6 的标准接口,函盖 video/ dvb /FM… ,多数驱动都在向 V4l2 迁移 。V4L2 采用流水线的方式,操作更简单直观。 一般来说,需要用到的函数就是 open() , close() 和 ioctl () 。       推荐的参考资源:      (1) Video for Linux Two API Sp

2015-01-31 10:55:45 501

转载 Linux之V4L2基础编程

1. 定义V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。2. 工作流程:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。3. 设备的打开和关闭:#include int open(const char *device_name

2015-01-30 16:30:48 371

转载 Linux 视频设备驱动V4L2最常用的控制命令使用说明

Linux视频设备驱动常用控制命令使用说明设置视频设备属性通过ioctl来进行设置,ioctl有三个参数,分别是fd, cmd,和parameter,表示设备描述符,控制命令和控制命令参数。1. 控制命令VIDIOC_QUERYCAP功能: 查询设备驱动的功能 ;参数说明:参数类型为V4L2的能力描述类型struct v4l2_capability;struct v4l

2015-01-30 16:28:52 516

转载 V4L2摄像头应用流程

对于v4l2,上次是在调试收音机驱动的时候用过,其他也就只是用i2c配置一些寄存器就可以了。那时只是粗粗的了解了,把收音机当作v4l2的设备后会在/dev目录下生成一个radio的节点。然后就可以操作了。后来就没怎么接触了。这周,需要调试下usb的摄像头。因为有问题,所以就要跟进,于是也就要开始学习下linux的v4l2了。看到一篇很不错的文章,下面参考这篇文章,加上自己的一些见解,做一些总结把。

2015-01-29 15:41:11 767

转载 二十四、shell printf命令:格式化输出语句

printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。如同 echo 命令,printf 命令也可以输出简单的字符串:$printf "Hello, Shell\n"Hello, Shell$printf 不

2015-01-20 15:02:05 602

转载 linux 下 `dirname $0`

【`】,学名叫“倒引号”, 如果被“倒引号”括起来,  表示里面需要执行的是命令。比如 `dirname $0`,  就表示需要执行   dirname $0  这个命令【“”】 , 被双引号括起来的内容, 里面 出现  $ (美元号: 表示取变量名)  `(倒引号: 表示执行命令)   \(转义号: 表示转义),   其余的才表示字符串。【’‘】,  被单引号括起来的内容,

2015-01-20 14:57:11 366

转载 二十三、Shell文件包含

像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。Shell 中包含脚本可以使用:. filename或source filename两种方式的效果相同,简单起见,一般使用点号(.),但是注意点号(.)和文件名中间有一空格。例如,创建两个脚本,一个是被调用脚本 subscript.sh,内容如下:

2015-01-20 11:47:53 302

转载 二十二、Shell输入输出重定向:Shell Here Document,/dev/null文件

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。输出重定向命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。命令输出重定向的语法为:$ command > file这样,输出到显示器的内容就可以被重定向到文件。

2015-01-20 11:45:20 356

转载 二十一、Shell函数参数

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...带参数的函数示例:#!/bin/bashfunWithParam(){ echo "The value of the first parameter is $1 !" echo "The value of the second

2015-01-20 11:41:22 248

转载 二十、Shell函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。Shell 函数的定义格式如下:function_name () { list of commands [ return value ]}如果你愿意,也可以在函数名前加上关键字 function:

2015-01-20 11:39:16 385

转载 十九、Shell break和continue命令

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环。break命令break命令允许跳出所有循环(终止执行后面的所有循环)。下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,就要使用break命令。#!/bin/bashwhi

2015-01-20 11:27:37 344

转载 十八、Shell until循环

until 循环执行一系列命令直至条件为 true 时停止。until 循环与 while 循环在处理方式上刚好相反。一般while循环优于until循环,但在某些时候,也只是极少数情况下,until 循环更加有用。until 循环格式为:until commanddo Statement(s) to be executed until command is truedo

2015-01-20 11:23:31 367

转载 十七、Shell while循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:while commanddo   Statement(s) to be executed if command is truedone命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。以下是一个基本的while循环,测试条件是:如果COUNTER小于5,那么返回 true

2015-01-20 11:22:27 509

转载 十六、Shell for循环

与其他编程语言类似,Shell支持for循环。for循环一般格式为:for 变量 in 列表do command1 command2 ... commandNdone列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。

2015-01-20 11:18:24 293

转载 十五、Shell case esac语句

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:case 值 in模式1) command1 command2 command3 ;;模式2) command1 command2

2015-01-20 11:15:35 340

转载 十四、Shell if else语句

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。1) if ... else 语句if ... else 语句的语法:if [ expression ]then Statem

2015-01-20 11:11:27 324

转载 十三、Shell echo命令

echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。显示变量name="OK"echo "$name It is

2015-01-20 11:07:53 327

转载 十二、Shell数组:shell数组的定义、数组长度

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:    array_name

2015-01-20 11:01:22 388

转载 十一、Shell字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。单引号str='this is a string'单引号字符串的限制:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

2015-01-20 10:55:54 308

转载 十、Shell注释

以“#”开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。只能像这样:#--------------------------------------------# 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写:# https://github.com/webfrogs/xcode_shell/blob/master/ipa-

2015-01-20 10:52:38 356

转载 八、Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加:#!/bin/bashval=`expr 2 + 2`echo "Total v

2015-01-20 10:51:54 237

转载 七、Shell替换:Shell变量替换,命令替换,转义字符

如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:Value of a is 1

2015-01-20 10:29:07 405

转载 六、Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果29949特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表

2015-01-20 10:18:10 279

转载 五、Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

Shell支持自定义变量。定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令

2015-01-20 10:09:34 246

转载 四、第一个Shell脚本

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。输入一些代码:#!/bin/bashecho "Hello World !"“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本。

2015-01-20 10:05:50 473

转载 三、什么时候使用Shell

因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。因此,之所以要使用Shell脚本是基于:简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。开发容易:可以在短时间内完成一个功能强大又妤用的脚本。

2015-01-20 10:01:13 403

转载 二、Shell脚本语言与编译型语言的差异

编译型语言很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(object code)非常接近计算机底层,因此执行效率很高,这是

2015-01-20 10:00:39 384

转载 一、Shell简介:什么是Shell,Shell命令的两种执行方式

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大

2015-01-20 09:59:21 340

转载 基于管道的popen和pclose函数

标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。子进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出popen、pclose的定义: 01

2015-01-19 17:18:23 326

转载 对于linux下system()函数的深度理解(整理)

这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定?

2015-01-19 17:17:49 297

转载 Linux字符驱动中动态分配设备号与动态生成设备节点

在驱动程序中初始化入口函数中,向内核注册一个设备后,往往要注册一个类例如static int __init mydriver_init(void) //驱动程序的初始化{     ……    MYDRIVER_Major = register_chrdev(0, DEVICE_NAME, &mydriver_fops); //向内核注册一个设备,返回值为注册的主设备号 

2015-01-19 17:13:44 855

转载 Linux内核驱动自动创建设备节点文件

Linux下生成驱动设备节点文件的方法有3个:1、手动mknod;2、利用devfs;3、利用udev在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点。在2.6.17以前,在/dev目录下生成设备文件很容易,

2015-01-19 17:11:30 1008

转载 busybox mdev使用 自动创建设备节点

quote]------本文很多关于mdev解释的内容来源于网络,有说的不对的地方,望大家指正。-------同时,各位也可以在我的blog里面找到,http://blog.chinaunix.net/space.php?uid=20752341&do=blog&id=3081976   写Linux 设备驱动程序的时候,很多时候都是利用mknod 命令手动创建设备节点,mdev可以用

2015-01-19 17:10:46 434

转载 关于实现udev/mdev自动挂载与卸载

在网上有很多关于讲mdev的自动挂载基本上都是一个版本,经过测试自动挂载确实可行,但是关于自动卸载mdev似乎不能很好的支持,经过修改已经可以做到与udev的效果相似。不能在挂载的目录中进行热插拔,否则会出现问题,不过此问题在下次插入U盘时不会造成影响,可能对U盘有损坏。本文介绍了mdev与udev两种方法来实现自动挂载,读者可根据需要任选其一即可。        首先介绍一下md

2015-01-19 17:08:45 379

转载 udev的实现原理

相对于linux来说,udev还是一个新事物。然而,尽管它03年才出现,尽管它很低调(J),但它无疑已经成为linux下不可或缺的组件了。udev是什么?它是如何实现的?最近研究Linux设备管理时,花了一些时间去研究udev的实现。 udev是什么?u 是指user space,dev是指device,udev是用户空间的设备驱动程序吗?最初我也这样认为,调试内核空间的程序要比调试用户空

2015-01-19 16:50:30 500

转载 exec()与system()的区别

这应该算是老生长谈的问题了,在此做一个记录。执行exec()后,老的进程上下文将被exec出来的新的进程上下文覆盖,新进程代替原进程执行。执行system()后则相当于fork()出一个子进程,并等待此子进程执行完毕。请看如下程序以加深理解。[cpp] view plaincopy/* rt.c */    int

2015-01-19 13:44:27 440

转载 Linux系统中使用 DD 命令测试 USB 和 SSD 硬盘的读写速度

磁盘驱动器速度磁盘驱动器的速度是以一个单位时间内读写数据量的多少来衡量的。DD 命令是一个简单的命令行工具,它可用对磁盘进行任意数据块的读取和写入,同时可以度量读取写入的速度。在这篇文章中,我们将会使用 DD 命令来测试 USB 和 SSD 磁盘的读取和写入速度。数据传输速度不但取决于驱动盘本身,而且还与连接的接口有关。比如, USB 2.0 端口的最大传输速度是 35 兆

2015-01-16 09:57:18 1703

转载 USB枚举过程

1. 枚举是什么?       枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。       USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告

2015-01-15 14:39:07 377

基于Xilinx芯片的FPGA的DONE信号上拉电阻阻值分析.pdf

分析FPGA的DONE上拉电阻阻值与启动关系

2021-03-20

RapidIO教程.docx

是rapidio技术协议的中文讲解

2021-03-20

CAN知识讲解(PPT链接word).rar

针对CAN接口知识讲解,对各种数据帧进行描述

2021-03-20

pci中文规范.pdf

pci中文规范

2021-03-20

pcie_3.0_总线规范.pdf

pcie_3.0_总线规范

2021-03-20

将24位BMP图片转16位565格式-特别适合LCD屏显示

本代码实现了24位BMP图片转565格式16位数组C文件,用法: 24to16 filename.bmp 生成:16filename.bmp 生成的16filename.bmp只能用附件中的“画图”打开!

2015-11-17

SRIO总线技术研究及其FPGA实现

SRIO总线技术研究及其FPGA实现, 主要阐述了SRIO接口的使用方法及与FPGA的实现

2015-06-01

linux-2.6.10.tar.gz内核

linux-2.6.10.tar.gz是linux一个版本的内核

2014-12-25

Linux 文件命令精通指南

详细介绍了linux操作系统的常用命令,此书可以作为手册使用,对于搞linux系统的攻城师来说是一本必备的书籍

2014-12-25

LINUX与UNIX SHELL编程指南

SHELL编程指南,可作为脚本编程人员的指导手册,也非常适合刚从事shell编程人员的入门手册

2014-12-25

USB设备驱动详解(Linux)

详细介绍了U盘驱动的架构,并对U盘的源码进行细致分析,对于从事USB设备驱动的工作人员来说非常有用

2014-12-25

vxworks_END驱动编写介绍

在vxworks操作系统下,对END驱动编程进行讲解,详细介绍了END编程中所使用到的各个函数的使用方法及含义

2013-03-04

PowerPC VxWorks BSP分析

PowerPC VxWorks BSP分析

2012-06-13

基于vxWorks的BSP启动过程分析

基于vxWorks的BSP启动过程实例分析

2012-06-13

CodeWarrior套件入门

CodeWarrior套件入门,介绍了CodeWarrior使用步骤

2012-06-13

TCP-IP详解

主要讲TIP-IP的协议及使用方法, 第2章链路层 第3章IP:网际协议 第4章ARP:地址解析协议 第5章RARP:逆地址解析协议 第6章ICMP:Internet控制报文协议 第7章Ping程序 第8章Traceroute程序 第9章IP选路 第10章动态选路协议 第11章UDP:用户数据报协议 第12章广播和多播 第13章IGMP:Internet组管理协议 第14章DNS:域名系统 第15章TFTP:简单文件传送协议 第16章BOOTP:引导程序协议 第17章TCP:传输控制协议 第19章TCP的交互数据流

2012-05-12

操作系统原理及应用(LINUX)

操作系统原理及应用(LINUX)本书介绍了操作系统原理及应用,系统的基本概念,功能,进程描述,进程控制,进程的同步与互斥等内容

2012-03-27

SourceInsight3.5序列号+汉化.

SourceInsight3.5序列号+汉化.

2012-03-20

空空如也

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

TA关注的人

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