BlackFin交叉编译环境搭建

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/bin

b)然后设置环境变量,在用户目录下的.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

5)烧写u-boot

1.通过JTAG烧写

(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

2.通过UART烧写

(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

3.通过GDB烧写

通过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

6)脚本测试

打开minicom ,在板子正常起来后,输入命令:tftpboot uImage,把将要测试的项目对于uImage下载到 板子上,然后输入命令boot,将板子boot起来。 板子boot起来之后,查看相应测试项目的测试脚本,或者测试log,进行相应的测试工作。或者查看网页 blackfin.uclinux.org

 参考http://blog.chinaunix.net/uid-26199686-id-2951923.html

参考:

https://blackfin.uclinux.org/doku.php?id=%E5%AE%9E%E4%B9%A0%E5%B7%A5%E4%BD%9C%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3&s[]=bf609&s[]=ezkit&s[]=defconfig

猜你喜欢

转载自blog.csdn.net/wangyachao0803/article/details/81334483