makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解

发布者:温馨家园最新更新时间:2024-11-08 来源: cnblogs关键字:makefile  arm-linux  gcc  objcopy  objdump 手机看文章 扫描二维码
随时随地手机看文章

在linux中输入vi Makefile 来实现创建Makefile文件


注意:命令行前必须加TAB键


例如:将两个文件led.c和crt0.S汇编文件,制作一个Makefile文件


1 1 led.bin : crt0.S led.c

2 2 arm-linux-gcc -c -o crt0.o crt0.c

3 3 arm-linux-gcc -c -o led.o led.c

4 4 arm-linux-ld -Ttext 0x00000000 -g crt0.o led.o -o led_elf

5 5 arm-linux-objcopy -O binary -S led_elf led.bin

6 6 arm-linux-objdump -D -m arm led_elf > led.dis

7 7 clean:

8 8 rm -f led_elf led.dis led.bin *.o


led.bin : crt0.S led.c 指的是依赖关系,led.bin是目标文件,:后面是依赖文件


arm-linux-gcc  编译选项


-o  编译及链接,会生成一个exe可执行文件

-Wall  指定产生全部的警告信息 

 -O/-O2/-O3   数字越高,代表优化的更多,可以使生成的执行文件的提高执行效率

-c 编译不链接,会生成一个*.obj文件,若后面加了-o,则表示指定输出文件名称

-static   静态链接,生成的文件会非常大, 好处在于不需要动态链接库,也可以运行

-S 只激活预处理和编译,就是指把文件编译成为汇编代码

 


例如:

arm-linux-gcc -c -o  led.o led.c   :编译不链接


arm-linux-gcc   -o  led  led.c       :编译以及链接


arm-linux-ld    连接选项


-Ttext 0x00000000              指代码段头地址为0x00000000

-T链接脚本                          指使用链接脚本来进行更复杂的地址设置,包括了代码段,数据段,bss段等

-o                                        后面指的将多个文件连接在一起,生成一个obj文件,上面的名称是led_elf。

 -pie                    生成动态链接地址段,一般在新版uboot里会看到

arm-linux-objcopy   复制选项,支持格式转换


-O binary     用来指定生成文件按照后面的格式来输出,其中binary是指生成二进制(.bin)文件。     

-S                 不从源文件中复制重定位信息和符号信息到目标文件中去

arm-linux-objdump   反编译选项 


-D                反编译所有段

-b binary     指定反编译目标文件格式

-m ram       指定反编译目标文件所需的架构,这里是ram架构


关键字:makefile  arm-linux  gcc  objcopy  objdump 引用地址:makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解

上一篇:Linux 2440 LCD 控制器
下一篇:S3C6410 SPI全双工读写流程分析(原创)

推荐阅读最新更新时间:2024-11-17 13:00

嵌入式ARM-Linux平台上的编译、配置和运行使用
本文介绍了嵌入式ARM-Linux上的常用应用程序wpa_supplicant(以及wpa_supplicant依赖的libnl和openssl)的编译、配置和运行使用,iw、hostapd等应用的编译和使用。 wpa_supplicant 编译和配置运行 从 https://w1.fi/wpa_supplicant/ (git地址git://w1.fi/hostap.git)下载最新的wpa_supplicant源码压缩包,目前最新的为版本2.5. wpa_supplicant的编译依赖于openssl和libnl库( Netlink Protocol Library Suite (libnl) ),openssl是ssl协议的
[单片机]
GCC写的AT24C64接口程序
// AT24C64 support functions using ATMEGA's TWI // PIN -WP is hard-wired to GND // fuctions work better outside interrupt routines // by MXH, 2003/07/30 #include DStruct.h #include avr/twi.h // CONSTANTS DEFINITION FOR EEPROM #define EEADDR 0 #define EEWR 0 #define EERD 1 // TWINT *NOT* set after STOP
[单片机]
基于ARM-Linux平台的电子油门控制
引言 巡航控制系统(CCS)是20世纪60年代发展起来的,又称为恒速行驶系统。巡航控制系统工作时,ECU根据各种传感器输送来的信号判断汽车的运行状况,通过执行元件自动调节节气门的开度使汽车的行驶速度与设定的车速保持一致。汽车在良好路面上长时间行驶时,驾驶员启动巡航控制系统并设定行驶速度,不需驾驶员操纵加速踏板,通过巡航控制系统即可自动保持既定的行驶速度,不仅减轻了驾驶员的劳动强度,同时利用先进的电子控制技术控制节气门的开度,比驾驶员操纵节气门更精确,汽车燃料经济性、排放污染性也可得到改善。 1 系统原理 1.1 电控油门原理 工作时,由驾驶员发出转速的控制指令,由节气门开度传感器采集发动机的转速参数,并把信号输入电控单元;电控单
[单片机]
ST推出关于STM32应用设计的新软件
功能强大的STM32Cube™ 新软件平台由设计工具、中间件和硬件抽象层组成,让客户能够集中精力创新。 中国,2014年3月10日 ——横跨多重电子应用领域的全球领先的半导体供应商、全球领先的ARM® Cortex™-M-内核微控制器厂商意法半导体针对STM32微控制器推出一套免费的功能强大的设计工具及软件STM32CubeTM。新开发平台可简化客户的开发项目,缩短项目研发周期,并进一步强化STM32在电子设计人员心目中解决创新难题的首选微控制器的地位。 STM32Cube™ 开发平台包括STM32CubeMX图形界面配置器及初始化C代码生成器和各种类型的嵌入式软件。配置初始化工具能够一步一步地引导
[嵌入式]
ST推出关于STM32应用设计的新软件
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved