学习韦东山JZ2440自己编写AM335x驱动之搭建平台

       之前一段时间学习了韦东山老师的驱动课程,觉得韦老师的课十分好,我个人觉得要想对一件事物加深理解,就必须从至少两个角度去看,换句话说,要想对一个驱动理解深刻,就必须在至少两个以上不同的开发板上实现它,因此我准备了两块板子,第一块是韦老师的JZ2440,第二块是飞凌的am335x。因为JZ2440是韦老师上课用的板子所以只要跟着韦老师的步骤走肯定不会出问题,但是这只能供学习参考,我觉得学习过程中遇到问题,解决问题有时候甚至比学习新的内容更重要,因此在全新的环境下编写驱动对于新手来说还是很重要的。当然我也是个新手,这里将会记录下我的成长历程,我希望能够为大家提供一点点有价值的资料。

        我是在windows10下用的vmware虚拟机,版本是如下

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

     为了完全区分开,同时也是为了开发方便,装了两个虚拟系统,一个是韦老师提供的ubuntu9.10镜像,一个是ubuntu12.04.5。交叉编译工具都是他们各自提供的,这里跟大家强调一下,交叉编译工具是个十分重要的东西,特别是对版本的要求十分严格,一般版本不同是不能够编译成功的,所以不要随意自己去选择交叉编译工具。

我个人的开发方式是,在windows下写源代码,然后通过cuteftp传送给ubuntu,然后在ubuntu下进行交叉编译,然后将开发板通过nfs挂接到ubuntu上,在开发板上直接执行编译好的源代码。

具体实物平台如下:

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

准备1个路由器(至少3口),一个usb集线器(你的主机usb口足够多可以不用),一块JZ2440开发板,一块am335x开发板,两根usb转microusb,1根usb转232。3根网线。

1将开发板上对应的接口都接到主机上去,网口都接到路由器上,注意网线都接在路由器的wlan口,不要接外网。

2设置windows主机的ip地址为192.168.1.10(在网络适配器里找ipv4),设置ubuntu9.10的ip地址为192.168.1.20(终端下命令sudo ifconfig eth0 192.168.1.20),设置ubuntu1204.5的ip地址为192.168.1.21(终端下命令sudo ifconfig eth0 192.168.1.21),设置JZ2440的ip地址为192.168.1.30(在开发板上有uboot和内核和根文件的前提下,我是用的secureCRTportable,上电后输入ifconfig eth0 192.168.1.30),设置am335x的ip地址为192.168.1.31(在开发板上有uboot和内核和根文件的前提下,我是用的secureCRTportable,上电后输入ifconfig eth0 192.168.1.31)。这样相互应该都能够ping的通,注意要把windows的防火墙关掉。

3挂接nfs,我在JZ2440挂接的是ubuntu9.10里面自己制作的文件系统(地址/work/nfs_root/my_first_fs),在am335x挂接的是ubuntu12.04.5里面的/home/ftp/mnt文件夹。命令在开发板上分别输入如下:

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.20:/work/nfs_root/my_first_fs /mnt

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.21:/home/ftp/mnt /mnt/ubuntu。

在搭建过程中ubuntu里面有时候需要用到apt-get装一些东西比如nfrs之类的,这时候需要用网,但我们用的是不接外网的路由器,这时候我建议大家用无线网,然后ubuntu的网络使用如下设置(在虚拟机射中的网络设配器中)。

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

前提是你得在windows下共享了网络,

学习韦东山JZ2440自己编写AM335x驱动之搭建平台

这样就算搭建好开发环境了,可以开始着手准备开发一些例子了。