- 博客(19)
- 资源 (10)
- 收藏
- 关注
原创 写一个strchr查找字符串函数
<br />#include <assert.h><br />/*string found function NATIVE-STRING-MATCHER*/<br />char *str_chr(char *src, char *chr)<br />{<br /> char *psrc = src, *pchr = chr, *p;<br /> assert((src!=NULL)&&(chr!=NULL));<br /> while (*psrc !='/0')<br />
2010-11-29 14:06:00
645
原创 SD卡FAT32文件系统,如何访问具体文件
<br />1.根据DBR的BPB找到FAT表的位置,一般是偏移36个扇区,一个扇区一般是512个字节,一个簇有4,8,16...个扇区,这里用的是8,一个簇4096个字节。<br />2.根据DBR找到根目录,根据目录结构体描述,扫描根目录,根据文件名匹配找到对应文件的首簇。<br />3.一般情况下根目录的簇号是2,比如找到的文件的首簇是6,则文件的位置可以根据根目录首簇的偏移来找到,offset=(6-2)×512×8就是文件的位置,然后根据FAT表的簇链结构来访问文件。<br /> <br />比起
2010-11-24 09:59:00
842
原创 linux总线,设备,驱动注册
<br />遵守UDEV设备模型,<br />首先注册总线,然后是总线设备,之后是具体设备注册,注册完之后就可以在sys/bus相应的目录下面找到挂载这个总线上的设备,最后是注册驱动,驱动会查询总线上的设备进行绑定。<br />比如:自定义一个设备是my_vir_device,使用总线是vir_bus。<br />1.注册总线类型<br />struct bus_type vir_bus_type = {<br />.name = "my_vir",<br />.match = my_vir_match,<
2010-11-22 17:30:00
767
原创 内核查看uboot传递的参数简单方法
<br />u-boot 设置bootargs=console=ttyS0,115200n8 initrd=2g,1 root=/dev/ram rawview=myrawview<br /> <br /> <br /> <br />static int __init rawview_setup(char *str)<br />{<br /> printk("***********/n");<br /> printk(str);//此处字符串str就是rawview=之后的内容<br /> printk(
2010-06-08 19:52:00
1491
转载 转载几个经典的对子
南通州北通州南北通州通南北 东当铺,西当铺,东西当铺当东西男学生,女学生,男女学生生男女读书——春读书,秋读书,春秋读书读春秋学法——孙学法, 子学法, 孙子学法学孙子 问道——左问道,右问道,左右问道问左右 三香——荷散香,兰散香,荷兰散香散荷兰 战场--前死人后死人前后死人死前后 醉酒--左摇摆右摇摆左右摇摆摇左右 校园--男学生女学生男女学生生男女 情人节-真情人假情人真假情人
2010-05-12 09:18:00
571
转载 不要迷恋哥,哥只是个传说!
不要迷恋哥,哥只是个传说! 哥不在江湖,江湖都有哥的传说! 世上本没有哥,但迷哥的人多了,就开始出现了哥! 哥不寂寞,因为有寂寞陪着哥。 不要打哥的电话,哥玩的不是寂寞……是哥的手机丢了! 哥用微笑保持低调,却不知道微笑也让世界烦恼。 哥抽的是寂寞,吐出来的是烟。 哥泡的不是姐,是姐的寂寞。
2010-01-05 18:39:00
612
转载 史记.(闸北)刀客列传
杨某者,顺天府人也。少习武,善刀技,虽数十人不得近身。及长,武举不中,遂愤而离乡,负刀游走天下。一日经松江府上海县,乏甚,乃借人车马。其间言语不和,乃告其盗,衙役捕之。初,自以清白,随到公堂,而差人戏辱之,怀恨不已。出则于县衙门外施火,乘乱翻墙入,拔刀砍杀。重重围之,亦无惧色,刀法身形皆不乱。东荡西决,南冲北突,先后斫翻十余人,毙其六。终赶路竟日,饥渴疲惫,力尽而伏。众不敢前,恐其有诈
2009-12-24 17:02:00
1932
转载 少侠行
赤县白虹忽贯日, 世人纷说杨家子。 布衣一怒鬼神惊, 六扇门内六吏死。 少侠本居燕京城, 性喜读书厌纷争。 孰知偶作松江游, 赁车误被诬贼名。 皂隶如虎何听辩, 白日蒙冤入牢笼。 棍号水火狱号炉, 百般锻炼不容情。 羞辱莫大心泣血, 伤痛遍体不欲生。 捱到罪名查无实, 脱得囹圄身已病。 屡向有司求冤恤, 频招冷眼与恶声。 心向明月遇暗夜,
2009-12-24 16:59:00
872
转载 哥只是个传说恶搞
网易辽宁沈阳网友 [ygj-66] 的原贴: 1 不要迷恋哥,哥只是个传说。。。。。。。 网易山东莱芜网友 [fengfeiluqi] 的原贴: 2 不要牵挂妹,妹只是两行泪。。。。。。。 网易四川成都网友 [thief1234] 的原贴: 3 不要恶搞姐,姐会让你吐血。。。。。。。 网易广东珠海网友 [xhpcomcom] 的原贴: 4 不要小看弟,弟可是兴奋
2009-10-30 09:03:00
843
转载 patsubst notdir wildcard 详解
1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的makefilesrc=$(wildcard *.c ./
2009-10-27 16:30:00
551
原创 转载编译简单驱动,备忘
/****************hellomod.c*******************************/#include //所有模块都需要的头文件#include // init&exit相关宏MODULE_LICENSE("GPL");static int __init hello_init (void){ printk("Hello china init/n");
2009-10-20 18:00:00
868
原创 IPC简单介绍(二)共享内存
“寸有所长,尺有所短”,pipe、message queue和share memory各有长处,虽说message queue简单易用,但是如果要传递的数据量很大的时候就捉肘见襟了,当在进程间需要传递大的数据量的时候,share memory就有用武之地了。未完待续...
2009-10-13 14:30:00
529
1
原创 IPC简单介绍(一)消息队列
消息传递是linux中的简单有效的IPC方法之一,另外比较熟悉的是pipe和share memory,其中share memory的速度是最快的。消息传递方式编程相对比较简单,接收message的进程通过如下步骤:1.调用msgget函数创建一个消息队列,需要注意的是IPC_CREAT这个宏,如果消息队列已经建立好了,它会忽略的。2.msgrcv函数来从队列上得到消息3.msgct
2009-10-13 10:53:00
507
原创 一点点arm bootloader的理解
最简单的bootloader需完成两个主要任务1.memory的重新映射2.下载kernel到sdram系统上电之后首先执行的是物理地址0x0的代码,所以一般情况bootloader的代码要烧录在0x0的地址处,一般为flash存储器,例如:有2段存储器flash和sdram,分别在0x0-0x4000000 64M, 0x4000000-0x80000000 64Msdram
2009-10-12 17:48:00
985
翻译 linux物理地址和总线地址
在x86下,外设的i/o地址是独立的,即有专门的指令访问外设i/o,i/o地址就是所谓的“总线地址”。而“物理地址”就是ram地址。 在arm中,i/o和ram统一编址,但linux为了统一各个平台,仍然保留这个概念,其实就是物理地址。 linux 无论kernel还是user space,都是直接访问虚拟地址(uclinux除外),要访问i/o,必须把i/o地址转换成虚拟地址才
2009-10-12 10:08:00
3566
2
原创 看门狗防止程序跑飞
void main(){ init_system(); ... enable_whatchdog();...while(1){ ...feed_dog();}}程序跑飞掉的话,就不会喂狗,引起复位。
2009-10-10 11:37:00
2835
1
原创 .bss段和.data段的一点小区别
全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用.exe文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始化。
2008-05-16 15:45:00
568
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人