工具/软件:Code Composer Studio
目前、我们使用的是不支持 C 环境初始化变量的 load.asm。 有些客户可能不了解差异、他们的计划可能会出现问题。 我们是否曾尝试使用 CCS 标准运行时库中的启动代码?
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
目前、我们使用的是不支持 C 环境初始化变量的 load.asm。 有些客户可能不了解差异、他们的计划可能会出现问题。 我们是否曾尝试使用 CCS 标准运行时库中的启动代码?
实际上、我们的常规 load.asm 确实支持 C 环境的自动初始化变量。
它是以以下内容开头的代码:
;*--------------------------------------------------
;*执行自动初始化。 如果 CINIT 为-1、则
;*没有。
;*--------------------------------------------------
; BL $c_int00
; BL $c_int00
LDR r0、c_cinit
我们确实会在引导加载程序 load.asm 中保留此功能、这可能是您看到的结果。 这应该是唯一一个被排除的地方。 因为我们正在尝试将其放入2K 空间、所以它不会被引导加载程序所占用。 在这里、我们还会保留一些内容、例如进入用户模式和初始化几个堆栈值。
最初在第一个 UCD 器件上、我尝试使用标准运行时库。 它非常大、默认情况下包括用于初始化完整 C 语言和 C++的代码。
我想它是几 KB。 我认为它也不会初始化所有堆栈。 与 CCS 3.3相同。 我们从那时起就没有再讨论过它。
load.asm 不会为堆进行初始化。 堆对于我们相对较小的 RAM 来说似乎不是一个好主意、但它仍然不是。