http://www.csdn.net/ http://www.arm.com/zh/ https://www.kernel.org/ http://www.linuxpk.com/ http://www.51develop.net/ http://linux.chinaitlab.com/ http://www.embeddedlinux.org.cn http://bbs.pediy.com/
全部博文(579)
发布时间:2014-11-21 16:35:42
前言:(总结已经基本写完,这段时间我会从新排版和修正。错误总会有的,望能指正!)前段时间学习了嵌入式驱动,趁着没开始找工作,这段时间我会每天抽出时间来复习。 我的总结是根据学习时的笔记(李杨老师授课)、《linux内核设计与实现》第三版、《linux设备驱动程序》第三版和《linux设备驱动开发详解》第一.........【阅读全文】
发布时间:2013-01-18 12:34:10
/* * linux/arch/arm/kernel/calls.S * * Copyright (C) 1995-2005 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This file is included .........【阅读全文】
发布时间:2013-01-15 09:14:09
PC操作系统:ubuntu?11.10使用的开发板:am335x_evm开发板使用的操作系统:linux?3.2测试用例:#include #include #include #include #include #include #include #incl.........【阅读全文】
发布时间:2013-01-08 11:08:22
测试代码: 点击(此处)折叠或打开#include#include#include#include#include#include#include#includeMODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("S......【阅读全文】
发布时间:2013-01-07 18:28:07
点击(此处)折叠或打开#include<linux/device.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/stat.h>#include<linux/init.h>#include<linux/string.h>#include<linux/sysfs.h>#include<linux/kobject.h>MODULE_LICENSE("Dual BSD/GPL");MODULE_AUTHOR("SM");s......【阅读全文】
发布时间:2013-01-07 16:09:14
文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。 提示:在学习这部分内容是一定要分析所有介绍的源代码,知道他们与上一部分内容(kobject、kset、attribute等等)的关系,最好要分析一个实际的“flatform device”设备,不然会只学到表象,到后面会不知所云的。 总线 总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 &......【阅读全文】
发布时间:2013-01-06 16:26:30
在 ldd_bus.h 定义如下://LDD driver typestruct ldd_driver{ char *version; struct module *module; struct device_driver driver; struct driver_attribute version_attr;};//A device type for things "plugg......【阅读全文】
发布时间:2013-01-06 09:43:44
PC操作系统:ubuntu 11.10使用的开发板:am335x_evm开发板使用的操作系统:linux 3.2 在新版本的内核中struct device 已经没有bus_id成员,取而代之的是通过dev_name和dev_set_name对设备的名字进行操作。 dev_name和dev_set_name在2.6.35.6内核中的源代码如下: static inline const char *d......【阅读全文】
发布时间:2013-01-04 15:43:53
1.结构框图:2.管脚功能描述3.状态图:Power on: 上电Reset Procedure: 复位过程Initialization: 初始化ZQCL: 上电初始化后,用完成校准ZQ电阻。ZQCL会触发DRAM内部的校准引擎, 一旦校准完成,校准后的值会传递到DRAM的IO管脚上,并反映为输出驱动和ODT阻值。ZQCS: 周期性的校准,能够跟随电压和温度的变化而变化。校准需要更短的时间窗口, &......【阅读全文】
发布时间:2013-01-04 15:41:59
首先,我们先了解一下内存的大体结构工作流程,这样会比较容量理解这些参数在其中所起到的作用。这部分的讲述运用DDR3的简化时序图。 DDR3的
内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就
可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑
Bank(Logical Bank,下面简称Bank)。 DDR3内部Bank示意图,这是一个NXN的阵列,B代表Bank......【阅读全文】
发布时间:2012-12-27 19:12:34
从Linux2.6起,引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device表示,驱动用platform_driver进行注册。 Linux platform driver机制和传统的device_driver机制相比,一个十分明显的优势在于platform机制将本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform_device提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植......【阅读全文】
发布时间:2012-12-22 09:08:33
一. 输入子系统核心分析。 1.输入子系统核心对应与/drivers/input/input.c文件,这个也是作为一个模块注册到内核的。所以首先分析模块初始化函数。 [cpp] view plaincopy static int __init input_init(void) { int err;  ......【阅读全文】
发布时间:2012-12-22 08:56:03
linux input子系统分析--主要函数 一. 各种注册函数 因为分析一所讲的每种数据结构都代表一类对象,所以每种数据结构都会对应一个注册函数,他们都定义在子系统核心的input.c文件中。主要有三个注册函数 input_register_device 向内核注册一个input设备 input_register_handle 向内核注册一个handle结构 input_regis......【阅读全文】
发布时间:2012-12-22 08:55:40
linux input子系统分析--概述与数据结构 Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏等,在内核中都是以输入设备出现的。下面分析input输入子系统的结构,以及功能实现。一. Input子系统结构与功能实现 1. Input子系统是分层结构的,总共分为三层: 硬件驱动层,子系统核心层,事件处理层。 (1)其中硬件驱动层负责操作具体的硬件设备,这......【阅读全文】
发布时间:2012-12-13 11:47:32
异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核搭建了一个非常容易扩充的中断处理体系。 中 断系统结构涉及的方面很多,而且分布在很多的函数中,这里我主要理清一些结构和流程顺序已经在哪些函数中实现,我不知道其他人怎么样?但是我自己一开始怎 是找不到linux内核是怎么把GPIO设置成中断的,我找了很久都找不到,还有我们很多的设置,初始化等等东西好像都没有实现,清除中断寄存器也不知道 是怎么实现的,只是知道使用中断,差不多用request......【阅读全文】