嵌入式开发入门课本例题求教

BeanMrx 后台RD  2010-04-11 07:41:32
用于关闭看门狗初始化堆栈crt0.S
.text
.golbal _start
_start:
ldr r0,=0x530000
mov r1,#0x0
str r1,[r0]
ldr sp,=1024*4
bl main
halt_loop:
b halt_loop


Makefile里面有这么一句可能有用
arm-linux-gcc -g -c -o crt0.o crt0.s
arm-linux-ld -Ttext 0x00000000 -g crt0.o led.o -o led_elf
开头.text .golbal是什么东西啊?
_start是不是必须是这个名字啊?
-Ttext是不是对应于开头那个.text啊?
谢谢各位高手啊!!!
...全文
62 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sikinzen 2010-04-19
另外,关于arm汇编的话,《ARM体系结构与编程》这本书也降到了。也可以到网上下载《ARM体系结构与编程》来学习。
回复
sikinzen 2010-04-19
[Quote=引用 4 楼 xiaoyufu007 的回复:]
引用 1 楼 nemotian 的回复:
.text .golbal都是伪指令;.text表示预定义代码段。.golbal用来定义一个全局的符号
_start是标号,不是必须这个名字,是用.golbal来定义的代码段入口。
入口地址在连接文件中定义,如 :xxx.lds文件




xxx.lds文件怎么用啊?是Makefile可以引用的一个文件吗?能给个例子吗?
[/Quote]
lds文件最终目的其实就是讲述 可执行文件的各个部分在存储器中的存放方式、存放位置。
lds与.text这些伪指令可参考《ARM体系结构与编程》这本书。
网上也可以下到这本书的电子版。
回复
ffeige1984 2010-04-12
[Quote=引用 1 楼 nemotian 的回复:]
.text .golbal都是伪指令;.text表示预定义代码段。.golbal用来定义一个全局的符号
_start是标号,不是必须这个名字,是用.golbal来定义的代码段入口。
入口地址在连接文件中定义,如 :xxx.lds文件
[/Quote] 正解 你看下ARM体系结构的书 书里边讲到这些东西了
回复
NemoTian 2010-04-12
.text .golbal都是伪指令;.text表示预定义代码段。.golbal用来定义一个全局的符号
_start是标号,不是必须这个名字,是用.golbal来定义的代码段入口。
入口地址在连接文件中定义,如 :xxx.lds文件
回复
NemoTian 2010-04-12
SECTIONS
{
. = 0; /*0地址入口*/

.text : /*代码段开始*/
{
start.o(.text) /*代码段的第一个代码部分*/
*(.text) /*其他代码部分*/
}

}

最简单的一个lds连接文件格式
回复
BeanMrx 2010-04-12
[Quote=引用 1 楼 nemotian 的回复:]
.text .golbal都是伪指令;.text表示预定义代码段。.golbal用来定义一个全局的符号
_start是标号,不是必须这个名字,是用.golbal来定义的代码段入口。
入口地址在连接文件中定义,如 :xxx.lds文件
[/Quote]



xxx.lds文件怎么用啊?是Makefile可以引用的一个文件吗?能给个例子吗?
回复
BeanMrx 2010-04-12
[Quote=引用 1 楼 nemotian 的回复:]
.text .golbal都是伪指令;.text表示预定义代码段。.golbal用来定义一个全局的符号
_start是标号,不是必须这个名字,是用.golbal来定义的代码段入口。
入口地址在连接文件中定义,如 :xxx.lds文件
[/Quote]

搞明白了!谢谢啊!
.golbal xxx 中的xxx就是程序入口对应的表示!
至于-Ttext是make的规定 还有-Tdata -Tbss指定段的加载位置 如果没有后面两个默认data段和bss段在text段后!
谢谢啦!
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2010-04-11 07:41
社区公告
暂无公告