杰理SDK--makefile编译及带key固件输出
不少小伙伴在后台私信提问,不安装杰理可视化工具的情况,是否可以进行基于杰理SDK的应用开发。
杰理可视化SDK支持在Windows系统环境和Linux系统环境使用makefile进行编译。默认情况下,SDK支持在Windows系统环境下进行编译和下载,而在Linux系统只支持编译。SDK发布的时候, 默认除了发布了cbp后缀的Code::Blocks工程。此外,还同时发布了 Makefile以及VSCode的配置。所以在不使用杰理可视化工具的情况下也可以正常进行杰理SDK应用的开发。
使用makefile编译SDK
makefile文件用于定义软件项目的构建和编译规则。它是GNU Make工具的配置文件,通过一系列规则指定哪些文件需要先编译、哪些文件需要后编译,以及哪些文件需要重新编译。
Makefile主要由以下三部分内容组成:
目标(Target):需要生成的文件,例如可执行文件或目标文件。
依赖(Dependencies):生成目标所依赖的文件或其他目标。
命令(Commands):构建目标时需要执行的命令。
SDK根目录下有一个Makefile文件。此外,为了支持SDK使用make进行编译。SDK额外附带了一个tools目录, 里面放置了必要的编译工具。
打开工程目录下的Makefile文件可以查看有那些目标。如下图。
在终端中输入make all -j16或者输入make -j可以进行编译。参数-j代表使用编译的线程数量。
make -j:默认makefile中的第一个目标,没有指定线程默认cpu最大线程
方式一: 在SDK根目录下直接使用命令行打开tools/utils目录工具中的make编译,终端中输入make -j编译。
方式二(官方推荐方式):
-
打开SDK目录下的tools目录内的make_prompt.bat脚本, 如下图所示。
-
make_prompt.bat文件是设置环境变量的批处理脚本。在弹出的命令行窗口后脚本会自动设置编译所使用到的PATH设置,在窗口中输入make -j并输入回车,可以自动启动编译程序。
-
编译完成之后makefile脚本后处理会自动调用cpu\brxx\tools\download.bat这个路径下的download脚本文件进行下载烧录。download.bat脚本同时会自动打包生成fw或ufw烧录文件。
排查makefile编译出错步骤
在SDK使用makefile编译过程中如发现有编译出错的情况,可以使用以下步骤进行排查:
- 检查SDK所在的路径中是否有空格或中文(不能带有空格和中文路径)
- 检查SDK所在的路径,是否层次过深
- 检查SDK根目录中的tools文件夹,是否与转换工具中的tools文件夹一致。检查是否有缺失的文件。
- 检查对应的Code::Blocks工程是否能够编译,确认工具链环境是否有问题,能编译则杰理工具链没有问题。
生成带KEY的烧录固件
由于杰理芯片一般在代理商购买,芯片中需要烧录带KEY的固件。所以我们在生成烧录固件时一般需要将KEY文件填入。
这里我们打开SDK目录下cpu\brxx\tools\download.bat这个脚本代码可以看到,在找到需要的bin文件之后实际上调用的还是download\earphone路径下的download.bat脚本。
打开download/earphone/download.bat脚本可以看到,脚本调用使用了isd_download.exe加上bin和参数进行下载烧录。默认参数是不带KEY来对bin文件做组合生成烧录固件。
如需要加入key参数, 可以直接修改此脚本, 在后面增加修改为即可。