Eclipse开发ZYNQ驱动程序

本文转载自:亦梦云烟微信公众号

在虚拟机中的ubuntu中开发linux系统驱动程序,往往直接使用gedit编辑,makefile编译,而这种方法比较麻烦;Eclipse是开源软件框架,编辑器比较好用,配置好编译器后可以更加方便快捷的开发程序,本文介绍如何使用Eclipse开发Linux的驱动程序。

本文的前提:安装按arm-xilinx-linux-gnueabi-编译器工具链。

1. 建立C/C++项目工程,配置编译器为arm-xilinx-linux-gnueabi-gcc

右键单击空白的工程文件名,Properties->Discovery Options->Cross G++ Compiler

同理,Cross GCC Compiler中的Compiler invocation command设置成arm-xilinx-linux-gnueabi-gcc。

2. 选择C/C++ General->Paths and Symbols->Includes->GNU C,在包含文件中添加liunx内核的头文件目录,arm架构头文件目录和开发变所对应的mach目录:

3. 将设置导出为Symbol.xml文件(点击下方的Export Settings),先临时存储在桌面即可。

4. 内核文件编译后,进入/include/generated文件夹中,其中有一个autoconf.h,将其中的宏定义导出到xml文件中存储起来:

$: cd workspace/zynq/kernel/linux-xlnx/include/generated
 
$: cat autoconf.h | grep define |awk '{print "<macro><name>" $2 "</name><value>" $3 " </value></macro>"}' > symbol.xml

5. 打开之前导出的symbol.xml,在

中间添加(如果有两个则在最下面那个添加)

6. 将从autoconf.h导出的xml文件中所有内容复制到刚才添加的

下一行, 最后symbol.xml文件内容是这样的:

7. 保存上述的symbol.xml,导入到Eclipse的配置中

在Symbols中可以看到_STDC_PREDEF_H以下是新导入的宏。

8. 添加编译器的路径

Properties->C/C++ Build->Environment,在PATH字符串的Value中添加xilinx交叉编译器的bin目录路径。

9. 将Eclipse生成的makefile删掉,使用自定义的makefile对文件进行编译,反勾选Generate makefiles automatically

10. Makefile文件的内容:

export ARCH=arm
 
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
 
CC = $(CROSS_COMPILE)gcc
 
obj-m := ZYNQ_LED.o
 
KDIR :=/home/biac/workspace/zynq/kernel/linux-xlnx
 
PWD :=$(shell pwd)
 
all:
 
$(MAKE) -C $(KDIR) M=$(PWD) modules
 
clean:
 
$(MAKE) -C $(KDIR) M=$(PWD) clean

注意:如果需要修改使用的编译器,修改CROSS_COMPILE即可,如果编译其他名称的文件,修改ZYNQ_LED.o即可。

最新文章