zoukankan      html  css  js  c++  java
  • 2016.4.5 关于交叉编译工具链的使用及makefile的编写

    1、常用的交叉编译工具使用实例:

    现有文件:源文件led.S及连接器脚本文件led.lds

    i、arm-linux-gcc -g -c led.S -o led.o

    -g选项告诉编译器添加调试用的信息。

    -c告诉编译器只编译生成.o文件为止

    ii、arm-linux-ld -Tled.lds -o led.elf led.o

    -Tled.lds:链接器脚本文件选项

    iii、arm-linux-readelf  -a led.elf

         arm-linux-readelf  -d led.elf

    -a:显示出全部信息

    -d:dynamically linked libs查看库

    iv、arm-linux-objdump -D -S led >dump

    将反汇编之后的文件保存在一个名为dump的文件中,建议在反汇编之前的编译时生成调试信息,即加入-g选项。

    v、arm-linux-objcopy -O binary led.elf led.bin

    将生成的。elf文件转换成.bin文件,因为只有二进制文件才能在我们的目标机上运行。

    2、上述一整套流程,可以用以个makefile来写:

    eg:

    led.bin:led.elf

    [TAB] arm-linux-objcopy -O binary led.elf led.bin

    led.elf:led.o led.lds

    [TAB]arm-linux-ld -Tled.lds -o led.elf led.o

    led.o:led.S

    [TAB]arm-linux-gcc -g -c led.S -o led.o

    clean:

    [TAB]rm led.bin led.elf led.o

    一定要注意格式,命令前面不能用空格,用的是换行TAB键。

  • 相关阅读:
    【FPGA】结构化层次化设计
    【FPGA】库、包和子程序 过程 函数
    【FPGA】8位奇偶校验 / 加(减)法器 VHDL程序
    【FPGA】顺序语句
    【FPGA】并行语句
    【FPGA】VHDL基础
    Luogu P3349 小星星
    Luogu P4284 概率充电器
    NOIP2018 | D2T2 & D2T3
    二项式反演 小记
  • 原文地址:https://www.cnblogs.com/wan0807/p/5355812.html
Copyright © 2011-2022 走看看