主题 : 关于驱动程序中的宏 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 81677
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2012-11-12
最后登录: 2012-11-21
楼主  发表于: 2012-11-16 21:16

 关于驱动程序中的宏

本人菜鸟刚开始学linux底层驱动,用vim查看驱动程序,其中有很多宏和一些函数,我知道这些宏肯定是定义在某个头文件中

本人之前玩单片机 使用keil开发是可以查看头文件,并且在写驱动的时候可以从头文件中复制相应的宏。对于linux下找这些宏毫无办法,

是否是需要用到相应的编译软件。请坛中高手指点,谢谢!
级别: 新手上路
UID: 81677
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2012-11-12
最后登录: 2012-11-21
1楼  发表于: 2012-11-16 21:55
希望能有好心人点拨一番
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2012-11-16 22:01

 回 楼主(johnsonpan) 的帖子

驱动程序里用到宏大多定义在内核源代码的include/linux和arch/arm/mach-XXX(XXX是相应的ARM SoC平台)目录下的头文件里。你可以用任何文本编辑器的搜索功能来搜索这些宏的定义,当然效率最高的还是Linux命令行上的grep命令。
至于源代码浏览工具,比较常见的有Linux上的KDevelop和Windows上的Source Insight.。
另外,还有一个非常好用的内核源代码在线浏览网站: http://lxr.linux.no/linux
希望这些对你有帮助。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 81677
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2012-11-12
最后登录: 2012-11-21
3楼  发表于: 2012-11-17 10:36

 回 2楼(kasim) 的帖子

版主您好:我是否可以这样理解,就是底层驱动开发工程师在编写驱动的时候使用的是vim编辑器,然而需要使用各种宏的时候通过文本编辑器的搜索功能来搜索这些宏然后复制过来,而像source insight这样的工具是作为浏览内核代码使用,之前单片机的开发因为都是在windows下的开发工具下编写代码,跑到linux下就感觉特别的没有头绪,不清楚具体的一个开发流程。还有想请教版主的是做为开发使用是选择虚拟机还是装独立系统比较好,因为我想养成一个良好的习惯,所以最好在起步的时候能规范一些,希望可以得到版主的指点,谢谢~!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2012-11-17 11:35
就是底层驱动开发工程师在编写驱动的时候使用的是vim编辑器,然而需要使用各种宏的时候通过文本编辑器的搜索功能来搜索这些宏然后复制过来

你可以这么认为。vim是Linux上功能非常强大而且非常方便(只要一个命令行窗口)的文本编辑器,再配合grep命令基本上就能完成绝大部分的代码编辑和搜索功能。

而像source insight这样的工具是作为浏览内核代码使用

是的,source insight是Windows平台上最常用的代码浏览工具,对于像Linux内核这样大的源代码包非常适合。但要注意不要过分依赖它,否则会让你失去对源代码布局最基本的了解。

之前单片机的开发因为都是在windows下的开发工具下编写代码,跑到linux下就感觉特别的没有头绪,不清楚具体的一个开发流程

基本上和Windows下开发没有本质的区别,还是编辑->编译-/链接->运行/调试的流程。只是各个环节所使用的工具不同,具体看你开发的对象了。对于Linux设备驱动,《Linux Device Driver》第三版(http://www.aiothome.net/read.php?tid-1859.html)有很好的描述,强烈建议你仔细阅读这本书。

还有想请教版主的是做为开发使用是选择虚拟机还是装独立系统比较好

都可以,看你怎么方便。独立系统在编译源代码性能上通常比虚拟机要高。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 81677
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2012-11-12
最后登录: 2012-11-21
5楼  发表于: 2012-11-17 11:57

 回 4楼(kasim) 的帖子

非常感谢版主的指点,谢谢~!