0

我在 vxworks 中维护现有的 BSP,我们制作了如下所示的文件

CPU = CPU32
TOOL    = gnu

TGT_DIR = $(WIND_BASE)/target

include $(WIND_BASE)/target/h/make/defs.bsp
include $(WIND_BASE)/target/h/make/make.$(CPU)$(TOOL)
include $(WIND_BASE)/target/h/make/defs.$(WIND_HOST_TYPE)


MY_PATH = C:\source\BSP\

/* Build for CPU32: */

BS_ROM_ENTRY        = _bootstrapInit
BS_LD_LOW_FLAGS     = -Ttext 8
BS_ROM_SIZE     = 4000     # Size of first sector in flash SA0.
ROM_TEXT_ADRS       = 8
HEX_FLAGS           = -v -p 8 -a 8

bsexe: $(MY_PATH)/bootstrap.hex


$(MY_PATH)/bootstrapInit.o: $(MY_PATH)/bootstrapInit.s
    $(RM) $(MY_PATH)/boostrapInit.o
    $(CC) -c $(CFLAGS_AS) $(MY_PATH)/bootstrapInit.s -o $@

$(MY_PATH)/bootStrapStart.o: $(MY_PATH)/bootStrapStart.c
    $(RM) $(MY_PATH)/bootStrapStart.o
    $(CC) -c $(CFLAGS) $(MY_PATH)/bootStrapStart.c -o $@

$(MY_PATH)/comMem.o: $(MY_PATH)/comMem.c
    $(RM) $(MY_PATH)/comMem.o
    $(CC) -c $(CFLAGS) $(MY_PATH)/comMem.c -o $@

$(MY_PATH)/bootstrap: $(MY_PATH)/bootstrapInit.o $(MY_PATH)/bootStrapStart.o $(MY_PATH)/comMem.o
    $(RM) $(MY_PATH)/bootstrap
    $(LD) $(LDFLAGS) -e $(BS_ROM_ENTRY) $(BS_LD_LOW_FLAGS) -Map bootstrap.map \
        -o $@ $(MY_PATH)/bootstrapInit.o $(MY_PATH)/bootStrapStart.o $(MY_PATH)/comMem.o
    $(ROMSIZEPROG) -b $(BS_ROM_SIZE) $@
    $(LDOUT_CONV) $@
    @echo hi   // question here line 1

$(MY_PATH)/bootstrap.hex: $(MY_PATH)/bootstrap
    $(RM) $(MY_PATH)/bootstrap.hex
    $(BINHEX) $(HEX_FLAGS) $(SECT_SPEC)$(MY_PATH)/bootstrap$(TXT_OFFSET) \
        $(IMI_SPEC)$(IMI)$(IMI_OFFSET) > $@$(MAP_EXT)
    -@ $(MV_BIN)
          @echo hi   // question her line 2

当我使用上面的 make 文件进行构建时,我看到了第 1 行的“hi”输出,而没有看到第 2 行的输出。可能有什么问题。我不是试图理解和解决客户问题的制作文件专家。

另一个问题 "$(LDOUT_CONV)" 和 -@ $(MV_BIN) 代表什么以及当 make file 看到这些行时会采取什么行动。

谢谢。

4

1 回答 1

0

在第 2 行语句之前是否有一个单独的选项卡?如果不是,则无法执行该语句。

"$(LDOUT_CONV)" 和 $(MV_BIN) 是其他文件中定义的变量,你可以找到它们来检查它们的作用。

于 2014-01-19T12:56:42.003 回答