DevKitPro(GBA),MakeFile文件大概分析(编译)
前言:我对makefile文件不是很熟悉,所以只能大概分析一下
makefile文件分析
一, 判断两个关键系统变量 $(DEVKITARM)和$(DEVKITPRO),注:引用库路径都是根据这两个变量的
二, 引用gba_ruls文件,和base_ruls文件
三, 初始化所有变量
四, 编译所有文件,当遇到*.bin文件时,执行 bin2s $(outfile) || $(AS) -o $(outfile) <此命令在gba_rules文件中> (注:先把二进制文件转化成 汇编文件,然后汇编器输出对象文件,在linux下,命令或许有更改)
bin2s,二进制输出汇编文件
五, 编译main.c文件,输出对象文件后,使用链接器(LD),链接文件
链接文件,$(LD) -specs=gba_mb.specs $(LDFLAGS) $(OFILES) $(LIBPATHS) $(LIBS) -o $@<此命令在gba_rules文件中>
链接器会根据specs文件配置输出的链接文件,有关specs文件的详细资料可以网上查找,或者往下看specs文件分析
六, 最后一步, objcopy -O binary $< $@ <此命令在gba_rules文件>
嵌入式开发的关键程序,把elf输出成bin文件
七, 小处理生成的bin文件,gbafix <bin>,网上有gbafix源码
有关specs文件分析
%rename link old_link*link:
-T gba_mb.ld%s %(old_link)*startfile:
gba_crt0%O%s crti%O%s crtbegin%O%s
*link:
编译过程简化版
1)gcc -c main.c -o main.o
2)gcc -specs=gba_mb.specs main.o -o main.elf
3)objcopy -O binary main.elf main.gba
objdump -D main.elf > main.s
arm: b 0x080000C0 @跳转指令
或
arm: b 0x020000c0 @跳转指令
DevKitPro(GBA),MakeFile文件大概分析(编译)相关推荐
- 多文件目录下makefile文件递归执行编译所有c文件 很不错
下面是网上找到的,思路很不错,当然也无法满足所有的需求,我执行又修改了一套.解决了下面的方法存在的问题:每次编译都是全编译的问题,解决思路是.o文件需要跟编译的makefile文件同目录. 首先说说本 ...
- Ubuntu下使用cmake结合CmakeLists.txt生成makefile文件并进行编译
转自1:https://www.cnblogs.com/cv-pr/p/6206921.html 转自2:https://blog.csdn.net/qqwangfan/article/details ...
- Linux内核Makefile文件
Linux内核Makefile文件(翻译自内 核手册) 转载自:http://blog.chinaunix.net/uid-21651676-id-60377.html Linux 内核Makefil ...
- Linux——Makefile文件
Makefile/makefile Windows环境下IDE会自动帮你完成makefile文件的编写,Linux上我们需要自己编写. Makefile文件,我们可以将其理解为一个工程文件的编译规则, ...
- makefile文件的一些解读
hit2015spring晨凫追风\frac{hit2015spring}{晨凫追风}欢迎关注我的博客晨凫追风 这篇文章算是一个学习的笔记吧,在很多的程序构建过程中的一些东西 gcc编程的四个步骤 命 ...
- 怎么在Windows下使用Makefile文件
[推荐阅读] virtio-net 实现机制[一](图文并茂) 浅析linux内核网络协议栈--linux bridge 深度解析linux内核模块编译makefile 前言:如果熟悉在Linux开 ...
- Android makefile文件解析
Android makefile文件解析 Android编译过程详解 编译步骤 Android的编译步骤包括三步: 1.通过source build/envsetup.sh命令将sh文件中的命令加载到 ...
- Makefile文件的编写(实例详解)
1.什么是Makefile? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,Makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译 ...
- 【Linux基础】如何编写Makefile文件?
文章目录 前言 一.make工具简介 1.什么是make? 2.如何安装make? 二.编写Makefile文件 1.文件组成 2.工作原理 3.Makefile文件优点 4.单级目录下的Makefi ...
- Makefile文件详解一(怎么在Windows下使用Makefile文件)
前言:如果熟悉在Linux开发的话,肯定知道Makefile文件的用处,它给我们带来很多的便利.在Linux系统下并不会像Windows那么多开发工具,在Windows下,只要在开发工具上点击一个按钮 ...
最新文章
- 【python教程入门学习】机器学习使用Python编程是因为什么?
- 20. PWT、PCD(填坑篇)
- yolov3损失函数改进_YOLOv3论文解析
- matlab debug出现k,MATLAB下的程序调试
- 大话设计模式—观察者模式
- SQL SERVER 基础知识及语法总结,从头说起,一点一滴 (一)
- 2021年度训练联盟热身训练赛第一场 H题On Average They‘re Purple(BFS)
- 学生成绩管理 php,php学生成绩管理系统(模板)
- 【以太坊源码】I.区块和交易,合约和虚拟机
- 网络对抗技术实验二,第一部分,第二部分
- C++ 常用术语(后续补充)
- esp8266 wifi信号强度示意表
- 问题 A: 三角函数计算(python)
- Windows下Chcp命令的用法
- php中下载xls某个文件,php下载excel文件
- day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上/下造型,main方法,抽象类,接口,设计模式,异常,内部类
- arcgis利用栅格计算器修改DEM高程数据
- 联想WIN10进入BIOS进行设置的两种方法
- 2022年金属非金属矿山(地下矿山)安全管理人员特种作业证考试题库模拟考试平台操作
- linux质控命令,质控软件 fastp
热门文章
- CMMI5认证必备条件
- vue3 + typescript + echarts后端动态获取数据显示问题总结
- Redis 可视化工具 Redis Desktop Manager 和 treeNMS 的使用
- 二分查找(java代码实现)
- Bat批处理命令执行中文路径解决方法
- PMP学习笔记 零 启动
- python库参考_Python库参考手册(Python Library Reference)
- 详解EtherCAT主站SOEM源码_eepromtool.c
- JAVA如何实现视频在线播放(MP4文件在线播放)
- 使用js进行智慧树刷课