当前位置: 技术问答>linux和unix
Makefile 中profile文件的问题
来源: 互联网 发布时间:2016-05-05
本文导语: 看到一段源程序 ,里边包括了 Makefile 、Profile 、 make.sh 、 make.grp。 make.sh 、 make.grp 是在makefile中 被include 两个文件, 另外Profile 没有被include 但是就直接在makefile中调用了 如下: all: $(BOOT_C:.c=.o) boot $(LD)...
看到一段源程序 ,里边包括了 Makefile 、Profile 、 make.sh 、 make.grp。
make.sh 、 make.grp 是在makefile中 被include 两个文件,
另外Profile 没有被include 但是就直接在makefile中调用了 如下:
all: $(BOOT_C:.c=.o) boot
$(LD) -r -X -Tdata 0 -Ttext -$(SEG_OFFSET)
$(BOOT_C:.c=.o) -o boot.sun
$(ROM) -s $(STACKBASE) profile.bt >> stat
其中包括的参数如下:
STACKBASE = 1000
ROM = $(TOOLS)/drom $(ROMFLAG)
ROMFLAG = -j
Profile.bt中代码如下:
[romversion]
011107
#
[romsize]
5k
#
[stat]
#
[organization]
1
#
[bootcode]
boot
#
[content]
text boot.rom
data boot.rom 22000
#
[codeloc]
DATA SRAM
TEXT mux.rom SRAM CACHE
#
[cmdblock]
copy boot.rom data
clear boot.rom bss
copy boot.rom text 40000
set24 boot.rom 40000
set25 R25
jump boot.rom _main
#
[lastaddr]
35000000
#
[output]
boot.rom
#
问题:
1、 我不明白的是,这个Profile 用来干什么?[cmdblock]看起来好像用来控制用的,,最好能把这个Profile有针对性的分节注释一下 。
2、make.grp make.sh 这种东西makefile编写时有规定说以什么形式规定后缀么? 具体规则是什么? 比如“头文件用.h”。
3、针对上面写的
all: $(BOOT_C:.c=.o) boot
$(LD) -r -X -Tdata 0 -Ttext -$(SEG_OFFSET)
$(BOOT_C:.c=.o) -o boot.sun
$(ROM) -s $(STACKBASE) profile.bt >> stat
这个东西,我make以后会生成什么 文件呢, all.rom? 还是all 或者别的。 我没看到all这个东西
谢谢大家看这么多!
|
1 Profile 得看文档或者问写代码的人,drom 相关的文件,与 Make 无关
2 文件命名风格而已,没有硬性的规定
3 直接看命令的话,输出就是 -o 的部分,boot.sun
还有通过重定向的输出 stat
2 文件命名风格而已,没有硬性的规定
3 直接看命令的话,输出就是 -o 的部分,boot.sun
还有通过重定向的输出 stat
|
1. 如你所说,是用来配置的,没有人能够具体分析,因为不知道你的
ROM = $(TOOLS)/drom到底是个什么程序,不过可以猜测应该是链接的
时候text,data,bss等应放置的位置,以及如何进行跳转。
这也是bootloader的最基本的东西
2. 名字没什么关系,只是有时候为了助记用的,如make.sh可能就是个shell脚本
3. all属于Makefile的规则,make的时候从all一层一层的找依赖关系。
去看看Makefile吧,对编程来说,基础的基础,必须要学要会的。
ROM = $(TOOLS)/drom到底是个什么程序,不过可以猜测应该是链接的
时候text,data,bss等应放置的位置,以及如何进行跳转。
这也是bootloader的最基本的东西
2. 名字没什么关系,只是有时候为了助记用的,如make.sh可能就是个shell脚本
3. all属于Makefile的规则,make的时候从all一层一层的找依赖关系。
去看看Makefile吧,对编程来说,基础的基础,必须要学要会的。