龙芯开发(2)——Makefile分析

暂且转载,后面有时间在验证是否如此!


makefile分析:

/pmon/loader.2fdev/Makefile:

   用./getname获得开发板型号的Makefile: Makefile.2fdev

/pmon/loader.2fdev/Makefile.2fdev:

   说明开发板信息及Makefile

TARGET=Bonito2fdev

TARGETEL=Bonito

START=start.o

MEMSIZE=128

include Makefile.inc

 

/pmon/loader.2fdev/Makefile.inc:

   export MKDEP=makedepend

ifndef PMONCC

CC=mips-elf-gcc -mips3

else

CC=${PMONCC}

endif

定义环境变量和gcc

 

GZROMSTARTADDR?=0xffffffff81000000

ROMSTARTADDR?=0xffffffff80010000

RAMSTARTADDR?=0xffffffff88000000

GZROMSTARTADDR_EJTAG?=0xffffffff81000200

定义代码开始的地址

 

ifeq ("${tgt}","rom")

gencode=./genrom

endif

如果tgt=rom ,则执行genrom这个文件进行cashe初始化

 

all: ${tgt}

sim: clean pmon.bin.c

    gcc -o zloader  -DSIM zloader.c

rom: clean ${START} zloader.o

    gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script

    mips-elf-ld -T ld.script -e start -o gzrom ${START} zloader.o

    mips-elf-objcopy -O binary gzrom gzrom.bin

#   sync

ram: clean startram.o zloader.o

    gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script

    mips-elf-ld -T ld.script -e start -o gzram startram.o zloader.o

    cp gzram /tftpboot

 

如果tgt=rom则编译后生成二进制的gzrom  gzrom.bin文件,依赖于start.o和zloader.o文件;

如果tgt=ram则编译后生成gzram文件,并保存到/tftpboot文件夹下,方便用网络下载调试,依赖于startram.o zloader.o。文件

 

 

${START}:

    rm -f ../Targets/${TARGET}/compile/${TARGETEL}/${START}

    gcc -DSTARTADDR=${ROMSTARTADDR} -E -P ld.script.S > ../Targets/${TARGET}/conf/ld.script

    make -C ../Targets/${TARGET}/compile/${TARGETEL}/

    cp ../Targets/${TARGET}/compile/${TARGETEL}/${START} .

首先删除原有的Start.o文件,然后编译ld.script.S配置文件,然后编译

/Targets/Bonito2fdev/compile/Bonito的Makefile文件。

 

zloader.o: zloader.c inflate.c  malloc.c  memop.c  pmon.bin.c initmips.c

    $(CC) -EL -mcpu=r4000 -c zloader.c ${ZLOADER_OPTIONS} -DMEMSIZE=${MEMSIZE}

 

zloader.o依赖于zloader.c inflate.c  malloc.c  memop.c  pmon.bin.c initmips.c等文件

 

/Targets/Bonito2fdev/compile/Bonito的Makefile文件编译的文件有:

$S为/pmon/Targets/

$S/sys/kern/param.c

$S/pmon/arch/mips/ri.c

 $S/pmon/arch/mips/crtbegin.c

$S/pmon/arch/mips/crtend.c

$S/conf/newvers.sh

