【转】Linux 内核开发 - Eclipse内核开发环境搭建

翻译这篇文章的时候,我也想过可能会有高手说,内核开发用vi就足够了,还用什么eclipse,当然对于内核中函数特别了解的人确实如此,但是对于新 手,每使用一个函数,就要去查找一下函数的定义,实在是非常浪费时间的工作,本文将介绍如何利用Eclipse这个强大的IDE开发环境进行Linux内 核开发。

      首先你应该有一个简单的内核模块工程,至少包含一个Makefile和一个c源文件。
1. 启动Eclipse,选择File->C Project创建一个C工程

linux内核 开启ashmem_linux linux内核开发ide_内核开发


2. 创建一个空的Makefile工程。选择 Makefile Project->Empty Project,并且选择Linux GCC,为工程娶个名字。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_02


3. 点击Next,然后点击Advance Settings,进入到工程属性设置界面。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_03


4. 选择C/C++ build节点并且打开Behaviour面板,勾选上Build on Resource Save,这样可以在每次保存的时候都自动编译整个工程。

linux内核 开启ashmem_linux linux内核开发ide_文件目录_04


5. 选择字节点 Enviromment,添加一个新的环境变量,取名为TERM,值设置为xterm(注意大小写)。并且勾选上"add to all configurations"。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_05


6. 然后选择 C/C++ Ceneral下面的Path and Symbols节点,选择GNU-C添加一个新的include path指向内核头文件目录,也必须保证勾选上'add to all configurations'.

linux内核 开启ashmem_linux linux内核开发ide_内核开发_06


7. 重复步骤6,把板子(boards mach)的头文件目录添加进来.

linux内核 开启ashmem_linux linux内核开发ide_右键_07


8. 选择Symbols面板,添加Symbols for GNU-C,名字必须是__KERNEL__值不用填。这是为了保证printk和其他模块等相关的东西不生成警告信息。

linux内核 开启ashmem_linux linux内核开发ide_文件目录_08


9. 执行完前面8个步骤,点击OK回到上一个对话框窗口,然后点击Finish按钮。

linux内核 开启ashmem_linux linux内核开发ide_文件目录_09


10. 选择我们已经创建好的工程,然后右键Import导入以前写的Helloworld模块。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_10


11. 在弹出的窗口中选择General->File System,然后点击下一步。

linux内核 开启ashmem_linux linux内核开发ide_文件目录_11


12. 选择原来hello world和Makefile的位置。然后只选择Makefile和源代码文件,获者其他你必须的文件,然后点击Finish按钮。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_12


13. 现在已经准备好了,唯一要做的就是创建和编译makefile里面的目标,一般需要clean和all这两个目标。右键选择Target Make,创建clean和all这两个目标,这两个实际上是定义在makefile中的,你可以添加更多你定义在makefile中的目标。双击某个目 标的图标就可以编译这一个目标。

linux内核 开启ashmem_linux linux内核开发ide_文件目录_13


两个目标的创建

linux内核 开启ashmem_linux linux内核开发ide_文件目录_14

linux内核 开启ashmem_linux linux内核开发ide_右键_15


14. 现在你已经完成了配置,正如你看到的一样,你现在已经能够查找到一个结构体的所有成员了,当然还有更多。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_16


15. 配置Eclipse只是显示你指定的头文件目录,右键工程属性,然后选择discovery mode节点 like in the screenshot below.设置discovery为 'GCC per file scanner'。

linux内核 开启ashmem_linux linux内核开发ide_内核开发_17

有趣吧,你现在已经可以用非常强大的Eclipse开发Linux内核了。