Makefile解析(最简单的LED)
①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初学者,真心的希望来到的朋友留言,这样我也知道什么地方有问题^_^谢谢了!!
Makefile解析(最简单的LED)的更多相关文章
- 基于TINY4412的Andorid开发-------简单的LED灯控制【转】
本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制 阅读 ...
- linux设备驱动归纳总结(五):4.写个简单的LED驱动【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-84693.html linux设备驱动归纳总结(五):4.写个简单的LED驱动 xxxxxxxxxxx ...
- ARM入门实践(一)----Mini6410上最简单的LED点灯裸机程序
Mini6410上最简单的LED点灯裸机程序 : 实验环境: 根据友善教程,要用ADS,据说现在都不用这个了,但是为了打开友善给的mcp工程,就下了一个,Win7下弄上兼容模式和管理员权限,再下一个S ...
- android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】
android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...
- django 数据库连接模块解析及简单长连接改造
django 数据库连接模块解析及简单长连接改造工作中纯服务端的项目用到了线程池和django的ORM部分.django 的数据库连接在每一个线程中开启一份,并在查询完毕后自动关闭连接. 线程池处理任 ...
- 【Linux开发】linux设备驱动归纳总结(五):4.写个简单的LED驱动
linux设备驱动归纳总结(五):4.写个简单的LED驱动 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 编译驱动的Makefile解析
一个典型的编译驱动模块的Makefile文件如下所示: KERN_DIR = /root/driver/kernel obj-m += module_test.o all: make -C $(KER ...
- 编译驱动Makefile解析
#ubuntu的内核源码树,如果要编译在ubuntu中安装的模块就打开这2个 #KERN_VER = $(shell uname -r) #KERN_DIR = /lib/modules/$(KERN ...
- (三)openwrt主Makefile解析
本周成胖子每周一博到了第四周^_^ 前言 主Makefile结构 顶层 第二层 尾记 前言 前一篇,我们大概描述了整个镜像文件的生成过程.本周我们来解析主Makefile,看看主要编译过程是怎么产生的 ...
随机推荐
- CSS- ie6,ie7,ie8 兼容性写法,CSS hack写法
css ie6,ie7,ie8 兼容性写法,CSS hack写法 margin-bottom:40px; /*ff的属性*/margin-bottom:140px\9; /* IE6 ...
- vux组件绑定事件
我一开始是这样绑定事件的,但是没有效果: <box gap="15px 45px"> <x-button plain type="primary&quo ...
- CentOS6.8系统安装Oracle11g
1.官网上下载 软件安装包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 解压后: 生成文件夹: datab ...
- angular -- 无刷新做分页
无刷新做分页参考地址: http://www.jq22.com/demo/angular201707111100/ 示例代码: <!DOCTYPE html> <html lang= ...
- HDU Humble Numbers
Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The ...
- Redis集群(一)
redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了. 官方的一个简单测试: 测试完成了50个并发执行100000个请求. 设置和获取的值是一个256字节字符串. ...
- ZOJ 3209 Treasure Map(精确覆盖)
Treasure Map Time Limit: 2 Seconds Memory Limit: 32768 KB Your boss once had got many copies of ...
- c# 网站 vislual studio
一.新建 1.新建网站 在 菜单栏-->新建-->项目-->选项编辑语言-->web-->先前版本-> 2.新建母板: *.master文件是母板页文件.添加新项时 ...
- linux 分卷压缩和合并
压缩: 可以用任何方式压缩,如tar -czf 分卷: split [OPTION]... [INPUT [PREFIX]] -b 代表分卷大小, 后面可以加单位,如G,M,K. 如果不 ...
- vue - 指令系统
指令系统: 所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. 1. ...