您的位置 首页 测评

ARM入门篇之(二)东西

(1)交叉工具链,可以理解为交叉工具集​交叉,指在宿主机上编写编译好代码,生成目标机能够运行的格式文件,通过数据线连接宿主

(1) 穿插东西链,可以理解为穿插东西集

​穿插,指在宿主机上编写编译好代码,生成方针机可以运转的格局文件,经过数据线衔接宿主机与方针机,从宿主机上下载程序到方针机内

东西链,便是穿插​编译器(arm-linux-gcc),穿插衔接器(arm-linux-ld),穿插转换器(arm-linux-objcopy),穿插ELF文件阅读器(arm-linux-readelf),穿插反汇编器(arm-linux-objdump)等东西的调集

(2)Makefile办理

​makefile,描绘了整个程序的编译,链接等的规矩

包含:什么样的源文件需求编译,链接;运用什么东西编译,链接;编译,链接时依靠哪些文件;​终究发生咱们先要的终究履行文件

而上面这一个进程只需你编写好makefile这个文件,再用make指令就可一步生成终究想要的可履行文件​

makefile由规矩和变量构成

规矩:描绘了怎么经过依靠文件,运用什么东西指令,终究生成​方针文件

格局如下:

方针:依靠​​

[Tab]指令

例如:

start.o:start.S

​[Tab]arm-linux-gcc -g -o start.o -c start.S

​变量:

体系界说的变量:($@)代表方针,($^)代表一切依靠,($<)代表第一个依靠,(%)通配符​

例如上面的比如用变量便是:

%.o:%.S

[Tab]arm-linux-gcc -g -o $@ -c $^​​

默许情况下,make指令会主动找到文件名叫makefile的文件,当你把makefile改名后,可以用指令:

make -f 文件名​

(3)链接脚本(.lds)

段:一个可履行程序一般由代码段,数据段。bss段构成,所以在脚本文件中也要表现出来

​链接脚本大约如下:

​OUTPUT_FORMAT(“elf32littlearm”,“elf32littlearm”,“elf32littlearm”)

指定输出文件格局为elf,32位,小端,arm指令

OUTPUT_ARCH(arm)

​指定输出渠道为ARM

ENTRY(_start)

指定进口_start

​​SECTIONS{

. = 0x50000000 设置程序开端地址(OK6410首地址)

. = ALIGN(4) 代码四字节​对齐

​.text: 指定代码段

{

start.o(.text)​ 第一个部分代码为Start.o

*(.text)​ 其他部分代码放在start.o代码后边

}​

.= ALIGN(4)​

​ .data:{ *(.data) }​ 数据段

. = ALIGN(4)

bss_start = . ​ bss段的开端方位

.bss:{ *(.bss) } bss段

bss_end = .​ bss段的完毕方位

}​

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/263215.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部