https://mp.weixin.qq.com/s/PylfNmJDRasTUj9fGp7gLQ

简单介绍bootrom目录中各个文件的实现。

1. Makefile

1) make过程

Makefile用于简化生成bootrom.img,只需要执行make命令即可:

主要过程为:

a. 根据链接脚本,使用gcc把汇编代码,编译为elf格式的目标文件;

b. 把elf目标文件拷贝为bin格式;

c. 把bin文件拷贝128字节成为img文件;

2) Makefile

Makefile文件内容如下:

其中:

a. 默认目标为第一条规则的目标,即all;

b. all依赖于变量bootrom_img的值,也就是bootrom.img;

c. 生成bootrom.img使用如下通配规则:

这里%代表的是bootrom,先决条件是bootrom.bin,执行的命令是dd;

d. 生成bootrom.bin使用如下通配规则:

bootrom.bin依赖于bootrom.elf,使用的命令是OBJCOPY,即riscv64-unknown-elf-objcopy;

e. 生成bootrom.elf使用如下通配规则:

bootrom.elf依赖于bootrom.S和linker.ld,使用的命令是GCC,即riscv64-unknown-elf-gcc;

3) bin/img

从bootrom.bin生成bootrom.img,使用了dd命令。dd命令只是单纯的拷贝动作,并且指定拷贝128个字节。两者之间的差异是什么呢?

为了使bootrom.bin不被自动删除,我们向Makefile中添加一条.SENCONDARY规则:

-----------------------------------------------------------------------------
这是一篇付费文章,请移步付费阅读全文,谢谢!
文章链接:https://mp.weixin.qq.com/s/PylfNmJDRasTUj9fGp7gLQ

最新文章

  1. Lambda 表达式[MSDN]
  2. php运行出现Call to undefined function curl_init()的解决方法
  3. wget cooikes 下载
  4. hadoop 突然断电数据丢失问题
  5. Hduacm—5497
  6. Android——多线程编程练习题
  7. CSU1306:Manor(优先队列)
  8. [Java] JavaMail 简单案例
  9. Delphi 10.1 柏林更新内容简译
  10. Java简单知识梳理
  11. BZOJ 3569: DZY Loves Chinese II [高斯消元XOR 神题]
  12. shell 常用命令语法简介
  13. 第三次java作业
  14. 关于在vscode中以https方式请求!不是以file文件夹访问!vscode中 ajax请求
  15. WIN10 企业版 LTSC 激活
  16. UOJ176 新年的繁荣
  17. 一、Windows10下python3和python2同时安装
  18. SNF快速开发平台--规则引擎整体介绍及使用说明书
  19. Kubernetes1.91(K8s)安装部署过程(七)--coredns安装
  20. Go随机数的使用

热门文章

  1. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类
  2. Asp.Net Core MVC在View中,根据用户权限动态生成菜单
  3. 浅析微软的网关项目 -- ReverseProxy
  4. HDU 2001 (水)
  5. wangeditor在移动端的web应用
  6. 聊聊ESP8266的SDK(ESP8266_RTOS_SDK v3.3 环境搭建)
  7. java十大排序
  8. ios上表单默认样式
  9. java中字符串截取
  10. stm32实现DMX512协议发送与接收(非标)