韦东山视频第1期 学习计划

来源:互联网 发布:ubuntu界面太小 编辑:程序博客网 时间:2024/04/30 19:59
  学习计划按照《万勇210学习日记》中的问题,在后面补充各部门的学习笔记,在文中加入跳转,以便形成一个学习体系。下面,先看下万勇同学的学习历程:

问题1:当Tiny210开发板到手后,最想干的事情无疑就是把二期讲的驱动在Tiny210上面通通给实现了, 那该怎么操作呢?

答案1:于是就用开发板上面预装的Linux内核和文件系统开始写起了驱动。

 

问题2:我写了第一个驱动(按键触发中断的驱动),由于该驱动需要注册中断,而注册中断时用到的中断 号已经被开发板预装的内核里面自带的按键驱动给占了,而我又不想设置为共享中断模式,那该 怎么办呢?

答案3:只有通过make menuconfig去掉内核自带的按键驱动,然后重新编译内核的一种办法了。

 

问题3:当去掉按键驱动这么一个小驱动以后,重新编译驱动时,报了很多错误,联系到了内核其他的很 多驱动程序,我猜测应该是友善的那群家伙在内核里面做了些什么高明的手脚,于是重新编译内 核通不过,该怎么办呢?

答案3:有以下两种解决方法:

方法一:

按照错误提示,找到对应驱动中的对应行,把错误改掉,这样一个一个的改下去。或者再来make menuconfig,把涉及到的错误的驱动给去掉,这样配置一次,编译一次,有错误,再改错误的进行下去,直到能够编译通过。

方法二:

从Linux内核官网http://www.kernel.org/中,重新下载一个内核,一个纯净的内核,再进行配置,编译。

而我就选择了方法二,下载了一个和开发板预装的内核相同版本的Linux内核,linux-2.6.35.7版本。

 

问题4:重新编译内核成功,接下来的操作无疑就是启动内核了,于是我把新内核通过uboot下载到nand  flash中,然后nand启动,发现启动不了内核,怎么办?

答案4:有以下两种解决方法:

方法一:

内核启动不了,问题最有可能的就是机器ID不一样,还有启动参数没有设置正确,因此我们可以到uboot的源码里面去修改机器ID和设置启动参数,一期视频教程里面已经有详细介绍。

方法二:

自己写一个bootloader,将毕业班视频里面的教我们的如何自己写bootloader的绝技用于实战当中。

而我,理所当然的选择了方法二,重在锻炼和考验自己。

 

问题5:既然选择了自己写bootloader,那么该怎么为Tiny210这么一个全新的开发板写bootloader呢?

答案5:卖个关子,我会在后面的学习日记中做详细的介绍,并给出代码。不仅会介绍如何让bootloader 能够正常启动内核,还会讲如何给bootloader添加printf()功能,如何支持help,nand write,nand  read,md,mw,bootm等简单命令的实现,如何让该bootloader显示logo(即一张照片),如何有 启动的声音(即解码一个wav音频文件)。

 

问题6:bootloader写成功,并能够正常启动内核了,此时心里无比的高兴,也感到颇有成就感,但是新的 问题也随之出现。看内核的启动信息发现:1.新的内核里面没有Tiny210的MTD设备的驱动,即 没有分区,因此无法启动烧写到nand flash中的文件系统;2.新的内核里面没有网卡驱动,因此无 法通过网络文件系统系统启动。既然都没有办法进入文件系统,那写驱动从何谈起呢?该怎么办 呢?

答案6:有以下两种解决方法:

方法一:

自己写一个nand flash驱动程序,并添加MTD分区,然后烧写更文件系统,从而启动。

方法二:

移植DM9000网卡驱动程序,然后NFS启动。

为了以后写驱动程序的方便,首先了方法二。当然,方法一以后也会讲到。

 

问题7:既然选择移植DM9000网卡驱动程序,那么该怎么操作呢?

答案7:再卖个关子,我会在后面的学习日记中做详细的介绍。不过在看这篇学习日记之前,建议先看看 二期视频的移植网卡部分。

 

黎明之前总是被黑暗包围,解决掉以上8个问题以后,终于见到了初升的太阳,开发板从无到有的驱动开发环境就此搭建成功,从此可以开始将二期驱动视频在Tiny210开发板上面实现了。



0 0
原创粉丝点击