Linux driver 板级文件跟踪一般方法
/***********************************************************************************
* Linux driver 板级文件跟踪一般方法
* 声明:
* 1. 这是本人使用vim+ctags最常用的跟踪方法,也是唯一的方法; :)
* 2. 本人已经在跟踪线上标注了跟踪序号,也就是先后循序;
* 3. 就目前而言,这种方法貌似是通用的;
* 4. 这个例子仅仅是简单的演示,并没有全部展开,如果想要进一步跟踪,
* 继续跟就行了。
* 5. 源代码来自:myzr_android4_2_2_1_1_0.tar.bz2
*
* 2015-6-12 晴 深圳 南山平山村 曾剑锋
**********************************************************************************/ cat arch/arm/mach-mx6/board-mx6q_sabresd.c ......
#define SABRESD_POWER_OFF IMX_GPIO_NR(3, 29) <--------------------------+
...... |
|
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake, debounce) \ <------+ |
{ \ | |
.gpio = gpio_num, \ | |
.type = EV_KEY, \ | |
.code = ev_code, \ | |
.active_low = act_low, \ | |
.desc = "btn " descr, \ | |
.wakeup = wake, \ ^ |
.debounce_interval = debounce, \ | |
} | |
| |
static struct gpio_keys_button new_sabresd_buttons[] = { <-----<-------+ | |
//GPIO_BUTTON(SABRESD_VOLUME_UP, KEY_VOLUMEUP, 1, "volume-up", 0, 1), | | |
//GPIO_BUTTON(SABRESD_VOLUME_DN, KEY_VOLUMEDOWN, 1, "volume-down", 0, 1), | | |
GPIO_BUTTON(SABRESD_POWER_OFF, KEY_POWER, , "power-key", , ), --->----*--+ |
}; ^------------------------------------------------------*----+
|
static struct gpio_keys_platform_data new_sabresd_button_data = { <-------+ |
.buttons = new_sabresd_buttons, >------------>---------------*--+
.nbuttons = ARRAY_SIZE(new_sabresd_buttons), |
}; |
|
static struct platform_device sabresd_button_device = { <--+ |
.name = "gpio-keys", | |
.id = -, | ^
.num_resources = , | |
}; | |
| |
static void __init imx6q_add_device_buttons(void) <-----*-------+ |
{ | | |
platform_device_add_data(&sabresd_button_device, >---+ | |
&new_sabresd_button_data, | |
sizeof(new_sabresd_button_data)); >-------------*-------+
|
platform_device_register(&sabresd_button_device); |
} |
|
|
...... ^
/*! |
* Board specific initialization. |
*/ |
static void __init mx6_sabresd_board_init(void) <------------<---*--------<-----+
{ | |
...... | |
imx6q_add_device_buttons(); ------>------------->-------------+ |
...... |
} |
|
...... |
/* ^
* initialize __mach_desc_MX6Q_SABRESD data structure. |
*/ |
MACHINE_START(MX6Q_SABRESD, "Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board") |
/* Maintainer: Freescale Semiconductor, Inc. */ |
.boot_params = MX6_PHYS_OFFSET + 0x100, |
.fixup = fixup_mxc_board, |
.map_io = mx6_map_io, |
.init_irq = mx6_init_irq, |
.init_machine = mx6_sabresd_board_init, ----->------------->------->--------+
.timer = &mx6_sabresd_timer,
.reserve = mx6q_sabresd_reserve,
MACHINE_END
Linux driver 板级文件跟踪一般方法的更多相关文章
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- kernel 3.2.0 上加入自己的板级文件
第一步.复制自己的参考的板级文件 cp arch/arm/mach-omap2/board-am335xevm.c arch/arm/mach-omap2/board-aplex_ECM_5412.c ...
- linux下查看某个文件位置的方法
linux下查看某个文件位置的方法: 例如,不知道apache的配置文件httpd.conf的位置,可以有两种方法来查看: 1.find / -name httpd.conf2.locate http ...
- (linux)BSP板级支持包开发理解
1. 概述 嵌入式系统由硬件环境.嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求.硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操作系统在 ...
- linux下查找某个文件位置的方法
一.通过文件名查找法: 举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录 下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf ...
- linux下快速列出文件列表的方法
前言 这两天碰到一个很棘手的问题,需要读取出ubuntu系统中某个目录下所有文件,由于服务器中存储的文件实在太多,导致此过程效率十分低下,动辄需要等待一个小时之久,还只是一个目录.于是如何快速获取文件 ...
- Linux系统启动过程内核文件丢失解决方法
一.问题描述 公司近期因机房断电,导致服务器重启后,引导进入不了操作系统.经过检查发现启动文件缺失,导致系统启动失败,网上搜了好多资料,解决都比较零散,现结合实际处理经验和网友的建议整理接方案. 二. ...
- linux下tar.bz2文件的 解压缩方法
一 使用bzip2解压缩命令进行解压缩: bzip2 -d gcc-4.1.0.tar.bz2 二 上面解压完之后执行下面的命令. tar -xvf gcc-4.1.0.tar 或 tar -xvf ...
- 在Linux中的.iso文件的处理方法
1,mkdir /a 2,mount MLNX_OFED_LINUX-4.4-2.0.7.0-rhel7.3-x86_64.iso /a3,cd /a4,这样就可以对文件进行操作了
随机推荐
- [设计模式]适配器模式Adapter
将一个类的接口转换成客户希望的另外一个接口. A d a p t e r模式使得原本 由于接口不兼容而不能一起工作的那些类可以一起工作.
- 《WAP团队项目软件设计方案》
WAP团队项目软件设计方案 一.根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明文档的GitHub地址:https://github.com/LVowe999/-7.git 在 ...
- OpenGL入门程序一:绘制简单的矩形
#include <GL/glut.h> void MyDisplay(void); int main(int argc, char **argv) { //设置窗口的大小 glutIni ...
- 递归C++
递归C++ 一.递归简介 自己调用自己 二.递归写法 2.1 写法介绍 先写出问题的递推公式 递归部分的边界条件就是递推公式中的边界条件 递归部分的主体部分就是递推公式中的主体部分 2.2 实例 (1 ...
- 在 Confluence 6 中连 Jira 的问题解决
下面是可能会发生的一些错误信息.如果你的系统中出现了下面的一些提示,你应该调整你的日志错误级别到 WARN,然后查看具体的错误原因.请参考:Configuring Logging. error.jir ...
- HDU-2829 Lawrence (DP+四边形不等式优化)
题目大意:有n个敌方军火库呈直线排列,每个军火库有一个值vi,并且任意相邻的两个库之间都有通道相连.对于任意一条连起来的军火库链,它对我方的威胁可以用函数w(i,j)表示为:w(i,j)=vi*sum ...
- linux 检查补丁包是否安装 名称 版本 release号
To determine whether the required packages are installed, enter commands similar to the following: # ...
- C#窗体控件简介ListBox
ListBox 控件 ListBox 控件又称列表框,它显示一个项目列表供用户选择.在列表框中,用户 一次可以选择一项,也可以选择多项. 1.常用属性: (1) Items属性: 用于存放列表框中的列 ...
- SSH执行远程命令和传送数据
$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub ...
- PHP:第一章——PHP中字符运算符、比较运算符、错误控制运算符
//字符串运算符: //$a='PHP'; //$b='SEO'; //echo $a.$b;//输出:PHPSEO //echo $a.=$b;//等价于:$a=$a.$b;输出:PHPSEO // ...