- 博客(34)
- 收藏
- 关注
转载 ioctl函数
我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用
2015-11-18 19:02:34
402
转载 回调函数
这两天在工作的时候碰到了回调函数,就特别好奇回调函数到底是个什么玩意,以前也没有怎么接触过,然后今天就到处查资料,网上的基本上都是比较雷同的,我也就摘了一些比较容易懂的,让以后也能够温故而知新。为了弄明白这种函数的奥妙,首先提出三个问题:1. 回调函数是什么东西?2. 回调函数怎么开发,怎么使用?3. 回调函数的作用,应该在什么情况下使用?
2015-11-17 20:57:54
360
原创 c语言中的各种printf
在看程序的同时,发现了一些有趣的函数,就是最平常的printf和scanf都有很多的衍生。下面就来总结一下,首先是最常规的:1.标准输入输出函数printf:extern void printf(const char *format,…);格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数
2015-11-09 21:02:17
530
转载 linux中的文件锁flock
Linux文件锁flock在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock。flock,建议性锁,不具备强制性。一个进程使用flock将文件锁住,另一个进程可以直接操作正在被锁的文件,修改文件中的数据,原因在于flock只是用于检测文件是否被加锁,针对文件已经被加锁,另一个进程写入数
2015-11-03 16:05:27
458
转载 sd卡驱动理论篇
一.SD/MMC卡介绍 1.1.什么是MMC卡 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡。它是一种非易失性存储器件,体积小巧(24mm*32mm*1.4mm),容量大,耗电量低,传输速度快,广泛应用于消费类电子产品中。 1.2.什么是SD卡 SD:SD卡为Secure Digital Memory Card, 即安全
2015-10-29 20:27:26
388
转载 linux中sd卡驱动(2)
linux sd卡驱动分析1. 硬件基础:SD/MMC/SDIO 概念区分概要SD (Secure Digital )与 MMC (Multimedia Card )SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代。SDIO 是目前我们比较关心的技术,SDIO 故名思义,
2015-10-22 17:58:42
393
转载 linux中sd卡驱动(1)
最近在做设备的驱动层代码,发现了一篇很好的文章,忍不住就摘下来了,以供借鉴首先说一下Linux相关MMC的代码分布首先说一下Linux相关MMC的代码分布,主要有两个目录,一个头文件目录和一个源代码目录。分别位置如下:include/linux/mmcdrivers/mmc要阅读MMC相关代码就必须要看这两个目录。在drivers/mmc目录下分别有三个子目录,其将对应接下来要讲的
2015-10-22 17:55:13
421
原创 linux驱动开发
这两天在公司由于一直没有太过于繁重的任务,于是便给分配了驱动开发的任务,之前一直不明白驱动开发和普通的嵌入式开发到底有什么区别,然后有没有经过系统的学习,于是就一直愣在那里。不过慢慢的还是经过查资料,虽然代码没有编写出来,但是对于系统的一些东西学习的终于有了一定的了解,感觉这个十分的重要,也为了给自己在以后不懂得时候可以拿出来翻翻,留个念想。首先,什么是驱动,驱动是硬件设备和应用程
2015-10-21 20:51:01
362
原创 c语言中预编译
预编译又被称为预处理,是做代码文本的替换工作。处理#开头的指令。就是为编译做预备工作的准备。常见的预编译指令有三种(1)#include指令 该指令指示编辑器将xxx.xxx文件的全部内容插入此处,如果使用代表在系统指定目录下搜索文件,使用” ”代表现在当前目录下搜索文件,然后在系统默认目录下搜索。(2)#define指令 该指令有三种用法: 第一种
2015-10-21 20:48:06
381
转载 sed命令
sed命令的功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大,sed全称是:Stream EDitor1.sed命令调用sed命令有两种形式:sed [options] 'command' file(s)sed [options] -f scriptfile file(s)a\在当前行后面加入一行文本。b lable分
2015-10-12 09:40:47
373
原创 使用make更新静态库文件
静态库文件也称为“文档文件”,它是一些.o文件的集合。在linux中用工具”ar”对她进行维护管理,下面这个规则用于创建库“foolib”,并将“hack.o”成员加入到库:foolib(hack.o):hack.o ar cr foolib hack.o若在规则中需要同时指定库的多个成员,可以将多个成员罗列在括号内,例如: foolib(hack.o kludge
2015-10-09 15:25:17
501
原创 const变量
const是一个C语言的关键字,它限定一个变量不允许被改变。主要作用:(1)可以定义const常量,具有不可变性。 例如:const int Max=100; Max++会产生错误; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。 例如: void f(const int i) { .........}编译器就会知道i是一个常量,不允许修改
2015-08-20 21:36:18
380
原创 海思芯片 IPC_HI3518的解读
在大学中没有怎么接触过makefile的东西,再看了书籍之后开始看了第一个makefile,就是海思芯片IPC_HI3518的makefile。十分的长,在开始入手的时候对于我来说真的是太难了。然后我就拼命的看,因为师兄也才刚毕业,所以比较贴近我们的水平,在他的演示下。我对于makefile也终于有了一些理解。# 发布目录ifndef RELEASE_DIR RELEASE_DI
2015-08-19 20:21:36
7334
原创 程序中读取c语言中的一些问题
在大学的时候使用c语言基本上都是算法的编程,简单易懂,到了实习的时候才发现c语言代码我们学的真是九牛一毛,还是要多学多用,下面记录的仅仅是自己不太懂的东西,写在博客上也只是为了让自己可以在不懂的时候多看看,温故而知新。#if 0if(1==pParam->index){unsigned short *pf = (unsigned short *)pParam->pixel;fo
2015-08-19 20:19:10
350
原创 shell中cp命令
Shell 中cp命令功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息参数: -a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
2015-08-18 21:06:02
4247
原创 一些常见的warning
最近学习有点杂乱,学习进度也比较慢,但是会有更新In function 'uart2readthread':在这个函数中warningwarning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'需要的是指针类使用的却是整形warning: unused variabl
2015-08-17 22:22:49
567
原创 makefile文件中的一些问题
Makefile 路径查找是出现的错误:SOFIA_INTERMEDIATEDIR=$(WORK_DIR)/$(shell basename $(shell pwd))_$(GUI_VEBDOR)_$(OEM_VENDOR_DIR)_tmp在这条命令中很容易搞错,因为在makefile中有一个dir命令和一个basename命令,然后在shell中也有basename函数和dirname函
2015-08-14 22:58:14
670
原创 makefile 函数学习
Grep:允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行。Grep支持基本正则表达式,也支持其扩展集。Date:以给定的格式显示当前时间,或是设置系统日期。Awk:可以格式化报文或从一个大的文本文件中抽取数据包。 Awk [-F field-separator] ‘commands’ input-file(s) 这里 commands是真正的awk
2015-08-13 22:18:19
546
原创 Shell函数
Shell函数不同于“wildcard”之外的其他函数。函数shell所实现的功能和shell中的引用(‘’)相同,实现对命令的扩展,这就意味着需要一个shell命令作为此函数的参数,函数返回值是此命令在shell中的执行结果。下面来说一下常用的shell命令:Basename:从路径中分离出文件名Cat:文本文件显示命令Compress:用来压缩文件,压缩后的文件名具有.z后缀,
2015-08-11 21:11:03
307
原创 makefile变量
:“$(VARIABLE_NAME)”变量引用的展开过程是严格的文本替换过程,就是说变量值得字符串被精确的展开在变量被引用的地方。 Makefile中对一些简单变量的引用,我们可以不用”()”和”{}”来标记变量名,不过这种用法仅仅限于变量名为单字符的情况,谨记,不然会出现不好玩的事情。一般在书写makefile格式如下: 1.make 变量( Makefile 中定义的或者是
2015-08-10 21:03:21
343
原创 简单的makefile文件解读
include ./ConfigureTOP_DIR:=$(shell pwd)/../../../../ifeq ($(FLASH_SIZE),16M) ifeq ($(VSP),YouLuoKe) include $(TOP_DIR)/ProductBuilder/allRules_HI3518_16M_youluoke.mk else ifeq ($(CHIP_ID),HI3
2015-08-10 20:59:22
517
原创 make的简单使用
Make 是一个命令工具,makefile是一个文本文件。他们的关系是:Make是一个解释makefile中的指令的命令工具,makefile的工作原理就是调用系统中的make命令解释当前的makefile。下面是make一个简单的演示:首先编写四个.c文件,分别取名 main.c foo1.c foo2.c foo3.c 这四个.c文件分别实现不同的功能,main.c为主函数 ;
2015-08-08 21:27:35
495
原创 gcc简单使用
1.进入x-shell,手动连接公司linux服务器,telnet 10.2.10.100,然后输入用户名和密码2.进入shell之后,进入到自己的共享文件夹3.进入vi界面,编写一个简单的hello world程序:#include int main(){ printf(“hello world ,hello xiongmai”); return 0;
2015-08-08 21:24:43
300
原创 makefile 多目标和多规则
makefile 多目标一个规则中可以有多个目标,规则所定义的命令对所有目标有效。多目标意味着所有的目标具有相同的依赖文件,多目标通常用在一下两种情况:仅需要一个描述依赖关系的规则,不需要在规则中命令、例如:kbd.o command.o files.o:command.h这个规则实现了同时给三个目标文件制定一个依赖文件对于多个具有类似重建命令的目标。重建这些目标的命
2015-08-08 21:23:36
8414
1
原创 雄迈实习日志
做了三天的准备,今天早早的起床去将要实习的公司了,感觉挺累的不仅搬了自己的箱子,还要搬从天猫网上买的东西,其实来到一个陌生的环境真的需要很大的勇气,今天认识了很多的人,包括要带我的主管,还有师兄什么的,回到了宿舍,也是在一个学校的同学,不过在宿舍,我却得知了,这个公司可能实习生的要求招生要求并没有那么大,同寝室的是三本,却也在11楼研发中心,其实心里挺不甘心的,虽然我也没有什么真才实学,但是我至少
2015-08-05 21:59:43
983
原创 心情日记
今天在床上,因为要去工作了,但是公司由于疏忽还是没有吧邮寄地址告诉我,我还不能把被褥这些东西邮寄过去,其实对于这份工作我内心也是十分的纠结,对于这份工作我有点害怕自己做不好,也有点害怕因为迟去公司会有什么影响,可能现在心情也只能用患得患失来形容了。 不由得想起之前读过的一篇文章,它讲述的道理就是,“忧”本来是生活的常态,是理所当然的,要学会接受它,你可能就能享受到幸福的感觉。
2015-08-01 19:51:25
396
原创 linux shell的使用
说来惭愧,以前几乎不会用linux的我居然在大三结束的时候开始装了linux的虚拟机,由于之前对于刚拿到的pro不太熟悉,所以这两天装双系统花了比较多的时间,总是出现莫名奇妙的问题,我还以为自己的mac出了问题了,不过最后还是花了一天多的时间弄好了,然后昨天还装了虚拟机,装了ubuntu,虽然上了linux的课程,但是却没有好好的学习过,最近要开始工作了,希望自己可以在这几天能够学点东西,加油吧,
2015-07-31 14:32:47
277
原创 谈谈近期学习的感想 2015 7 28
最近想了很久还是决定要去实习了,但是实习的内容是嵌入式开发,但是本人对于ios开发有着一些特殊的感情,希望可以坚持下去,其实swift语言真的很方便,而x—code也是非常的方便。 现在我还是大三,其实对于自己的未来有着前所未有的迷茫,不像之前,初中之后高中,高中之后大学,到了现在,也没有人会牵着我去干嘛干嘛。对于实习我也有一定的害怕,其实我擅长的时通信协议的开发,基于MFC的开发,我
2015-07-28 15:43:48
404
原创 swift基础语法
枚举:个人感觉这个定义有点像结构体。枚举相当于定义了一个新的类型,所以我们需要大写枚举名首字母:enum PointRect{ case top(Int,Int) case buttom(Int,Int) case left(Int,Int) case right(Int,Int)}var samplePoint=PointRect.top(10,
2015-07-28 13:17:42
277
原创 swift 一些复杂类型
2015.7.27 晴前两天由于额头被磕破了,去缝了针,又来了实习通知,所以没有学习ios开发,不知道在这个时间来了实习通知是不是正确的时间,但是这确实让我十分的纠结,有点不明白该如何抉择,所以现在也把这些考虑放下了,不管怎么说,先学习总是没有错的。数组:在swift语言中,数据在被存储进入某个数组之前,类型必须明确,且与数组其他元素类型相同,你可以通过显式的类型声明或
2015-07-27 12:18:00
295
原创 swift语言中一些常用的运算符
根据操作数量来分,可以分为单目运算符,双目运算符,三目运算符,这没什么好说的,大概原理和c语言基本一致值得一提的是:区间运算符:闭区间运算符,a...b表示的时定义一个包含从a到b范围内所有值的区间半区间运算符:a..位与运算符&,位或运算符|,位异或运算符^,位移运算符>(右移变小)
2015-07-25 13:41:57
416
原创 swift基础语法
var:定义变量let:定义常量声明类型:var str:string=“hello”类型推断:声明时若没有指定类型且对变量赋予初值,那么编译器会自动推断类型;声明时不可出现相同名字swift可以省略分号,但是如果在同一行出现多个表达式,那么每个表达式都需要加上分号。swift语言在某些特殊进制语言需要加上前缀,二进制前缀是0b,八进制数前缀是0o,16进制数前缀是0x;
2015-07-25 13:38:07
340
原创 iOS编程学习
2015年7月24日 晴 swift书籍到了,也开始了所谓的正式的学习,希望可以有一个好的结果。首先注册了开发者账号,过程也不在此赘述,然后编写了第一个程序,是一个os程序。第一个是标准输入输出的程序;其代码如下:import Foundationprintln("Hello, World!")println("hello my program")pri
2015-07-24 14:58:10
295
原创 ios基本概念学习
2015.7.22 周三 晴学习iOS 开发的第一天objective—c语言编写可以用到的模式:委托模式:委托模式指的是一个逻辑单元(通常为一个对象)可以吧一部分关于它行为的判定给另一个对象,这个对象通常被称为代理。委托的设计就是为了实现一些响应该判定 的方法。观察模式:这种模式允许任何一个有兴趣的对象从其他
2015-07-22 16:19:41
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人