利用Eclipse开发Linux驱动

上传人:206****923 文档编号:41674916 上传时间:2018-05-30 格式:DOC 页数:35 大小:6.71MB
返回 下载 相关 举报
利用Eclipse开发Linux驱动_第1页
第1页 / 共35页
利用Eclipse开发Linux驱动_第2页
第2页 / 共35页
利用Eclipse开发Linux驱动_第3页
第3页 / 共35页
利用Eclipse开发Linux驱动_第4页
第4页 / 共35页
利用Eclipse开发Linux驱动_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《利用Eclipse开发Linux驱动》由会员分享,可在线阅读,更多相关《利用Eclipse开发Linux驱动(35页珍藏版)》请在金锄头文库上搜索。

1、 利用利用 Eclipse 开发开发 Linux 驱动驱动Eclipse CDT 的使用的使用第一步:下载 cygwin(选择从网络直接安装的包) 第二步:安装 cygwin(如果不做任何配置,将默认安装 Cygwin 运行最少的程序组件) 1, Devel 目录: gcc-g+ ,点击“default” ,使其选中最新版本 2, Devel 目录: gcc-core ,点击“default” ,使其选中最新版本 3, Libs 目录: win32api,点击“default” ,使其选中最新版本 4, Editor 目录:vim,点击“default” ,使其选中最新版本 然后各种确定继续。

2、 第三步:配置环境变量 PATH: cygwin 存放目录的 bin 目录下,如:F:/cygwin/bin,如果 PATH 有多个配置项,此项 放在最前面。 第四步:装 cdt 插件即可,两种方式(在线或者离线) Restart eclipse, all done!设置设置Eclipse 具有很强大的自动补全功能,在浏览代码和编辑代码的时候用起来十分得心应手, 下面我将介绍如何配置 Eclipse,让它来帮助我们开放 linux 驱动。(注意,此处说的 Eclipse 是 Eclipse IDE for C/C+ Developers 。而不是 Eclipse IDE for Java De

3、velopers 安装CDT 插件后)。1、新建一个 c project。此项目专门为驱动使用。 在右侧 project explorer 列表中,右键单击刚才新建的项目,选择 properties. 依次选择 c/c+ general - paths and symbols, 在右面选择 includes 选项卡,languages 中选择 GNU C此时在右侧会显示出编译器默认的 include 路径,好的添加以下内容(mini6410 为例) /path/of/kernel/dir/include /path/of/kernel/dir/arch/arm/include /path/of

4、/kernel/dir/arch/arm/plat-samsung/include /path/of/kernel/dir/arch/arm/mach-s3c64xx/include(如果写的是 x86 下的驱动,用/path/of/kernel/dir/arch/x86/include)再选择 Symbols 选项卡, 点击下方 Export Settings,将设置导出为 xml 文件. 打开该 xml 文件, 在 标签中,添加 _KERNEL_1之后我们还需要将 autoconf.h 中的宏定义加入到 Eclipse 中,执行如下步骤plain view plaincopy1.cd /p

5、ath/of/kernel/dir/include/generated/ 2.cat autoconf.h |grep define |awk print “ $2 “ $3 “ symbol.xml 打开 symbol.xml, 将里面的全部内容复制到 刚才 xml 文件的后面 保存文件,点击 Import Settings 导入该文件(如果在导入的时候经常提示解析错误,那么 应该是 xml 的格式写错了,一定要好好地检查一下到底是错在哪里了。)点击 OK 退出 properties,再右击项目,选择 Index - Rebuild 但是配置到此以后,还是没有办法自动编译。只好使用自己编写的

6、 Makefile 来编译了。 选择项目 properties. 依次选择 c/c+ build - Makefile Generation,将 build Direcotry 指定为 Makefile 位置。如 $workspace_loc:/HelloDriver。其中的 HelloDriver 是我的项目根目录。 然后自己手动编写 Makefile 文件。并放置到项目的根目录下。 Makefile 示例css view plaincopy1.pwd = $(shell pwd) 2.KERNEL_SRC = /lib/modules/$(shell uname -r)/build 3.o

