现在的位置: 首页 > 综合 > 正文

在cygwin下进行bfin-uclinux开发

2013年09月17日 ⁄ 综合 ⁄ 共 1360字 ⁄ 字号 评论关闭

快乐虾

http://blog.csdn.net/lights_joy/

lights@wo.com.cn

  

本文适用于

Cygwin gcc 3.4.4

Bfin-uclinux-toolchain-2009R1.1

  

欢迎转载,但请保留作者信息

 

 

bfin-uclinux的官方网站上提供了一个可以直接在windows下使用的toolchain,但是这个toolchain并不能用来编译uclinux,只能用于普通应用程序的开发。要想编译内核,必须首先构建在cygwin下使用的toolchain

通过对toolchain-src包中的BuildToolChain脚本的分析,终于成功构建了一个可用的toolchain,简单记下其步骤:

1、编译bfin-elf-binutils

2、编译bfin-elf-gcc

3、从uclinux内核代码中提取出需要的头文件。

4、编译uClibc

5、编译bfin-uclinux-binutils

6、编译bfin-uclinux-gcc

7、编译bfin-linux-uclibc-binutils

8、编译bfin-linux-uclibc-gcc

至于genext2fscramfsldrelf2flt这四个工具,因为其无法在cygwin下编译通过,且它们的运行不需要依赖于其它的库,因而我们直接从官方的二进制包里复制可执行文件。

下面是make menuconfig的画面,有点丑陋,不过可以用:

 

下面是make xconfig的界面,也不怎么样,嘿嘿,不过将就着用也可以:

 

配置完成成再make,一切OK!哈哈,似乎可以准备和虚拟机BYEBYE了。

这种方式的一个大问题是当启用jffs2等文件系统的支持时,内核编译完成后会生成一个叫rootfs.jffs2这样的根文件系统,而这个根文件系统是通过makefs.jffs2来完成的,在cygwin下无法支持这个命令(需要linux系统服务)。

在网上找到一个可以在cygwin下用的mkfs.jffs2,将之复制到user/mtd-utils目录下,再修改user/Makefile,注释掉这两行:

dir_$(CONFIG_JFFS_FS)                       += mtd-utils

dir_$(CONFIG_JFFS2_FS)                      += mtd-utils

还有一个问题是大小写敏感的问题,因为在内核中有可能在同一个目录下有仅大小写不同的同名文件,这在windows下会造成问题,只能通过修改Makefile和文件名来解决。最主要的一处修改是uclinux/config目录下面有一个叫Kconfig的文件,还有一个叫kconfig的目录,此时我们只能将此目录改名,同时修改uclinux/Makefile,将其中的SCRIPTDIR相应地改为我们重命名后的目录名称。

其它地方的重名暂时没有遇到!

 

BYEBYE!我的虚拟机!

 

 

近日,我家6岁的小姑娘参加了第六届POP全国少儿英语风采大赛,拉票进行中(2011-6-15前)。

请帮忙点击新东方网站的链接:

http://popdasai.xdf.cn/toupiao.php?do=space&uid=4237

投她一票,谢谢!

抱歉!评论已关闭.