1. 今天来分析一下makefile,看看如何编译出执行文件pmon的。

先贴几张图,makefile的内容,这是一些依赖关系

图一

图二

图三

图四

图五

2.图一解释

rom这个目标又三个依赖,clean,$START,zloader.o

先执行依赖,再去执行后面的命令。

clean这个目标就不解释了吧,反正就是删除。。。。(图二)

3.图三,start.o是如何生成的?

3.1首先删除原来的start.o

3.2 生成链接脚本ld.script

3.3 到Targets/Bonito3a3000_7a/compile/Bonito/目录中执行makefile

3.4 拷贝start.o到当前路径下。

4.图四,zloader.o是如何生成的?

zloader.o 有依赖。

其中图五的目标也是临时生成的。他的依赖是pmon.bin

zloader.o 是由zloader.c生成,但是它是要先完成依赖。

5.这里要考虑pmon.bin是如何生成的。

这里有一些变量,还得展开,这部分定义在根目录下的makefile.inc文件。

按照变量展开后:

pmon:Makefile ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${LIBZ} crtend.o     (这里的几个变量不展开了,内容太多,为什么Makefile也是依赖呢?这个Makefile中指定了头文件的包含关系,在# DO NOT DELETE之后说明的那一大段中)

rm -f $@  (第一条命令,删除原来生成的pmon文件,$@表示pmon这个目标)

@echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '${SYSTEM_OBJ}' vers.o;    (这里是打印提示信息)

${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o -L../../../../examples/math/ -lgcc   (执行ld指令,生成pmon文件)

@${SIZE} $@         (使用size命令输出pmon文件大小)

chmod 755 $@ ;     (修改权限)

${OBJCOPY} -O binary $@ $@.bin (生成pmon.bin文件)    生成bin文件,后来需要解压的c数组,

这个makefile之前被执行过。所以pmon.bin之前就生成了。(第1步的图三中。往上翻)

单龙芯3A3000-7A1000PMON研究学习-(11)撸起袖子干-make tgt=rom的编译过程相关推荐

  1. 单龙芯3A3000-7A1000PMON研究学习-(14)撸起袖子干-分析代码前的准备工作2

    1.我细细回想一下,感觉要准备的东西很多. 比如体系结构,汇编指令,地址映射,外设.... 然而,光体系结构就复杂到要用n页(官方的)pdf才能说清楚(其实不一定能说清楚,可能还得慢慢去琢磨).这里还 ...

  2. come type6 定义_COMe-B6101龙芯3A3000 COM Express Type6模块

    COMe-B6101是一款以龙芯3A多核处理器和AMD RS780E SB710芯片组为核心,高可靠性和高效能的主板模块.COMe-B6101 内部集成ATI M72-based图像引擎,支持双屏显示 ...

  3. 单龙芯3A3000-7A1000PMON研究学习-(16)撸起袖子干-分析代码前的准备工作3-寄存器

    1.这篇还是稍微介绍一下cpu相关的寄存器. 手册里面说到的寄存器分两种,一种是cpu使用的(汇编中用来存放数据的),另一种是外部设备寄存器(一般用于配置功能,或者读写外部设备数据用的.),在手册中都 ...

  4. 龙梦拿下3万片大单 龙芯电脑年底量产无悬疑

    10月9日,龙芯有关人士通过搜狐博客透露,"龙梦电脑已经有人拿到货,批量生产在11月15日以后,因为量产的芯片11月15日才到."这与龙梦科技此前关于"龙芯电脑年底量产& ...

  5. Linux内核4.10在龙芯3A3000笔记本上的移植

    http://ask.loongnix.org/?/article/66 http://ask.loongnix.org/?/article/67 http://ask.loongnix.org/?/ ...

  6. 单龙芯3A3000-7A1000PMON研究学习-(19)撸起袖子干-再来一杯代码3

    1.start.S包含一个独立的pcitlb.S文件 ##########################################     PRINTSTR("NO TLB cach ...

  7. 单龙芯3A3000-7A1000PMON研究学习-(8)撸起袖子干-make tgt=rom初步分析(a)

    1.make tgt=rom 开始编译了. 在zloader.3a3000_7a目录下的Makefile.inc,指定了我们要的目标. tgt = rom. 所以就是执行73行的rom这个目标. 这里 ...

  8. 单龙芯3A3000-7A1000PMON研究学习-(12)撸起袖子干-分析代码前的准备工作1

    1.make的过程我说了个大概,大家可以参考一下前面的文章.现在准备分析代码吧,其实这个准备工作内容应该蛮多的.可能后面还要补充. 2.首先找到关键的bin文件啊,就是可以最终下载到flash,能启动 ...

  9. 走进龙芯3A3000(四)安装XFCE4

    我想要安装KDE 我想要qtwebengine的MIPS64实现.曾经读过千里孤坟的<KDE综览>,就深深喜欢上了KDE,当时的版本还是KDE3.后来KDE4发布,千里孤坟又写了<K ...

最新文章

  1. Python_03-数据类型
  2. python入门到精通自学_python入门到精通大型视频、自学者的福利
  3. 中国移动互联网2018年度报告:八大关键词总结与十大趋势
  4. Oracle数据库之多表查询
  5. 开放下载!《AliOS Things快速开发指南》
  6. Visual Studio编译选项简介
  7. 工业相机与民用相机的区别_工业相机和普通相机的区别详解
  8. LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
  9. 使用php-amqplib连接rabbitMQ 学习笔记及总结
  10. c语言1l是多少,1千克等于多少升(一千克等于一升啊)
  11. 如何下载Discuz
  12. 2022年考研数据结构_2 线性表
  13. 小学计算机课教学工作总结,小学六年级信息技术教学工作总结
  14. bigemap软件功能对比
  15. 联合分布,边缘分布,条件分布,互信息
  16. Action Extension
  17. 使用shell脚本删除rabbitMq的exchange
  18. 海康监控如何设置STMP邮箱报警
  19. 输入一个数字n,输出一个n层的特定三角形
  20. 子平真诠释疑笔记(三)

热门文章

  1. MacBook Pro有哪些快捷键!(最全新版)
  2. 机械中级工程师计算机和英语翻译,机械类专业英语翻译
  3. 懒人的播放器--全自动百度榜单歌曲播放器,下载歌词全傻瓜化,全C#编写
  4. 微信小程序+uni-app知识点总结
  5. 美化的下拉框select2
  6. 声音文件慢速播放不变调原理的猜想
  7. Android与服务器端数据交互(基于SAOP协议整合android+webservice)
  8. 磁环选型攻略及EMC整改技巧
  9. 了解redis的单线程模型工作原理?一篇文章就够了
  10. 新手入门该学什么编程语言?