转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/19859533
对于新手来说最苦逼的可能就是搭建开发环境了。博主很不幸成为苦逼中的苦逼。因为由于经济比较拮据(妈妈给的零花钱少),所以买了个二手开发板。然后着另一个老师出的开发板来学习,所以结果你懂的。鉴于如此为了小伙伴们以后能够迅速搭建出开发环境,写此文希望能帮助到大家。(以mini2440搭建韦东山老师的环境为例)
1:首先拿到开发板别着急,第一步看赠送的PDF(赠送的说明手册)。要搞清楚到底这东西是啥嘛。了解下开发板的硬件资源,接口啦、功能啦、还有需要用到的工具啦。对开发环境有个大概的了解。基本上可以总结为电脑window.虚拟机linux、还有开发板linux.这三个环节。电脑window肯定都有主要做的就是装驱动。虚拟机还有开发板上的linux是要装的。还有他们三个之间互相传输数据是要装的。
2:安装虚拟机VMware(具体细节网上资料很多)。接下来安装虚拟机上的linux,本人使用的是ubuntu,小伙伴们也可以安装其他版本。基本步骤就是下载镜像文件。然后用虚拟机载入记下来分区挂在(具体可以百度)网络选择桥接就好了。
3:接下来装软件装驱动。这个是相对来说比较麻烦的。但是不容易出错。接下来通讯小神器闪亮登场(此处应该有掌声)SecureCRT 。这个软件是串口用来传数据的。这里简单提一下串口,如果是mini2440的话笔记本是需要买USB转串口的,而且需要一天DB9双母头的新(屌丝博主竟然买了条一公一母的线),记得装上驱动哦。下载之后新建一个串口选择的时候注意COM别选错了(自己去设备管理器去查),波特率选择115200,右面的三个东东全不打勾。进去后简单设置下环境(options)选择sesson 然后选择里面的appearance设置(博主推荐新宋体12pt .UTF-8).老是看着虚拟机里面的linux来回切换是不是脑袋晕晕的。这时候小神器大喊一身还有谁。小神器可创建一个SSH。步骤和上面差不多只是在Hosthome的IP与主机一致。数据三者通过小神器都能传输了。可是文件呢。接下来第二个大神马山登场。那就是FTP。这大神是干嘛的,他就是传输文件的。他能将文件从window上传到虚拟机linux上,也能将window文件传到开发板上。首先说第一个,你要传东西首先得安装吧。在虚拟机上安装FTP(sudo apt-get install vsftpd)然后再/etc下找到vsftpd.conf文件去vim将#lo****=yes和#wr******=yes前面的#去掉就OK啦。下载给CuteFTP Professional就可以从windows下面传给虚拟机啦(使用方法可以百度)。那怎么传给开发板文件呢。下载个Tftpd32就可以给通过uboot下载了(方法简单此出省去)。uboot是啥?请往下看。
4:简单介绍下开发板下的linux系统。你要做的就是烧写uboot(相当于电脑中的BOIS,就是引导内核的程序),烧写linux内核,烧写根文件系统。知道咋烧写就行,具体以后都会深入学习的。uboot可以通用,因为以后博主感觉有可能自己编就直接下的编号的文件进去。方法就是用J-Flash ARM工具用jlink烧写。其中需要配置下CPU出事地址还有flash型号。一定要设好,博主吃了好大的亏呢。uboot的另一个强大的工程就是下载,十分方便,有了他就可以不用jlink了。
接下来主要说下内核编译,因为屌丝博主是二手的开发板所以设备对不上所以比较麻烦。编译内核先把源码内核传到虚拟机上然后打补丁。中间要换下编译器,调整下环境变量。找到你开发板的驱动文件。然后把不一样的LCD和网卡驱动复制到内核文件中(小技巧博主把文件名改成内核一样的文件名,这样就可以直接替换掉了)。其中要改名一个文件别忘了。然后编译。你会惊讶的发现没有uImage,那是因为你的ubuntu没有安装这个工具#apt-get install uboot-mkimage。安装完之后执行make命令。最后编出来个uImage。OK成功了。这里注意下uboot只支持uImage,不能下载zImage,下载了是会出错的。通过uboot把uImage下到开发板中。根文件系统我也是用做好的直接烧写。对了JLINK烧写到norflsh里面的.uboot可以烧到nandflash。然后运行。
*********************************************简单科普下,资料来源于网络作者不祥*********************************************************
**********************************************************************************************华丽的分割线**********************************************************************************
S3C2440的启动时读取的第一条指令是在0x00上,分为成nand flash和nor flash上启动。 Nor flash的有自己的地址线和数据线,可以采用类似于memory的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。mini2440就是直接把vivi直接烧录在nor flash上。
Nand flash是IO设备,数据、地址、控制线都是共用的,需要软件区控制读取时序,所以不能像nor flash、内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot。 S3C2440把Bootloader烧到nand flash上启动,因为在S3C2440里有一个内置的SRAM,叫做stepping stone(垫脚石,很形象…),系统启动加电后,会把nand flash上的起始4KB的内容拷贝到SRAM里执行,这样就实现了从nand flash启动。如果bootloader小于4KB的话(像vboot),在SRAM里就能boot,大于4KB的话(u-boot,vivi),在SRAM里做一些基本初始化后,再把bootloader的剩余部分拷贝到SDRAM里(>0x30000000)。 我们使用S3C2440的时候,经常通过nor flash启动,进入vivi的菜单(S3C2440的Nor flash已经烧录好了vivi),之后通过vivi的usb下载功能,把其他的bootloader下载到nand flash里,下载完成后,再通过nand flash启动,测试我们的bootloader。
NOR flash适合做代码存储并EIP的,NAND适合用来作大量数据存储的。
NANDFlash启动: NANDFlash存储器的前4K将被自动加载到Steppingstone(内部SRAM缓冲器),然后系统自动执行这些载入的启动代码,这4K的启动代码需要将NANDFlash中的内容复制到SDRAM中执行。NANDFlash的前4K空间放启动代码,SDRAM速度较快,用来执行主程序的代码。
*************************************************************************************************************************************************************************************************
本文为原创作品,请尊重本人劳动成果,转载请注明出处。