
linux随笔
文章平均质量分 58
tiny-sf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
打包项目。删除.git
//删除文件夹下的所有 .svn 文件 find . -name ".svn"| xargs rm -Rf //删除文件夹下的所有 .git 文件 find . -name ".git"| xargs rm -Rf转载 2017-07-29 15:16:22 · 701 阅读 · 0 评论 -
各种下载地址(持续更新)
uboot源码下载地址===============================================http://ftp.denx.de/pub/u-boot/原创 2017-08-18 10:09:55 · 1261 阅读 · 0 评论 -
交叉编译helloword模块
能用的交叉编译模块Makefile,注意不是空格,是Tab键ifneq ($(KERNELRELEASE),) obj-m := helloword.oelseKERNELDIR :=/home/t/ti-sdk-am335x-evm-07.00.00.00/board-support/linux-3.12.10-ti2013.12.01PWD := $(shell pwd)CROSS_原创 2017-07-26 18:48:14 · 659 阅读 · 0 评论 -
Qt ,Qtcreator的下载地址和QT./configure参考地址
http://download.qt.io/official_releases/这个网址比较全……原创 2017-08-03 14:27:16 · 424 阅读 · 0 评论 -
struct device_driver
/** * struct device_driver - The basic device driver structure * @name: Name of the device driver. 驱动名称 * @bus: The bus which the device of this driver belongs to. 设备的驱动属于哪种总线 * @owner: The modu原创 2017-07-25 19:07:50 · 905 阅读 · 0 评论 -
struct bus_type
总线的结构体/** * struct bus_type - The bus type of the device * * @name: 总线的名称 * @dev_name: ("foo%u", dev->id).用于枚举设备如("foo%u", dev->id) * @dev_root: 用于父设备的默认设备 * @bus_attrs: bus的缺省属性 * @dev_attrs:原创 2017-07-25 19:02:29 · 505 阅读 · 0 评论 -
linux3.* 内核的__setup函数
在内核代码中经常会看到__setup函数,这个函数从哪来,到哪去?下面我们逐一分析例如在I2C驱动中就有这么一个setup函数:__setup("i2c_bus=", omap_i2c_bus_setup);我们先要直到它是从哪来的:看如下代码:#define __setup_param(str, unique_id, fn, early) \ static const ch原创 2017-07-25 14:02:13 · 828 阅读 · 1 评论 -
USB 2.0 协议
一、USB硬件介绍1.1、概述 一条USB传输线分别由地线、电源线、D+和D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500mA(可以在编程中设置)。 USB设备可以直接和HOST通信,或者通过Hub和Host通信。一个USB系统中仅有一个USB 主机,设备包括USB功能设转载 2017-07-25 09:58:18 · 827 阅读 · 0 评论 -
list_for_each_entry(pos, head, member)的内幕
list_for_each_entry(pos, head, member)是一个遍历链表的操作,但是从中涉及到的小函数很多,想要彻底高清除,需要下一点功夫。下面一步一步的分解该宏定义。抽丝剥茧的看看这个宏定义到底最后定义成什么了。#define list_for_each_entry(pos, head, member) \ for (pos = list_entry((head原创 2017-08-01 11:34:41 · 1091 阅读 · 0 评论 -
ARRAY_SIZE含义
在写驱动时,看到ARRAY_SIZE这个宏,是求设备结构体中设备的个数。 追其实现,在linux/kernel.h中,发现 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) 其中__must_be_array(arr))作用:宏定义防止被误用,比如用在指针而不是数组上。转载 2017-07-22 17:24:17 · 12956 阅读 · 1 评论 -
struct usb_driver
/** * struct usb_driver - identifies USB interface driver to usbcore struct usb_driver -确认到usbcore的接口驱动 * @name: The driver name should be unique among USB drivers, * and should normally be the s原创 2017-07-25 17:07:09 · 910 阅读 · 0 评论 -
struct class
/** * struct class - 设备类 * @name: 类名称 * @owner: 模型拥有者 * @class_attrs:此类的默认属性 * @dev_attrs: 属于此类的设备默认属性 * @dev_bin_attrs: 属于此类的设备默认二进制属性 * @dev_kobj: 代表此类的kobj并且连接它到等级层次 * @dev_uevent: 设备从此类添加或原创 2017-07-30 14:51:22 · 239 阅读 · 0 评论 -
struct device
/** * struct device -基本设备结构体 * @parent:设备的父设备,设备之间是联系到一起的。大部分情况下,父设备会是一个 总线或者主机控制器,如果父设备是空,此设备就是顶端设备,通常情况 下这是你不想要的情况 * @p:存储了关于设备的驱动核心部分的私有数据,详细内容可查看device_private * @kobj: 一种最高等级的抽象类,用于派生其他原创 2017-07-29 20:12:57 · 1648 阅读 · 0 评论 -
Linux内核态 用户态
一、 Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供转载 2017-07-20 10:33:44 · 260 阅读 · 0 评论 -
struct struct
/** *struct subsys_private-这个结构体用来存储驱动核心部分的私有数据(bus_type和calss strcuture) * @subsys - 用来定义子系统的kset的结构体 * @devices_kset - 子系统的设备目录 * @interfaces - 子系统接口的关联的链表 * @mutex - 保护设备和接口链表 * @drivers_kset原创 2017-07-26 20:20:31 · 1101 阅读 · 1 评论