开发板:A33,运行linux-3.4.39

主机:Ubuntu 14.04

----------------------------------------------

 

 

1. 进入uboot目录:~/A33-Vstar/dragonboard/brandy/u-boot-2011.09

编译涉及的重要文件:build.sh、Makefile

 

 

2. 编译

2.1 方式一,使用build.sh脚本

执行:sudo ./build.sh -p sun8iw5p1

出现以下错误:

 

1)make: INTERNAL: Exiting with 9 jobserver tokens available; should be 8!

解决:打开build.sh,将-j8去掉即可。

即将make -j8 $PLATFORM CROSS_COMPILE=arm-linux-gnueabi-

修改为make $PLATFORM CROSS_COMPILE=arm-linux-gnueabi-

 

2)dereferencing type-punned pointer will break strict-aliasing rules

原因:dereferencing type-punned pointer will break strict-aliasing rules警告信息跟优化选项-strict-aliasing 有关。当开启这个优化选项时,可能优化会导致源代码中部分语句缺失,而造成系统工作不正常,所以就所有的违反strict-aliasing rules原则的地方加了条这个警告信息,提醒读者检查这个地方的代码,看看是不是如果优化后会导致部分语句工作不正常。同时这个信息提示还有另外一个目的,两个不同类型的指针指向同一个地址时,极有可能会导致代码编写出错(比如犯大小端的错误,还有地址字节对齐的错误),所以这个警告信息还有这一层的目的。

解决:编译时make系统使用了错误的gcc编译器:/usr/bin/arm-linux-,必须要使用A33自带的gcc编译器,位于~/A33-Vstar/dragonboard/out/sun8iw5p1/dragonboard/common/buildroot/external-toolchain/bin/

-1. 先屏蔽 /usr/bin/下的gcc系列编译器,可将其移动到别的路径。

-2. 修改build.sh,将PATH修改为:

export PATH=$PATH:~/A33-Vstar/dragonboard/out/sun8iw5p1/dragonboard/common/buildroot/external-toolchain/bin/

即A33自带gcc编译器的存放路径。

 

注:通过在Makefile中添加CFLAGS = -fno-strict-aliasing -O0无效,依旧会出现此错误,所以只能采用换自带编译器的方法。

 

3)cp: cannot create regular file ‘../brandy/out_source’: No such file or directory

解决:去掉build.sh最后一行:cp -rf u-boot.bin ../brandy/out_source

 

依次解决上述错误后,编译成功:

 

2.2 方式二,直接执行make

$ sudo make distclean

$ sudo make sun8iw51

注:应该不会出现方式1的三个错误,并且方式二使用的是~/A33-Vstar/dragonboard/brandy/gcc-linaro/bin/目录下的gcc编译器

 

 

3. 使用u-boot

编译成功后,生成的u-boot.bin和u-boot-sun8iw5p1.bin文件存放在当前目录。且u-boot-sun8iw5p1.bin会自动copy到:~/A33-Vstar/dragonboard/tools/pack/chips/sun8iw5p1/bin/

这时回到dragonboard/目录下,直接运行sudo ./build pack即可使用新生成的u-boot。

 

 

 

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