当需要修改AM64XX的SDK提供的源文件时,如果要在自己的工程使用,需要重新编译出lib,下面是编译lib的具体方法:
因为没有ccs编译出lib的工程,所以需要再命令行模式下生成lib文件
1、配置好gmake环境
如果安装了ccs,ccs已经有gmake了,所以只需将gmake添加到系统的path路径。
我的ccs装在D盘,使用将 D:/ti/ccs1230/ccs/utils/bin 加入系统path路径,之后打开cmd,
查询如下:
OK
2、输入生成lib命令
进入到SDK安装位置
输入指令 gmake -s libs PROFILE=release
1> 如果你的ccs1240和sdk都安装在默认位置,将会正确执行,如果不是,将会报错,提示gmake error
2> 如果是非默认位置,则需要修改SDK下的imports.mak文件
具体修改如下:
因为我的是在D盘,而且ccs是1230版本,所以修改如图所示
然后输入gmake -s libs PROFILE=release就OK了
同时debug的也生成下
gmake -s libs PROFILE=debug
这两条指令是生成所有的lib文件,时间较久
3、生成特定的lib
通过gmake -s help可查询支持的指令,因为我修改的是driver中的源文件,所有需要重新生成的是driver的lib文件,输入如下图示命令,就只生成driver的lib
我只需要生成release版本的,我的指令如下:
gmake -s -f makefile.am64x drivers_r5f.ti-arm-clang drivers_r5f.gcc-armv7 drivers_m4f.ti-arm-clang drivers_a53.gcc-aarch64 PROFILE=release
截图如下:
等待生成OK
release文件全部更新了
4、附录
在使用Makefiles时的提示和技巧
- 一般来说,Makefile被编写为简单并使用基本的GNU make语法和选项。您可以通过打开位于示例或库文件夹内的Makefile来查看不同的编译选项、包含路径、文件、包含目录、预处理器定义等,这些是用来构建该示例或库的。
- 所有Makefile包含的唯一文件是顶级的${SDK_INSTALL_PATH}/imports.mak。这个文件定义了到通用工具(如编译器、syscfg、CCS)的路径,这些工具被所有示例所使用。如果您在非默认路径安装了CCS、SysConfig、Compiler等工具,那么修改在此文件中定义的路径。
- 当构建特定的示例时,该示例使用的库不会被检查更改,即依赖关系不会被设置。因此,请确保执行gmake -s libs PROFILE={debug or release}以在所有库中构建,以防您更改了任何库源代码或头文件。这将检查并触发对所有库的“增量”构建。
- 在Linux上,您可以传递-j选项以允许在运行make时使用主机机器上的所有CPU。这将根据主机机器的速度显著加快构建时间。
- 在Windows上,当使用-j选项调用make时,Windows命令提示符有时会锁定。一个解决方案是在Windows中使用不同的shell,例如由GIT提供的bash shell:https://git-scm.com/download/win 。使用bash shell for Windows,您可以传递-j选项以加快构建速度。
- 您可以传递-s选项以在“静默”模式下构建。这将抑制实际执行的命令。因此,如果您不传递-s选项,控制台将显示make执行的确切命令。如果在调试过程中出现错误,这可能很有用。
- 您可以将PROFILE=debug或PROFILE=release作为参数传递给构建以进行调试模式或发布模式构建。
8. 您还可以通过转到包含Makefile的示例文件夹并键入以下命令之一来构建示例:
```
cd ${SDK_INSTALL_PATH}/examples/hello_world/{board}/r5fss0-0_freertos/ti-arm-clang
gmake -s all PROFILE={debug or release} # 构建示例
gmake -s clean PROFILE={debug or release} # 清理示例
gmake -s syscfg-gui # 为示例启动SysConfig GUI
```9. 总的来说,请浏览gmake -s help下列出的命令和选项。