韦东山Linux嵌入式课程社区
直播中

罗颖

7年用户 174经验值
私信 关注

为什么我最后没有生成smdk2440目录而是生成了Smdk2410目录?

移植u-boot-2015-10版本
添加了单板相关信息
make smdk2410_defconfig
make all可也编译通过
然后我make smdk2440_defconfig
就报出题目的错误来啦:
  • >make smdk2440_config
  • make[1]: *** No rule to make target 'board/samsung/smdk2440/smdk2440.o', needed by 'board/samsung/smdk2440/built-in.o'。 停止。
  • Makefile:1196: recipe for target 'board/samsung/smdk2440' failed
  • make: *** [board/samsung/smdk2440] Error 2

复制代码
然后搜索了一个上午最终发现好像是链接脚本的问题
  • 顶层Makefile 1194-1196行
  •         PHONY += $(u-boot-dirs)
  •         $(u-boot-dirs): prepare scripts
  •                 $(Q)$(MAKE) $(build)=$@
  • 寻找built-in.o文件
  •         /var/s3c2440-src/u-boot-2015.10/scripts
  •         五 2月 24|08:20|0:>grep "built-in.o" -nR
  •         Makefile.build:106:builtin-target := $(obj)/built-in.o
  •         Makefile.build:129:# Do section mismatch analysis for each module/built-in.o
  •         Makefile.build:349:# If the list of objects to link is empty, just create an empty built-in.o
  •         Makefile.lib:28:# o if we encounter foo/ in $(obj-y), replace it by foo/built-in.o
  •         Makefile.lib:42:obj-y           := $(patsubst %/, %/built-in.o, $(obj-y))
  •         Makefile.lib:63:subdir-obj-y := $(filter %/built-in.o, $(obj-y))
  •         Makefile.spl:67:libs-y := $(patsubst %/, %/built-in.o, $(libs-y))

复制代码
然后在主目录
  •                 /var/s3c2440-src/u-boot-2015.10
  •                 五 2月 24|10:29|0:>grep "built-in.o" -nR > built-in.txt
  •                 找到如下内容:
  •                 board/samsung/smdk2410/.built-in.o.cmd:1:cmd_board/samsung/smdk2410/built-in.o :=  ARM-linux-ld     -r -o
  •                 board/samsung/smdk2440/.built-in.o.cmd:1:cmd_board/samsung/smdk2410/built-in.o :=  arm-linux-ld     -r -o

复制代码
在我建立的单板目录里面没有生成smdk2440目录而是生成了Smdk2410目录然后各种的找原因 最终还是没找到
请教这里的高人了  非常感谢您的答复
请告知我这个问题产生的原因在哪里 谢谢~

回帖(8)

李颜

2019-8-27 08:27:30

  • /u-boot-2015.10/board/samsung/smdk2440
  • >la
  • 总用量 168
  • drwxr-xr-x  2 xuan users   289 2月  24 10:43 .
  • drwxr-xr-x 16 xuan users   220 2月  23 14:54 ..
  • -rw-r--r--  1 xuan users 13664 2月  23 13:26 built-in.o
  • -rw-r--r--  1 xuan users   173 2月  23 13:26 .built-in.o.cmd
  • -rw-r--r--  1 xuan users   181 2月  23 15:00 Kconfig
  • -rw-r--r--  1 xuan users   181 2月  23 13:46 Kconfig~
  • -rw-r--r--  1 xuan users  1524 2月  23 13:26 lowlevel_init.o
  • -rw-r--r--  1 xuan users  8770 2月  23 13:26 .lowlevel_init.o.cmd
  • -rw-r--r--  1 xuan users  4263 2月  24 10:43 lowlevel_init.S
  • -rw-r--r--  1 xuan users  4189 2月  23 13:26 lowlevel_init.S~
  • -rw-r--r--  1 xuan users   155 2月  23 18:06 MAINTAINERS
  • -rw-r--r--  1 xuan users   170 2月  23 13:50 Makefile
  • -rw-r--r--  1 xuan users 13104 2月  23 13:26 smdk2410.o
  • -rw-r--r--  1 xuan users 74452 2月  23 13:26 .smdk2410.o.cmd
  • -rw-r--r--  1 xuan users  3207 2月  24 10:42 smkd2440.c
  • -rw-r--r--  1 xuan users  3394 2月  23 17:11 smkd2440.c~

复制代码
举报

刘军

2019-8-27 08:36:07
这里生成的是smdk2410.o不是smdk244o.o
......................................................................................................
举报

郝思雨

2019-8-27 08:45:54
1、在include/configs中复制smdk2410.h拷贝为smdk2440.h。
2、在board/samsung中复制smdk2410文件夹拷贝为smdk2440,进入smdk2440文件夹,将smdk2410.c重命名为smdk2440.c,并将该文件夹下的Makefile文件中smdk2410.o改为smdk2440.o。
3、修改顶层Makefile文件,添加:

ARCH=arm
CROSS_COMPILE ?= arm-linux-

4、在configs文件夹下复制smdk2410_defconfig拷贝为smdk2440_defconfig,并将其中的2410替换为2440。
5、在arch/arm/Kconfig中添加:

config TARGET_SMDK2440
        bool "Support smdk2440"
        select CPU_ARM920T

source "board/samsung/smdk2440/Kconfig"

运行配置命令make smdk2440_defconfig





你应该是少了第2步
举报

万腾龙

2019-8-27 08:51:30

  • >ls -l board/samsung/smdk2440/
  • built-in.o            lowlevel_init.o       MAINTAINERS           smkd2440.c
  • .built-in.o.cmd       .lowlevel_init.o.cmd  Makefile              smkd2440.c~
  • Kconfig               lowlevel_init.S       smdk2410.o            
  • Kconfig~              lowlevel_init.S~      .smdk2410.o.cmd        

复制代码

名字写错了 醉了~~~ 谢谢你
举报

更多回帖

发帖
×
20
完善资料,
赚取积分