FPGA|CPLD|ASICwilliam hill官网
直播中

jf_50393217

4年用户 182经验值
擅长:可编程逻辑 嵌入式技术
私信 关注

【FPGA开发者项目连载】如何使用VSCode和GN+Ninja编译高云gw1ns4的M3内核项目

本帖最后由 jf_50393217 于 2021-5-17 17:55 编辑

前言:人懒,不想下载官方的IDE,根据之前学习GN+Ninja的经验,把官方源码调整了一下,并重建了构建系统。使用该方案的好处,构建依赖清晰明了,不需要下载官方IDE,可使用VSCode编辑源码,命令行编译(或者使用VSCode的Task功能一键编译)。

效果截图

QQ图片20210517172848.png

GN+Ninja构建系统目录说明
  1. ├── build                              构建系统配置目录
  2. │   ├── config                                全局配置(如Include头文件)
  3. │   ├── product                             开发板配置
  4. │   └── toolchain                           工具链配置(编译命令等)
  5. ├── core                               core核心组件(原CORE源码目录)
  6. ├── out                                编译产物目录
  7. │   └── ministar
  8. ├── peripheral                     外设组件目录(组件)
  9. │   ├── Includes                          外设头文件目录
  10. │   └── Sources                           外设源码
  11. ├── startup                          mcu启动代码(非组件形式)
  12. ├── system                          mcu配置代码(组件形式)
  13. └── user                               用户组件代码

使用方式:
一:下载代码
  1. git clone -b master --depth=1 https://gitee.com/walker2048/gw1-ns-4-c-gn

二: 安装GN和Ninja工具(只支持Linux),
william hill官网 发帖规则变态,无法上传简易安装命令内容,请见谅。
下载gn和ninja,解压缩到目录,并将该目录放到环境变量中
gn地址https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar
ninja地址https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar

三:在git下载下来的项目目录中,运行构建命令
  1. gn gen out/ministar --root=. --dotfile=build/.gn --args='product = "ministar"' && ninja -C out/ministar
即可完成编译过程。


如需增加c源文件,参考如下教程:
例如需要在user目录下添加test.c文件,则修改user/BUILD.gn文件的21~27行,把test.c添加到里面,改成如下内容即可。
  1. static_library("src") {
  2.     sources = [
  3.         "main.c",
  4.         "gw1ns4c_it.c",
  5.         "test.c",
  6.         "//startup/startup_gw1ns4c.S"
  7.     ]
  8. }
假如需要添加额外组件,可参考system组件配置,将该组件源码目录复制到根目录。同时把system的BUILD.gn文件复制到该组件去,并修改该文件的第3行
static_library("system"),将system改成组件目录名称(大小写一致),并修改第5行内容,改成需要编译的c文件名称(多个文件换行,用,
分隔)。最后修改user/BUILD.gn的第4行依赖定义内容(按组件名称写),依赖从顶层排序,从左往右写。


如需添加全局引用目录,修改build/config/BUILD.gn的20~27行,将该目录添加进去即可。

更多回帖

发帖
×
20
完善资料,
赚取积分