u-boot编译错误

来源:互联网 发布:李昌镐 吴清源 知乎 编辑:程序博客网 时间:2024/05/20 11:47

错误一:

main.c:51:error:inline function 'show_boot_progress' cannot be decleared weak

make[1]:***[main.0]错误1

make[1]:正在离开目录'/home/sns/linux2.6.32/icetek-v3/u-boot-orig/common'

make:***[common/libcommon.a]错误2

解决方法:去掉show_boot_progress 前面的inline即可

gedit ./common/main.c

查找show_boot_progress

去掉该函数前面的inline

错误二:

board.c:127: error: inline function 'coloured_LED_init' cannot be declared weak
board.c:129: error: inline function 'red_LED_on' cannot be declared weak
board.c:131: error: inline function 'red_LED_off' cannot be declared weak
board.c:133: error: inline function 'green_LED_on' cannot be declared weak
board.c:135: error: inline function 'green_LED_off' cannot be declared weak
board.c:137: error: inline function 'yellow_LED_on' cannot be declared weak
board.c:139: error: inline function 'yellow_LED_off' cannot be declared weak
board.c:141: error: inline function 'blue_LED_on' cannot be declared weak
board.c:143: error: inline function 'blue_LED_off' cannot be declared weak
make[1]: *** [board.o] 错误 1
make[1]: Leaving directory `/root/workspace/u-boot-2009.08/lib_arm'
make: *** [lib_arm/libarm.a] 错误 2

解决方法:

打开lib_arm/board.c,定位到127行开始,将其注释掉:

void inline __coloured_LED_init (void) {}
//void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
这里注释掉了'coloured_LED_init' 的部分,自己做时对照注释掉后面几个带__attribute__的部分即可

 

错误三:cpu/arm920t/start.o: In function `start_code':
/root/workspace/u-boot-2009.08/cpu/arm920t/start.S:117: undefined reference to `coloured_LED_init'

/root/workspace/u-boot-2009.08/cpu/arm920t/start.S:118: undefined reference to `red_LED_on'
make: *** [u-boot] 错误 1

解决方法:

打开cpu/arm920t/start.S,搜索“coloured_LED_init”定位到117行,找到如下代码:

     bl coloured_LED_init
            bl red_LED_on

这两行是AT91RM9200DK开发板的LED初始化,注释掉即可。

有了mkfs.ubifs,就可以制作UBIFS镜像了,具体步骤如下:

1. 使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:

 

  1. mkfs.ubifs -r/tmp/rootfs-m 2048 -e 126976-c 992 -o ubifs.img

以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img-m参数指定了最小的I/O操作的大小,也就是NAND FLASH一个page的大小,-e参数指定了逻辑擦除快的大小,-c指定了最大的逻辑块号。

通过此命令制作的出的UBIFS文件系统镜像可在u-boot下使用ubi write命令烧写到NAND FLASH上。



原创粉丝点击