This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
当我尝试为我的 CCS 工程启用日志记录时、遇到内存分配错误。 我能够在不进行日志记录的情况下构建项目、但当我更改 tirtos_builds_CC1352P1_LAUNCHXL_release_ccs 中 release.cfg 文件中的以下行时、我会收到一个内存分配错误。
release.cfg:
/*========================= ROM 配置======================== // * *要在闪存中使用 BIOS,请注释掉下面的代码块。 // /var ROM = xdc.useModule('ti.sysbios.rom.ROM'); //rom.romName = ROM.CC13X2; BIOS.logsEnabled = true; //日志记录配置*/ var 日志设置= xdc.useModule('ti.uia.sysbios.LoggingSetup'); //*启用 CPU 负载记录*/ LoggingSetup.loadLogging = true; // *启用任务、Swi 和 Hwi 负载记录。 这使空闲任务 *的用法更有意义。 否则、Hwi 和 Swi 负载被计入 *每个任务的使用情况。 */ LoggingSetup.loadTaskLogging = true; LoggingSetup.loadSwiLogging = true; LoggingSetup.loadHwiLogging = true;
以前、我对 release.cfg 文件进行了这些更改、从而能够在另一个项目中启用 CPU 日志记录。 现在,当我尝试构建这个特定项目时,我得到:
"../CC1352P1_LAUNCHXL_TIRTOS.cmd",第107行:错误#10099-D:程序不能装入可用内存。 对齐方式运行".bss"大小为0x3b95的定位失败。 可用存储器范围: SRAM 大小:0x14000 未使用:0x4ea8 最大空洞:0x34e0 错误#10010:链接期间遇到错误;"../../bin/ia_aac_lc_enc_cm4_eval_rel_pkg.out 未生成 >>编译失败 makefile:178:目标'./../bin/ia_aac_lc_enc_cm4_eval_rel_pkg.out 的配方失败 gmake[1]:***[./../bin/ia_aac_lc_enc_cm4_eval_rel_pkg.out ]错误1 gmake:***[All]错误2 makefile:171:目标'All'的配方失败
我尝试进入 CC1352P1_LAUNCHXL_TIRTOS.cmd 文件、并更改 RAM 的大小。 程序已构建、但当我在调试模式下运行它时、它从未在 main 停止、这样我才能继续在代码中运行、因此我认为它必须是运行时错误。
分配漏洞是否不足以专门用于.bss 段? 在错误中、虽然 RAM 中未使用的空间是0x4ea8、'max hole sizes'是0x34e0、但.bss 段的大小是0x3b95。 是否有办法重新排列空间以使其适合?
我尝试进入 Project Properties -> ARM Linker -> Basic Options 并更改堆和堆栈大小、但这没有帮助。
我还尝试提高优化级别、该级别为0。 最多3个、我有相同的错误、在4个时、我有 一个#10192链接时优化错误。
下面是我的内存分配窗口:
请告知我应采取哪些进一步步骤来解决此问题。
此致、
Samyukta
您好、Samyukta、
[引用 user="Samyukta Ramnath1"]我尝试进入 CC1352P1_LAUNCHXL_TIRTOS.cmd 文件并更改 RAM 的大小。
您的更改到底是什么? 堆大小还是 RAM 大小? 您不能只增加 RAM 大小、因为器件只有0x14000字节的 RAM。
日志记录会占用额外的 RAM、因为默认情况下、日志记录会被放入内部缓冲区中。 您可以使用.cfg 中内部缓冲区的大小。 例如、
LoggingSetup.loadLoggerSize = 256; LoggingSetup.mainLoggerSize = 512; LoggingSetup.sysbiosLoggerSize = 1024;
我会注释.cfg 中的 LoggingSetup 行并构建应用程序。 然后、您可以看到有多少可用 RAM。 然后取消对 LoggingSetup 行的注释,并根据需要调整大小。
CPU 加载记录进入缓冲区,其大小由 loadLoggerSize 决定。 "main"记录器缓冲区用于应用程序代码记录的记录。 每个记录为~28字节 (一些更小、一些更大)。
Todd