当前位置: 技术问答>linux和unix
关于链接脚本的问题!
来源: 互联网 发布时间:2017-05-20
本文导语: led.c unsigned int n=0; void led_init() { ... } void led_blink() { ... } void delay() { ... } int main() { led_init(); while(1) { led_blink(); delay(); led_blink(); delay(); } return 0; } start.S .text .global _start .global main _start: bl main loop: b loop .en...
led.c
start.S
led.lds
链接脚本如上面那样些没有任何问题,但是我想不用start.S ,将程序的入口改为main,链接脚本修改如下
led.lds
程序下到板子上运行没反应,这是怎么回事呢?还望大神些帮我看看!!!!
unsigned int n=0;
void led_init()
{
...
}
void led_blink()
{
...
}
void delay()
{
...
}
int main()
{
led_init();
while(1)
{
led_blink();
delay();
led_blink();
delay();
}
return 0;
}
start.S
.text
.global _start
.global main
_start:
bl main
loop:
b loop
.end
led.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = 0x20008000;
. = ALIGN(4);
.text :
{
start.o(.text)
*(.text)
}
. = ALIGN(4);
.rodata :
{ *(.rodata) }
. = ALIGN(4);
.data :
{ *(.data) }
. = ALIGN(4);
.bss :
{ *(.bss) }
}
链接脚本如上面那样些没有任何问题,但是我想不用start.S ,将程序的入口改为main,链接脚本修改如下
led.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(main)
SECTIONS
{
. = 0x20008000;
. = ALIGN(4);
.text :
{
led.o(.text)
*(.text)
}
. = ALIGN(4);
.rodata :
{ *(.rodata) }
. = ALIGN(4);
.data :
{ *(.data) }
. = ALIGN(4);
.bss :
{ *(.bss) }
}
程序下到板子上运行没反应,这是怎么回事呢?还望大神些帮我看看!!!!
|