中科蓝讯工程编译及自动下载过程浅析

目录

1.总述: 编译生成文件总图

2.编译前的预操作(生成资源文件res.bin及配置文件xcfg.bin)

3. 调用GCC源代码编译, 生成app.rv32文件.

4. 调用postbuild.bat, 整合前面生成的res.bin / xcfg.bin /app.rv32等文件, 生成最终下载文件app.dcf 

5. 调用downoad.xm,实现工程编译后自动下载功能


1.总述: 编译生成文件总图

 以下以AB530X中的标准工程standard示例, 看看编译过程中的操作及生成的文件.

 

 Rebuild工程, 可以在BuildLog中, 查看相关文件处理过程

 下面主要分析这个log日志, 看看编译过程中的动作.

2.编译前的预操作(生成资源文件res.bin及配置文件xcfg.bin)

log日志如下:

 

编译前会调用prebuild.bat, 此批处理主要处理2件事.

  • 1) xmaker调用脚本res.xm处理和打包资源文件(提示音,EQ等), 生成资源res.bin文件及res.h文件.

这里要注意,在编译时生成的res.bin, 默认是从Output\bin\res目录下的所有文件当作资源文件打包的, 这些资源文件目前只支持英文名.

在生成的res.h中可以看到各个生成文件的存放地址及长度的指针.

 

这里要特别注意, 如果替换了Output\bin\res目录下的资源文件, 如“normal.eq”, 一定要重新编译, 不然是没有效果的.

相对而言, 替换了Settings\Resources下的资源文件, 则不用重新编译, (后面再详述)

  • 2) xmaker调用脚本xcfg.xm处理配置选项文件, 生成配置xcfg.bin文件, 及xcfg.h头文件.

配置文件“如Boombox”的显示界面, 实际上是解析xcfg.bin(xcfg.xm编译生成的)来实现图形化配置的

这个配置文件(xcfg.xm)中所有的配置都对应xcfg.h中结构体中的选项:

在程序上电运行时, 会把xcfg.bin文件中的值赋值给xcfg_cb这个结构体, 也就实现了配置工具和程序之间的联系.

 

另外, 也可以自行在xcfg.xm中增加自己的配置选项, 重新编译后, 再在设置中打开配置文件, 即可看到新加的配置选项. (相关语法照着xcfg.xm中的猜也能到)

3. 调用GCC源代码编译, 生成app.rv32文件.

 

4. 调用postbuild.bat, 整合前面生成的res.bin / xcfg.bin /app.rv32等文件, 生成最终下载文件app.dcf 

 

postbuild.bat中调用的app.xm脚本文件, 可以看到有5个文件被整合生成app.dcf

  • 1) 前面生成的res.bin / xcfg.bin /app.bin(app.rv32转换而来)

  • 2) header.bin: 此文件为固定文件,大小为4K, 一般是从FLASH中的加载运行的第一个文件.进行一些芯片配置及二次加载前的处理. 如有曾经出现芯片晶振驱动能力不足导致芯片运行不起来, 更新原产提供的header.bin即可.

  • 3) updater.bin: 这个是升级文件, SD或USB升级及测试盒升级出现问题, 有时需要更新这个文件才能修复.

5. 调用downoad.xm,实现工程编译后自动下载功能

postbuild.bat中最后还调用了一个downoad.xm, 打开看到仅仅是一个download的脚本关键字.

它的作用是让xmaker给DownLoader.exe发送一个下载命令(Windows程序之间的命令沟通), 实现程序编译后自动下载功能.

 

 

 参考资料:

[1]中科蓝讯蓝皮书————工程编译及自动下载过程浅析

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值