44b0 bootloader编译全过程

44b0 bootloader编译全过程

 代码直接用的BOLB-FOR3000。这里只讲编译

 我的板子是博创的UPTECH-44B0:
 2M的NOR FLASH(AM29lv160b)(BANK0),
 16M的NAND FLASH(K9F2808v)(BANK2),
 8M的 SDRAM(HY57v641620)(BANK6)

 一. 下载BLOB-FOR3000
 http://www.image2003.com/code/down/192168291092007629173471475878.rar
 
 解压到根目录
 mv 192168291092007629173471475878.rar /
 cd /
 unrar x 192168291092007629173471475878.rar

 里面已经有编译好的BLOB了,先要清理一下

  make distclean

  二. 下载交叉编译工具链

http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/cross-2.95.3.tar.bz2
(我只用这个编译成功了,其他的都会报错)

照样可以解压到根目录

tar -jxvf cross-2.95.3.tar.bz2

修改~/.bashrc文件

在最后添加

export PATH="$PATH:/2.95.3/bin/"

运行
sourcr ~/.bashrc

现在可以使用arm-linux-*一套工具了(比如打arm-li,然后table补全,可以补全就行了)

arm-linux-gcc -v

出现2.95.3字样就行了,2,95.2的好像编译时也会报错的。

三.下载uclinux源代码
(据说去官方下载会很慢),这个我用的是博创光盘上面的uClinux-2.4.x,应该是要移植哪个内核就应该有那个内核的源代码

同样解压到根目录(图方便)

四.编译

#cd /blob-for3000
#export CC=arm-linux-gcc
#export OBJCOPY=arm-linux-objcopy
#export RANLIB=arm-linux-ranlib
#export AR=arm-linux-ar
#autoconf
#autoheader
#./configure --with-board=mba-44b0 --with-linux-prefix=/uClinux-2.4.x --host=i686 --target=arm
#make
如果没有出现错误的话就可以在src/blob下面找到几个编译好的文件
# ls src/blob*
src/blob/blob        src/blob/blob-rest        src/blob/blob-start-chain
src/blob/blob-chain  src/blob/blob-rest-elf32  src/blob/blob-start-chain-elf32
src/blob/blob.map    src/blob/blob-start       src/blob/blob-start-elf32

刚开始学习嵌入式是郁闷的,郁闷的是找不到直接了当的资料,郁闷的是要找不到人帮忙,郁闷的是刚开始看代码就象是踩在海绵上了,完全使不上力。

但是当我的AXD连上板子的时候,当把BLOB编译成功并烧写到板子出现了我修改后的签名的时候,当我把一个一个文件分析得一清二楚的时候,我才知道努力总会有收获的。

虽然还没完全把BLOB分析完,不过整体的思路已经很清晰了,编译成功是第一步,然后是参考手册试着看懂每一个程序,然后就是移植内核,文件系统,编写驱动程序,路还长着呢。


你可能感兴趣的:(Flash,table,嵌入式,Path,工具)