在windows环境下用Sourcery CodeBench编译基于
am3359的u-boot
自从使用am3359以来,总觉得在linux下烧写flash是件麻烦事,而用虚拟机的话又不好Debug。于是笔者就在想能不能在windows下构建一个环境可以编译基于am3359的u-boot?这样烧写flash,Debug u-boot将会方便很多。
经过笔者几番尝试,终于找到适用的方法,思路如下:首先,我们需要模拟linux的操作环境;其次,我们需要交叉编译器来编译可以在ARM上运行的代码;最后,我们需要一个IDE作为框架环境,与模拟linux的操作环境和交叉编译器结合来共同完成编译u-boot。 这里,我们选用MinGW来模拟linux的操作环境,选择Sourcery CodeBench作为交叉编译器,使用ccsv5(基于Eclipse框架)作为IDE。
1.安装MinGW/MSYS
我们知道在linux下编译通过的c代码,如果它使用了自己的API,那么在windows下编译是不能通过的。但是linux的API的功能在windows下是能实现的。这里我们需要一款软件MinGW/MSYS。MinGW,即 Minimalist GNU For Windows,它是一个Windows特定头文件和使用GNU工具集导入库的集合,能够生成本地的Windows程序而不需要第三方动态链接库。MSYS,即Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make命令等等。在编译u-boot时,我们需要从MinGW/MSYS中调用一些linux命令。还有,MinGW/MSYS是完全免费的。
下载MinGW:http://sourceforge.net/projects/mingw/files/
运行mingw-get-inst-20120426,Next->Next->
开始安装。
2. 安装Sourcery CodeBench Lite Edition for ARM EABI
Sourcery CodeBench是一款能够在ARM, Coldfire, MIPS, Power, X86, 等平台上作嵌 入式C/C++开发的完整的开发环境。而其中的Sourcery CodeBench Lite 为你提供免费的,基于命令行接口的交叉编译器。ccsv5自带有CGT编译器,而我们最终是要能够编译生成在am3359上裸跑的代码,所以我们需要ccsv5调用 Sourcery CodeBench Lite 的交叉工具链替代掉原来的CGT编译器来编译u-boot。
下载Sourcery CodeBench Lite Edition for ARM EABI:
https://sourcery.mentor.com/sgpp/lite/arm/portal/subscription?@template=lite
EABI: 用于RTOS或者没有os的硬件设备。这个配置不能用于构建内核或者应用程序。 uClinux:用于运行不带MMU的CPU上的linux系统。可以构建uClinux内核和应用程序。 GNU/Linux:这个用于运行带有MMU的CPU上的linux系统。可以构建linux内核和应用程序。
SymbianOS:用于编译Symbian应用程序。
运行 arm-2012.03-56-arm-none-eabi