[ARM裸机程序][1]ARM裸机程序开发环境搭建

[1]环境搭建

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

详见Bolg。

交叉编译基础

arm-linux-gcc常用命令

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

arm-linux-gcc -print-libgcc-file-name

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)

特殊变量

- $^ :代表所有依赖文件
- $@ :代表目标
- $< :代表第一个依赖文件

通用规则(实例)

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

链接器脚本

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

}

设置起始链接地址

. = 0x30008000;

设置4字节对齐

. = ALGN(4);

变量的使用

bss_start=.

代码段首文件

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

eclipse集成开发环境

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

你可能感兴趣的:(嵌入式ARM裸机程序开发)