|
虽然现在可在Skyeye上模拟跑uClinux,但总觉得应该找个实际的硬件系统跑跑自己编译的uClinux,应该更贴近实际应用吧?抱着这种想法,决定买台ARM7开发系统玩玩,希望越便宜越好。结果发现现在ARM7开发板很少人卖了,网上搜了一下,问了几家,不是没货就是报价和ARM9差不多,或者只剩下一些维修件。原来看过一个介绍,说是用某些路由器可改装成ARM学习开发系统,决定试试,在网上搜了一会,发现Link-Max生产的LM-340路由器是用三星的S3C4510B设计的,这可是当年风头最劲的一款ARM7啊,网上资料很多,最全面的应该是www.lumit.org了,当年这群发烧友们自发地建立了这个网站,而且留下了许多宝贵的资料代码供免费下载,移植应该容易成功的,而且老古网还有一本绝版的电子书<ARM7应用系统开发详解---基于S3C4510B的系统设计->下载,据说这可是当年开发ARM7的圣经。于是,到掏宝网去掏了一台LM-340回来(厂家官网www.link-max.com ,状态不错,路由功能能正常工作。按照老习惯,先把LM-340的线路图抄下来,线路图下载www.hp-link.com/arm/S3C4510.pdf
先分析一下硬件,LM-340用的Flash是MX29LV400T,手册下载www.hp-link.com/arm/MX29LV400C-800C-160CT-B-2.3.pdf 只有512K非常小的Flash了,但我最后还是把一个能跑的uClinux给压到了512K以下,烧进去跑了起来,虽然很曲折,但从过程中学到了uClinux启动的详细过程,而且学会了怎样不用Bootloader就从flash中把压缩的uClinux系统启动起来,这一点网上说的很少,因为买来的开发板都有做好的Bootloader,往往我们也不会花精力研究启动过程了,但却失去了学习uClinux启动的宝贵机会。大家分析LM-340的电路图并对比MX29LV400T手册就可看到,虽然LM-340用的是512K的,但A18,A19两根地址线还是连到S3C4510B芯片的,也就是说如果你愿意,完全可去市场买片2M的Flash焊上。
再看SDRAM,LM-340用的是两片1Mx16的SDRAM共4M内存,能跑uClinux吗?答案是:能也不能,如果不把uClinux学透摸透,4M能跑,但不稳,但看我后面介绍修改uClinux的编译文件的方法,不但能跑,而且还FTP, Telnet, BOA web一个不少!真是看到了uClinux短小强悍的能力。各位学弟学妹可能要问了:现在内存U盘都卖到白菜价了,我们有必要花力气学精简内核吗?呵呵,这要看你老板的鉴赏力了,如果你老板正好是个搞技术的出身,估计这就是你打败成百上千的应聘者最终拿到offer的必杀技吧,闲话少说,我们开始对LM-340的硬件进行改造,使它成为一台ARM7嵌入式学习开发系统!
首先我们需要一个串口,经过分析,uClinux是用S3C4510B的串口0来输出信息的,看LM-340的电路图,串口0有202脚RXD和204脚TXD组成,当然还要加个地线。我们用细线把202、204两个脚引出,注意这个串口是TTL电平的,也就是说用5V代表1、用0V代表0,而我们电脑出来的串口是用-15V代表1、用+15V代表0,为让LM-340的串口和PC的串口连起来,我们需要一个电平转换,网上说用MAX232芯片,这当然可以,但我觉得还不是最好,如果想省事,应该去市场买个串口转TTL电平的转换头,回来接上就可以了,link-max公司也有卖这款产品。如果想省钱,我在老古网上查到一个用一个二极管加两个三极管实现的232转TTL电路,成本不到一元,效果非常好,我用的就是这个电路。
接上串口线,给LM-340上电,OK,启动信息出来了,表明串口增加成功。下面增加JTAG口,JTAG口在ARM开发中非常重要,没有它就不能算是一个完整的ARM7学习开发系统,我们查S3C4510手册和LM-340的电路图,得知58、59、60、61、62分别是TCK,TMS,TDI,TDO,nTRST五个信号脚,我们把它们用细线引出,关于JTAG电缆,经过比较,我决定选用H-JTAG,一款由国人开发的JTAG调试电缆,大家可去www.hjtag.com上下载说明书原理图驱动烧写软件,非常齐全。按图做好JTAG电缆后,插上和PC的打印口接上,启动H-JTAG软件,显示找到ARM7芯片,成功!
我们去www.lumit.org上下载ADS1.2版软件,按H-JTAG手册说明装好驱动,在ADS中也发现ARM7,打开AXD调试器,也成功导入ARM7信息,这样,一套ARM7软硬件开发系统就建立了(网络口是不需要增加的,LM-340可提供多达四个网络口)。下面进行实验“
实验一:烧写Bootloader
我们打开H-JTAG软件,选择H-Flasher,在www.hjtag.com上下载一个4510.hfc文件,load进H-Flasher,这时按check,烧写软件就可自动找到LM-340上的Flash,型号为MX29LV400XT,如果找不到,你也可自己设定。我们去www.lumit.org网站上下载一个bootloader,用H-JTAG烧入,对LM-340重新关电开电,成功!串口出来bootloader的启动信息。你现在有了一台可随时跑uClinux的开发板了,立即做实验二!
实验二:把uClinux的镜象文件烧入LM-340运行
在www.lumit.org网站上下载一个编译好的uClinux系统,文件名为image.ram.rar,解压为image.ram,按lumit.org手册V1.4版介绍的方法,用bootloader的tftp方式,载入LM-340,注意,LM-340的四个LAN口都可以用双绞线接到PC的网口上,用来tftp文件,image.ram有1.8M,用tftp方式不到三秒钟就载入到LM-340中了,成功载入后,串口出信息:是否boot软件?回答y,这时可看到熟悉的uClinux启动信息在串口软件中翻滚,最后停在shell的/>,你这时就面对一台linux主机了,请用ls cd ps ifconfig cat mount好好地享受一下你的劳动成果吧,接下来我们还要更艰巨并充满挫折感的实验要做:
实验三:移植uClinux内核,自己生成image.ram,而不是下载别人的
实验四:打开BOA web,编写cgi软件,一个非常具有挑战性的ARM7学习实验
实验五:编译可烧写到LM-340的flash中的uClinux压缩内核,打破启动uClinux非bootloader不可的惯例,我将教会你根据不同的硬件系统更改uClinux中哪些软件的哪些设置,实现不用bootloader而启动uClinux的超级工夫!
这三个实验希望发烧友们自己先做一下,过几天大家一起共享一下成功的方案。 |
|