自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tracy Mcgrady的专栏

冰山一角。

  • 博客(13)
  • 资源 (16)
  • 收藏
  • 关注

原创 杂项设备

一、杂项设备先看杂项设备结构定义linux/miscdevice.h:struct miscdevice { int minor; const char *name; const struct file_operations *fops; struct list_head list; struct device

2013-07-29 18:53:55 2027

原创 c strtok函数用法

strtok函数用于分割字符串,原型如下:char *strtok(char *str, const char *delim);str为指向欲分割的字符串,delime为分隔符,实例如下:#include #include int main(void){ char s[] = "aaa bbb ccc ddd"; char c[] = " "

2013-07-26 15:59:20 12912 1

原创 总线、设备和驱动属性文件

一、总线属性总线属性使用struct bus_attribute来描述,Linux给我们提供了一个宏,可以用来定义一个总线属性,那就是BUS_ATTR宏,该宏定义如下:#define BUS_ATTR(_name, _mode, _show, _store)   \struct bus_attribute bus_attr_##_name = __ATTR(_name, _mode,

2013-07-25 11:51:00 1587

原创 平台资源

平台总线设备除了用前面的platform_device_register函数去注册之外,经常会在平台下面看到platform_add_devices这样一个函数,platform_add_devices也是用于平台设备注册的,它是注册一组平台设备,函数原型如下:int platform_add_devices(struct platform_device **devs, int num);

2013-07-24 12:09:17 1138

原创 平台总线

platform总线是Linux虚拟的一条总线,总线类型定义如下:struct bus_type platform_bus_type = {        .name           = "platform",        .dev_attrs      = platform_dev_attrs,        .match          = platform_match

2013-07-23 21:20:50 1836

原创 总线、设备和驱动

一、总线Linux中,使用struct bus_type表示一条总线,该结构定义在linux/device.h中,先只看其中的两个字段,name表示总线的名字,比如usb、i2c、spi等,match方法用于匹配添加到该总线上的设备和驱动,如果匹配成功,则调用驱动中的probe函数。注册一条总线使用bus_register函数,原型如下:int bus_register(struct bu

2013-07-22 22:08:32 932

原创 printk

在编写应用程序时,我们可以通过printf打印输出一些信息用来调试程序,Linux内核也提供了类似的函数printk,和printf不同的是,printk提供了输出日志级别,日志级别有:KERN_EMERGKERN_ALERTKERN_CRITKERN_ERRKERN_WARNINGKERN_NOTICEKERN_INFOKERN_DEBUGKERN_EMERG

2013-07-20 23:29:18 2004

原创 线程

1. 创建线程创建线程使用pthread_create函数,函数原型如下:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);引用该函数需要包含头文件pthread.h,在编译时还需要加上-lpthread选项用来链接线

2013-07-17 21:40:45 807

原创 进程

进程1. system在Linux中,可以使用system函数启动一个新程序,从而创建了一个新进程,函数原型如下:int system(const char *command);system函数有点类似与在shell中执行一个命令,system会等待该程序执行结束,例如:#include #include int main(void){        pri

2013-07-12 22:15:37 833

原创 Linux字符设备驱动

1. 关于设备号设备号分主设备号和次设备号,主设备号用来标识设备所对应的驱动程序,由于同一个驱动程序可以支持多个设备,次设备号就是用来区分采用同一个驱动程序的不同设备。Linux内核中采用dev_t来描述设备号,该类型定义在linux/types.h中,阅读内核源码可以看出dev_t实质是一个32位无符号整型,其中使用高12位为设备号,低20位为次设备号,Linux提供了两个宏MAJO

2013-07-11 17:09:54 1166

原创 linux设备驱动之hello.c

#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT, "Hello, world\n"); return 0;}static void hello_exit(void){ printk(KERN_ALERT, "Goodbye, cr

2013-07-10 23:57:49 1162

转载 linux目录中递归删除同名文件夹

# 在当前文件夹及子文件夹下查找.svn文件夹并递归删除find . -name '.svn' -type d | xargs rm -rf

2013-07-09 17:45:08 9860

原创 c文件编程

文件流文件流有两种方式:一是文本流,此时数据写入为字符,这些字符组织为数据行,每一行以换行符结束,对于像int或double这类数据需要先转换成字符,才能写入文件中。二是二进制流,二进制流就是写入实际的值,例如double类型的值在文件中占8个字节。不管是文本流还是二进制流,在文件中都是一连串的自己组成,关键在于我们怎么去解释这些数据,例如字符'a',在文件中存储的是其ASCII码值97,

2013-07-05 10:21:00 1418

ubox gps协议

本文档是ubox gps协议的详细介绍,在于对nmea语句的了解。

2016-01-18

hx8389b datasheet

hx8389b datasheet,方便做mipi开发的朋友们。

2015-01-05

J-Flash s3c2440的配置文件

用于J-Link J-Flash的2440配置文件,可用于mini2440 micro2440等开发板。

2014-07-05

led.tar.gz

sdcc使用Makefile的led工程实例

2014-01-13

sdcc-3.3.0-i386-unknown-linux2.5.tar.bz2

sdccc Linux x86二进制包。

2014-01-02

u-boot nor flash驱动

u-boot的完整nor flash驱动,nor flash型号为sst39vf1601。

2012-06-01

64-ia-32-architectures-software-developer

Intel处理器软件开发参考手册,对于理解Intel体系架构,以及汇编程序编程都有帮助

2011-12-02

Linux汇编教程

Linux下AT&T语法汇编教程,讲AT&T语法汇编比较少,讲的好的就更少了

2011-11-29

AT&T语法汇编教程

Linux下AT&T语法汇编程序教程,将AT&T语法书比较少,好的书就更少了

2011-11-28

深入理解计算机系统

以程序员角度理解计算机系统知识,适用于那些想要写出更快、更可靠程序的程序员。

2011-11-28

QT编程艺术

QT编程艺术,个人觉得比较好的QT编程书籍

2011-11-20

空空如也

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

TA关注的人

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