BlackFin交叉编译环境搭建
参照http://docs.blackfin.uclinux.org/doku.php?id=toolchain:installing
toolchin、u-boot、kernel等资料最新的下载在http://blackfin.uclinux.org/gf/gf/project/uclinux-dist/forum/?action=browseRedirect
1)下载
下载下面几项:
blackfin-toolchain-09r1.1-2.i386.tar.bz2
blackfin-toolchain-elf-gcc-4.1-09r1.1-2.i386.tar.bz2
blackfin-toolchain-uclibc-full-09r1.1-2.i386.tar.bz2
2)安装
a)解压3个包到/opt下,在/opt下可以输入find -name "bin" 查看是否安装好,安装好的会看到
./uClinux/bfin-elf/bfin-elf/bin
./uClinux/bfin-elf/bin
./uClinux/bfin-uclinux/bin
./uClinux/bfin-uclinux/bfin-uclinux/bin
./uClinux/bfin-linux-uclibc/bin
./uClinux/bfin-linux-uclibc/bfin-linux-uclibc/binb)然后设置环境变量,在用户目录下的.bashrc中添加,又或是在/etc/bash.bashrc中添加如下:
export PATH=$PATH:/opt/uClinux/bfin-linux-uclibc/bfin-linux-uclibc/bin:/opt/uClinux/bfin-linux-uclibc/bin:/opt/uClinux/bfin-uclinux/bin:/opt/uClinux/bfin-uclinux/bfin-uclinux/bin:/opt/uClinux/bfin-elf/bfin-elf/bin:/opt/uClinux/bfin-elf/bin
3)其他安装
除了这三个包以外,还需要一些其他必要的包,具体参考http://docs.blackfin.uclinux.org/doku.php?id=installing_linux
4)编译
下面就试着编译u-boot和内核看看是否已经安装成功
a)编译u-boot
在https://sourceforge.net/projects/adi-u-boot/files/ 下载 u-boot-2013.07-2014R1.tar.bz2
解压
cd u-boot-2013.07-2014R1
make bf609-ezkit
make
最后生成u-boot.bin
b)Buildroot编译,生成带文件系统的镜像文件
https://sourceforge.net/projects/adi-buildroot/files/2014R1/ 下载 blackfin-buildroot-2014R1-RC1.tar.bz2
(1).将文件blackfin-buildroot-2014R1-RC1.tar.bz2解压到某一目录下。
(2).buildroot是一个利器,将busybox和linux-kernel联合起来。可以用它来将自己配置的内核,生成带有文件系统的内核镜像。当然你自己也可以先把内核给编译完了,然后再用busybox工具生成文件系统。:
- 内核配置。
在buildroot目录下执行下面命令:
cd blackfin-buildroot
make bf609-ezkit_defconfig(要和所用板子对应,可以通过命令$ ls configs/bf 来找对应的配置文件)
make clean
make menuconfig
出现如下错误:
*** Unable to find the ncurses libraries or the
*** required header files.
*** ‘make menuconfig’ requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
解决办法如下:
CentOS:
yum install -y ncurses-devel
Ubuntu:
sudo apt-get insatll ncurses-dev
make linux-menuconfig
make
cp output/images/uImage /tftpboot
(1)先到10.99.24.51上拷贝jtag-gnice目录。里面有相应板子到flash文件。 (2)进入jtag-gnice目录下面,查看需要烧u-boot板子型号对应到flash文件,如:vi flash-bf537- stamp.jtag 。查看其要求到u-boot类型:是u-boot.ldr还是u-boot.bin (3)拷贝相应到u-boot 类型到 /tftpboot下面 (4)切换到/opt/uClinux/bfin-elf/bin目录下,运行下面命令:
sudo ./bfin-jtag ~/jtag-gnice/flash-*
(5)烧写完成后,打开minicom,设置相应IP(前提是可以boot起来),命令如下:
set ipaddr 10.100.4.50 set serverip 10.100.4.174 saveenv
(1)拷贝相应u-boot.ldr.uart文件到/tftpboot目录下面 (2)查看相应板子到文档,根据文档把板子对应到硬件开关调到uart位置上 (3)运行下面命令:
bfin-uclinux-ldr -l /tftpboot/u-boot.ldr.uart /dev/ttyS0 && kermit -l /dev/ttyS0 -b 57600 -C connect
(前提是串口正常,设置正确。如果采用到是USB转串口,那么/dev/ttyS0 应改为/dev/ttyUSB0。) (4)烧写完成后,打开minicom,将硬件开关调回到原来位置,设置IP:
set ipaddr 10.100.4.50 set serverip 10.100.4.174 运行命令run update
通过GDB烧写u-boot需要先编译u-boot (1)通过git clone 命令拷贝u-boot的code。可以进入blackfin.uclinux.org网页进行相应下载。第三步已 经交代过了下载方法。 (2)进入下载到u-boot目录下面,编译u-boot (3)找到相应板子型号的配置文件:ls include/configs/bf (4)编译u-boot。
make bf609-ezkit_config make clean make
(5)进入GDB:运行gdb前,需要运行./bfin-gdbproxy bfin,在/opt/uClinux/bfin-uclinux/bin/下面
cd /opt/uClinux/bfin-uclinux/bin/ sudo ./bfin-gdbproxy bfin
(6)转换到u-boot目录下,进入gdb
bfin-uclinux-gdb u-boot <gdb> targer remote :2000 <gdb>load arc/blackfin/cpu/init.elf <gdb> c <gdb>load <gdb>c
打开minicom,看板子是否boot起来,如果起来,然后运行run update
打开minicom ,在板子正常起来后,输入命令:tftpboot uImage,把将要测试的项目对于uImage下载到 板子上,然后输入命令boot,将板子boot起来。 板子boot起来之后,查看相应测试项目的测试脚本,或者测试log,进行相应的测试工作。或者查看网页 blackfin.uclinux.org
参考:http://blog.chinaunix.net/uid-26199686-id-2951923.html
参考: