随笔分类 -  arm编译&makefile

摘要:完成通用功能需要Makfile和Makefile.build。自动生成通用模板的应用为CreatMakfile。测试用目录如下: 因为CreatMakefile.c中的扫描部分和顶层Makfile的obj-y中的定义全部与src有关。所以项目结构为CreatMakfile和src文件夹并列,且源文件 阅读全文
posted @ 2020-05-11 19:25 不明白就去明白 阅读(360) 评论(0) 推荐(0) 编辑
摘要:示例: ①基础,根据最基础的规则编写。这条规则的作用:判断这些依赖文件,如果发现某个依赖文件被修改过(make会比较依赖文件和目标文件的时间,比如比目标文件时间新,认为被修改过),就会执行命令,来重新生成目标文件。简单暴力,但是效率低 test : main.c sub.c sub.h gcc -o 阅读全文
posted @ 2020-05-09 22:08 不明白就去明白 阅读(204) 评论(0) 推荐(0) 编辑
摘要:为了查找方便,从一路前行搬过来 被用来复制一个目标文件的内容到另一个文件中,可用于不同源文件的之间的格式转换示例: 常用的选项(大写):input-file , outflie输入和输出文件,如果没有outfile,则输出文件名为输入文件名2.-l bfdname或—input-target=bfd 阅读全文
posted @ 2017-08-26 14:59 不明白就去明白 阅读(434) 评论(0) 推荐(0) 编辑
摘要:直接指定代码段,数据段,BSS段的起始地址 示例: 一下摘自Linux公社ld指令详解 我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来;其次,这些.o文件存在相互调用的关系;再者,我们最后生成的bin文件是要在硬件中运 阅读全文
posted @ 2017-08-26 14:58 不明白就去明白 阅读(915) 评论(0) 推荐(0) 编辑
摘要:为了查找方便,从一路前行搬过来 我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:1. 预处理(Pre-Pr 阅读全文
posted @ 2017-08-26 14:55 不明白就去明白 阅读(3039) 评论(0) 推荐(0) 编辑
摘要:为了查找方便,从一路前行搬过来 一.arm-linux-objdump常用来显示二进制文件信息,常用来查看反汇编代码二.常用选项:1.-b bfdname 指定目标码格式2.—disassemble或者-d 反汇编可执行段3.—dissassemble-all或者-D 反汇编所有段4.-EB,-EL 阅读全文
posted @ 2017-08-26 14:49 不明白就去明白 阅读(706) 评论(0) 推荐(0) 编辑
摘要:在ARM架构下, 数据从内存到CPU之间的移动只能通过LDR/STR指令来完成.而MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中,并且数据的长度不能超过8位 LDR,STR 的第一操作数是目标寄存器,第二操作数是内存地址, LDR 内存 --> 寄存器; STR 寄存器 --> 内存 内 阅读全文
posted @ 2017-08-24 13:57 不明白就去明白 阅读(3500) 评论(0) 推荐(1) 编辑
摘要:MOV PC,LR BL NEXT ;跳转到子程序 ......... ;NEXT处执行 NEXT .......... MOV PC,LR ;从子程序返回 这里的BL是跳转的意思,LR(R14)保存了返回地址 PC(R15)是当前地址,把LR给PC就是从子程序返回 这里有一下总结 首先 1.SP( 阅读全文
posted @ 2017-08-24 11:54 不明白就去明白 阅读(1208) 评论(0) 推荐(0) 编辑
摘要:.equ and .word .word is like unsigned int in C. .equ is like #define exp: #define bob 10 .equ bob,10 unsigned int ted; ted: .word 0 unsigned int alice 阅读全文
posted @ 2017-08-24 11:12 不明白就去明白 阅读(213) 评论(0) 推荐(0) 编辑