7、bj-m := hello.o 4.module-objs := hello.o 5.all: 6. $(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules 7.clean: 8. rm -f *o * .*cmd *o *ko * .*cmd hello.mod.c 右键选择项目-Make Target-Create。在弹出的对话框中,填写 Target Name。此处的名称 一般为自己编写 Makefile 中目标名称。在我的 Makefile 文件中,我一般写 all。同样方法也 可以添加 clean。 此时就可以用 Eclipse 编写自己的驱动,并且可以通

8、过 Make 来自动编译驱动程序了。驱动示例驱动示例之前写 Linux 驱动都是在纯文本下完成的,最近发现原来可以使用 Eclipse 来开发,于 是捣鼓了半天终于编译成功,感觉还不错。下面以 Hello World 驱动为例说一下使用 Eclipse 开发 ARM-Linux 驱动的过程。关于 Eclipse 和 CDT 的安装就不说了。安装完 Eclipse 和 CDT 后,运行 Eclipse,file- New-project 选择 C/C+里面的 C Project,如下图:然后点击 Next,填写工程名为 hello 和设置工程路径,设置如下:点击 Next 后再点击 Next,填

9、写交叉编译器前缀和交叉编译器路径,如下:然后点击 finish,此时的工程结构如下图所示,自动包含了几个与交叉编译器相关的头文件 路径:右键工程-Propertise,选择 C/C+ General 里的 Paths and Symbols,选中在 includes 选项卡 里的 GNU C,然后点击右边的 Add 按钮,添加内核(必须事先已经用交叉编译器编译过) 头文件目录,如下:勾选 Add to all configurations ,然后点击 OK,在 Symbols 选项卡里添加一个 Symbols,Name 为_KERNEL_,Value 为 1,如下:勾选 Add to all

10、configurations,然后点击 OK。再点击 OK,此时会弹出一个框,如下,选择 YES。编写 hello.c 文件:1#include /*Needed by all modules */2#include /*Needed for KERN_INFO */3#include /*Needed for the macros */456staticint_init hello_init(void) 7 8printk(KERN_INFO “Hello, worldn“); 9return0; 10 1112staticvoid_exit hello_exit(void) 13 14pr

11、intk(KERN_INFO “Goodbye, worldn“); 15 1617module_init(hello_init); 18module_exit(hello_exit); 19MODULE_LICENSE(“GPL“);编写 Makefile 文件:1obj-m +=hello.o 23PWD =$(shell pwd) 45all: 6make -C /GT2440/kernel/linux-2.6.34.12M=$(PWD) modules 78clean: 9rm -f *.o *.ko 完成后,如下图:最后,右键工程-Properties-C/C+ Build,在 Bu

12、ilder Settings 选项卡里取消勾选 Generate Makefiles automatically,如下:然后单击 OK。右键工程-Build Project 编译工程,成功编译效果如下:已经生成 hello.ko 文件,并且可以看到 Console 的输出和在终端下编译的输出是一样的。附:要导入原来的 C 工程的方法是,File-Import,选在 General 下的 Existing Projects into Workspace,如下:然后点击 Next,点击 Browse 选择要导入的工程的根目录,然后点击 Finish。Ubuntu 中实现步骤中实现步骤1.准备工作准

13、备工作首先得安装好 gcc 工具链,以及开发环境,可以看看我的前面的几步。 还得编译好内核,一般开发板都带了,现在我还不知道配置内核,只能按照开发板默 认的去编译,编译前需要先编译 uboot,建议像我一样的新手先学会驱动编写,慢慢的去 学习 内核的配置裁剪,我觉得到时候这个肯定是非常简单的过程,只不过没有找到门道而 已,等我会了一定和大家分享,如果有会的可以教我一下,在下感激不尽。 我的嵌入式内核编译的路径为:/home/cfan/linux/linux-3.0.1/ ,这个待会会用到的。 今天我就教大家使用 eclipse 开发一个最简单的驱动程序,LED 驱动,其实使用 eclipse

14、编译这种简单的驱动可能显得有点麻烦,如果是大工程我想集成开发环境的优势就会体现 出来了,还有就是 eclipse 的编辑器界面比较友好,跟 RVDS4.0 一样。2.建立驱动工程,设置建立驱动工程,设置 eclipse打开打开 eclipse可以在桌面上面建立一个指向 eclipse 的快捷键,或者到 eclipse 的目录执行 ./eclipse 即可 启动,我设置了 eclipse 的全局变量,因此只需要在终端中输入 eclipse 即可启动,如下图建议将工程目录选择在 NFS 共享的那个目录,这样方便从开发板加载驱动或者执行程序, 我的就选择在 nfs6410 这个共享目录里面。新建一个

15、新建一个 C 项目,空项目项目,空项目1.设置设置一直下一步,直到下图位置,填好自己的 arm-linux-gcc 的路径。设置完成后点击完成。到这一步新建工程完成了,此时还有重要的一部要做,先别急着添加.c 文件。在工程上面 右键,属性,到 C/C+常规-Code Analysis-路径和符号点击下方 ExportSettings,将设置导出为 xml 文件.我的道出到桌面上面了,这个大家随意点击确定 应用 退出即可。 到你刚才保存的位置处打开那个.xml 文件,用文本编辑器打开即可,我的在桌面上面,右 键单击,使用文本编辑器打开现在我们还需要将 autoconf.h 中的宏定义加入到 Ec

16、lipse 中,执行如下步骤 打开内核的这个目录 include/generated/ 这个按个人实际情况而定,我的是 cd /home/cfan/linux/linux-3.0.1/include/generated/ ,另外打开一个终端 cd 到这个目录在刚刚这个终端中执行cpp view plaincopy1.cat autoconf.h |grep define |awk print “ $2 “ $3 “ symbol.xml 此时打开这个目录/home/cfan/linux/linux-3.0.1/include/generated,会多了一个文件将 symbol.xml 这个文件用文本编辑器打开此时文本编辑器里面打开了两个 xml 文件了,将之前导出 eclipse 的那个 xml 文件打开,需 要添加一行代码,在这两行代码之间(如果有两个,是下面的那个)html view plai

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号