①led_sp.bin: start.o led.o

#led_sp.bin是由 start.o 和 led.o 生成

②arm-linux-ld -Ttext 0x0 -o led_sp.elf $^

设置led_sp.elf的起始地址0x0

③arm-linux-objcopy -O binary led_sp.elf led_sp.bin

把led_sp.elf中的内容复制到led_sp.bin中

④arm-linux-objdump -D led_sp.elf > led_sp_elf.dis

将这个程序的反汇编程序写入到led.dis这个文件中,在终端中不显示出来.

当你打开led.dis这个文件时就会看到上面命令的输出的反汇编程序了

⑤gcc mkv210_image.c -o mkmini210

gcc是编译的意思,编译mkv210_image.c 生成mkmini210

⑥./mkmini210 led_sp.bin 210.bin

执行 mkmini210 led_sp.bin 210.bin

(这些程序下载进去,执行mkmini210 led_sp.bin 210.bin)

⑦%.o : %.S

把所有的.S文件编译成.o文件

⑧arm-linux-gcc -o $@ $< -c

只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 

%.o : %.c

把所有的.c文件编译成.o文件
arm-linux-gcc -o $@ $< -c

⑨clean:
rm *.o *.elf *.bin *.dis mkmini210 -f

rm:(remove,移除)

删除所有的1.o,2.elf,3.bin,4.dis, 5mkmini210 ,6 -f

*:通配符(所有的.o,,,,)

-------------------------------------------------------------------

arm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_tmp.o

  我们看看它是什么意思:

-o选项设置输出文件的名字为led_on_c_tmp.o;

“--Ttext 0x00000000”设置代码段的起始地址为0x00000000;

这条指令的作用就是将crt0.o和led_on_c.o连接成led_on_c_mp.o可执行文件

此可执行文件的代码段起始地址为0x00000000。

arm-linux-objcopy

被用来复制一个目标文件的内容到另一个文件中,可用于不同源文件的之间的格式转换

$^ 所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量

会去除重复的依赖目标,只保留一份。

$@   表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于

目标中模式定义的集合。

************************************************

      Linux初学者,真心的希望来到的朋友留言,这样我也知道什么地方有问题^_^谢谢了!!

最新文章

  1. Qt5 开发 iOS 应用之访问 SQLite 数据库
  2. 虚拟机安装CentOS6.4
  3. [C#进阶系列]专题二:你知道Dictionary查找速度为什么快吗?
  4. hdu.1010.Tempter of the Bone(dfs+奇偶剪枝)
  5. 有向图强连通分量 Tarjan算法
  6. python 字符编码练习
  7. P and V
  8. 将一个UIView对象的内容保存为UIImage
  9. ZOJ 3941 Kpop Music Party 贪心
  10. IOS-多视图控制器之间的切换
  11. Part 7 Joins in sql server
  12. C#快速排序算法基础入门篇
  13. Drawable(3)Color State List Resource
  14. C盘扩容,超详细,史上最简单的扩容技术贴!
  15. Microsoft JET Database Engine 错误 &#39;80004005&#39;不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
  16. JS学习笔记-OO创建怀疑的对象
  17. linux中的权限
  18. 损失函数 hinge loss vs softmax loss
  19. IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
  20. 如何在启用JWT Token授权的.NET Core WebApi项目中下载文件

热门文章

  1. 如何偷懒地用 PHP 搭建一个班级网站
  2. Express 框架的安装
  3. Xcode里修改工程名、类名、批量修改变量名
  4. 音频的录制和播放功能(audio) ---- HTML5+
  5. Floyd算法并输出路径
  6. Windows下Git免密码pull&amp;push
  7. nginx ---refine---按需时间/流量进行调整后台服务器---geocity,proxypass
  8. Nginx正向代理配置
  9. hive引入jar包--HIVE.AUX.JARS.PATH和hive.aux.jars.path
  10. Day27-28 基础加强