Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239570
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 730
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-30 14:04
文章分类

全部博文(36)

文章存档

2014年(36)

我的朋友

分类: 嵌入式

2014-09-25 11:09:18

前面虚拟机安装ubuntu12.04已经完成,按照之前的方法安装交叉编译环境也很顺利,要写能在板子上运行的驱动程序,必须要编译内核,首先下载内核。

       使用git命令下载似乎不是很好使,,我下载的是3.3的那个。

 1:解压源码:

 tar -xvzf linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz

       如果不编译内核,直接在makefile直接将目录指向这里是要报错的。因为有些.h .o文件需要编译过后才有。



2.配置内核源码      

在arch/arm/configs/目录下有这个配置文件   digilent_zed_defconfig 

make ARCH=arm digilent_zed_defconfig


3编译Linux内核

make ARCH=arm

编译过程在arch/arm/boot目录下生成Image和zImage文件


4编写helloworld.c和Makefile

helloworld.c


Makefile


可以看到helloworld.c和pc机运行的驱动程序时完全一样的,而Makefile有一点不一样,就是这里的kernel路径就是我们解压后的路径,然后还有ARCH=arm


5make


make通过了,之前就没有通过,这里还有一个疑问待解决,就是上面只是编译了内核,生成了Image和zImage文件,上面时候还需要安装内核模块呢?这里还有待搞清楚。

ls看一下生成的文件




看到生成了helloworld.ko文件,拷贝到U盘里面,拷贝到zedboard自带的迷你linux系统下。

6测试

启动完系统后


插上U盘,挂载到/opt目录下

fdisk -l

mount /dev/sda1  /opt/

cd /opt/

insmod helloworld.ko

测试结果:


运行完毕。

阅读(1706) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~