目录
1.总述: 编译生成文件总图
2.编译前的预操作(生成资源文件res.bin及配置文件xcfg.bin)
3. 调用GCC源代码编译, 生成app.rv32文件.
4. 调用postbuild.bat, 整合前面生成的res.bin / xcfg.bin /app.rv32等文件, 生成最终下载文件app.dcf
5. 调用downoad.xm,实现工程编译后自动下载功能
以下以AB530X中的标准工程standard示例, 看看编译过程中的操作及生成的文件.
Rebuild工程, 可以在BuildLog中, 查看相关文件处理过程
下面主要分析这个log日志, 看看编译过程中的动作.
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, 找到底对应选项如LANG_ID, 改成小写,查找xcfg_cb.lang_id在程序中做的操作即可.
另外, 也可以自行在xcfg.xm中增加自己的配置选项, 重新编译后, 再在设置中打开配置文件, 即可看到新加的配置选项. (相关语法照着xcfg.xm中的猜也能到)
通过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升级及测试盒升级出现问题, 有时需要更新这个文件才能修复.
postbuild.bat中最后还调用了一个downoad.xm, 打开看到仅仅是一个download的脚本关键字.
它的作用是让xmaker给DownLoader.exe发送一个下载命令(Windows程序之间的命令沟通), 实现程序编译后自动下载功能.
这个自动下载功能, 要在Dwonloader的"开始"选项中, 勾选"自动"功能才行.
先分析到这, Thanks关注.