一、编译、链接、汇编过程:
预编译:展开#include、#define
编译: main.c ——> main.s
汇编:main.s——>main.o(目标文件)
链接:将所有的main.o、xxx.o等.o文件拼起来变成一个main/elf格式文件,其在操作系统中可直接运行,在SD或者flash中不能直接运行,因其中有调试信息、段信息、码信息等,不是纯粹的二进制文件。
生成二进制文件:main/elf格式文件 ——> main.bin文件(剥离后变得更小)
二、实验:编写自己的myboot程序:
1、将A文件中的3行代码复制到B文件中;
2、将start.s中的代码复制到mystart.s中;
3、将start.s中的代码复制到mylowlevel_init.s中;
.globl led1_on:在mystrat.s中也可以调用led1_on;
第5行:预处理左移一位,01变10,再和r12操作,最后放入r12,点亮LED2灯;
4、汇编:将.s文件变成.o文件;
5、链接:将两个.o文件链接成myboot / elf格式 文件;
(1)链接的思路:
(2)链接的脚本文件myboot.lds:
6、分析mystart.o文件汇编代码:
(1)为