自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

星空探索

对未知的探索,对茫茫宇宙的思索,是我孜孜不倦的追求

原创 Linux kernel 中断之proc接口之irq

文件proc/irq/主要是用于对每个irq进行设置和信息查看: void init_irq_proc(void) {  unsigned int irq;  struct irq_desc *desc; /* create /proc/irq */  root_irq_dir = proc_mk...

2017-03-27 08:09:17

阅读数 625

评论数 0

原创 uboot目录结构

u-boot$ ls api    common     doc       fs       lib          net      snapshot.commit arch   config.mk  drivers   include  Licenses     post     test...

2017-03-27 08:08:32

阅读数 529

评论数 0

原创 Linux Kernel设备驱动模型之平台设备初始化

static const struct dev_pm_ops platform_dev_pm_ops = {  .runtime_suspend = pm_generic_runtime_suspend,  .runtime_resume = pm_generic_runtime_resume, ...

2017-03-27 08:07:44

阅读数 203

评论数 0

原创 Linux Kernel设备驱动模型之class迭代设备

设备驱动模型之class迭代设备:   /**  * class_for_each_device - device iterator  * @class: the class we're iterating  * @start: the device to start with in ...

2017-03-27 08:07:26

阅读数 423

评论数 0

原创 Linux Kernel设备驱动模型之总线添加设备

设备驱动之总线添加设备: /**  * bus_add_device - add device to bus  * @dev: device being added  *  * - Add device's bus attributes.  * - Create links to de...

2017-03-27 08:07:04

阅读数 208

评论数 0

原创 Linux Kernel设备驱动模型之总线查找设备

设备驱动模型之总线查找设备: /**  * bus_find_device - device iterator for locating a particular device.  * @bus: bus type  * @start: Device to begin with  * @data:...

2017-03-27 08:06:52

阅读数 1036

评论数 0

原创 Linux Kernel设备驱动模型之驱动注册

设备模型之驱动注册: /**  * driver_register - register driver with bus  * @drv: driver to register  *  * We pass off most of the work to the bus_add_driver() ...

2017-03-27 08:05:11

阅读数 414

评论数 0

原创 Linux Kernel设备驱动模型之设备初始化

设备模型之设备初始化: /**  * device_initialize - init device structure.  * @dev: device.  *  * This prepares the device for use by other layers by initializin...

2017-03-27 08:04:50

阅读数 570

评论数 0

原创 Linux Kernel设备驱动模型之设备注册

设备模型之设备注册: /**  * device_register - register a device with the system.  * @dev: pointer to the device structure  *  * This happens in two clean steps...

2017-03-27 08:04:39

阅读数 370

评论数 0

原创 Linux Kernel设备驱动模型之struct device_private

设备私有数据描述: /**  * struct device_private - structure to hold the private to the driver core portions of the device structure.  *  * @klist_children - ...

2017-03-27 08:04:20

阅读数 383

评论数 0

原创 Linux Kernel设备驱动模型之struct kobj_attribute

设备属性描述:   struct kobj_attribute {  struct attribute attr;  ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,    char *buf);  ssize_t...

2017-03-27 08:04:12

阅读数 867

评论数 0

原创 Linux Kernel设备驱动模型之struct kobj_type

设备类型结构:   struct kobj_type {  void (*release)(struct kobject *kobj);  const struct sysfs_ops *sysfs_ops;  struct attribute **default_attrs;  const st...

2017-03-27 08:03:41

阅读数 281

评论数 0

原创 Linux Kernel设备驱动模型之struct kset

在设备驱动模型中,我们用kobject表示设备的基类,而一些相同的设备构成集合,即kset:   /**  * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.  *  * ...

2017-03-27 08:03:14

阅读数 182

评论数 0

原创 Linux 内核clk 添加clk provider

内核把所有的clk  provider管理维护起来,这些存放在of_clk_providers链表当中, 这个provider定义如下: struct of_clk_provider {  struct list_head link; struct device_node *node;  stru...

2017-03-27 08:02:35

阅读数 812

评论数 0

原创 TTY之struct consw

/**  * struct consw - callbacks for consoles  *  * @con_set_palette: sets the palette of the console to @table (optional)  * @con_scrolldelta: the co...

2017-03-27 08:01:37

阅读数 242

评论数 0

原创 TTY之struct console

struct console {  char name[16];  void (*write)(struct console *, const char *, unsigned);  int (*read)(struct console *, char *, unsigned);  struct ...

2017-03-27 08:01:17

阅读数 507

评论数 0

原创 TTY之register_console

extern int add_preferred_console(char *name, int idx, char *options); extern void register_console(struct console *); extern int unregister_console(s...

2017-03-27 08:00:59

阅读数 451

评论数 0

原创 Linux Kernel设备驱动模型之资源管理

/*  * Resources are tree-like, allowing  * nesting etc..  */ struct resource {  resource_size_t start;  resource_size_t end;  const char *name;  unsi...

2017-03-27 08:00:34

阅读数 249

评论数 0

原创 Linux Kernel设备驱动模型之 Power 管理

extern void pm_runtime_init(struct device *dev); extern void pm_runtime_reinit(struct device *dev); extern void pm_runtime_remove(struct device *dev)...

2017-03-27 08:00:07

阅读数 313

评论数 0

原创 Linux Kernel设备驱动模型之总线添加驱动

设备驱动之总线添加驱动: /**  * bus_add_driver - Add a driver to the bus.  * @drv: driver.  */ int bus_add_driver(struct device_driver *drv) {  struct bus_type ...

2017-03-27 07:59:35

阅读数 270

评论数 0

原创 Linux Kernel设备驱动模型之设备探测驱动

设备驱动模型之设备查找驱动: /**  * bus_probe_device - probe drivers for a new device  * @dev: device to probe  *  * - Automatically probe for a driver if the bus ...

2017-03-25 13:57:09

阅读数 187

评论数 0

原创 Linux Kernel设备驱动模型之子系统接口注册

设备驱动模型之子系统注册: int subsys_interface_register(struct subsys_interface *sif) {  struct bus_type *subsys;  struct subsys_dev_iter iter;  struct device *...

2017-03-25 13:56:44

阅读数 352

评论数 0

原创 Linux Kernel设备驱动模型之子系统注册

static int subsys_register(struct bus_type *subsys,       const struct attribute_group **groups,       struct kobject *parent_of_root) {  struct devi...

2017-03-25 13:56:17

阅读数 145

评论数 0

原创 Linux Kernel设备驱动模型之总线初始化

int __init buses_init(void) {  bus_kset = kset_create_and_add("bus", &bus_uevent_ops, NULL);  if (!bus_kset)   return -ENOMEM; system_k...

2017-03-25 13:55:46

阅读数 443

评论数 0

原创 Linux Kernel设备驱动模型之驱动探测设备

/**  * driver_probe_device - attempt to bind device & driver together  * @drv: driver to bind a device to  * @dev: device to try to bind to the d...

2017-03-25 13:55:15

阅读数 261

评论数 0

原创 Linux Kernel设备驱动模型之绑定驱动到设备

/**  * device_bind_driver - bind a driver to one device.  * @dev: device.  *  * Allow manual attachment of a driver to a device.  * Caller must have ...

2017-03-25 13:54:49

阅读数 379

评论数 0

原创 Linux Kernel设备驱动模型之驱动探测设备

/**  * driver_attach - try to bind driver to devices.  * @drv: driver.  *  * Walk the list of devices that the bus has on it and try to  * match the ...

2017-03-25 13:54:08

阅读数 171

评论数 0

原创 Linux Kernel设备驱动模型之设备绑定驱动

/**  * device_attach - try to attach device to a driver.  * @dev: device.  *  * Walk the list of drivers that the bus has and call  * driver_probe_de...

2017-03-25 13:53:21

阅读数 235

评论数 0

原创 Linux Kernel设备驱动模型之class注册

设备驱动模型之 class注册   int __class_register(struct class *cls, struct lock_class_key *key) {  struct subsys_private *cp;  int error; pr_debug("devic...

2017-03-25 13:52:33

阅读数 365

评论数 0

原创 Linux Kernel设备驱动模型之class 接口注册

int class_interface_register(struct class_interface *class_intf) {  struct class *parent;  struct class_dev_iter iter;  struct device *dev; if (!clas...

2017-03-25 13:51:58

阅读数 253

评论数 0

原创 Linux Kernel设备驱动模型之class 查找设备

/**  * class_find_device - device iterator for locating a particular device  * @class: the class we're iterating  * @start: Device to begin with...

2017-03-25 13:51:19

阅读数 541

评论数 0

原创 Linux Kernel设备驱动模型之class 初始化

int __init classes_init(void) {  class_kset = kset_create_and_add("class", NULL, NULL);  if (!class_kset)   return -ENOMEM;  return 0; }

2017-03-25 13:50:25

阅读数 157

评论数 0

原创 Linux Kernel设备驱动模型之CPU接口注册

/*  * register_cpu - Setup a sysfs device for a CPU.  * @cpu - cpu->hotpluggable field set to 1 will generate a control file in  *   sysfs for thi...

2017-03-25 13:49:48

阅读数 312

评论数 0

原创 Linux Kernel设备驱动模型之CPU相关初始化

void __init cpu_dev_init(void) {  if (subsys_system_register(&cpu_subsys, cpu_root_attr_groups))   panic("Failed to register CPU subsystem&q...

2017-03-25 13:48:47

阅读数 481

评论数 0

原创 Linux Kernel设备驱动模型之驱动模型初始化

/**  * driver_init - initialize driver model.  *  * Call the driver model init functions to initialize their  * subsystems. Called early from init/ma...

2017-03-25 13:46:49

阅读数 179

评论数 0

原创 Linux Kernel设备驱动模型之平台设备

struct platform_device {  const char *name;  int  id;  bool  id_auto;  struct device dev;  u32  num_resources;  struct resource *resource; const stru...

2017-03-25 13:44:12

阅读数 365

评论数 0

原创 Linux Kernel设备驱动模型之平台驱动

struct platform_driver {  int (*probe)(struct platform_device *);  int (*remove)(struct platform_device *);  void (*shutdown)(struct platform_device ...

2017-03-25 13:43:24

阅读数 116

评论数 0

原创 Linux Kernel设备驱动模型之 平台设备注册

/**  * platform_device_register_full - add a platform-level device with  * resources and platform-specific data  *  * @pdevinfo: data used to create ...

2017-03-25 13:42:22

阅读数 276

评论数 0

原创 Linux Kernel设备驱动模型之 平台驱动注册

/**  * __platform_register_drivers - register an array of platform drivers  * @drivers: an array of drivers to register  * @count: the number of driv...

2017-03-25 13:39:50

阅读数 360

评论数 0

原创 Linux内核设备驱动之GIC驱动

对于可提供中断这种功能的IC来说,具体中断IC应该具有哪些功能参见IC描述,下面我们着重 讲解GIC,并且是GIC-V3版本的IC。 对于中断控制器来说,内核对其抽象,用数据结构struct irq_chip来对其描述。对于GIC来说,实现下面对象:   static struct irq...

2017-03-25 13:37:58

阅读数 750

评论数 0

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