$S/sys/dev/ic/wdc.c $S/pmon/dev/mainbus.c $S/pmon/dev/pcibr.c /

    $S/sys/net/if.c $S/sys/net/if_ethersubr.c $S/sys/net/if_loop.c /

    $S/sys/net/if_media.c $S/sys/net/radix.c $S/sys/net/raw_cb.c /

    $S/sys/net/raw_usrreq.c $S/sys/net/route.c $S/sys/net/rtsock.c /

    $S/sys/netinet/if_ether.c $S/sys/netinet/in.c /

    $S/sys/netinet/in_cksum.c $S/sys/netinet/in_pcb.c /

    $S/sys/netinet/in_proto.c $S/sys/netinet/ip_icmp.c /

    $S/sys/netinet/ip_id.c $S/sys/netinet/ip_input.c /

    $S/sys/netinet/ip_output.c $S/sys/netinet/raw_ip.c /

    $S/sys/netinet/udp_usrreq.c $S/sys/netinet/tcp_debug.c /

    $S/sys/netinet/tcp_input.c $S/sys/netinet/tcp_output.c /

    $S/sys/netinet/tcp_subr.c $S/sys/netinet/tcp_timer.c /

    $S/sys/netinet/tcp_usrreq.c $S/sys/kern/kern_clock.c /

    $S/sys/kern/kern_misc.c $S/sys/kern/kern_synch.c /

    $S/sys/kern/uipc_domain.c $S/sys/kern/uipc_socket2.c /

    $S/sys/kern/kern_descrip.c $S/sys/kern/kern_proc.c /

    $S/sys/kern/kern_syscall.c $S/sys/kern/sys_generic.c /

    $S/sys/kern/subr_autoconf.c $S/sys/kern/uipc_mbuf.c /

    $S/sys/kern/uipc_syscalls.c $S/sys/kern/init_main.c /

    $S/sys/kern/kern_malloc.c $S/sys/kern/kern_sig.c /

    $S/sys/kern/kern_time.c $S/sys/kern/sys_socket.c /

    $S/sys/kern/uipc_socket.c $S/sys/dev/bus_dma.c /

    $S/pmon/cmds/boot.c $S/pmon/cmds/mycmd.c $S/pmon/cmds/xyzModem.c

    $S/pmon/cmds/crc16.c $S/pmon/cmds/sysinfo.c /

    $S/pmon/cmds/newmt/newmt.c $S/pmon/cmds/setup.c /

    $S/pmon/cmds/cmdtable.c $S/pmon/cmds/debuggercmds.c /

    $S/pmon/cmds/devls.c $S/pmon/cmds/cmd_go.c $S/pmon/cmds/hist.c

   $S/pmon/cmds/ifaddr.c $S/pmon/cmds/oload.c $S/pmon/cmds/load.c /

    $S/pmon/cmds/tftpd.c $S/pmon/cmds/cmd_grub.c /

    $S/pmon/cmds/memcmds.c $S/pmon/cmds/memtst.c /

    $S/pmon/cmds/miscmds.c $S/pmon/cmds/pcicmds.c /

    $S/pmon/cmds/pflash.c $S/pmon/cmds/cmd_env.c /

    $S/pmon/cmds/transp.c $S/pmon/cmds/sym.c $S/pmon/cmds/time.c /

    $S/pmon/cmds/shellcmds.c $S/pmon/common/about.c /

    $S/pmon/common/autoconf.c $S/pmon/common/callvec.c /

    $S/pmon/common/cmdparser.c $S/pmon/common/debugger.c /

    $S/pmon/common/exception.c $S/pmon/common/main.c /

    $S/pmon/common/more.c $S/pmon/common/rsa.c $S/pmon/common/sbrk.c

    $S/pmon/common/env.c $S/pmon/fs/ramfile.c $S/pmon/fs/termio.c /

    $S/pmon/fs/socket.c $S/pmon/fs/gzip.c $S/pmon/fs/iso9660fs.c /

    $S/pmon/fs/devfs.c $S/pmon/fs/diskfs.c $S/pmon/fs/ext2fs.c /

    $S/pmon/fs/fatfs.c $S/pmon/loaders/loadfn.c /

    $S/pmon/loaders/exec.c $S/pmon/loaders/exec_bin.c /

    $S/pmon/loaders/exec_elf.c $S/pmon/loaders/exec_elf64.c /

    $S/pmon/loaders/exec_wince.c $S/pmon/loaders/exec_srec.c /

    $S/pmon/netio/netio.c $S/pmon/netio/bootp.c /

    $S/pmon/netio/ifconfig.c $S/pmon/netio/ping.c /

    $S/pmon/netio/tftplib.c $S/pmon/netio/httplib.c /

    $S/x86emu/int10/radeon_init.c $S/x86emu/src/x86emu/debug.c /

    $S/x86emu/src/x86emu/decode.c $S/x86emu/src/x86emu/fpu.c /

    $S/x86emu/src/x86emu/ops.c $S/x86emu/src/x86emu/ops2.c /

    $S/x86emu/src/x86emu/prim_ops.c $S/x86emu/src/x86emu/sys.c /

    $S/x86emu/src/biosemu/besys.c $S/x86emu/src/biosemu/bios.c /

   $S/x86emu/src/biosemu/linuxpci.c $S/x86emu/src/biosemu/biosemu.c /

   $S/x86emu/src/biosemu/freebiosvga.c $S/pmon/dev/kbd.c /

    $S/pmon/dev/vgacon.c $S/pmon/dev/generic_poll.c /

    $S/pmon/dev/flash.c $S/pmon/dev/flashdev.c /

    $S/pmon/dev/flash_amd.c $S/pmon/dev/flash_int.c /

    $S/pmon/dev/flash_sst.c $S/pmon/dev/ns16550.c /

    $S/pmon/arch/mips/machdep.c $S/pmon/arch/mips/mips_machdep.c /

    $S/pmon/arch/mips/disassemble.c $S/pmon/dev/loopdev.c /

    $S/Targets/Bonito2fdev/pci/pci_machdep.c /

    $S/Targets/Bonito2fdev/Bonito/tgt_machdep.c /

    $S/Targets/Bonito2fdev/dev/localbus.c $S/sys/dev/mii/mii.c /

    $S/sys/dev/pci/pciconf.c $S/sys/dev/pci/pci_map.c /

    $S/sys/dev/pci/pci.c $S/sys/dev/pci/if_fxp.c /

    $S/sys/dev/pci/rtl8139.c $S/sys/dev/pci/em/if_em.c /

    $S/sys/dev/pci/pciide.c $S/sys/dev/pci/pcidevs.c /

    $S/sys/dev/pci/vt82c686.c $S/sys/dev/ata/wd.c /

    $S/sys/dev/ata/ata_wdc.c $S/sys/dev/ata/ata.c $S/sys/dev/ata/cd.c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值