新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C语言程序执行的第一条指令,并不在 main 函数中

C语言程序执行的第一条指令,并不在 main 函数中

作者: 时间:2016-11-10 来源:网络 收藏
C语言程序执行第一条指令,并不在main函数中。当我们生成一个C程序的可执行文件时,编译器总是在我们的代码前加一段固定的代码——crt0.o,它是编译器自带的一个文件。此段代码设置C程序的堆栈等,然后调用main函数。很可惜,在我们的裸板上,这段代码无法执行,所以我们得自己写一个。这段代码很简单,只有3条指令。crt0.s代码:

1 .text

本文引用地址:https://www.eepw.com.cn/article/201611/317089.htm

2 .global _start

3 _start:

4ldrsp,=1024*4@设置堆栈,注意:不能大于4k(栈区是向下增长的)

@nand flash中的代码在复位后会自动

@移到内部RAM(stepping stone)中,它只有4k

5blmain@调用C程序中的main函数

6 halt_loop:

7bhalt_loop



评论


技术专区

关闭