RISC-V MCU中文社区

【分享】 蜂鸟hbird sdk的Makefile架构分析

发表于 全国大学生集成电路创新创业大赛 2021-06-01 22:48:39
1
2339
1

一.前言

队伍名称:穿越时差队

队伍编号:CICC2297

简介: 蜂鸟系列的MCU开发工具分为基于SDK和图形化的IDE两种开发方式,我们采用了基于SDK的开发方式, SDK的构建主要由多个Makefile文件组成,本文主要介绍了各个Makefile文件之间的关系和主要功能.

二.内容

以application/helloworld 为例进行分析,首先编写完成main.c文件之后,我们会在helloworld文件夹下执行编译 make dasm;  然后执行 make upload对程序进行烧录.

完成上述过程,是一系列Makefile文件联合运行的结果.

1. helloworld文件的Makefile

应用中的Makefile主要定义了几个变量 TARGET  HBIRD_SDK_ROOT   SRCDIRS   INCDIRS   COMMON_FLAGS,这些变量在其他Makefile文件中都会用了.

Makefile文件中也include了 Makefile.base文件, 下一步我们要在 hbird-sdk/Build文件夹中找到Makefile.base进行分析


2. Build 文件夹中的Makefile.base文件

文件定义了SOC  BOARD(BOARD变量在Makefile.soc.hbirdv2/hbird文件中定义) DOWNLOAD 这三个关键变量,  (可以通过修改这三个值, 改为我们默认使用的版本, 我使用的是 hbirdv2  mcu200t ilm下载方式

,修改完之后就不需要每次make的时候都输入这三个变量了), 同时定义了 HBIRD_SDK_SOC变量用于指示相关外设底层文件和启动文件所在的路径.

最后include了另外三个Makefile文件,分别为 Makefile.misc  Makefile.conf Makefile.rules


3. Makefile.misc  Makefile.conf Makefile.rules

misc文件主要定义了get_csrcs  get_asmsrcs   get_cxxsrcs三个函数,用于遍历文件夹的C 汇编 cpp 文件
conf 文件主要配置了跟编译工具和编译工具参数设置有关的变量, include了Makefile.files Makefile.rtosMakefile.soc
rules文件:  调用misc中的三个函数,将文件夹下的包含的文件赋值给变量; 定义make的规则,依赖关系以及目标文件.  make dasm\ make upload 等make规则都在这个文件中定义的.

4. Makefile.files Makefile.rtosMakefile.soc -> Makefile.soc.hbirdv2

files文件主要append一些依赖文件list给变量,包括 SoC文件夹下的外设相关底层库文件和启动文件

rtos文件: 跟实时操作系统相关
soc文件: 定义了Soc文件夹等相关路径, 并赋给变量; 确定了 ld链接文件 和 openocd的配置文件


整体结构说明见下图:







喜欢1
用户评论 (1)
  • 越跃楽

    2021-06-01 22:51:03 越跃楽 1#

    makefile教程可参考:https://seisman.github.io/how-to-write-makefile/overview.html

越跃楽

越跃楽 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板