天天看点

[ARM裸机程序][1]ARM裸机程序开发环境搭建[1]环境搭建交叉编译基础Makefile基础知识链接器脚本eclipse集成开发环境

[1]环境搭建

安装交叉编译工具链(arm-linux-gcc4.4.3)

详见Bolg。

交叉编译基础

arm-linux-gcc常用命令

1.查看头文件和库文件的搜索路径:

2.arm-linux-gcc常用命令

arm-linux-gcc -g -c led.S
//-c为仅汇编操作 -g添加调试信息
arm-linux-ld -Tled.lds -o led.elf led.o
//执行链接操作
arm-linux-readelf -a led.elf
//查看elf文件头信息
arm-linux-objdump -D -S led.elf
//执行反汇编操作
arm-linux-objcopy -O binary led.elf led.bin
//转换为二进制文件
           

Makefile基础知识

基本结构

target(目标) : prerequisites(依赖)
    command(命令)
           

变量的使用

- 定义:obj=func1.o func2.o
- 使用:$(obj)
           

特殊变量

- $^ :代表所有依赖文件
- [email protected] :代表目标
- $< :代表第一个依赖文件
           

通用规则(实例)

%.o : %.c
    arm-linux-gcc -o %@ -g -c %^
           

链接器脚本

SECTIONS {
        . = ;
        . = ALGN();
        .text :
        {
            start.o(.text)
            *(.text)
        }
        . = ALGN();
        .data :
        {
            *(.data)
        }
        bss_start=.
        . = ALGN();
        .bss :
        {
            *(.bss)
        }

}
           

设置起始链接地址

设置4字节对齐

变量的使用

代码段首文件

start.o(.text)
*(.text)
           

eclipse集成开发环境

- arm-linux-gcc
- arm-linux-gdb
- JLink_Linux
- eclipse
注意:环境变量配置在/etc/profile中。
           

继续阅读