CC=arm-linux-gcc      #换成arm-elf-gcc不行,可以生成flat格式的文件,但我不知道怎么转成binary

LD=arm-linux-ld

OBJCOPY=arm-linux-objcopy

OBJDUMP=arm-linux-objdump

all:test.o

#arm-linux-ld -Bstatic  -Tubl_davinci.lds -Map system.map --cref -nostartfiles -o target.elf test.o util.o uart.o

#不能直接使用arm-linux-ld进行连接,一定要用下面的才可以成功。

$(CC)  -v -static -Wl,-Tubl_davinci.lds,-Map,system.map -nostartfiles -o target.elf test.o util.o uart.o

$(OBJCOPY)  -O binary  target.elf boot.bin #这个生产的binary文件有300K,看下system.map,它把非常多的库函数都链接进来了,不知有没办法减少?

@echo -n "The entry point of the binary is 0x"

@$(OBJDUMP) -t target.elf | grep -E '[0-9a-f]{8}*[0-9a-f]{8} main' | sed  's/^\([0-9a-f]\{8\}\)\([0-9a-f]\{4\}\).*/\2/'

test.o:

$(CC)   -c test.c util.c uart.c

clean:

rm *.o

# -v 显示编译链接的详细过程

#-static 静态链接

#-Wl,-Tubl_davinci.lds,-Map,system.map 这些参数传给链接器

#-nostartfiles 告诉gcc不要加入启动文件。

阅读(4764) | 评论(0) | 转发(0) |

linux 编译c文件 arm,用arm-linux-gcc编译arm裸机程序(可调用库)相关推荐

  1. Windows与Linux之间海量文件的传输与Linux下大小写敏感问题

    Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...

  2. linux获取文件的md5,linux shell 获取文件md5的命令linux操作系统 -电脑资料

    下面我给各位朋友总结一下在linux中利用shell命令来获取文件md5及遍历目录下所有文件的md5的例子,希望此例子对各位同学会有所帮助, 获取文件的MD5值: $ md5sum linuxmint ...

  3. linux的c文件报错for,linux c 编译错误 conflicting types for 的解决办法

    程序在Windows下运行是OK的,但是放在linux系统gcc编译就会报错. 报错如下: tongxunlu.c:6:1: error: unknown type name 'linkman' li ...

  4. linux install命令文件夹,详解Linux系统中的install命令的用法

    用法:install [选项]... [-T] 源文件 目标文件 或:install [选项]... 源文件... 目录 或:install [选项]... -t 目录 源文件... 或:instal ...

  5. linux内核写文件flush,innodb_flush_method 与linux File I/O

    从实验角度比较了fdatasync,O_DSYNC和O_DIRECT在性能上的差异.本文将试图从Linux/Unix"文件I/O"(unbuffered I/O)的角度来解释inn ...

  6. linux系统各文件夹的作用,linux系统文件夹的作用 good

    /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 如:环境变量 /etc/rc.d 启动的配置文件和脚本 /home用户主目录的基点,比如用户user的主目录就是/ho ...

  7. linux下目标文件的类型6,Linux下文件类型

    Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 .so 为共享库,是shared object,用于动态连接的,和dll差不多 .a为 ...

  8. ipad安装linux模拟器下载文件,教你在linux下安装游戏模拟器

    提到游戏模拟器,我想大家不会陌生吧.在Windows下有很多种模拟器,其中最特别的要属MAME了,说它特别,不仅仅是因为它可以模拟上千种街机游戏,更重要的是它是一个跨平台的街机模拟器.这种模拟器除了具 ...

  9. linux能还原文件版本吗,使用Linux文件恢复工具

    软件版本:1.0.0.1003 软件大小:10.66MB 软件授权:免费 适用平台:Win9X Win2000 WinXP Win2003 Vista Win7 Linux 系统管理员守则中有这么一条 ...

最新文章

  1. 实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现
  2. [官版翻译]OpenStack centos版安装(三)
  3. MIT科学家首次发现只对歌唱有反应的神经元,对,只能人声带伴奏的那种歌
  4. cae计算机仿真分析技术,厉害了 揭秘汽车设计中CAE仿真技术
  5. 组策略中Run logon scripts synchronously和Run startup scripts asynchronously的区别
  6. 数据脱敏平台-大数据时代的隐私保护利器
  7. STM32(五)------GPIO位带操作
  8. 三星Galaxy S10系列外观配置爆料:多种颜色可选
  9. 三.rocketmq-console
  10. Vue3 JSON编辑器
  11. iOS调用系统相机将英文改成中文
  12. 闹归闹,还是要说几件正事
  13. 浅谈“高内聚,低耦合”
  14. Head First Design Patterns(深入浅出设计模式)-目录
  15. 身份实名认证增强版API开发文档
  16. These are the first 50 documents matching your search, refine your search to see others
  17. 实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False
  18. Maven项目中,添加依赖项后仍然出现找不到该jar包的解决方法
  19. kernel:driver_learn_summary
  20. Apple Developer App 出现 未知错误 的解决办法

热门文章

  1. 一张照片,AI生成抽象画(CLIPasso项目安装使用) | 机器学习
  2. 2021-03-18
  3. 2013年最具技术影响力原创图书TOP10
  4. JavaWeb图书馆管理系统的设计与实现
  5. 流量监控软件networx使用
  6. rejected from java.util.concurrent.ThreadPoolExe错误
  7. WP8.1小梦词典开发1:金山词霸API使用
  8. MySQL Binlog温故知新
  9. 通过arcgis快速制作一个城市的三维场景
  10. 520送女友什么礼物最好、5个适合送给情侣的礼物